/* ============================================================
   VUURSPUWER — single dark stage.
   The page has one persistent light source: a live WebGL flame
   burning along the bottom edge of the viewport. Everything
   else is soot, and every surface is transparent enough to let
   that light through.
   ============================================================ */

:root{
  /* ground + surfaces --------------------------------------- */
  --soot:      #0A0705;
  --soot-deep: #050302;
  --ash:       #171008;
  --ash-hi:    #241708;
  --night:     #0C1A2B;   /* cold counter-accent: night behind the fire */

  /* heat ---------------------------------------------------- */
  --ember:     #FF4D0A;
  --flame:     #FFB020;
  --core:      #FFF3D6;

  /* type ---------------------------------------------------- */
  --ink:       #FFF3D6;
  --ink-dim:   #C6B29E;
  --smoke:     #8A7A6D;
  --hairline:  rgba(255,176,32,.16);

  --f-display: "Archivo", "Arial Black", system-ui, sans-serif;
  --f-body:    "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:    "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* type scale ---------------------------------------------- */
  --t-xs:  clamp(.66rem, .62rem + .18vw, .76rem);
  --t-sm:  clamp(.82rem, .78rem + .2vw,  .94rem);
  --t-md:  clamp(1rem, .95rem + .28vw,   1.16rem);
  --t-lg:  clamp(1.25rem, 1.05rem + .9vw, 1.75rem);
  --t-xl:  clamp(1.9rem, 1.3rem + 2.8vw, 3.4rem);
  --t-2xl: clamp(2.6rem, 1.4rem + 5.6vw, 6rem);
  --t-3xl: clamp(2.9rem, .2rem + 10.6vw, 11rem);

  /* rhythm -------------------------------------------------- */
  --gutter: clamp(1.15rem, .6rem + 2.6vw, 3.5rem);
  --bay:    clamp(3.75rem, 1.6rem + 7.2vw, 8rem);
  --maxw:   1400px;

  --ease: cubic-bezier(.19,1,.22,1);
  --ease-io: cubic-bezier(.6,.02,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  overflow-x:clip;
}

body{
  margin:0;
  background:var(--soot);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:var(--t-md);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
  overscroll-behavior-y:none;
}

body.is-locked{ overflow:hidden; }

img,svg,video,canvas{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }

:focus-visible{
  outline:2px solid var(--flame);
  outline-offset:3px;
  border-radius:2px;
}

::selection{ background:var(--ember); color:#fff; }

/* --- shared type roles ------------------------------------- */
.eyebrow{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--flame);
  margin:0;
}
.eyebrow--dim{ color:var(--smoke); }

.display{
  font-family:var(--f-display);
  font-weight:900;
  font-variation-settings:"wdth" 118,"wght" 900;
  line-height:.86;
  letter-spacing:-.02em;
  text-transform:uppercase;
  text-wrap:balance;
  margin:0;
}

.lede{
  font-size:var(--t-lg);
  line-height:1.35;
  color:var(--ink-dim);
  max-width:22ch;
  text-wrap:balance;
  margin:0;
}

.prose{ max-width:62ch; color:var(--ink-dim); }
.prose p{ margin:0 0 1em; }

/* ============================================================
   Ambient layers — the flame lives behind the whole document
   ============================================================ */
.stage{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}

/* WebGL flame, burning up from the bottom edge */
#flame{
  position:absolute;
  left:0; right:0; bottom:0;
  width:100%;
  height:min(54vh, 560px);
  opacity:.95;
}

/* Scrim: opaque soot at the top, open flame at the bottom.
   This is what keeps text readable as it rises past the fire. */
.stage__scrim{
  position:absolute;
  inset:0;
  background:
    radial-gradient(120% 70% at 50% 108%, rgba(255,77,10,.16) 0%, transparent 62%),
    linear-gradient(to top,
      rgba(10,7,5,0)    0%,
      rgba(10,7,5,.22) calc(9%  + var(--sh, 0%)),
      rgba(10,7,5,.62) calc(18% + var(--sh, 0%)),
      rgba(10,7,5,.88) calc(27% + var(--sh, 0%)),
      rgba(10,7,5,.97) calc(36% + var(--sh, 0%)),
      var(--soot)      calc(44% + var(--sh, 0%)));
}

/* Cold night wash so the heat has something to burn against */
.stage__night{
  position:absolute;
  inset:0;
  background:radial-gradient(150% 90% at 50% 0%, rgba(12,26,43,.55) 0%, transparent 55%);
}

@media (max-width:760px){
  #flame{ height:min(40vh, 380px); }
}
@media (max-width:640px){
  .readout{ display:none; }
}

#embers{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  opacity:.85;
}

/* Fine grain — stops the big gradients from banding */
.stage__grain{
  position:absolute;
  inset:-50%;
  opacity:.035;
  background-image:radial-gradient(rgba(255,243,214,.9) .5px, transparent .5px);
  background-size:3px 3px;
  animation:grain 6s steps(6) infinite;
}
@keyframes grain{
  0%,100%{ transform:translate(0,0); }
  20%{ transform:translate(-1%,1%); }
  40%{ transform:translate(1%,-1%); }
  60%{ transform:translate(-1%,-1%); }
  80%{ transform:translate(1%,1%); }
}

/* Everything readable sits above the stage */
.shell{ position:relative; z-index:2; }

.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ============================================================
   Ignition — the logo burns in the middle, then flies to its
   place in the header and cools down on the way. It leaves a
   fire trail as it goes: the same trail the visitor is about
   to draw with the poi.
   ============================================================ */
#ignition{
  position:fixed;
  inset:0;
  z-index:200;
  background:var(--soot-deep);
  transition:background-color .9s var(--ease), opacity .5s var(--ease), visibility .5s;
}
#ignition.is-open{ background-color:rgba(5,3,2,0); pointer-events:none; }
#ignition.is-out{ opacity:0; visibility:hidden; }

/* the flyer is positioned dead centre; JS animates it to the header */
.ignition__flyer{
  --reveal:0;
  --edge:0;
  position:absolute;
  top:50%; left:50%;
  translate:-50% -50%;
  will-change:transform;
}

/* The wordmark catches from the left: the N first, then the U, on to the
   flame on the O, with the fire front travelling along with it. */
.logo--big{
  clip-path:inset(0 calc((1 - var(--reveal, 1)) * 100%) 0 0);
}
.ignition__edge{
  position:absolute;
  top:-16%; bottom:-16%;
  left:calc(var(--reveal, 0) * 100%);
  width:26px;
  margin-left:-13px;
  pointer-events:none;
  opacity:var(--edge, 0);
  background:linear-gradient(90deg,
    rgba(255,90,10,0) 0%,
    rgba(255,150,30,.85) 38%,
    rgba(255,247,225,1) 52%,
    rgba(255,120,20,.6) 66%,
    rgba(255,90,10,0) 100%);
  filter:blur(5px);
  transition:opacity .55s var(--ease);
}

