@font-face{font-family:"Futura PT";src:url("../fonts/FuturaPT-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap;}
  @font-face{font-family:"Futura PT";src:url("../fonts/FuturaPT-Demi.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap;}
  @font-face{font-family:"Futura PT";src:url("../fonts/FuturaPT-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap;}
  @font-face{font-family:"Futura PT";src:url("../fonts/FuturaPT-Heavy.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap;}

  :root{
    /* jaymotion.raw palette — light analog scrapbook, teal-first */
    --linen:#EFEBE0;         /* Foundation */
    --linen-deep:#E6E0D0;    /* aged-paper tint */
    --teal:#013D3B;          /* Deep Teal — brand primary */
    --teal-soft:#3F6663;     /* lifted teal */
    --teal-mist:#7E958F;     /* pale teal-sage wash */
    --sienna:#C25C2A;        /* accent */
    --sienna-soft:#DBA98A;   /* accent tint */
    --sage:#7A8070;          /* neutral */
    --black:#1A1612;         /* Film Black */

    --ink:#1A1612;
    --ink-70:rgba(26,22,18,.72);
    --ink-50:rgba(26,22,18,.55);
    --ink-14:rgba(26,22,18,.14);
    --paper-line:rgba(26,22,18,.1);

    /* raw page runs on Inter Tight + Cormorant only; Futura survives just on the logo */
    --font-head:"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-body:"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-accent:"Cormorant Garamond",Georgia,serif;
    --font-logo:"Futura PT",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    /* technical set for the board labels */
    --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

    --container:1200px;
    --gutter:clamp(22px,6vw,72px);
    --ease:cubic-bezier(.22,1,.36,1);
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
  body{margin:0;color:var(--ink);font-family:var(--font-body);font-weight:400;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
    /* aged paper: soft uneven mottling instead of a flat fill */
    background:
      radial-gradient(60% 42% at 14% 8%,rgba(122,128,112,.07),transparent 70%),
      radial-gradient(46% 34% at 88% 24%,rgba(194,92,42,.045),transparent 70%),
      radial-gradient(55% 40% at 70% 92%,rgba(1,61,59,.05),transparent 72%),
      var(--linen);}
  img{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  p{margin:0 0 1.1em;} p:last-child{margin-bottom:0;}
  h1,h2,h3{font-family:var(--font-head);letter-spacing:-.015em;line-height:1.02;margin:0;text-wrap:balance;}
  /* Cormorant runs a much smaller x-height than Inter Tight; size the italic
     accents up so the lowercase heights match and the pairing feels intentional */
  h1 em,h2 em{font-size:1.2em;}

  ::selection{background:var(--teal);color:var(--linen);}
  :focus-visible{outline:2px solid var(--sienna);outline-offset:3px;}

  /* grain — analogue paper texture over everything */
  body::after{content:"";position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.65;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.06'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

  /* fibrous paper weave, laid over light sections only */
  .paper-tex{position:relative;}
  .paper-tex::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.62;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='turbulence' baseFrequency='0.012 0.06' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.045'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");}

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

  .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
  .reveal.in{opacity:1;transform:none;}
  .reveal[data-d="1"]{transition-delay:.12s;}
  .reveal[data-d="2"]{transition-delay:.24s;}

  /* every photo gets the faded-film treatment */
  .film-img{filter:sepia(.22) saturate(.82) contrast(.94) brightness(1.02);}

  /* ---------- Top bar ---------- */
  .bar{position:absolute;inset:0 0 auto 0;z-index:20;}
  .bar-in{display:flex;align-items:center;justify-content:space-between;max-width:var(--container);margin-inline:auto;padding:26px var(--gutter);}
  /* The wordmark is set in type (Futura PT Heavy + the teal ".raw"), not an
     image — deliberate, so it stays crisp at any size and needs no asset. */
  .brand{font-family:var(--font-logo);font-weight:800;font-size:1.25rem;letter-spacing:-.02em;color:var(--teal);}
  .brand em{font-family:var(--font-accent);font-style:italic;font-weight:700;color:var(--sienna);letter-spacing:0;}
  .bar-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-family:var(--font-head);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-70);transition:color .25s ease;}
  .bar-back:hover{color:var(--teal);}

  /* ---------- Hero: fanned photo stack + oversized wordmark ---------- */
  .hero{position:relative;padding:clamp(120px,16vh,170px) 0 clamp(96px,12vh,150px);text-align:center;overflow:hidden;}
  .hero-stack{position:relative;height:clamp(240px,36vw,420px);max-width:1080px;margin-inline:auto;}
  .hero-stack figure{position:absolute;margin:0;top:50%;left:50%;width:clamp(120px,17vw,200px);aspect-ratio:3/4;background:linear-gradient(174deg,#FDFBF3 0%,#F2ECDB 100%);border:1px solid rgba(26,22,18,.06);padding:7px 7px 26px;box-shadow:0 1px 3px rgba(26,22,18,.22),0 20px 42px -18px rgba(26,22,18,.5);transform:translate(-50%,-50%) rotate(var(--r)) translateX(var(--tx)) translateY(var(--ty));transition:transform .5s var(--ease);}
  .hero-stack figure:hover{transform:translate(-50%,-50%) rotate(0deg) translateX(var(--tx)) translateY(var(--ty)) scale(1.04);z-index:5;}
  .hero-stack img{width:100%;height:100%;object-fit:cover;outline:1px solid rgba(26,22,18,.1);outline-offset:-1px;}

  /* aged sellotape — semi-transparent, dry edges */
  .tape{position:absolute;top:-13px;left:50%;transform:translateX(-50%) rotate(var(--tr,-4deg));width:92px;height:27px;z-index:3;pointer-events:none;
    background:linear-gradient(94deg,rgba(239,232,214,.5) 0%,rgba(244,238,222,.66) 45%,rgba(236,228,206,.48) 100%);
    border-left:1px dashed rgba(26,22,18,.16);border-right:1px dashed rgba(26,22,18,.16);
    box-shadow:0 1px 3px rgba(26,22,18,.14),inset 0 0 8px rgba(255,255,255,.35);}
  .hs-1{--r:-8deg;--tx:-190%;--ty:4%;}
  .hs-2{--r:5deg;--tx:-95%;--ty:-7%;}
  .hs-3{--r:-2deg;--tx:0%;--ty:2%;z-index:2;}
  .hs-4{--r:7deg;--tx:95%;--ty:-4%;}
  .hs-5{--r:-6deg;--tx:190%;--ty:6%;}
  @media(max-width:760px){.hs-1,.hs-5{display:none;}.hs-2{--tx:-92%;}.hs-4{--tx:92%;}}
  .hero h1{margin:14px auto 0;position:relative;z-index:3;font-weight:700;font-size:clamp(2rem,4.8vw,3.7rem);line-height:1.08;color:var(--teal);letter-spacing:-.02em;max-width:22ch;text-shadow:0 1px 0 var(--linen),0 10px 34px rgba(1,61,59,.2);}
  .hero h1 em{font-family:var(--font-accent);font-style:italic;font-weight:600;letter-spacing:0;color:var(--sienna);}
  .hero-sub{position:relative;z-index:3;margin:18px auto 0;max-width:52ch;font-family:var(--font-body);font-weight:400;font-style:normal;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.5;color:var(--ink-70);}
  .hero-meta{margin-top:22px;font-family:var(--font-head);font-weight:600;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);}
  /* ---------- Film strip bands (the PLENKACORE section dividers) ---------- */
  /* translucent film base — semi-transparent emulsion lets the paper breathe
     through; sprocket holes are punched with a dark rim so they read as cut
     through the stock (a real CSS mask here wedges Chromium's compositor) */
  /* strips lie ACROSS the section seams like taped-on film, no paper gap */
  .strip{position:relative;z-index:5;color:var(--linen);padding:16px 0;transform:rotate(-1.6deg);margin:clamp(-72px,-4.5vw,-40px) -4vw;width:108vw;box-shadow:0 18px 38px -18px rgba(26,22,18,.5);
    background-image:
      radial-gradient(circle at 17px 6.5px,var(--linen) 0 3.4px,rgba(8,5,2,.6) 4.1px,transparent 5px),
      radial-gradient(circle at 17px 6.5px,var(--linen) 0 3.4px,rgba(8,5,2,.6) 4.1px,transparent 5px),
      linear-gradient(180deg,#322A21 0%,#4A4132 48%,#2C2418 100%);
    background-size:34px 13px,34px 13px,100% 100%;
    background-position:left 4px,left calc(100% - 4px),0 0;
    background-repeat:repeat-x,repeat-x,no-repeat;}
  /* wet-gate sheen along the top of the base */
  .strip::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(168deg,rgba(255,246,228,.09) 0%,transparent 24%,transparent 70%,rgba(255,246,228,.04) 100%);}
  .strip-in{position:relative;display:flex;align-items:center;gap:clamp(20px,4vw,54px);padding:22px var(--gutter) 26px;overflow:hidden;white-space:nowrap;}
  .strip-label{flex:none;font-family:var(--font-head);font-weight:700;font-size:clamp(1.1rem,2.6vw,1.8rem);letter-spacing:.28em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.5);}
  .strip-label b{color:var(--sienna-soft);font-weight:700;}
  .strip-frames{display:flex;gap:16px;flex:1;min-width:0;}
  /* frames read like backlit positives: translucent, warm base tint, dark frame line */
  .strip-frames img{width:clamp(90px,11vw,150px);aspect-ratio:3/2;object-fit:cover;border-radius:2px;opacity:.72;flex:none;border:1px solid rgba(255,238,214,.14);box-shadow:0 0 0 4px rgba(12,8,4,.45),inset 0 0 14px rgba(0,0,0,.4);mix-blend-mode:luminosity;}
  .strip:hover .strip-frames img{mix-blend-mode:normal;opacity:.85;}
  .strip-tc{flex:none;font-family:var(--font-head);font-weight:500;font-size:11px;letter-spacing:.2em;color:rgba(255,220,180,.5);}
  /* edge lettering, like exposed markings on the film rebate */
  .strip-edge{position:absolute;left:var(--gutter);bottom:20px;font-family:var(--font-head);font-weight:600;font-size:8.5px;letter-spacing:.34em;text-transform:uppercase;color:rgba(255,214,170,.42);pointer-events:none;}
  @media(max-width:700px){.strip-frames img:nth-child(n+3){display:none;}.strip-tc{display:none;}}

  /* ---------- Story: deep-teal chapter ---------- */
  .story{background:var(--teal);color:var(--linen);padding-block:clamp(110px,14vh,170px) clamp(110px,14vh,160px);position:relative;overflow:hidden;box-shadow:inset 0 34px 66px -40px rgba(0,0,0,.5),inset 0 -34px 66px -40px rgba(0,0,0,.5);}
  .story::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 120% at 85% 10%,rgba(126,149,143,.28) 0%,transparent 55%),radial-gradient(120% 90% at 50% 115%,rgba(1,30,29,.55) 0%,transparent 55%);pointer-events:none;}
  .story-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,6vw,80px);align-items:center;}
  @media(max-width:860px){.story-grid{grid-template-columns:1fr;}}
  .kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:600;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--sienna-soft);}
  .kicker::before{content:"";width:26px;height:1px;background:currentColor;}
  .story h2{margin-top:16px;font-weight:500;font-size:clamp(1.9rem,4.4vw,3.2rem);color:var(--linen);}
  .story h2 em{font-family:var(--font-accent);font-style:italic;font-weight:600;letter-spacing:0;color:var(--sienna-soft);}
  .story-body{margin-top:22px;max-width:56ch;font-weight:300;font-size:clamp(1rem,1.25vw,1.12rem);line-height:1.7;color:rgba(239,235,224,.82);}
  .story-sign{margin-top:26px;font-family:var(--font-accent);font-style:italic;font-size:1.35rem;color:var(--linen);}
  .story-photo{position:relative;justify-self:center;}
  .story-photo figure{margin:0;background:linear-gradient(174deg,#FBF8EE 0%,#EFE9D6 100%);border:1px solid rgba(26,22,18,.05);padding:10px 10px 46px;transform:rotate(2.5deg);box-shadow:0 2px 5px rgba(0,0,0,.28),0 32px 62px -30px rgba(0,0,0,.6);width:min(340px,78vw);}
  .story-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;outline:1px solid rgba(26,22,18,.12);outline-offset:-1px;}
  .story-photo figcaption{margin-top:12px;text-align:center;font-family:var(--font-accent);font-style:italic;font-size:1.05rem;color:var(--ink-70);}
  .story-photo .tape{--tr:-3deg;width:110px;}


  /* ---------- Video lightbox (used by the board video items) ---------- */
  .lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(14px,4vw,48px);background:rgba(20,16,10,.92);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;}
  .lightbox.open{opacity:1;visibility:visible;}
  .lb-in{width:min(960px,100%);}
  .lb-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:8px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.8);}
  .lb-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
  .lb-note{margin-top:12px;font-size:12px;color:rgba(239,235,224,.55);text-align:center;}
  .lb-close{position:absolute;top:clamp(12px,3vw,28px);right:clamp(14px,3vw,32px);width:46px;height:46px;border-radius:50%;border:1px solid rgba(239,235,224,.4);background:none;color:var(--linen);font-size:17px;cursor:pointer;display:grid;place-items:center;transition:background-color .25s ease,border-color .25s ease;font-family:var(--font-mono);}
  .lb-close:hover{background:var(--sienna);border-color:var(--sienna);}


  /* ---------- Corkboard: curated wall, one light source, restrained motion ---------- */
  /* settle + parallax use registered custom props so they can transition */
  @property --sy{syntax:"<length>";inherits:true;initial-value:0px;}
  @property --sr{syntax:"<angle>";inherits:true;initial-value:0deg;}
  @property --p{syntax:"<length>";inherits:true;initial-value:0px;}
  .board-sec{position:relative;overflow:hidden;padding-block:clamp(60px,8vh,104px);
    /* one consistent light source: shadows fall down + slightly right for every pinned object */
    --sh:3px 15px 30px -16px rgba(26,22,18,.42),1px 3px 7px -3px rgba(26,22,18,.13);
    --sh-hi:6px 30px 54px -20px rgba(26,22,18,.46),2px 5px 11px -3px rgba(26,22,18,.15);
    background:radial-gradient(130% 100% at 50% -10%,rgba(26,22,18,.045),transparent 55%),linear-gradient(180deg,#E4DCC9,#DDD4C0);
    border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);}
  .board-head{text-align:center;max-width:var(--container);margin:0 auto clamp(28px,4vw,50px);padding-inline:var(--gutter);}
  .board-head h2{font-weight:500;font-size:clamp(1.9rem,4.4vw,3.2rem);color:var(--teal);}
  .board-head h2 em{font-family:var(--font-accent);font-style:italic;font-weight:600;letter-spacing:0;color:var(--sienna);}
  /* free-scatter canvas — items are pinned by absolute % position, not a grid, like real prints on a table */
  .board-head,.board{position:relative;z-index:1;}
  .board{width:min(920px,80vw);margin-inline:auto;height:clamp(1150px,96vw,1280px);}
  .board-item{position:absolute;left:var(--x,0%);top:var(--y,0%);width:var(--w-item,20%);margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;
    z-index:var(--z,1);transform:rotate(var(--tilt,0deg));transform-origin:center;}
  /* fused groups: 2-3 items that must always overlap the same way, on any screen size —
     the group is the positioning context for its own members, independent of the canvas */
  /* --gscale relaxes the group box as the board narrows: captions and polaroid padding are fixed px,
     so they claim proportionally more height the smaller the group gets */
  .board-item.frm-group{aspect-ratio:calc(var(--gar,2) * var(--gscale,1));}
  @media(max-width:1240px){.board-item.frm-group{--gscale:.88;}}
  .frm-gitem{position:absolute;left:var(--gx,0%);top:var(--gy,0%);width:var(--gw,50%);transform:rotate(var(--gt,0deg));}
  /* background ticket strips, tucked behind the collage at specific rows (not the page header) —
     a background element: quiet, desaturated, and not competing with the board items */
  .frm-bg-strip{position:absolute;left:50%;width:100vw;height:clamp(34px,4.2vw,52px);top:var(--y,30%);z-index:0;pointer-events:none;opacity:.3;filter:grayscale(.34) contrast(.92) brightness(1.06);background-repeat:repeat-x;background-size:auto 100%;background-position:var(--bx,0px) center;transform:translateX(-50%) rotate(var(--tilt,-2deg));}
  @media(max-width:1000px){.frm-bg-strip{opacity:.22;height:clamp(30px,7vw,40px);}}
  a.board-item,button.board-item{cursor:pointer;transition:transform .45s var(--ease);}
  a.board-item:hover,button.board-item:hover,a.board-item:focus-visible,button.board-item:focus-visible{transform:rotate(0deg) scale(1.06);z-index:30;}
  @media(max-width:1000px){
    .board{height:auto;display:flex;flex-direction:column;align-items:center;gap:34px;width:min(420px,88vw);}
    .board-item{position:static;width:min(360px,86vw);transform:rotate(var(--tilt-m,0deg));}
    /* captions + polaroid padding are fixed px, so they eat proportionally more room as the
       group narrows — give every group a taller box on small screens to absorb that */
    .board-item.frm-group{position:relative;left:auto;top:auto;transform:none;--gscale:.8;}
    @media(max-width:430px){.board-item.frm-group{--gscale:.72;}}
    a.board-item:hover,button.board-item:hover,a.board-item:focus-visible,button.board-item:focus-visible{transform:scale(1.03);}
  }
  /* settle-on-load + scroll parallax live on the object (the pin/tape pseudos stay anchored) */
  .board-item>*{translate:0 calc(var(--p,0px) + var(--sy,0px));rotate:var(--sr,0deg);transition:--sy .8s var(--ease),--sr .8s var(--ease),opacity .6s var(--ease),box-shadow .4s ease;}
  .board.js-anim .board-item>*{opacity:0;--sy:22px;--sr:-6deg;}
  .board.js-anim .board-item.in>*{opacity:1;--sy:0px;--sr:0deg;}
  /* one shadow token for every artifact; hover deepens it in the same direction */
  .obj-polaroid,.obj-passimg{box-shadow:var(--sh);}
  .board-item:hover .obj-polaroid,.board-item:hover .obj-passimg{box-shadow:var(--sh-hi);}
  /* polaroid */
  .obj-polaroid{position:relative;display:block;background:#FCFBF6;border:1px solid rgba(26,22,18,.05);padding:8px 8px 11px;}
  .obj-polaroid img{width:100%;aspect-ratio:4/5;object-fit:cover;outline:1px solid rgba(26,22,18,.08);outline-offset:-1px;filter:saturate(1.03) contrast(1.01);}
  .obj-cap{display:block;margin-top:8px;text-align:center;font-family:var(--font-mono);font-weight:400;font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-50);}
  /* real boarding-pass scan (rounded corners on the image itself) */
  .obj-passimg{display:block;border-radius:12px;box-shadow:var(--sh);}
  .obj-passimg img{display:block;width:100%;border-radius:12px;}
  /* landscape photo variant */
  .obj-polaroid.land img{aspect-ratio:3/2;}
  /* body copy under the Frames heading */
  .frm-lede{margin:14px auto 0;max-width:60ch;font-family:var(--font-body);font-weight:400;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6;color:var(--ink-70);}
  @media(max-width:680px){
    .board-head h2{font-size:clamp(1.5rem,6.4vw,1.95rem);}
  }
  /* sticky note: plain white paper, pinned to the board with a paperclip */
  .frm-note{display:block;position:relative;background:linear-gradient(178deg,#FEFDFA 0%,#FAF8F2 100%);border:1px solid rgba(26,22,18,.09);padding:22px 22px 24px;box-shadow:var(--sh);}
  .board-item:hover .frm-note{box-shadow:var(--sh-hi);}
  .frm-note-h{display:block;font-family:var(--font-head);font-weight:700;font-size:1.05rem;line-height:1.35;letter-spacing:-.005em;color:var(--ink);}
  .frm-note-b{display:block;margin-top:10px;font-family:var(--font-body);font-weight:400;font-size:13.5px;line-height:1.6;color:var(--ink-70);}
  .frm-note-link{display:inline-block;margin-top:14px;font-family:var(--font-accent);font-style:italic;font-weight:600;font-size:1.08rem;color:var(--sienna);transition:color .25s ease;}
  .frm-note-link:hover{color:#a94c1f;}
  /* paperclip pinning the note in place — a clear metal clip, not a decorative hint */
  .frm-clip{position:absolute;top:-19px;left:26px;width:26px;height:40px;z-index:3;color:#9C9585;filter:drop-shadow(0 3px 4px rgba(26,22,18,.3));pointer-events:none;}
  /* video mockup: rounded frame, app-style chrome — drag handle, heart/share, play control, scrubber + controls */
  .frm-video{position:relative;display:block;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#1B1712;box-shadow:var(--sh);}
  .board-item:hover .frm-video{box-shadow:var(--sh-hi);}
  .frm-video img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92;}
  .frm-video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.32) 0%,transparent 18%,transparent 54%,rgba(0,0,0,.66) 100%);pointer-events:none;}
  .frm-video-top{position:absolute;top:10px;left:12px;right:12px;display:flex;align-items:center;justify-content:flex-end;gap:10px;z-index:2;}
  .frm-video-handle{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:34px;height:4px;border-radius:2px;background:rgba(255,255,255,.55);}
  .frm-video-top svg{width:15px;height:15px;color:rgba(255,255,255,.9);}
  .frm-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(20,18,14,.45);border:1.5px solid rgba(255,255,255,.85);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:background-color .3s ease;z-index:2;}
  .frm-video-play svg{width:16px;height:16px;margin-left:2px;}
  button.board-item:hover .frm-video-play,button.board-item:focus-visible .frm-video-play{background:var(--sienna);}
  .frm-video-bar{position:absolute;left:13px;right:13px;bottom:10px;display:flex;align-items:center;gap:8px;z-index:2;}
  .frm-video-scrub{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.32);position:relative;overflow:hidden;}
  .frm-video-scrub::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--p,38%);background:var(--sienna-soft);border-radius:2px;}
  .frm-video-time{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:rgba(255,255,255,.85);flex:none;}
  .frm-video-ctrls{display:flex;align-items:center;gap:7px;flex:none;}
  .frm-video-ctrls svg{width:12px;height:12px;color:rgba(255,255,255,.8);}
  /* small stylized flight-ticket card — a designed artifact, not a photo scan */
  .frm-ticket{display:block;background:#FCFBF8;border:1px solid rgba(26,22,18,.08);border-radius:10px;padding:12px 13px 11px;font-family:var(--font-mono);color:var(--ink);}
  .frm-ticket-top{display:flex;align-items:center;justify-content:space-between;}
  .frm-ticket-code{font-family:var(--font-head);font-weight:700;font-size:1rem;color:var(--teal);}
  .frm-ticket-plane{width:13px;height:13px;color:var(--sienna);flex:none;}
  .frm-ticket-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;padding-top:8px;border-top:1px dashed var(--ink-14);}
  .frm-ticket-time{font-family:var(--font-head);font-weight:600;font-size:11px;color:var(--ink);}
  .frm-ticket-sub{margin-top:6px;font-size:6.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);display:flex;justify-content:space-between;}
  /* social: round icon + a short line of copy, centered below the collage */
  .frm-social{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:clamp(18px,3vw,40px);margin-top:clamp(34px,5vw,56px);position:relative;z-index:2;}
  .frm-social-link{display:inline-flex;align-items:center;gap:12px;min-height:48px;}
  .frm-social-btn{width:48px;height:48px;flex:none;border-radius:50%;display:grid;place-items:center;background:#FCFBF6;border:1px solid rgba(26,22,18,.1);color:var(--teal);box-shadow:var(--sh);transition:transform .3s var(--ease),background-color .3s ease,color .3s ease;}
  .frm-social-link:hover .frm-social-btn,.frm-social-link:focus-visible .frm-social-btn{transform:translateY(-3px);background:var(--teal);color:var(--linen);}
  .frm-social-btn svg{width:19px;height:19px;}
  .frm-social-txt{font-family:var(--font-accent);font-style:italic;font-weight:500;font-size:1.02rem;color:var(--ink-70);max-width:19ch;line-height:1.3;}
  @media(max-width:1000px){
    .frm-social{flex-direction:column;align-items:center;gap:18px;}
    .frm-social-link{width:min(300px,86vw);}
    .frm-social-txt{max-width:none;flex:1;}
  }

  /* ---------- Footer ---------- */
  .foot{background:var(--teal);color:rgba(239,235,224,.75);padding-block:34px;}
  .foot-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);font-size:13px;}
  .foot a{color:var(--linen);min-height:44px;display:inline-flex;align-items:center;transition:color .25s ease;}
  .foot a:hover{color:var(--sienna-soft);}

  /* ---------- Mobile polish ---------- */
  @media(max-width:640px){
    .bar-in{padding:18px 22px;}
    .hero{padding:96px 0 84px;}
    .hero-stack{height:250px;}
    .hero-stack figure{width:146px;}
    .hero-sub{padding-inline:8px;font-size:1.2rem;}
    .strip{margin-block:-34px;padding:12px 0;}
    .strip-in{gap:16px;padding:18px var(--gutter) 22px;}
    .strip-label{font-size:.95rem;letter-spacing:.2em;}
    .strip-edge{bottom:16px;font-size:7.5px;letter-spacing:.26em;}
    .story{padding-block:84px 72px;}
    .story-grid{gap:40px;}
    .story-photo figure{transform:rotate(1.5deg);}
    .foot-in{flex-direction:column;align-items:center;text-align:center;gap:0;padding-block:6px;}
  }

  /* ---------- Cookie / consent preferences ----------
     Same non-blocking pattern as jaymotion.ch: no cookie wall, reject is the
     same size and click-depth as accept. Dark scrim to match this page's own
     lightbox/notebox convention of a dark overlay on an otherwise light page. */
  .consent-bar{position:fixed;left:0;right:0;bottom:0;z-index:220;padding:var(--gutter);padding-block:clamp(16px,2.4vw,26px);background:rgba(20,16,10,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateY(110%);transition:transform .5s var(--ease);}
  .consent-bar.open{transform:translateY(0);}
  .consent-in{max-width:var(--container);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;justify-content:space-between;}
  .consent-copy{flex:1 1 420px;font-size:13.5px;line-height:1.55;color:rgba(239,235,224,.75);max-width:64ch;}
  .consent-copy a{color:var(--sienna-soft);text-decoration:underline;}
  .consent-actions{flex:1 1 100%;max-width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
  @media(min-width:820px){.consent-actions{flex:none;max-width:none;}}
  .consent-btn{font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:.01em;padding:11px 20px;border-radius:8px;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease;white-space:nowrap;}
  .consent-btn.ghost{background:none;border:1px solid rgba(239,235,224,.25);color:rgba(239,235,224,.75);}
  .consent-btn.ghost:hover{border-color:rgba(239,235,224,.5);color:var(--linen);}
  .consent-btn.outline{background:none;border:1px solid rgba(239,235,224,.4);color:var(--linen);}
  .consent-btn.outline:hover{border-color:rgba(239,235,224,.7);}
  .consent-btn.solid{background:var(--sienna);border:1px solid var(--sienna);color:var(--linen);}
  .consent-btn.solid:hover{background:#a94c1f;border-color:#a94c1f;}
  .consent-panel{flex:1 1 100%;margin-top:6px;padding-top:16px;border-top:1px solid rgba(239,235,224,.16);display:none;}
  .consent-panel.open{display:block;}
  .consent-row{display:flex;align-items:flex-start;gap:12px;padding-block:10px;}
  .consent-row+.consent-row{border-top:1px solid rgba(239,235,224,.1);}
  .consent-row input{margin-top:3px;flex:none;width:16px;height:16px;accent-color:var(--sienna);}
  .consent-row label{flex:1;}
  .consent-row .crt{font-family:var(--font-head);font-weight:600;font-size:13px;color:var(--linen);}
  .consent-row .crd{margin-top:3px;font-size:12.5px;line-height:1.5;color:rgba(239,235,224,.65);max-width:72ch;}
  .consent-panel-actions{margin-top:14px;}
  #privacySettingsLink{cursor:pointer;}

  @media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
    .reveal{opacity:1 !important;transform:none !important;}
  }

  /* --- audit additions --- */
  /* skip link (WCAG 2.4.1): first tab stop on the page */
  .skip-link{position:fixed;top:-100px;left:24px;z-index:9998;background:var(--teal,#12564E);color:#EFEBE0;
    font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
    padding:13px 20px;border-radius:999px;text-decoration:none;transition:top .2s ease;}
  .skip-link:focus{top:14px;}
  /* "Privacy settings" is a <button> now: an <a> with no href could not be
     activated with Enter, so consent could not be withdrawn by keyboard. */
  .foot-in #privacySettingsLink{background:none;border:0;padding:0;cursor:pointer;font:inherit;
    color:inherit;text-decoration:none;display:inline-flex;align-items:center;min-height:26px;}
  .foot-in #privacySettingsLink:hover{text-decoration:underline;}
  /* dismissed consent bar kept its controls in the tab order while aria-hidden */
  .consent-bar{visibility:hidden;transition:transform .5s ease,visibility 0s linear .5s;
    max-height:min(72vh,520px);overflow-y:auto;overscroll-behavior:contain;}
  .consent-bar.open{visibility:visible;transition:transform .5s ease,visibility 0s;}
  :focus-visible{outline:2px solid var(--teal,#12564E);outline-offset:3px;}