.ignition__meter{
  position:absolute;
  left:50%;
  top:calc(50% + clamp(76px,13vw,124px));
  translate:-50% 0;
  width:min(280px,56vw);
  display:grid;
  gap:.7rem;
  justify-items:center;
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.ignition__meter.is-done{ opacity:0; transform:translateY(10px); }

.ignition__pct{
  display:flex;
  align-items:baseline;
  gap:.15em;
  font-family:var(--f-display);
  font-variation-settings:"wdth" 116,"wght" 800;
  font-size:clamp(1.9rem,5vw,2.8rem);
  line-height:1;
  letter-spacing:-.02em;
  color:var(--core);
  font-variant-numeric:tabular-nums;
}
.ignition__pct i{
  font-style:normal;
  font-size:.36em;
  font-variation-settings:"wdth" 80,"wght" 600;
  color:var(--ember);
}

.ignition__bar{
  width:100%;
  height:2px;
  background:rgba(255,243,214,.13);
  overflow:hidden;
}
.ignition__bar i{
  display:block;
  height:100%;
  width:var(--p,0%);
  background:linear-gradient(90deg,var(--ember),var(--flame),var(--core));
  box-shadow:0 0 14px rgba(255,140,30,.9);
  transition:width .07s linear;
}

@keyframes flicker{
  0%,100%{ opacity:1;   transform:scale(1)      rotate(-.4deg); }
  25%    { opacity:.86; transform:scale(1.035)  rotate(.5deg); }
  50%    { opacity:1;   transform:scale(.985)   rotate(-.2deg); }
  75%    { opacity:.92; transform:scale(1.02)   rotate(.3deg); }
}

/* the header lockup holds its breath until the flyer lands on it */
.nav__brand .logo{ opacity:0; transition:opacity .45s var(--ease); }
.nav__brand.is-landed .logo{ opacity:1; }

/* ============================================================
   The wordmark — Nuno's own hand-painted letters, traced to
   vector so they stay crisp at any size, then filled with the
   page's own fire and given a slow heat shimmer, as if the
   metal behind them is still cooling.
   ============================================================ */
.logo{
  --logo-src:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 292 80'><path fill='currentColor' fill-rule='evenodd' d='M155.8,0 159.1,0 161.5,0 163.2,0.1 164,0.3 164.1,0.6 164.3,0.8 164.5,0.9 164.8,1 165.1,1 165.5,1 165.7,1.1 165.9,1.3 166,1.6 166.2,1.8 166.5,1.9 166.8,2 167.1,2 167.5,2 167.7,2.1 167.9,2.3 168,2.6 168.2,2.8 168.5,2.9 168.8,3 169.1,3 169.6,3.2 170.2,3.6 170.9,4.2 171.7,5 172.3,5.8 172.8,6.5 173,7.1 173,7.8 173,8.3 173.1,8.6 173.3,8.9 173.6,9 173.8,9.2 173.9,9.5 174,9.8 174,10.1 174,10.5 174.1,10.7 174.3,10.9 174.6,11 174.8,11.2 174.9,11.5 175,11.8 175,12.1 175,12.5 175.1,12.7 175.3,12.9 175.6,13 175.8,13.3 175.9,13.6 176,14.1 176,14.8 176,15.3 176.1,15.6 176.3,15.9 176.6,16 176.8,16.4 176.9,17 177,17.9 177,19 177,19.9 177.1,20.5 177.3,20.9 177.6,21 177.8,21.2 177.9,21.5 178,21.8 178,22.1 178,22.5 178.1,22.7 178.3,22.9 178.6,23 178.8,23.2 178.9,23.5 179,23.8 179,24.1 179.1,24.5 179.3,24.9 179.7,25.3 180.2,25.6 180.6,26 180.8,26.4 181,26.8 181,27.1 181.1,27.5 181.3,27.9 181.7,28.3 182.2,28.6 182.6,29 182.8,29.4 183,29.8 183,30.1 183,30.5 183.2,30.8 183.4,31.2 183.7,31.5 184.1,31.7 184.5,31.8 184.9,31.9 185.3,31.8 185.6,31.3 185.8,30.5 186,29.3 186,27.6 186.1,26.4 186.3,25.6 186.7,25.1 187.2,25 187.6,25 187.8,24.8 188,24.7 188,24.5 187.8,24.3 187.6,24 187.2,23.6 186.7,23.3 186.3,22.8 186.1,22.3 186,21.8 186,21.1 186,20.6 186.1,20.3 186.3,20 186.6,19.9 186.8,19.5 186.9,18.9 187,18 187,16.9 187,16 187.1,15.4 187.3,15 187.6,14.9 187.8,14.6 187.9,14.3 188,13.8 188,13.1 188,12.6 188.1,12.3 188.3,12 188.6,11.9 188.8,11.6 188.9,11.1 189,10.4 189,9.5 189,8.8 189.1,8.3 189.3,8 189.6,7.9 189.8,7.6 189.9,7.3 190,6.8 190,6.1 190,5.6 190.2,5.1 190.4,4.7 190.7,4.4 191.4,4.2 192.5,4 194,4 195.9,4 197.3,3.9 198.3,3.8 198.9,3.6 199,3.3 199.5,3.1 200.4,3 201.6,3 203.3,3 204.5,3 205.4,3.1 205.9,3.3 206,3.6 206.3,3.8 206.6,3.9 207.1,4 207.8,4 208.4,4.2 209.2,4.6 209.9,5.2 210.7,6 211.3,6.7 211.8,7.3 212,7.8 212,8.1 212,8.5 212.1,8.7 212.3,8.9 212.6,9 212.8,9.6 212.9,10.6 213,12 213,13.9 212.9,15.3 212.8,16.3 212.6,16.9 212.3,17 212.1,17.3 212,17.8 212,18.5 212,19.4 211.9,20.1 211.8,20.6 211.6,20.9 211.3,21 211.1,21.3 211,21.8 211,22.5 211,23.4 210.9,24.1 210.8,24.6 210.6,24.9 210.3,25 210.1,25.3 210,25.8 210,26.5 210,27.4 210,28.1 210.1,28.6 210.3,28.9 210.6,29 210.8,29.6 210.9,30.6 211,32 211,33.9 210.9,35.3 210.8,36.3 210.6,36.9 210.3,37 210.1,37.5 210,38.2 210,39.3 210,40.6 209.9,41.7 209.8,42.5 209.6,42.9 209.3,43 209.1,44.6 209,47.8 209,52.4 209,58.5 208.9,63.1 208.8,66.3 208.6,67.9 208.3,68 208.1,68.5 208,69.4 207.9,70.7 207.8,72.4 207.7,73.7 207.4,74.5 207.1,75 206.8,75 206.4,74.9 206.1,74.8 205.8,74.6 205.6,74.3 205.4,74.2 205.2,74.2 205,74.3 204.9,74.6 204.7,74.8 204.5,74.9 204.1,75 203.8,75 203.5,75 203.2,75.1 203,75.3 202.9,75.6 202.6,75.8 202.1,75.9 201.4,76 200.5,76 199.7,76.1 199,76.5 198.3,77.1 197.6,77.8 197,78.4 196.2,78.8 195.4,79 194.5,79 193.8,78.9 193.3,78.8 193,78.6 192.9,78.3 192.3,78.1 191.1,78 189.5,78 187.4,78 185.8,77.9 184.6,77.8 184,77.6 183.9,77.3 183.7,77.1 183.4,77 183,76.9 182.6,76.8 182.3,76.6 182.1,76.3 182,75.8 182,75.1 181.9,74.6 181.8,74.3 181.6,74 181.3,73.9 181.1,73.7 181,73.5 181,73.1 181,72.8 180.8,72.4 180.6,72 180.2,71.6 179.7,71.3 179.3,70.9 179.1,70.5 179,70.1 179,69.8 178.9,69.5 178.8,69.2 178.6,69 178.3,68.9 178.1,68.7 178,68.5 178,68.1 178,67.8 177.8,67.4 177.6,67 177.2,66.6 176.7,66.3 176.3,65.9 176.1,65.5 176,65.1 176,64.8 175.8,64.3 175.4,63.8 174.8,63.3 174.1,62.6 173.5,62 173.1,61.4 173,60.8 173,60.1 172.9,59.6 172.7,59.1 172.5,58.7 172.2,58.4 171.8,58.3 171.5,58.3 171,58.4 170.6,58.7 170.3,59.5 170,60.6 169.9,62.1 169.8,64 169.5,65.5 168.9,66.5 168,67 166.9,67 166,67 165.4,67.1 165,67.3 164.9,67.6 164.7,67.8 164.5,67.9 164.1,68 163.8,68 163.5,68 163.2,68.1 163,68.3 162.9,68.6 162.6,68.8 162.3,68.9 161.8,69 161.1,69 160.6,68.9 160.3,68.8 160,68.6 159.9,68.3 159.7,68.1 159.5,68 159.1,68 158.8,68 158.5,68 158.2,68.1 158,68.3 157.9,68.6 157.6,68.8 157.3,68.9 156.8,69 156.1,69 155.6,69 155.3,69.1 155,69.3 154.9,69.6 154.7,69.8 154.5,69.9 154.1,70 153.8,70 153.5,70 153.2,70.1 153,70.3 152.9,70.6 152.7,70.8 152.5,70.9 152.1,71 151.8,71 151.5,71 151.2,71.1 151,71.3 150.9,71.6 150.4,71.8 149.5,71.9 148.3,72 146.6,72 145.3,71.8 144.2,71.5 143.4,71.1 142.8,70.5 142.4,70 142.1,69.4 142,68.8 142,68.1 142,67.6 142.1,67.3 142.3,67 142.6,66.9 142.8,66.6 142.9,66.1 143,65.4 143,64.5 142.9,63.8 142.8,63.3 142.6,63 142.3,62.9 142.1,61.4 142,58.5 142,54.2 142,48.5 141.9,44.2 141.8,41.4 141.6,40 141.3,40 141.1,40.3 141,40.8 141,41.7 141,42.9 140.8,43.9 140.6,44.7 140.2,45.3 139.7,45.6 139.3,46.1 139.1,46.8 139,47.5 139,48.4 138.9,49.1 138.8,49.6 138.6,49.9 138.3,50 138.1,50.5 138,51.4 138,52.6 138,54.3 137.9,55.5 137.8,56.4 137.6,56.9 137.3,57 137.1,57.2 137,57.5 137,57.8 137,58.1 136.9,58.5 136.8,58.7 136.6,58.9 136.3,59 136.1,59.4 136,60 136,60.9 136,62 135.8,62.9 135.6,63.5 135.3,63.8 134.9,63.9 134.3,64.2 133.5,64.7 132.6,65.5 131.5,66.6 130.8,67.5 130.2,68.2 130,68.8 130,69.1 129.9,69.5 129.7,69.8 129.5,70.2 129.2,70.5 128.8,70.7 128.5,70.9 128,71 127.6,71.1 127.3,71.3 127.1,71.7 127,72.1 127,72.8 126.9,73.3 126.7,73.8 126.5,74.2 126.2,74.5 125.8,74.7 125.3,74.9 124.8,75 124.1,75 123.6,75 123.3,75.1 123,75.3 122.9,75.6 122.7,75.8 122.5,75.9 122.1,76 121.8,76 121.3,76.1 120.8,76.5 120.3,77.1 119.6,77.8 118.6,78.4 117.1,78.8 115.1,79 112.8,79 111,79 109.8,79.1 109.1,79.3 109,79.6 108.9,79.8 108.8,79.9 108.6,80 108.3,80 108.1,79.9 108,79.8 107.9,79.6 107.8,79.3 107.5,79.1 107.1,79 106.4,79 105.5,79 104.8,78.9 104.3,78.8 104,78.6 103.9,78.3 103.7,78.1 103.5,78 103.1,78 102.8,78 102.5,77.9 102.2,77.8 102,77.6 101.9,77.3 101.7,77.1 101.5,77 101.1,77 100.8,77 100.5,76.9 100.2,76.8 100,76.6 99.9,76.3 99.7,76.1 99.5,76 99.1,76 98.8,76 98.5,75.9 98.2,75.8 98,75.6 97.9,75.3 97.6,75.1 97.3,75 96.8,75 96.1,75 95.5,74.8 94.9,74.4 94.3,73.8 93.6,73.1 93.1,72.5 92.5,72.1 92,71.9 91.6,71.8 91.3,71.6 91,71.4 90.9,71 90.8,70.6 90.7,70.3 90.4,70.1 90.1,70 89.8,70 89.1,69.6 88.1,68.8 86.9,67.6 85.3,66 84.1,64.8 83.3,63.8 83,63.1 83,62.8 82.9,62.5 82.8,62.2 82.6,62 82.3,61.9 82.1,61.6 82,61.3 82,60.8 82,60.1 81.9,59.6 81.8,59.3 81.6,59 81.3,58.9 81.1,58.6 81,58.3 81,57.8 81,57.1 80.9,56.6 80.8,56.3 80.6,56 80.3,55.9 80.1,55.4 80,54.5 80,53.3 80,51.6 79.9,50.4 79.8,49.5 79.6,49 79.3,48.9 79.1,48.2 79,47 79,45.1 79,42.8 79,41 79.1,39.7 79.3,39 79.6,38.9 79.8,38.5 79.9,37.7 80,36.6 80,35.3 80,34.2 80.1,33.5 80.3,33 80.6,32.9 80.8,32.6 80.9,32.1 81,31.4 81,30.5 81,29.8 81.1,29.3 81.3,29 81.6,28.9 81.8,28.6 81.9,28.1 82,27.4 82,26.5 82,25.8 82.1,25.3 82.3,25 82.6,24.9 82.8,24.6 82.9,24.3 83,23.8 83,23.1 83,22.6 83.1,22.3 83.3,22 83.6,21.9 83.8,21.5 83.9,20.9 84,20 84,18.9 84,18 84.1,17.4 84.3,17 84.6,16.9 84.8,16.5 84.9,15.9 85,15 85,13.9 84.9,13 84.8,12.4 84.6,12 84.3,11.9 84.1,11.7 84,11.5 84,11.1 84,10.8 84,10.5 84.1,10.2 84.3,10 84.6,9.9 84.8,9.7 84.9,9.4 85,9 85.1,8.6 85.4,8.3 85.8,8.1 86.5,8 87.4,8 88.1,8 88.6,8.1 88.9,8.3 89,8.6 89.2,8.7 89.4,8.7 89.6,8.6 89.8,8.3 90.3,8.1 91,8 91.9,8 93,8 93.9,8 94.5,8.1 94.9,8.3 95,8.6 95.2,8.8 95.5,8.9 95.8,9 96.1,9 96.5,9 96.7,9.1 96.9,9.3 97,9.6 97.2,9.7 97.4,9.7 97.6,9.6 97.8,9.3 98.4,9.1 99.2,9 100.3,9 101.6,9 102.9,9.2 104,9.6 104.9,10.2 105.7,11 106.3,11.7 106.8,12.3 107,12.8 107,13.1 107.1,13.4 107.3,13.7 107.6,13.8 108,13.9 108.5,14 108.8,14.2 109.2,14.4 109.5,14.7 109.7,15.1 109.9,15.4 110,15.8 110,16.1 110,16.5 110.1,16.7 110.3,16.9 110.6,17 110.8,17.2 110.9,17.5 111,17.8 111,18.1 111,18.5 111.1,18.7 111.3,18.9 111.6,19 111.8,20 111.9,21.9 112,24.6 112,28.3 111.9,31 111.8,32.9 111.6,33.9 111.3,34 111.1,34.5 111,35.4 111,36.6 111,38.3 110.9,39.5 110.8,40.4 110.6,40.9 110.3,41 110.1,42 110,43.7 110,46.3 110,49.6 110,52.2 110.1,54 110.3,54.9 110.6,55 110.8,55.2 110.9,55.5 111,55.9 111.1,56.3 111.4,56.6 111.8,56.8 112.5,57 113.4,57 114.3,56.7 115.3,56.2 116.3,55.4 117.4,54.3 118.2,53.4 118.7,52.7 119,52.1 119,51.8 119.1,51.4 119.3,51 119.7,50.6 120.2,50.3 120.6,48.6 120.8,45.6 121,41.3 121,35.6 120.9,31.4 120.8,28.5 120.6,27 120.3,26.9 120.1,26.2 120,25 120,23.2 120,20.9 119.9,19.1 119.8,17.8 119.6,17 119.3,16.7 119.3,16.4 119.4,16.3 119.7,16.2 120.2,16.2 120.6,16.3 120.8,16.4 121,16.7 121,17 121,17.3 121.1,17.5 121.3,17.7 121.6,17.9 121.8,18.2 121.9,18.6 122,19.1 122,19.8 122,20.3 122.2,20.8 122.4,21.2 122.7,21.5 123.2,21.7 123.8,21.9 124.6,22 125.5,22.1 126.3,22.3 126.7,22.7 127,23.1 127,23.8 127,24.3 127.1,24.6 127.3,24.9 127.6,25 127.8,25.2 127.9,25.5 128,25.9 128,26.3 128,26.6 128.1,26.8 128.2,27 128.4,27 128.6,26.9 128.8,26.8 128.9,26.7 129,26.5 129.1,26 129.1,25.3 129.1,24.3 129,23.1 128.9,22.1 128.7,21.3 128.5,20.7 128.2,20.4 127.8,20.2 127.5,20 127.1,20 126.8,20 126.5,19.8 126.3,19.6 126.1,19.3 126,18.9 126.2,18.5 126.7,18.3 127.4,18.1 128.3,18 129,18.1 129.5,18.3 129.8,18.6 129.9,19 130,19.4 130.1,19.7 130.3,19.9 130.6,20 130.8,20.3 130.9,20.6 131,21.1 131,21.8 131.1,22.4 131.5,23 132.1,23.6 132.8,24.3 133.4,24.8 133.8,25.4 134,25.9 134.1,26.3 134.3,26.6 134.7,26.9 135.2,27 135.9,27.1 136.4,27.3 136.8,27.5 137,27.8 137,28.1 137,28.5 137.1,28.7 137.3,28.9 137.6,29 137.8,29.2 137.9,29.5 138,29.8 138,30.1 138,30.5 138.1,30.7 138.3,30.9 138.6,31 138.8,31.3 138.9,31.6 139,32.1 139,32.8 139,33.3 139.2,33.8 139.4,34.2 139.7,34.5 140,34.7 140.3,34.9 140.5,35 140.7,35 140.8,33.3 140.9,30.1 141,25.3 141,18.9 141,14 141.1,10.7 141.3,9 141.6,8.9 141.8,8.6 141.9,8.2 142,7.7 142.1,7 142.3,6.5 142.5,6.1 142.8,6 143.1,6 143.5,5.9 143.7,5.8 143.9,5.6 144,5.3 144.2,5.1 144.5,5 144.8,5 145.1,5 145.5,4.8 145.9,4.6 146.3,4.2 146.6,3.7 147,3.3 147.4,3.1 147.8,3 148.1,3 148.6,2.8 149,2.4 149.5,1.9 150.1,1.2 150.5,0.7 150.8,0.3 151,0.1 151,0 151.8,0 153.4,0.0ZM240.3,0 240.6,0 240.8,0 240.9,0.1 241,0.3 241.1,0.6 241.3,0.8 241.7,0.9 242.1,1 242.8,1 243.3,1 243.6,1.1 243.9,1.3 244,1.6 244.2,1.8 244.5,1.9 244.8,2 245.1,2 245.5,2 245.7,2.1 245.9,2.3 246,2.6 246.5,2.8 247.2,2.9 248.3,3 249.6,3 250.7,3 251.5,3.1 251.9,3.3 252,3.6 252.2,3.8 252.5,3.9 252.9,4 253.3,4.1 253.6,4.3 253.8,4.5 254,4.8 254,5.1 254,5.5 254.2,5.8 254.4,6.2 254.7,6.5 255.1,6.7 255.4,6.9 255.8,7 256.1,7 256.6,6.7 257.3,6.2 258,5.5 258.9,4.5 260,3.7 261.2,3.2 262.6,3 264.3,3 265.5,3 266.4,3.1 266.9,3.3 267,3.6 267.2,3.8 267.5,3.9 267.8,4 268.1,4 268.5,4 268.8,4.2 269.2,4.4 269.5,4.7 269.7,5.1 269.9,5.4 270,5.8 270,6.1 269.9,6.5 269.8,6.7 269.6,6.9 269.3,7 269.1,7.5 269,8.3 269,9.4 269,10.8 269,11.9 269.1,12.6 269.2,13 269.4,13 269.6,12.9 269.8,12.8 269.9,12.6 270,12.3 270.5,12.2 271.3,12.1 272.4,12 273.8,12.1 274.9,12.5 275.6,13.2 276,14.3 276,15.6 275.8,16.8 275.6,17.6 275.2,18.3 274.7,18.6 274.3,19.1 274.1,19.6 274,20.1 274,20.8 274.1,21.4 274.4,22 274.8,22.5 275.4,23.1 275.9,23.5 276.3,23.8 276.8,24 277.1,24 277.4,23.7 277.7,23.1 277.8,22.2 277.9,21 278,20 278.3,19.2 278.7,18.6 279.2,18.3 279.6,17.9 279.9,17.5 280,17 280.1,16.6 280.3,16.3 280.5,16.1 280.8,16 281.1,16 281.5,15.9 281.8,15.8 282.1,15.6 282.3,15.3 282.6,15.2 282.9,15.3 283.2,15.4 283.5,15.7 283.7,16.3 283.9,17.2 284,18.3 284,19.6 283.9,20.7 283.8,21.5 283.6,21.9 283.3,22 283.1,22.3 283,22.9 283,23.6 283,24.5 283,25.3 283.1,25.7 283.2,26 283.4,26 283.6,25.9 283.8,25.8 283.9,25.6 284,25.3 284.2,25.1 284.5,25 284.8,25 285.1,25 285.5,24.9 285.7,24.8 285.9,24.6 286,24.3 286.2,24.1 286.5,24 286.8,24 287.1,24 287.5,23.9 287.7,23.8 287.9,23.6 288,23.3 288.2,23.2 288.5,23.1 288.9,23 289.3,23.1 289.6,23.3 289.8,23.5 290,23.8 290,24.1 290,24.5 290.1,24.7 290.3,24.9 290.6,25 290.8,25.2 290.9,25.5 291,25.8 291,26.1 290.9,26.5 290.8,26.7 290.6,26.9 290.3,27 290.1,27.5 290,28.2 290,29.3 290,30.6 290,31.7 290.1,32.5 290.3,32.9 290.6,33 290.8,33.3 290.9,33.6 291,34.1 291,34.8 291,35.3 291.1,35.6 291.3,35.8 291.6,35.9 291.8,36.3 291.9,37.1 292,38.2 292,39.7 291.9,40.8 291.8,41.6 291.6,42 291.3,42.1 291.1,42.3 291,42.7 290.9,43.2 290.8,43.9 290.7,44.4 290.6,44.7 290.4,44.9 290.2,44.8 290.1,44.6 290,44.4 289.9,44 289.8,43.6 289.7,43.3 289.6,43.1 289.4,43 289.2,43 289.1,43 289,43.2 289,43.5 289,43.9 288.9,44.2 288.8,44.5 288.6,44.6 288.3,44.8 288.1,44.9 288,45.1 288,45.3 288,45.6 288,45.8 288.1,45.9 288.3,46 288.6,46.1 288.8,46.3 288.9,46.5 289,46.8 289,47.1 288.9,47.5 288.8,47.7 288.6,47.9 288.3,48 288.1,48.4 288,49 288,49.9 288,51 287.9,51.9 287.8,52.5 287.6,52.9 287.3,53 287.1,53.3 287,53.8 287,54.5 287,55.4 286.9,56.1 286.8,56.6 286.6,56.9 286.3,57 286.1,57.2 286,57.5 286,57.8 286,58.1 285.9,58.5 285.8,58.7 285.6,58.9 285.3,59 285.1,59.3 285,59.6 285,60.1 285,60.8 284.9,61.3 284.8,61.6 284.6,61.9 284.3,62 284.1,62.3 284,62.8 284,63.5 284,64.4 283.6,65.4 283,66.5 282,67.7 280.7,69 279.4,70 278.2,70.6 277,71 275.9,71 275,71.1 274.2,71.3 273.6,71.7 273.3,72.2 272.9,72.6 272.5,72.8 272.1,73 271.8,73 271.5,73 271.2,73.1 271,73.3 270.9,73.6 270.7,73.8 270.5,73.9 270.1,74 269.8,74 269.5,74 269.2,74.1 269,74.3 268.9,74.6 268.6,74.8 268.3,74.9 267.8,75 267.1,75 266.6,75.1 266.1,75.3 265.6,75.7 265.3,76.2 264.9,76.6 264.5,76.8 264.1,77 263.8,77 263.5,77 263.2,77.1 263,77.3 262.9,77.6 262.7,77.8 262.5,77.9 262.1,78 261.8,78 261.5,77.9 261.2,77.8 261,77.6 260.9,77.3 260.6,77.1 260.1,77 259.4,77 258.5,77 257.7,77.1 257,77.4 256.4,77.8 255.8,78.4 255.4,78.8 255.1,79.2 255,79.5 255,79.7 254.1,79.8 252.5,79.9 250.1,80 246.8,80 244.4,79.9 242.8,79.8 242,79.7 242,79.5 241.9,79.3 241.7,79 241.5,78.7 241.2,78.4 240.4,78.2 239.2,78 237.5,78 235.4,78 233.6,77.7 232.1,77.2 230.9,76.5 230,75.5 229.2,74.7 228.5,74.2 227.8,74 227.1,74 226.3,73.6 225.4,73 224.2,72 222.9,70.7 221.9,69.6 221.3,68.8 221,68.1 221,67.8 220.8,67.4 220.6,67 220.2,66.6 219.7,66.3 219.3,65.9 219.1,65.5 219,65.1 219,64.8 218.9,64.5 218.8,64.2 218.6,64 218.3,63.9 218.1,63.7 218,63.5 218,63.1 218,62.8 217.7,62.3 217.2,61.6 216.5,60.9 215.5,60 214.7,59.2 214.2,58.5 214,57.8 214,57.1 213.9,56.6 213.8,56.3 213.6,56 213.3,55.9 213.2,55.7 213.2,55.5 213.3,55.3 213.6,55.1 213.8,54.7 213.9,54.1 214,53.4 214,52.5 213.9,51.8 213.8,51.3 213.6,51 213.3,50.9 213.1,50.7 213,50.5 213,50.1 213,49.8 213,49.5 213.1,49.3 213.3,49.1 213.6,49 213.8,48.9 213.9,48.8 214,48.6 214,48.3 213.9,48.1 213.8,48 213.6,47.9 213.3,47.8 213.1,46.9 213,45.2 213,42.6 213,39.3 213,36.7 213.1,35 213.3,34 213.6,33.9 213.8,33.5 213.9,32.9 214,32 214,30.9 214,30 214.1,29.4 214.3,29 214.6,28.9 214.8,28.6 214.9,28.3 215,27.8 215,27.1 215,26.6 215.1,26.3 215.3,26 215.6,25.9 215.8,25.7 215.9,25.5 216,25.1 216,24.8 216,24.5 216.1,24.2 216.3,24 216.6,23.9 216.8,23.7 216.9,23.5 217,23.1 217,22.8 217,22.5 217.1,22.2 217.3,22 217.6,21.9 217.8,21.7 217.9,21.5 218,21.1 218,20.8 218,20.5 218.1,20.2 218.3,20 218.6,19.9 218.8,19.6 218.9,19.3 219,18.8 219,18.1 219,17.6 219.1,17.3 219.3,17 219.6,16.9 219.8,16.7 219.9,16.5 220,16.1 220,15.8 220.1,15.5 220.3,15.2 220.7,15 221.2,14.9 221.6,14.7 221.8,14.5 222,14.1 222,13.8 222,13.5 222.1,13.2 222.3,13 222.6,12.9 222.8,12.7 222.9,12.5 223,12.1 223,11.8 223.1,11.5 223.3,11.3 223.6,11.1 224,11 224.7,10.6 225.6,9.8 226.8,8.7 228.1,7.2 229.3,6.1 230.1,5.3 230.8,5 231.1,5 231.5,4.9 231.7,4.8 231.9,4.6 232,4.3 232.2,4.1 232.5,4 232.8,4 233.1,4 233.5,3.9 233.7,3.8 233.9,3.6 234,3.3 234.2,3.1 234.5,3 234.8,3 235.1,3 235.5,2.8 235.9,2.6 236.3,2.2 236.6,1.7 237.1,1.3 237.6,1.1 238.1,1 238.8,1 239.3,0.9 239.6,0.8 239.8,0.7 239.9,0.5 239.9,0.3 239.9,0.2 240,0.1 240,0 240,0 240.1,0.0ZM14.4,4 16.5,4 18.1,4 19.3,4.1 19.9,4.3 20,4.6 20.8,4.8 22.3,4.9 24.5,5 27.4,5 29.7,5.1 31.5,5.5 32.6,6.1 33.3,6.8 33.8,7.4 34.3,7.8 34.8,8 35.1,8 35.5,8.1 35.9,8.3 36.3,8.7 36.6,9.2 37,9.6 37.4,9.8 37.8,10 38.1,10 38.6,10.1 39,10.4 39.5,10.8 40.1,11.4 40.5,11.9 40.8,12.3 41,12.8 41,13.1 41.1,13.5 41.3,13.9 41.7,14.3 42.2,14.6 42.6,15 42.8,15.4 43,15.8 43,16.1 43,16.5 43.1,16.7 43.3,16.9 43.6,17 43.8,17.2 43.9,17.5 44,17.8 44,18.1 44,18.5 44.1,18.7 44.3,18.9 44.6,19 44.8,19.2 44.9,19.5 45,19.8 45,20.1 45,20.5 45.1,20.7 45.3,20.9 45.6,21 45.8,21.2 45.9,21.5 46,21.8 46,22.1 46,22.5 46.2,22.8 46.4,23.2 46.7,23.5 47,23.7 47.3,23.9 47.5,24 47.7,24 47.8,23.8 47.9,23.4 48,22.9 48,22.2 48,21.7 48.1,21.3 48.3,21 48.6,20.9 48.8,20.4 48.9,19.5 49,18.3 49,16.6 49,15.4 49.1,14.5 49.3,14 49.6,13.9 49.8,13.5 49.9,12.7 50,11.6 50,10.3 50,9.2 50.2,8.3 50.4,7.7 50.7,7.4 51.2,7.2 51.8,7 52.5,7 53.4,7 54.1,6.9 54.6,6.8 54.9,6.6 55,6.3 55.6,6.1 56.6,6 58,6 59.9,6 61.3,5.9 62.3,5.8 62.9,5.6 63,5.3 63.5,5.1 64.2,5 65.3,5 66.6,5 67.7,5 68.5,5.1 68.9,5.3 69,5.6 69.2,5.8 69.5,5.9 69.8,6 70.1,6 70.8,6.3 71.6,6.9 72.7,7.9 74,9.2 75,10.3 75.6,11.2 76,11.8 76,12.1 76.1,12.5 76.3,12.9 76.7,13.3 77.2,13.6 77.6,14 77.8,14.4 78,14.8 78,15.1 78,15.5 78.1,15.7 78.3,15.9 78.6,16 78.8,16.7 78.9,18 79,19.8 79,22.1 78.9,24 78.8,25.2 78.6,25.9 78.3,26 78.1,26.4 78,27 78,27.9 78,29 77.9,29.9 77.8,30.5 77.6,30.9 77.3,31 77.1,31.3 77,31.8 77,32.5 77,33.4 76.9,34.1 76.8,34.6 76.6,34.9 76.3,35 76.1,35.3 76,35.8 76,36.5 76,37.4 75.9,38.1 75.8,38.6 75.6,38.9 75.3,39 75.1,39.8 75,41.3 75,43.5 75,46.4 74.9,48.6 74.8,50.1 74.6,50.9 74.3,51 74.1,51.5 74,52.2 74,53.3 74,54.6 73.9,55.7 73.8,56.5 73.6,56.9 73.3,57 73.1,57.7 73,59 73,60.8 73,63.1 72.9,65 72.8,66.2 72.6,66.9 72.3,67 72.1,67.3 72,67.6 72,68.1 72,68.8 71.9,69.3 71.8,69.6 71.6,69.9 71.3,70 71.1,70.2 71,70.5 71,70.8 71,71.1 70.8,71.6 70.3,72.2 69.7,72.9 68.9,73.7 68.2,74.3 67.6,74.8 67.1,75 66.8,75 66.5,75 66.2,75.1 66,75.3 65.9,75.6 65.6,75.8 65.3,75.9 64.8,76 64.1,76 63.6,76 63.3,76.1 63,76.3 62.9,76.6 62.8,76.8 62.6,76.9 62.4,77 62.2,77 62.1,76.8 62,76.5 62,76.1 62.1,75.5 62.1,75.1 62.1,74.7 62,74.4 61.9,74.2 61.8,74.1 61.6,74 61.4,74 61.2,74 61.1,74.1 61,74.3 61,74.6 61,75 60.8,75.4 60.6,75.6 60.3,75.8 59.9,75.9 59.4,76 59,76.3 58.6,76.7 58.3,77.2 57.6,77.6 56.8,77.8 55.6,78 54.3,78 53.1,77.8 52.1,77.5 51.4,77.1 50.8,76.5 50.4,76 50,75.5 49.9,75 49.8,74.6 49.6,74.3 49.4,74.1 49,74 48.6,74 48.3,73.9 48.1,73.8 48,73.7 48,73.5 48,73.3 48.1,73.2 48.3,73 48.6,72.9 48.8,72.5 48.9,71.7 49,70.6 49,69.3 48.9,68.2 48.7,67.3 48.5,66.7 48.2,66.4 47.8,66.2 47.5,66 47.1,66 46.8,66 46.5,65.9 46.2,65.8 46,65.6 45.9,65.3 45.6,65.1 45.3,65 44.8,65 44.1,65 43.5,64.7 42.7,64.2 41.9,63.5 41,62.5 40.3,61.7 39.6,61.2 39.1,61 38.8,61 38.2,60.6 37.5,60 36.5,59.1 35.4,57.8 34.5,56.9 33.7,56.3 33.1,56 32.8,56 32.5,55.8 32.2,55.6 32,55.2 31.9,54.7 31.6,54.3 31.3,54.1 30.8,54 30.1,54 29.7,54.1 29.3,54.3 29.1,54.6 29,55 28.9,55.4 28.8,55.7 28.6,55.9 28.3,56 28.1,56.3 28,56.8 28,57.5 28,58.4 27.9,59.1 27.8,59.6 27.6,59.9 27.3,60 27.1,60.2 27,60.5 27,60.8 27,61.1 26.8,61.5 26.6,61.9 26.2,62.3 25.7,62.6 25.3,63.1 25.1,63.8 25,64.5 25,65.4 24.8,66.2 24.5,66.9 24.1,67.5 23.5,68.1 23,68.5 22.6,68.8 22.1,69 21.8,69 21.4,69 21.1,69.2 20.7,69.4 20.4,69.7 20.2,70.1 20,70.4 20,70.8 20,71.1 19.9,71.5 19.7,71.8 19.5,72.2 19.2,72.5 18.8,72.7 18.5,72.9 18,73 17.6,73.1 17.3,73.3 17.1,73.5 17,73.8 17,74.1 17,74.5 17.1,74.7 17.3,74.9 17.6,75 17.8,75.2 17.9,75.5 18,75.8 18,76.1 17.8,76.4 17.6,76.7 17.3,76.8 16.9,76.9 16.5,76.8 16.3,76.6 16.1,76.3 16,75.9 15.9,75.5 15.6,75.3 15.3,75.1 14.9,75 14.5,74.9 14.3,74.6 14.1,74.2 14,73.7 13.9,73.3 13.8,73.1 13.6,73 13.3,73 13.1,73.1 13,73.3 13,73.6 13,74 12.9,74.4 12.8,74.7 12.6,74.9 12.3,75 12.1,75.2 12,75.5 12,75.9 12,76.3 11.9,76.6 11.8,76.8 11.7,77 11.5,77 11.3,76.9 11,76.7 10.7,76.5 10.4,76.2 10.2,75.8 10,75.3 10,74.8 10,74.1 9.9,73.6 9.8,73.3 9.6,73 9.3,72.9 9.1,72.7 9,72.5 9,72.1 9,71.8 8.9,71.5 8.8,71.2 8.6,71 8.3,70.9 8.1,70.7 8,70.5 8,70.1 8,69.8 7.9,69.5 7.8,69.2 7.6,69 7.3,68.9 7.1,68.7 7,68.5 7,68.1 7,67.8 6.9,67.5 6.8,67.2 6.6,67 6.3,66.9 6.1,66.6 6,66.3 6,65.8 6,65.1 5.9,64.6 5.8,64.3 5.6,64 5.3,63.9 5.1,63.5 5,62.7 5,61.6 5,60.3 4.9,59.2 4.8,58.5 4.6,58 4.3,57.9 4.1,57.1 4,55.6 4,53.4 4,50.5 3.9,48.3 3.8,46.8 3.6,46 3.3,45.9 3.1,45.5 3,44.9 3,44 3,42.9 2.9,42 2.8,41.4 2.6,41 2.3,40.9 2.1,40.3 2,39.1 2,37.5 2,35.4 1.9,33.8 1.8,32.6 1.6,32 1.3,31.9 1.1,31.4 1,30.5 1,29.3 1,27.6 0.9,26.4 0.8,25.6 0.6,25.1 0.3,25 0.1,24.6 0,23.7 0,22.3 0,20.6 0,19.3 0.1,18.3 0.3,17.9 0.6,17.8 0.8,17.6 0.9,17.3 1,16.8 1,16.1 0.9,15.7 0.8,15.3 0.6,15.1 0.3,15 0.1,14.9 0,14.8 0,14.6 0,14.3 0,14.1 0.1,14 0.3,13.9 0.6,13.8 0.8,13.7 0.9,13.4 1,13.1 1,12.8 1,12.5 1.1,12.2 1.3,12 1.6,11.9 1.8,11.6 1.9,11.3 2,10.8 2,10.1 2.1,9.5 2.4,8.9 2.8,8.4 3.4,7.8 4,7.4 4.7,7.1 5.5,7 6.4,7 7.1,6.8 7.6,6.6 7.9,6.2 8,5.7 8.3,5.3 8.6,5.1 9.1,5 9.8,5 10.3,4.9 10.6,4.8 10.9,4.7 11,4.5 11.1,4.3 11.2,4.2 11.2,4.1 11.2,4 11.7,4 12.8,4.0ZM245.9,20.4 245.5,20.7 245.2,21.1 245,21.4 245,21.8 245,22.1 244.8,22.5 244.6,22.9 244.2,23.3 243.7,23.6 243.3,24 243.1,24.4 243,24.8 243,25.1 242.9,25.5 242.8,25.7 242.6,25.9 242.3,26 242.1,26.2 242,26.5 242,26.8 242,27.1 241.9,27.5 241.8,27.7 241.6,27.9 241.3,28 241.1,28.2 241,28.5 241,28.8 241,29.1 240.8,29.5 240.6,29.9 240.2,30.3 239.7,30.6 239.3,31.1 239.1,31.6 239,32.1 239,32.8 238.9,33.3 238.8,33.6 238.6,33.9 238.3,34 238.1,34.3 238,34.6 238,35.1 238,35.8 237.9,36.3 237.8,36.6 237.6,36.9 237.3,37 237.1,37.3 237,37.6 237,38.1 237,38.8 236.9,39.3 236.8,39.6 236.6,39.9 236.3,40 236.1,40.6 236,41.6 236,43 236,44.9 236,46.3 236.1,47.3 236.3,47.9 236.6,48 236.8,48.3 236.9,48.6 237,49.1 237,49.8 237.3,50.6 237.9,51.5 238.9,52.7 240.2,54 241.3,55 242.2,55.6 242.8,56 243.1,56 243.5,56 243.7,56.1 243.9,56.3 244,56.6 244.8,56.8 246.1,56.9 248.1,57 250.8,57 252.8,56.9 254.1,56.8 254.9,56.6 255,56.3 255.5,56.1 256.4,56 257.6,56 259.3,56 260.8,55.7 262.1,55.2 263.3,54.4 264.4,53.3 265.2,52.4 265.7,51.7 266,51.1 266,50.8 266,50.5 266.1,50.2 266.3,50 266.6,49.9 266.8,49.5 266.9,48.7 267,47.6 267,46.3 266.9,45.2 266.8,44.5 266.6,44 266.3,43.9 266.1,43.8 266,43.6 266,43.4 266,43.2 266,43.1 266.1,43 266.3,42.9 266.6,42.8 266.8,42.7 266.9,42.4 267,42.1 267,41.8 266.9,41.5 266.8,41.2 266.6,41 266.3,40.9 266.1,40.6 266,40.3 266,39.8 266,39.1 265.8,38.5 265.4,37.9 264.8,37.3 264.1,36.6 263.5,35.9 263.2,35.2 263,34.3 263.1,33.4 263.3,32.8 263.6,32.6 264,32.7 264.5,33.2 264.9,33.6 265.4,33.8 265.9,33.9 266.3,33.8 266.6,33.7 266.8,33.4 267,33.1 267,32.8 266.9,32.5 266.8,32.3 266.6,32.1 266.3,32 266.1,31.9 266,31.8 266,31.6 266,31.3 266,31.1 266.1,31 266.3,30.9 266.6,30.8 266.8,30.7 266.9,30.4 267,30.1 267,29.8 266.8,29.3 266.4,28.9 265.9,28.4 265.2,27.8 264.6,27.4 264.1,27.3 263.7,27.3 263.4,27.6 263.2,27.8 263,28.1 263,28.3 263,28.6 263,28.8 263.1,28.9 263.3,29 263.6,29.1 263.8,29.3 263.9,29.5 264,29.8 264,30.1 263.9,30.4 263.9,30.7 263.8,30.8 263.6,30.9 263.5,30.9 263.3,30.9 263,31 262.7,31 262.4,30.9 262.2,30.8 262,30.6 261.9,30.3 261.5,30.1 260.7,30 259.6,30 258.3,30 257.2,29.9 256.5,29.8 256,29.6 255.9,29.3 255.6,29.1 255.1,29 254.4,29 253.5,29 252.8,29 252.3,29.1 252,29.3 251.9,29.6 251.7,29.8 251.5,29.9 251.1,30 250.8,30 250.5,30 250.2,30.1 250,30.3 249.9,30.6 249.7,30.8 249.5,30.9 249.1,31 248.8,31 248.5,31 248.2,31.1 248,31.3 247.9,31.6 247.7,31.8 247.5,31.9 247.1,32 246.8,32 246.5,31.9 246.3,31.8 246.1,31.7 246,31.5 246.2,31.1 246.6,30.6 247.2,30 248,29.2 248.7,28.5 249.3,28.1 249.9,27.9 250.3,27.8 250.6,27.6 250.8,27.3 251,26.8 251,26.1 250.9,25.6 250.7,25.1 250.5,24.7 250.2,24.4 249.8,24.2 249.5,24 249,24 248.6,24 248.3,23.8 248.3,23.6 248.3,23.2 248.6,22.7 248.7,22.3 248.6,22.1 248.3,22 247.9,22 247.5,21.8 247.2,21.6 247,21.2 246.9,20.7 246.8,20.3 246.7,20.1 246.6,20 246.5,20 246.4,20 246.2,20.2ZM271.3,31 271.1,31.1 271,31.3 271,31.5 271,31.8 271,32.1 270.9,32.5 270.8,32.7 270.6,32.9 270.3,33 270.1,33.2 270,33.5 270,33.8 270,34.1 269.9,34.4 269.8,34.7 269.6,34.8 269.3,34.9 269.1,35 269,35.1 269,35.2 269,35.4 269.1,35.6 269.3,35.7 269.6,35.8 270,35.9 270.5,36 270.8,36.2 271.2,36.4 271.5,36.7 271.7,37.2 271.9,37.8 272,38.5 272,39.4 272,40.1 272.2,40.7 272.4,41.2 272.7,41.5 273.1,41.7 273.4,41.9 273.8,42 274.1,42 274.5,41.9 274.8,41.7 275.2,41.5 275.5,41.2 275.7,40.8 275.9,40.5 276,40.1 276,39.8 276,39.5 276.1,39.2 276.3,39 276.6,38.9 276.8,38.7 276.9,38.5 277,38.1 277,37.8 276.8,37.5 276.6,37.3 276.3,37.1 275.9,37 275.5,36.9 275.1,36.7 274.7,36.5 274.4,36.2 274.2,35.8 274,35.5 274,35.1 274,34.8 273.9,34.5 273.8,34.2 273.6,34 273.3,33.9 273.1,33.6 273,33.3 273,32.8 273,32.1 272.9,31.7 272.7,31.3 272.5,31.1 272.2,31 271.9,31 271.7,31 271.6,31 271.5,31 271.5,31 271.4,31.0ZM269.9,14.4 269.5,14.7 269.2,15.1 269,15.4 269,15.8 269,16.1 268.9,16.4 268.8,16.7 268.6,16.8 268.3,16.9 268.2,17 268.2,17.3 268.3,17.7 268.6,18.2 268.7,18.6 268.6,18.8 268.3,19 267.9,19 267.5,19 267.1,19.2 266.7,19.4 266.4,19.7 266.2,20 266,20.3 266,20.5 266,20.7 266.1,20.8 266.3,20.9 266.6,21 267,21 267.4,21 267.7,21.1 267.9,21.3 268,21.6 268.2,21.8 268.5,21.8 268.9,21.9 269.3,21.8 269.6,21.7 269.8,21.4 270,21.1 270,20.8 270,20.5 270.1,20.2 270.3,20 270.6,19.9 270.8,19.6 270.9,19.3 271,18.8 271,18.1 271,17.7 271.1,17.3 271.3,17.1 271.6,17 271.8,16.9 271.9,16.8 272,16.6 272,16.3 271.9,16.1 271.8,16 271.6,15.9 271.3,15.8 271.1,15.6 271,15.4 270.9,15 270.8,14.6 270.7,14.3 270.7,14.1 270.6,14 270.5,14 270.4,14 270.2,14.2ZM260.2,15.3 260,15.6 259.7,15.8 259.4,15.9 259,16 258.6,16 258.3,16 258.1,16.1 258,16.2 258,16.4 258,16.6 258.2,16.9 258.4,17.2 258.7,17.5 259.2,17.7 259.8,17.9 260.6,18 261.5,18 262.3,17.9 262.7,17.8 263,17.6 263,17.3 262.9,17.1 262.8,17 262.6,16.9 262.3,16.8 262.1,16.7 262,16.4 262,16.1 262,15.8 261.9,15.5 261.7,15.3 261.5,15.1 261.2,15 260.9,15 260.7,15 260.6,15 260.5,15 260.5,15 260.3,15.1Z'/></svg>");
  display:block;
  width:var(--logo-w, 104px);
  aspect-ratio:292 / 80;
  /* the traced wordmark, inlined so it needs no second request and
     survives contexts that block external images */
  -webkit-mask:var(--logo-src) no-repeat center / contain;
  mask:var(--logo-src) no-repeat center / contain;
  background-image:linear-gradient(96deg,
    var(--ember) 0%,
    var(--flame) 24%,
    var(--core)  44%,
    var(--flame) 64%,
    var(--ember) 100%);
  background-size:250% 100%;
  background-position:0% 50%;
  animation:heat 9s ease-in-out infinite;
}
@keyframes heat{
  0%,100%{ background-position:0% 50%; }
  50%    { background-position:100% 50%; }
}
@media (prefers-reduced-motion:reduce){
  .logo{ animation:none; background-position:44% 50%; }
}

.logo--big{
  width:min(clamp(190px, 42vw, 340px), 78vw);
  filter:drop-shadow(0 0 42px rgba(255,90,10,.55));
}

/* ============================================================
   Navigation — app chrome
   ============================================================ */
.nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:clamp(.75rem,1.6vw,1.25rem) var(--gutter);
  padding-top:max(clamp(.75rem,1.6vw,1.25rem), env(safe-area-inset-top));
  transition:background .45s var(--ease), backdrop-filter .45s var(--ease), border-color .45s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(10,7,5,.72);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--hairline);
}

.nav__brand{
  display:flex;
  align-items:center;
  gap:.6rem;
  flex:0 0 auto;
}
.nav__brand .logo{ --logo-w:clamp(78px, 8.5vw, 112px); }

/* the standing invitation, top right, in the hottest colour on the page */
.nav__act{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex:0 0 auto;
}
.btn--sm{
  padding:.7em 1.15em;
  font-size:.68rem;
  letter-spacing:.16em;
}
.nav__call{
  box-shadow:0 0 0 3px rgba(5,3,2,.85);
  display:grid;
  place-items:center;
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid var(--hairline);
  color:var(--ink);
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.nav__call svg{ width:17px; height:17px; fill:currentColor; }
.nav__call:hover{ background:var(--flame); border-color:var(--flame); color:#170800; }
@media (max-width:900px){
  .nav__call{ width:38px; height:38px; }
  .btn--sm{ display:none; }
}
@media (max-width:420px){
  .nav__call{ display:none; }
}

.nav__links{
  display:flex;
  align-items:center;
  gap:clamp(1rem,2.4vw,2.2rem);
}
.nav__link{
  position:relative;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-dim);
  padding-block:.4rem;
  transition:color .3s var(--ease);
}
.nav__link::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:100%; height:1px;
  background:var(--flame);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .45s var(--ease);
}
.nav__link:hover{ color:var(--core); }
.nav__link:hover::after{ transform:scaleX(1); transform-origin:left; }

@media (max-width:900px){
  .nav__links{ display:none; }
}

/* burger */
.burger{
  display:none;
  width:44px; height:44px;
  align-items:center; justify-content:center;
  background:none; border:1px solid var(--hairline);
  border-radius:50%;
  cursor:pointer;
}
.burger i{
  position:relative;
  display:block;
  width:16px; height:1.5px;
  background:var(--core);
  transition:background .3s var(--ease);
}
.burger i::before,.burger i::after{
  content:"";
  position:absolute; left:0;
  width:100%; height:100%;
  background:var(--core);
  transition:transform .45s var(--ease);
}
.burger i::before{ transform:translateY(-5px); }
.burger i::after{  transform:translateY(5px); }
.burger[aria-expanded="true"] i{ background:transparent; }
.burger[aria-expanded="true"] i::before{ transform:rotate(45deg); }
.burger[aria-expanded="true"] i::after{  transform:rotate(-45deg); }
@media (max-width:900px){ .burger{ display:flex; } }

/* fullscreen menu */
.menu{
  position:fixed;
  inset:0;
  z-index:99;
  display:grid;
  align-content:center;
  gap:.2rem;
  padding:var(--gutter);
  background:rgba(5,3,2,.82);
  backdrop-filter:blur(22px) saturate(130%);
  -webkit-backdrop-filter:blur(22px) saturate(130%);
  clip-path:inset(0 0 100% 0);
  transition:clip-path .8s var(--ease);
}
.menu.is-open{ clip-path:inset(0 0 0 0); }
body.is-locked .nav__act .btn,
body.is-locked .nav__call{ opacity:0; pointer-events:none; transition:opacity .3s var(--ease); }
.menu > a{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 112,"wght" 800;
  font-size:clamp(2rem,10vw,3.6rem);
  line-height:1.04;
  text-transform:uppercase;
  color:var(--ink);
  opacity:0;
  transform:translateY(24px);
  transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s ease;
}
.menu.is-open > a{ opacity:1; transform:none; }
.menu > a:hover{ color:var(--flame); }
.menu__meta{
  margin-top:2rem;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--smoke);
}

/* ============================================================
   Buttons
   ============================================================ */
.btn{
  --btn-bg:var(--ember);
  --btn-fg:#170800;
  box-shadow:0 0 0 3px rgba(5,3,2,.85);
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:.85em 1.5em;
  border:none;
  border-radius:999px;
  background:var(--btn-bg);
  color:var(--btn-fg);
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), color .35s var(--ease);
  box-shadow:0 0 0 rgba(255,77,10,0);
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(100deg,var(--flame),var(--core));
  transform:translateY(101%);
  transition:transform .5s var(--ease);
}
.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 40px -8px rgba(255,77,10,.7);
}
.btn:hover::before{ transform:translateY(0); }
.btn--ghost{
  --btn-bg:transparent;
  --btn-fg:var(--ink);
  box-shadow:inset 0 0 0 1px var(--hairline);
}
.btn--ghost:hover{ --btn-fg:#170800; }

.btn__dot{
  width:6px; height:6px;
  border-radius:50%;
  background:currentColor;
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{ opacity:1; transform:scale(1); }
  50%    { opacity:.35; transform:scale(.7); }
}
/* ============================================================
   Hero — the thesis: a fullscreen night with fire in it
   ============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  min-height:100dvh;
  display:grid;
  grid-template-rows:1fr auto;
  /* the bottom third belongs to the fire — keep the content out of it */
  padding-block:clamp(5.5rem,13vh,8rem) clamp(7rem,19vh,11rem);
  padding-bottom:max(clamp(7rem,19vh,11rem), env(safe-area-inset-bottom));
}

.hero__row{
  display:grid;
  gap:clamp(1.5rem,4vw,3rem);
  align-items:end;
}
@media (min-width:980px){
  .hero__row{ grid-template-columns:minmax(0,1fr) clamp(200px,21vw,286px); }
}
.hero__pitch{
  display:flex;
  flex-direction:column;
  gap:clamp(1.25rem,3vw,2rem);
  min-width:0;
}

/* The panel: the real footage at its own shape, never stretched. */
.hero__panel{
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:clamp(12px,1.6vw,18px);
  border:1px solid var(--hairline);
  /* a still behind the video, so the panel is never an empty black box —
     on a slow connection, a blocked file or a browser that will not play it */
  background:var(--soot-deep) url("/assets/media/work-1.jpg") center 22% / cover no-repeat;
  aspect-ratio:730 / 1022;
  box-shadow:0 30px 90px -34px rgba(255,90,10,.55);
}
.hero__panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(10,7,5,.55) 0%, rgba(10,7,5,0) 45%);
}
.hero__panel video{
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1.2s var(--ease);
}
.hero__panel video.is-live{ opacity:1; }

/* On a phone the same element becomes the backdrop behind the type. */
@media (max-width:979px){
  .hero__panel{
    position:absolute;
    inset:0;
    z-index:-1;
    aspect-ratio:auto;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
  }
  .hero__panel::before{ display:none; }
  .hero__panel video.is-live{ opacity:.5; }
  .hero__panel::after{
    content:"";
    position:absolute;
    inset:0;
    background:
      linear-gradient(to bottom, rgba(10,7,5,.9) 0%, rgba(10,7,5,.45) 42%, rgba(10,7,5,.85) 100%);
  }
}


/* ============================================================
   Film-hero — the clip carries the whole opening, barely dimmed;
   only the wordmark and two buttons sit on top of it
   ============================================================ */
.hero--film{
  grid-template-rows:1fr;
  padding-block:clamp(5.5rem,13vh,8rem) clamp(4rem,10vh,6rem);
}
.hero__film{
  position:absolute;
  inset:0;
  margin:0;
  z-index:-1;
  overflow:hidden;
  background:var(--soot) url("/assets/media/vuurbal-900.webp") center 30% / cover no-repeat;
}
.hero__film video{
  width:100%; height:100%;
  /* de hele clip in beeld — Nuno's gezicht hoort erbij */
  object-fit:contain;
  object-position:center;
  opacity:0;
  transition:opacity 1.4s var(--ease);
}
@media (max-width:700px){
  /* op een telefoon vult de staande clip het scherm zonder het hoofd
     te verliezen */
  .hero__film video{ object-fit:cover; object-position:center 12%; }
}
.hero__film video.is-live{ opacity:.82; }
/* just enough shade for the wordmark to sit on, the rest stays bright */
.hero__film::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom, rgba(10,7,5,.62) 0%, rgba(10,7,5,.12) 38%, rgba(10,7,5,0) 55%, rgba(10,7,5,.5) 100%);
}
.hero--film .hero__body{
  justify-content:flex-end;
  align-items:center;
  text-align:center;
  height:100%;
  gap:clamp(1.1rem,2.5vw,1.6rem);
}
/* klein en gecentreerd, zodat de video de ster blijft */
.hero--film .hero__title{
  font-size:clamp(1.9rem,4.6vw,3.2rem);
}
.hero--film .hero__title span{ white-space:normal; }
.hero--film .hero__actions{ justify-content:center; }
.hero__sub{
  display:block;
  text-align:center;
  --burn-a:var(--flame);
  --burn-b:var(--flame);
  font-family:var(--f-mono);
  font-variation-settings:normal;
  font-weight:500;
  font-size:clamp(.72rem,1.4vw,.95rem);
  letter-spacing:.34em;
  text-transform:uppercase;
  margin-top:1.1em;
}
@media (prefers-reduced-motion: reduce){
  .hero__film video{ display:none; }
}

.hero__body{
  display:flex;
  flex-direction:column;
  min-width:0;
  justify-content:center;
  gap:clamp(1.25rem,3vw,2rem);
}

.hero__title{
  min-width:0;
  font-family:var(--f-display);
  font-weight:900;
  font-size:var(--t-3xl);
  line-height:.82;
  letter-spacing:-.035em;
  text-transform:uppercase;
  margin:0;
  font-variation-settings:"wdth" 125,"wght" 900;
}
.hero__title span{
  display:block;
  white-space:nowrap;
}
.hero__title span:first-child{ --burn-a:var(--core); --burn-b:var(--ember); }
/* second line pulls back in width — the wordmark breathes */
.hero__title span:nth-child(2){
  --burn-a:var(--ink-dim);
  --burn-b:var(--ink-dim);
  font-variation-settings:"wdth" 84,"wght" 600;
  font-size:.36em;
  letter-spacing:.30em;
  margin-top:.55em;
}

.hero__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:clamp(.75rem,2vw,1.5rem);
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}

.hero__foot{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
}

.scrollcue{
  display:flex;
  align-items:center;
  gap:.7rem;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--smoke);
}
.scrollcue i{
  display:block;
  width:1px; height:44px;
  background:linear-gradient(to bottom,var(--flame),transparent);
  animation:drop 2.4s var(--ease-io) infinite;
  transform-origin:top;
}
@keyframes drop{
  0%     { transform:scaleY(0);   opacity:0; }
  35%    { transform:scaleY(1);   opacity:1; }
  100%   { transform:scaleY(1) translateY(44px); opacity:0; }
}

/* live spec readout, bottom right of the hero */
.readout{
  display:grid;
  gap:.35rem;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.12em;
  color:var(--smoke);
  text-align:right;
  margin-left:auto;
}
.readout b{
  color:var(--flame);
  font-weight:500;
  font-variant-numeric:tabular-nums;
}

/* ============================================================
   Ticker
   ============================================================ */
.ticker{
  position:relative;
  border-block:1px solid var(--hairline);
  padding-block:clamp(.7rem,1.6vw,1.1rem);
  overflow:hidden;
  background:rgba(23,16,8,.35);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.ticker__track{
  display:flex;
  width:max-content;
  gap:0;
  animation:slide 38s linear infinite;
}
.ticker:hover .ticker__track{ animation-play-state:paused; }
.ticker__group{
  display:flex;
  align-items:center;
  gap:clamp(1.5rem,4vw,3rem);
  padding-right:clamp(1.5rem,4vw,3rem);
}
.ticker__group span{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 100,"wght" 700;
  font-size:clamp(.95rem,2.4vw,1.5rem);
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--ink-dim);
  white-space:nowrap;
}
.ticker__group span:nth-child(even){
  color:var(--ember);
  font-variation-settings:"wdth" 70,"wght" 900;
}
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ============================================================
   Section frame — asymmetric editorial grid
   ============================================================ */
.bay{ padding-block:var(--bay); }

.bay__head{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(1rem,2.5vw,1.75rem);
  margin-bottom:clamp(2rem,4.5vw,3.5rem);
}
@media (min-width:880px){
  .bay__head{
    grid-template-columns:14rem minmax(0,1fr);
    align-items:start;
    gap:clamp(2rem,5vw,4rem);
  }
  .bay__head .eyebrow{ padding-top:.7em; }
  /* an intro line under the title stays in the wide column */
  .bay__head .lede{ grid-column:2; max-width:62ch; }
}
.bay__title{
  text-shadow:0 2px 34px rgba(10,7,5,.9), 0 0 90px rgba(10,7,5,.7);
  font-family:var(--f-display);
  font-weight:900;
  font-variation-settings:"wdth" 116,"wght" 900;
  font-size:var(--t-2xl);
  line-height:.88;
  letter-spacing:-.028em;
  text-transform:uppercase;
  margin:0;
  text-wrap:balance;
}
.bay__title em{
  font-style:normal;
  color:var(--ember);
}

/* ============================================================
   Manifesto — word-by-word reveal
   ============================================================ */
.manifesto [data-split]{
  text-shadow:0 2px 34px rgba(10,7,5,.9);
  font-family:var(--f-display);
  font-variation-settings:"wdth" 92,"wght" 600;
  font-size:var(--t-xl);
  line-height:1.14;
  letter-spacing:-.015em;
  margin:0;
  max-width:19ch;
  text-wrap:balance;
}
.manifesto .w{ display:inline-block; }
.manifesto .w.hot{ --burn-a:var(--flame); --burn-b:var(--flame); }

.manifesto__grid{
  display:grid;
  gap:clamp(2rem,6vw,4rem);
}
@media (min-width:980px){
  .manifesto__grid{ grid-template-columns:1.25fr .85fr; align-items:end; }
}

/* ============================================================
   Acts — chips carry the real booking information
   ============================================================ */
.acts{
  display:grid;
  gap:1px;
  background:var(--hairline);
  border:1px solid var(--hairline);
  border-radius:clamp(14px,2vw,22px);
  overflow:hidden;
}
@media (min-width:700px){ .acts{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1140px){ .acts{ grid-template-columns:repeat(3,1fr); } }

.act{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:1rem;
  padding:clamp(1.4rem,3vw,2.25rem);
  background:rgba(10,7,5,.84);
  isolation:isolate;
  transition:background .5s var(--ease);
  min-height:clamp(240px,32vw,320px);
}
/* heat bleeding in from the bottom on hover */
.act::before{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:70%;
  z-index:-1;
  background:radial-gradient(90% 100% at 50% 130%, rgba(255,77,10,.55) 0%, rgba(255,77,10,.12) 45%, transparent 72%);
  opacity:0;
  transform:translateY(28%);
  transition:opacity .6s var(--ease), transform .8s var(--ease);
}
.act:hover::before,.act:focus-within::before{ opacity:1; transform:translateY(0); }
.act:hover,.act:focus-within{ background:rgba(23,16,8,.82); }

.act__name{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 104,"wght" 800;
  font-size:var(--t-lg);
  line-height:.98;
  letter-spacing:-.015em;
  text-transform:uppercase;
  margin:0;
  transition:font-variation-settings .6s var(--ease);
}
.act:hover .act__name{ font-variation-settings:"wdth" 122,"wght" 900; }

.act__desc{
  font-size:var(--t-sm);
  color:var(--ink-dim);
  margin:0;
  flex:1;
}

.chips{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
}
.chip{
  font-family:var(--f-mono);
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:.34em .7em;
  border-radius:999px;
  border:1px solid var(--hairline);
  color:var(--smoke);
  white-space:nowrap;
}
.chip[data-heat="fire"]{ color:var(--ember); border-color:rgba(255,77,10,.4); }
.chip[data-heat="hybrid"]{ color:var(--flame); border-color:rgba(255,176,32,.4); }
.chip[data-heat="cold"]{ color:#7FB6E8; border-color:rgba(127,182,232,.35); }

/* ============================================================
   Shows — photo + copy, stacked on phones, alternating on desktop
   ============================================================ */
.shows{
  display:grid;
  gap:clamp(1rem,2vw,1.5rem);
}
@media (min-width:760px){ .shows{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1180px){ .shows{ grid-template-columns:repeat(3,1fr); } }

.show{
  position:relative;
  display:flex;
  flex-direction:column;
  border-radius:clamp(14px,2vw,22px);
  overflow:hidden;
  border:1px solid var(--hairline);
  background:rgba(10,7,5,.84);
  isolation:isolate;
  transition:transform .6s var(--ease), border-color .5s var(--ease);
}
.show:hover{ transform:translateY(-6px); border-color:rgba(255,120,20,.45); }

.show__shot{
  position:relative;
  aspect-ratio:5/4;
  margin:0;
  overflow:hidden;
  background:var(--ash);
}
.show__shot img,
.show__shot canvas{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 1.2s var(--ease);
}
.show:hover .show__shot img{ transform:scale(1.05); }
.show__shot::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:45%;
  background:linear-gradient(to top,rgba(10,7,5,.9),transparent);
  pointer-events:none;
}

.show__body{
  display:flex;
  flex-direction:column;
  gap:.9rem;
  padding:clamp(1.2rem,2.6vw,1.8rem);
  flex:1;
}
.show__name{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 104,"wght" 800;
  font-size:var(--t-lg);
  line-height:.98;
  letter-spacing:-.015em;
  text-transform:uppercase;
  margin:0;
  transition:font-variation-settings .6s var(--ease);
}
.show:hover .show__name{ font-variation-settings:"wdth" 118,"wght" 900; }
.show__desc{
  font-size:var(--t-sm);
  color:var(--ink-dim);
  margin:0;
  flex:1;
}
.show__cta{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--flame);
  text-decoration:none;
  padding:.4em 0;
}
.show__cta i{
  width:1.4em; height:1px;
  background:currentColor;
  position:relative;
  transition:width .4s var(--ease);
}
.show__cta i::after{
  content:"";
  position:absolute;
  right:0; top:50%;
  width:.45em; height:.45em;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
}
.show__cta:hover{ color:var(--core); }
.show__cta:hover i{ width:2.2em; }
/* the whole card is clickable through its one link */
.show__cta::before{ content:""; position:absolute; inset:0; }
/* ============================================================
   Showreel — two supplied clips, side by side where there is room
   ============================================================ */
.reels{
  display:grid;
  gap:clamp(1rem,2vw,1.5rem);
}
@media (min-width:820px){
  .reels{ grid-template-columns:1fr 1fr; align-items:start; }
}

.reel{
  position:relative;
  border-radius:clamp(14px,2vw,22px);
  overflow:hidden;
  border:1px solid var(--hairline);
  background:var(--ash);
  aspect-ratio:16/9;
  isolation:isolate;
  margin:0;
}
.reel[data-ratio="4/3"]{ aspect-ratio:4/3; }

.reel video{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
}

.reel__play{
  position:absolute;
  left:50%; top:50%;
  translate:-50% -50%;
  z-index:2;
  width:clamp(60px,8vw,84px);
  aspect-ratio:1;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,176,32,.45);
  background:rgba(10,7,5,.5);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  cursor:pointer;
  transition:transform .5s var(--ease), background .4s var(--ease),
             border-color .4s var(--ease), opacity .4s var(--ease);
}
.reel__play:hover{
  transform:scale(1.08);
  background:var(--ember);
  border-color:var(--ember);
}
.reel__play svg{ width:20px; height:20px; margin-left:3px; fill:var(--core); }
.reel__play:hover svg{ fill:#170800; }
.reel.is-playing .reel__play{ opacity:0; pointer-events:none; }
.reel:hover .reel__play,
.reel:focus-within .reel__play{ opacity:1; pointer-events:auto; }

.reel__hud{
  position:absolute;
  left:0; right:0; bottom:0;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:clamp(.9rem,2vw,1.4rem);
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-dim);
  background:linear-gradient(to top,rgba(5,3,2,.85),transparent);
  pointer-events:none;
}

.reel__note{
  margin:1.4rem 0 0;
  font-size:var(--t-sm);
  color:var(--ink-dim);
}
.reel__note a{ color:var(--flame); }

/* ============================================================
   Gallery — scrolling down drives the strip sideways

   The rail is taller than the screen (the script gives it the extra
   height of the hidden part of the track). The viewport inside it
   sticks; while the page scrolls through that extra height the track
   is translated left, so the photos ride past and each one burns in
   as it arrives. At the end the rail runs out and the page simply
   continues downward.
   ============================================================ */
.gal__rail{ position:relative; }
.gal__vp{
  position:sticky;
  top:0;
  height:100vh;
  height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:clamp(1.2rem,3vh,2.5rem);
  overflow:hidden;
  padding-block:clamp(4.5rem,10vh,6rem) clamp(1.5rem,4vh,3rem);
}
.gal__head{ flex:0 0 auto; }

.gal__track{
  display:flex;
  align-items:center;
  gap:clamp(.9rem,2vw,1.6rem);
  padding-inline:var(--gutter);
  will-change:transform;
}

.plate{
  position:relative;
  flex:0 0 auto;
  height:clamp(300px,52vh,560px);
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--hairline);
  isolation:isolate;
  margin:0;
  background:var(--ash);
}
.plate img{
  height:100%;
  width:auto;
  display:block;
  object-fit:cover;
}
.plate__cap{
  position:absolute;
  left:0; right:0; bottom:0;
  display:grid;
  gap:.3rem;
  padding:clamp(.9rem,2vw,1.3rem);
  background:linear-gradient(to top,rgba(5,3,2,.92) 15%,rgba(5,3,2,.5) 55%,transparent);
}
.plate__cap span{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--flame);
}
.plate__cap b{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 108,"wght" 800;
  font-size:clamp(1rem,1.8vw,1.35rem);
  line-height:1;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--core);
}

/* every plate burns in from below as it arrives from the right */
.plate{
  -webkit-mask-image:linear-gradient(to top,
    #000 0%,
    #000 calc(var(--burn, 0) * 106%),
    rgba(0,0,0,0) calc(var(--burn, 0) * 106% + 13%));
  mask-image:linear-gradient(to top,
    #000 0%,
    #000 calc(var(--burn, 0) * 106%),
    rgba(0,0,0,0) calc(var(--burn, 0) * 106% + 13%));
}
.plate.burning::after{
  content:"";
  position:absolute;
  left:-3%; right:-3%;
  height:13%;
  bottom:calc(var(--burn, 0) * 106% - 9%);
  z-index:6;
  pointer-events:none;
  opacity:var(--glow, 0);
  filter:blur(7px);
  background:linear-gradient(to top,
    rgba(255,80,8,0) 0%,
    rgba(255,150,36,.7) 42%,
    rgba(255,244,214,.92) 62%,
    rgba(255,110,20,0) 100%);
}

.gal__foot{
  flex:0 0 auto;
  display:grid;
  gap:.6rem;
}
.gal__bar{
  height:2px;
  border-radius:2px;
  background:rgba(255,243,214,.12);
  overflow:hidden;
}
.gal__bar i{
  display:block;
  height:100%;
  width:0%;
  background:linear-gradient(90deg,var(--ember),var(--flame),var(--core));
  box-shadow:0 0 10px rgba(255,120,20,.8);
}
.gal__hint{
  margin:0;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--smoke);
}
.gal__hint a{ color:var(--flame); }

/* without motion (or without JS) the gallery is an ordinary strip */
.gal--flat .gal__rail{ height:auto !important; }
.gal--flat .gal__vp{ position:static; height:auto; overflow:visible; }
.gal--flat .gal__track{ overflow-x:auto; transform:none !important; padding-bottom:1rem; }
.gal--flat .plate{ -webkit-mask-image:none; mask-image:none; }
.gal--flat .gal__bar{ display:none; }

/* ============================================================
   Specs — show parameters, not marketing numbers
   ============================================================ */
.specs{
  display:grid;
  gap:1px;
  background:var(--hairline);
  border-block:1px solid var(--hairline);
}
@media (min-width:640px){ .specs{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1040px){ .specs{ grid-template-columns:repeat(4,1fr); } }

.spec{
  background:var(--soot);
  padding:clamp(1.5rem,3.5vw,2.5rem) clamp(1.1rem,2.5vw,1.75rem);
  display:grid;
  gap:.5rem;
  align-content:start;
}
.spec__val{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 120,"wght" 900;
  font-size:clamp(2.4rem,6vw,4rem);
  line-height:.86;
  letter-spacing:-.03em;
  color:var(--core);
  font-variant-numeric:tabular-nums;
}
.spec__val i{
  font-style:normal;
  font-size:.4em;
  color:var(--ember);
  vertical-align:super;
  margin-left:.1em;
  font-variation-settings:"wdth" 80,"wght" 700;
}
.spec__key{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--smoke);
}


/* ============================================================
   Reviews
   ============================================================ */
.rating{
  display:grid;
  gap:clamp(1.5rem,4vw,3rem);
  align-items:start;
}
@media (min-width:860px){ .rating{ grid-template-columns:auto minmax(0,1fr); } }

.rating__score{
  display:grid;
  gap:.7rem;
  justify-items:start;
  padding:clamp(1.4rem,3vw,2rem);
  border:1px solid var(--hairline);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(23,16,8,.9),rgba(10,7,5,.94));
}
.rating__num{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 120,"wght" 900;
  font-size:clamp(3rem,7vw,4.6rem);
  line-height:.86;
  letter-spacing:-.03em;
  color:var(--core);
  font-variant-numeric:tabular-nums;
}
.stars{ display:flex; gap:.2rem; }
.stars svg{ width:22px; height:22px; fill:var(--flame); }
.stars--sm{ display:inline-flex; vertical-align:-2px; }
.stars--sm svg{ width:13px; height:13px; }
.rating__meta{
  margin:0;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.12em;
  color:var(--smoke);
}
.rating__meta a{ color:var(--flame); text-decoration:underline; text-underline-offset:3px; }
.rating__todo{
  margin:0;
  font-size:var(--t-sm);
  color:var(--ink-dim);
  max-width:52ch;
}

/* ============================================================
   Credentials + safety
   ============================================================ */
.creds{
  display:grid;
  gap:clamp(2.5rem,6vw,4.5rem);
}
@media (min-width:880px){
  .creds{ grid-template-columns:.8fr 1.2fr; }
}
.creds__col{
  display:grid;
  gap:clamp(1rem,2.4vw,1.5rem);
  align-content:start;
}

.tvlist{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.55rem;
}
.tvlist li{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 104,"wght" 700;
  font-size:clamp(1.1rem,2.6vw,1.6rem);
  line-height:1.1;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--ink);
  padding-bottom:.55rem;
  border-bottom:1px solid var(--hairline);
  transition:color .35s var(--ease), font-variation-settings .55s var(--ease);
}
.tvlist li:hover{
  color:var(--flame);
  font-variation-settings:"wdth" 120,"wght" 800;
}

.safety{
  margin:0;
  display:grid;
  gap:clamp(1rem,2.4vw,1.5rem);
}
.safety > div{
  display:grid;
  gap:.4rem;
  padding:clamp(1rem,2.4vw,1.4rem);
  border:1px solid var(--hairline);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(23,16,8,.88),rgba(10,7,5,.92));
}
.safety dt{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--flame);
}
.safety dd{
  margin:0;
  font-size:var(--t-sm);
  color:var(--ink-dim);
  max-width:56ch;
}

/* ============================================================
   Booking
   ============================================================ */
/* Everything else on this page floats over the fire. The booking block
   does not — a form you actually have to fill in gets a real surface. */
.book{
  display:grid;
  gap:clamp(2rem,6vw,4rem);
  padding:clamp(1.4rem,3.6vw,3rem);
  border:1px solid var(--hairline);
  border-radius:clamp(14px,2vw,22px);
  background:linear-gradient(180deg,rgba(23,16,8,.94) 0%,rgba(10,7,5,.97) 100%);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
@media (min-width:960px){ .book{ grid-template-columns:.85fr 1.15fr; align-items:start; } }

.form{
  display:grid;
  gap:clamp(1rem,2.2vw,1.4rem);
}
.form__row{
  display:grid;
  gap:clamp(1rem,2.2vw,1.4rem);
}
@media (min-width:560px){ .form__row{ grid-template-columns:1fr 1fr; } }

.field{
  position:relative;
  display:grid;
  gap:.45rem;
}
.field > span{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--smoke);
}
.field input,.field select,.field textarea{
  width:100%;
  padding:.85em 1em;
  background:rgba(23,16,8,.5);
  border:1px solid var(--hairline);
  border-radius:10px;
  color:var(--ink);
  font-size:var(--t-sm);
  transition:border-color .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease);
  appearance:none;
}
.field textarea{ resize:vertical; min-height:7rem; }
.field select{
  background-image:linear-gradient(45deg,transparent 50%,var(--flame) 50%),linear-gradient(135deg,var(--flame) 50%,transparent 50%);
  background-position:calc(100% - 20px) 55%, calc(100% - 14px) 55%;
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
}
.field select option{ background:var(--ash); color:var(--ink); }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;
  border-color:var(--ember);
  background:rgba(23,16,8,.85);
  box-shadow:0 0 0 3px rgba(255,77,10,.16), 0 0 30px -10px rgba(255,77,10,.6);
}

.form__note{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.1em;
  color:var(--smoke);
  margin:0;
  line-height:1.7;
}
.form__note a{ color:var(--flame); text-decoration:underline; text-underline-offset:3px; }

.status{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:.9em 1.1em;
  border-radius:10px;
  border:1px solid rgba(255,176,32,.4);
  background:rgba(255,176,32,.08);
  color:var(--flame);
  line-height:1.6;
}
.status[hidden]{ display:none !important; }

.contact{
  display:grid;
  gap:1.4rem;
  align-content:start;
}
.contact__line{
  display:grid;
  gap:.3rem;
  padding-bottom:1.2rem;
  border-bottom:1px solid var(--hairline);
}
.contact__line b{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 100,"wght" 700;
  font-size:var(--t-lg);
  letter-spacing:-.01em;
  font-weight:400;
}
.contact__line a:hover{ color:var(--flame); }

/* ============================================================
   Footer
   ============================================================ */
.foot{
  padding-block:clamp(3rem,7vw,5rem) clamp(2rem,4vw,3rem);
  padding-bottom:max(clamp(2rem,4vw,3rem), env(safe-area-inset-bottom));
}
.foot__word{
  min-width:0;
  white-space:nowrap;
  font-family:var(--f-display);
  font-variation-settings:"wdth" 125,"wght" 900;
  font-size:clamp(2.4rem,14vw,13rem);
  line-height:.78;
  letter-spacing:-.045em;
  text-transform:uppercase;
  margin:0 0 clamp(2rem,5vw,3.5rem);
  --burn-a:rgba(255,243,214,.26);
  --burn-b:rgba(255,77,10,.6);
}
.foot__grid{
  display:grid;
  gap:clamp(2rem,5vw,3.5rem);
  margin-bottom:clamp(2.5rem,5vw,3.5rem);
}
@media (min-width:760px){
  .foot__grid{ grid-template-columns:1.4fr repeat(3, minmax(0,1fr)); }
}
.foot__brand{ display:grid; gap:1rem; align-content:start; }
.foot__brand .logo{ --logo-w:118px; }
.foot__brand p{
  margin:0;
  font-size:var(--t-sm);
  color:var(--ink-dim);
  max-width:34ch;
}
.foot__nav h2{
  margin:0 0 .9rem;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  font-weight:400;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--flame);
}
.foot__nav ul{ list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.foot__nav a{
  font-size:var(--t-sm);
  color:var(--ink-dim);
  transition:color .3s var(--ease);
}
.foot__nav a:hover{ color:var(--core); }

.foot__bar{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:1rem 2rem;
  padding-top:1.5rem;
  border-top:1px solid var(--hairline);
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--smoke);
}
.foot__bar a:hover{ color:var(--flame); }

/* ============================================================
   The burn — nothing on this page arrives; it catches fire.

   Text is painted with a tall gradient clipped to the glyphs: a strip
   of settled colour on top, then a white-hot line, then char, then
   black. Sliding that gradient down as --burn rises sends the fire up
   through the letters and leaves the finished colour behind it.

   Blocks wipe upward behind a soft mask with a glowing edge, and
   anything that carries its own background just comes up out of the
   dark. All three read as one thing: lit from below.
   ============================================================ */
:root{
  --burn-a:var(--ink);
  --burn-b:var(--ink);
  --char:#060302;
}

.b-t{
  color:transparent;
  background-image:linear-gradient(to bottom,
    var(--burn-a)  0%,
    var(--burn-b) 28%,
    #FFF8E8       31%,
    #FFC64F       35%,
    #FF6A12       40%,
    #8E2404       45%,
    #200A03       50%,
    var(--char)   58%,
    var(--char)  100%);
  background-size:100% 340%;
  background-repeat:no-repeat;
  background-position-y:calc(100% - var(--burn, 0) * 100%);
  -webkit-background-clip:text;
  background-clip:text;
}
.b-t.burning{
  filter:drop-shadow(0 0 calc(var(--glow, 0) * 26px) rgba(255,116,22,calc(var(--glow, 0) * .8)));
}

.b-b{
  -webkit-mask-image:linear-gradient(to top,
    #000 0%,
    #000 calc(var(--burn, 0) * 106%),
    rgba(0,0,0,0) calc(var(--burn, 0) * 106% + 13%));
  mask-image:linear-gradient(to top,
    #000 0%,
    #000 calc(var(--burn, 0) * 106%),
    rgba(0,0,0,0) calc(var(--burn, 0) * 106% + 13%));
}
.b-b.burning::after{
  content:"";
  position:absolute;
  left:-3%; right:-3%;
  height:13%;
  bottom:calc(var(--burn, 0) * 106% - 9%);
  z-index:6;
  pointer-events:none;
  opacity:var(--glow, 0);
  filter:blur(7px);
  background:linear-gradient(to top,
    rgba(255,80,8,0) 0%,
    rgba(255,150,36,.7) 42%,
    rgba(255,244,214,.92) 62%,
    rgba(255,110,20,0) 100%);
}

.b-f{
  opacity:calc(.03 + var(--burn, 0) * .97);
  filter:brightness(calc(.12 + var(--burn, 0) * .88));
}
.b-f.burning{
  filter:brightness(calc(.12 + var(--burn, 0) * .88))
         drop-shadow(0 0 calc(var(--glow, 0) * 20px) rgba(255,104,16,calc(var(--glow, 0) * .55)));
}

/* settled colours, per role */
.eyebrow{ --burn-a:var(--flame); --burn-b:var(--flame); }
.eyebrow--dim,
.spec__key,
.form__note,
.field > span,
.scrollcue span,
.readout div,
.foot__bar span,
.reel__hud span{ --burn-a:var(--smoke); --burn-b:var(--smoke); }
.lede,
.prose p,
.act__desc,
.show__desc,
.faq__item p,
.reel__note,
.geo__more,
.safety dd,
.ticker__group span{ --burn-a:var(--ink-dim); --burn-b:var(--ink-dim); }
.spec__val,
.plate__cap b,
.faq__item summary,
.case h2,
.contact__line b{ --burn-a:var(--core); --burn-b:var(--core); }
.safety dt,
.show__cta,
.geo__col h3,
.gal__hint,
.hero__trust,
.plate__cap span{ --burn-a:var(--flame); --burn-b:var(--flame); }
.ticker__group span:nth-child(even){ --burn-a:var(--ember); --burn-b:var(--ember); }

/* accents that sit inside a burning parent ride its --burn */
.bay__title em,
.spec__val i,
.readout b,
.form__note a,
.poihint__k{
  -webkit-text-fill-color:color-mix(in srgb, var(--accent-on, var(--ember)) calc(var(--burn, 1) * 100%), #050302);
}
.spec__val i,
.readout b{ --accent-on:var(--flame); }
.form__note a{ --accent-on:var(--flame); }

@media (prefers-reduced-motion:reduce){
  .b-t{ background-image:none; color:var(--burn-a); }
  .b-b{ -webkit-mask-image:none; mask-image:none; }
  .b-f{ opacity:1; filter:none; }
}


/* ============================================================
   Skip link — first thing a keyboard reaches
   ============================================================ */
.skip{
  position:fixed;
  top:.6rem; left:.6rem;
  z-index:200;
  padding:.6em 1em;
  border-radius:8px;
  background:var(--core);
  color:#170800;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  transform:translateY(-300%);
}
.skip:focus-visible{ transform:none; }

/* hero trust line under the buttons */
.hero__trust{
  margin:1.1rem 0 0;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--smoke);
}

/* ============================================================
   The written case — three columns of real copy
   ============================================================ */
.cases{
  display:grid;
  gap:clamp(1.5rem,3vw,2.5rem);
}
@media (min-width:900px){ .cases{ grid-template-columns:repeat(3,1fr); } }
.case h2{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 104,"wght" 800;
  font-size:clamp(1.25rem,2.2vw,1.7rem);
  line-height:1.02;
  letter-spacing:-.015em;
  text-transform:uppercase;
  margin:0 0 .9rem;
}
.cases__cta{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:clamp(1.8rem,4vw,2.8rem);
}

/* ============================================================
   Werkgebied
   ============================================================ */
.geo{
  display:grid;
  gap:clamp(1.5rem,3vw,2.5rem);
}
@media (min-width:760px){ .geo{ grid-template-columns:repeat(3,1fr); } }
.geo__col h3{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--flame);
  margin:0 0 .9rem;
}
.geo__more{ margin:.9rem 0 0; font-size:var(--t-sm); }
.geo__more a{ color:var(--flame); }

/* ============================================================
   FAQ
   ============================================================ */
.faq{
  display:grid;
  gap:1px;
  background:var(--hairline);
  border:1px solid var(--hairline);
  border-radius:clamp(14px,2vw,22px);
  overflow:hidden;
}
.faq__item{ background:rgba(10,7,5,.84); }
.faq__item summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:1rem;
  padding:clamp(1.1rem,2.4vw,1.5rem) clamp(1.2rem,2.6vw,1.8rem);
  font-family:var(--f-display);
  font-variation-settings:"wdth" 100,"wght" 700;
  font-size:clamp(1.02rem,1.7vw,1.25rem);
  line-height:1.15;
  letter-spacing:-.01em;
  transition:color .4s var(--ease);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{
  content:"+";
  flex:0 0 auto;
  font-family:var(--f-mono);
  font-size:1.1em;
  color:var(--flame);
  transition:transform .4s var(--ease);
}
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__item summary:hover{ color:var(--flame); }
.faq__item p{
  margin:0;
  padding:0 clamp(1.2rem,2.6vw,1.8rem) clamp(1.1rem,2.4vw,1.5rem);
  font-size:var(--t-sm);
  color:var(--ink-dim);
  max-width:62ch;
}

/* footer socials */
.foot__social{
  display:flex;
  gap:1rem;
}
.foot__social a{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--smoke);
  text-decoration:none;
  border-bottom:1px solid var(--hairline);
  padding-bottom:.15em;
}
.foot__social a:hover{ color:var(--flame); border-color:var(--flame); }


/* ============================================================
   WhatsApp — zwevende knop in de kleuren van het logo, met een
   eerlijke online-status (de echte openingstijden, ma t/m za)
   ============================================================ */
.wa{
  position:fixed;
  right:clamp(.9rem,2.5vw,1.6rem);
  bottom:clamp(.9rem,2.5vw,1.6rem);
  z-index:90;
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:.55rem 1rem .55rem .55rem;
  border-radius:999px;
  text-decoration:none;
  color:#170800;
  background-image:linear-gradient(96deg,var(--ember),var(--flame) 30%,var(--core) 52%,var(--flame) 74%,var(--ember));
  background-size:250% 100%;
  animation:heat 9s ease-in-out infinite;
  box-shadow:0 0 0 3px rgba(5,3,2,.9), 0 8px 30px rgba(0,0,0,.55), 0 0 26px rgba(255,120,20,.35);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.wa:hover{
  transform:translateY(-3px) scale(1.03);
  box-shadow:0 0 0 3px rgba(5,3,2,.9), 0 14px 38px rgba(0,0,0,.6), 0 0 40px rgba(255,140,30,.55);
}
.wa:focus-visible{ outline:2px solid var(--core); outline-offset:3px; }
.wa svg{
  width:38px; height:38px;
  padding:7px;
  border-radius:50%;
  background:rgba(5,3,2,.9);
  fill:var(--flame);
  flex:0 0 auto;
}
.wa__tag{
  display:flex;
  align-items:center;
  gap:.45rem;
  font-family:var(--f-mono);
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.wa__tag b{ font-weight:500; }
.wa__dot{
  width:9px; height:9px;
  border-radius:50%;
  background:#1FA855;
  box-shadow:0 0 0 2px rgba(5,3,2,.55);
}
.wa.is-online .wa__dot{ animation:waPulse 2.2s ease-out infinite; }
@keyframes waPulse{
  0%{ box-shadow:0 0 0 2px rgba(5,3,2,.55), 0 0 0 0 rgba(31,168,85,.55); }
  70%{ box-shadow:0 0 0 2px rgba(5,3,2,.55), 0 0 0 9px rgba(31,168,85,0); }
  100%{ box-shadow:0 0 0 2px rgba(5,3,2,.55), 0 0 0 0 rgba(31,168,85,0); }
}
.wa:not(.is-online) .wa__dot{ background:var(--smoke); }
@media (max-width:560px){
  .wa__tag b{ display:none; }
  .wa{ padding:.5rem .8rem .5rem .5rem; }
}
body.is-locked .wa{ opacity:0; pointer-events:none; transition:opacity .3s var(--ease); }

/* ============================================================
   Progress
   ============================================================ */
#burn{
  position:fixed;
  top:0; left:0;
  z-index:101;
  height:2px;
  width:0%;
  background:linear-gradient(90deg,var(--ember),var(--flame),var(--core));
  box-shadow:0 0 12px rgba(255,120,20,.9);
  pointer-events:none;
}

/* ============================================================
   Reduced motion — keep the design, drop the movement
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .rise{ opacity:1; transform:none; }
  .manifesto .w{ opacity:1; }
  .stage__grain{ display:none; }
  #flame{ display:none; }
  .stage__scrim{
    background:
      radial-gradient(120% 60% at 50% 108%, rgba(255,77,10,.5) 0%, rgba(255,77,10,.12) 40%, transparent 68%),
      linear-gradient(to top, rgba(10,7,5,.2) 0%, var(--soot) 42%);
  }
}

/* ============================================================
   Content pages — city pages, blog posts and the fixed pages
   ============================================================ */
.page{
  padding-block:clamp(7rem,16vh,10rem) clamp(1.5rem,4vw,2.5rem);
  display:grid;
  gap:clamp(.9rem,2.2vw,1.4rem);
  max-width:var(--maxw);
}
.page__title{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 112,"wght" 900;
  font-size:var(--t-2xl);
  line-height:.92;
  letter-spacing:-.028em;
  text-transform:uppercase;
  text-wrap:balance;
  margin:0;
  max-width:20ch;
  text-shadow:0 2px 34px rgba(10,7,5,.9);
}
.page .lede{ max-width:52ch; }

.crumbs ol{
  list-style:none;
  margin:0; padding:0;
  display:flex; flex-wrap:wrap; gap:.5rem;
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--smoke);
}
.crumbs li + li::before{ content:"/"; margin-right:.5rem; color:var(--hairline); }
.crumbs a{ color:var(--smoke); }
.crumbs a:hover{ color:var(--flame); }

/* the imported article body */
.prose--page{
  max-width:66ch;
  font-size:var(--t-md);
  color:var(--ink-dim);
}
.prose--page h2,
.prose--page h3{
  font-family:var(--f-display);
  font-variation-settings:"wdth" 104,"wght" 800;
  line-height:1.05;
  letter-spacing:-.015em;
  color:var(--ink);
  margin:2.2em 0 .6em;
  text-wrap:balance;
}
.prose--page h2{ font-size:var(--t-lg); }
.prose--page h3{ font-size:var(--t-md); font-variation-settings:"wdth" 100,"wght" 700; }
.prose--page p{ margin:0 0 1.1em; }
.prose--page ul,
.prose--page ol{ margin:0 0 1.4em; padding-left:1.1em; display:grid; gap:.45rem; }
.prose--page li{ padding-left:.2em; }
.prose--page li::marker{ color:var(--ember); }
.prose--page a{
  color:var(--flame);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.prose--page a:hover{ color:var(--core); }
.prose--page strong{ color:var(--ink); font-weight:600; }
.prose--page img{
  height:auto;
  border-radius:12px;
  border:1px solid var(--hairline);
  margin:1.6em 0;
}
.prose--page figure{ margin:1.6em 0; }
.prose--page figcaption{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.1em;
  color:var(--smoke);
  margin-top:.6em;
}
.prose--page blockquote{
  margin:1.6em 0;
  padding:1.1em 1.3em;
  border-left:2px solid var(--ember);
  background:rgba(23,16,8,.6);
  border-radius:0 10px 10px 0;
  color:var(--ink);
}
.prose--page table{
  width:100%;
  border-collapse:collapse;
  margin:1.6em 0;
  font-size:var(--t-sm);
}
.prose--page th,
.prose--page td{
  text-align:left;
  padding:.6em .8em;
  border-bottom:1px solid var(--hairline);
}

.citylist{
  list-style:none;
  margin:0; padding:0;
  display:grid;
  gap:1px;
  background:var(--hairline);
  border-block:1px solid var(--hairline);
}
@media (min-width:640px){ .citylist{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1040px){ .citylist{ grid-template-columns:repeat(4,1fr); } }
.citylist a{
  display:block;
  padding:1.1em 1.2em;
  background:rgba(10,7,5,.84);
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-dim);
  transition:background .35s var(--ease), color .35s var(--ease);
}
.citylist a:hover{ background:rgba(23,16,8,.9); color:var(--flame); }

.cta{ display:grid; gap:clamp(1rem,2.5vw,1.6rem); }
.cta .lede{ max-width:44ch; }

/* ============================================================
   Mobile menu — the links catch fire one after another
   ============================================================ */
.menu > a{
  --i:0;
  color:transparent;
  background-image:linear-gradient(to bottom,
    var(--core)   0%,
    var(--flame) 26%,
    #FFF8E8      30%,
    #FFC64F      34%,
    #FF6A12      39%,
    #8E2404      44%,
    #200A03      49%,
    var(--char) 57%,
    var(--char) 100%);
  background-size:100% 340%;
  background-repeat:no-repeat;
  background-position-y:100%;
  -webkit-background-clip:text;
  background-clip:text;
  opacity:1;
  transform:none;
  transition:background-position-y .85s var(--ease);
  transition-delay:calc(var(--i) * .11s);
}
.menu.is-open > a{ background-position-y:0%; }

.menu__foot{
  margin-top:clamp(2rem,6vw,3rem);
  display:grid;
  gap:.9rem;
}
.menu__foot .btn{ justify-self:start; }

@media (prefers-reduced-motion:reduce){
  .menu > a{ transition:none; background-position-y:0%; }
}

.lede-img{
  margin:0 auto clamp(1rem,3vw,2rem);
  max-width:var(--maxw);
  padding-inline:var(--gutter);
}
.lede-img img{
  width:100%;
  height:auto;
  max-height:min(62vh, 560px);
  object-fit:cover;
  border-radius:clamp(12px,1.6vw,18px);
  border:1px solid var(--hairline);
}

/* a long imported headline must not eat the whole screen */
.page__title{
  font-size:clamp(2rem, 1rem + 3.4vw, 3.6rem);
  max-width:24ch;
}

/* ============================================================
   Fotopagina — grid dat opent in een lightbox
   ============================================================ */
.fgrid{
  columns:2;
  column-gap:clamp(.75rem,1.6vw,1.25rem);
}
@media (min-width:760px){ .fgrid{ columns:3; } }
.fgrid a{
  display:block;
  position:relative;
  margin-bottom:clamp(.75rem,1.6vw,1.25rem);
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--hairline);
  break-inside:avoid;
  isolation:isolate;
}
.fgrid img{
  display:block;
  width:100%;
  height:auto;
  transition:transform .7s var(--ease);
}
.fgrid a:hover img{ transform:scale(1.04); }
.fgrid a::after{
  content:attr(data-cap);
  position:absolute;
  left:0; right:0; bottom:0;
  padding:.9rem 1rem .8rem;
  font-family:var(--f-mono);
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--core);
  background:linear-gradient(to top, rgba(5,3,2,.85), transparent);
  opacity:0;
  transition:opacity .4s var(--ease);
}
.fgrid a:hover::after,
.fgrid a:focus-visible::after{ opacity:1; }
.fgrid a:focus-visible{ outline:2px solid var(--flame); outline-offset:3px; }

.lightbox{
  position:fixed;
  inset:0;
  z-index:200;
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:1rem;
  padding:clamp(1rem,4vw,3rem);
  background:rgba(5,3,2,.94);
}
.lightbox.is-open{ display:flex; }
.lightbox img{
  max-width:100%;
  max-height:82vh;
  border-radius:10px;
  box-shadow:0 30px 90px rgba(0,0,0,.7);
}
.lightbox figcaption{
  font-family:var(--f-mono);
  font-size:var(--t-xs);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-dim);
  text-align:center;
}
.lightbox button{
  position:absolute;
  width:46px; height:46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid var(--hairline);
  background:rgba(23,16,8,.85);
  color:var(--core);
  font-size:1.1rem;
  cursor:pointer;
  transition:background .3s var(--ease);
}
.lightbox button:hover{ background:var(--ember); color:#170800; }
.lightbox__close{ top:clamp(.8rem,3vw,1.6rem); right:clamp(.8rem,3vw,1.6rem); }
.lightbox__prev{ left:clamp(.4rem,2vw,1.2rem); top:50%; transform:translateY(-50%); }
.lightbox__next{ right:clamp(.4rem,2vw,1.2rem); top:50%; transform:translateY(-50%); }

/* de galerij mag de volle breedte in, ook al staat hij in een tekstpagina */
.prose--page:has(.fgrid){ max-width:none; }

/* video's-pagina: dezelfde reels, maar dan als volwaardig rooster */
.reels--page{ margin-top:.5rem; }
@media (min-width:900px){ .reels--page{ grid-template-columns:repeat(2,1fr); } }
.reel[data-ratio="9/16"]{ aspect-ratio:9/16; max-height:72vh; }
.prose--page .reels + *{ margin-top:2rem; }
