/* STORY — extrafazant.nl structure & motion (image-trail hero, tilted polaroid chapters with stickers,
   squiggle links, pinned featured stack, marquee bands), dressed in the landing design system:
   pixel + serif-italic type pair, 1340 grid, 100px bands with hairlines, tile chips, liquid CTAs. */
.pg-story .sf{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-.005em}
.pg-story .hv{font-family:var(--pixel);font-weight:400;text-transform:none;letter-spacing:0}
.pg-story .hv .wc{display:inline-block;font-variation-settings:"ELSH" var(--elsh,1)}
.pg-story .line{overflow:clip;padding-bottom:.08em}

/* ---- hero */
.xhero{position:relative;min-height:calc(100svh - var(--navh,86px));display:grid;place-items:center;text-align:center;padding:100px var(--gutter) 90px;overflow:hidden}
.xhero-in{position:relative;z-index:2;max-width:1100px;display:flex;flex-direction:column;align-items:center;gap:40px;pointer-events:none}
.xhero-in a{pointer-events:auto}
.xh{font-size:52px;line-height:1.2;color:var(--ink);text-wrap:balance;margin:0}
.xh .sf{font-size:1.08em}
.xh.xl{font-size:clamp(56px,7.6vw,112px);line-height:1.08}
.xsub{max-width:640px;font-size:20px;line-height:1.65;color:var(--mut);margin:0}
.xtrail{position:absolute;inset:0;z-index:1;pointer-events:none}
.xtrail img{position:absolute;left:0;top:0;width:clamp(150px,15vw,240px);aspect-ratio:4/5;object-fit:cover;border:8px solid #fff;opacity:0;will-change:transform}

/* ---- squiggle link: label + tile arrow, squiggle draws on hover */
.xline{position:relative;display:inline-flex;align-items:center;gap:12px;padding-bottom:10px;color:var(--ink);font-weight:500;font-size:16px;text-transform:uppercase}
.xline .lb{font:inherit}
.xline .sq{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--tile);transition:background .4s var(--liquid),border-radius .4s var(--liquid),color .4s}
.xline:hover .sq{background:var(--forest);color:#fff;border-radius:16px}
.xline svg{fill:none;stroke:currentColor;stroke-width:1.6}
.xline .sq svg{width:14px;height:14px}
.xline .squig{position:absolute;left:0;right:44px;bottom:-4px;width:calc(100% - 44px);height:14px;stroke:var(--pink);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.xline.down .squig{stroke:var(--gold)}
.xlinks{display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:center;margin-top:10px}
.xmail{position:relative;color:inherit;text-decoration:underline;text-underline-offset:4px}

/* ---- chapters: banded split, polaroids one side, centred text the other */
.xch{position:relative;width:min(var(--max),100% - 2*var(--gutter));margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:clamp(40px,9vw,129px);padding-block:var(--band)}
.xch::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);transform-origin:left;transform:scaleX(var(--draw,1))}
.xch.flip .xmedia{order:2}
.xch.solo{grid-template-columns:1fr}
.xch.solo .xtext{max-width:820px;margin:auto}
.xtext{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px;max-width:600px;justify-self:center}
.pg-story .xkick.sf{font:400 14px/16.8px var(--sans);font-style:normal;letter-spacing:1.12px;text-transform:uppercase;color:var(--mut)}
.xtext p{font-size:18px;line-height:1.65;color:rgba(20,20,20,.72);margin:0}
.xk{margin:16px 0 0;font-size:32px;line-height:1.25;color:var(--ink)}
.xmedia{position:relative;display:grid;place-items:center;min-height:min(70vh,620px)}
.xcollage{position:relative;width:min(100%,540px);aspect-ratio:1/1}
.pol{position:absolute;margin:0;background:#fff;padding:12px 12px 40px;will-change:transform}
.pol img{width:100%;height:100%;object-fit:cover;background:var(--tile)}
.n1 .pol{inset:6% 10%;rotate:-3deg}
.n2 .p0{left:0;top:4%;width:62%;height:70%;rotate:-6deg}
.n2 .p1{right:0;bottom:2%;width:56%;height:62%;rotate:5deg}
.n3 .p0{left:0;top:0;width:54%;height:56%;rotate:-7deg}
.n3 .p1{right:0;top:12%;width:50%;height:50%;rotate:6deg}
.n3 .p2{left:22%;bottom:0;width:52%;height:48%;rotate:-2deg}
.n4 .p0{left:0;top:0;width:48%;height:48%;rotate:-6deg}
.n4 .p1{right:0;top:4%;width:48%;height:46%;rotate:4deg}
.n4 .p2{left:4%;bottom:0;width:46%;height:46%;rotate:3deg}
.n4 .p3{right:2%;bottom:3%;width:46%;height:46%;rotate:-5deg}
.stk{position:absolute;width:clamp(60px,6vw,96px);z-index:3;pointer-events:none}
.stk svg{width:100%;height:auto;display:block}
.xcollage .stk.s0{right:-4%;top:-6%;rotate:12deg}
.xcollage .stk.s1{left:-5%;bottom:-4%;rotate:-10deg}
.xcollage .stk.s2{right:-3%;bottom:6%;rotate:8deg}
.xcollage .stk.s3{left:-2%;top:-5%;rotate:-14deg}

/* ---- featured stack (ink band) */
.xdark{background:var(--ink);color:#fff}
.xproj{position:relative;padding:0 max(var(--gutter),calc((100% - var(--max))/2));display:grid;grid-template-columns:1.1fr .9fr;column-gap:clamp(40px,9vw,129px)}
.xpin{height:100vh;display:grid;place-items:center;perspective:1600px}
.xstack{position:relative;width:min(100%,620px);aspect-ratio:4/3;transform-style:preserve-3d}
.xslide{position:absolute;inset:0;border:12px solid var(--fr);overflow:hidden;background:#222;will-change:transform}
.xslide img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--liquid)}
.xslide:hover img{transform:scale(1.04)}
.xs-t{position:absolute;left:0;bottom:0;padding:10px 16px 8px;background:var(--fr);color:var(--fc);font-size:28px;line-height:1}
.xbadge{position:absolute;right:-5%;top:-7%;width:clamp(70px,7vw,104px);z-index:50;rotate:14deg}
.xbadge svg{width:100%;display:block}
.xcaps{display:flex;flex-direction:column;justify-content:center;padding:18vh 0}
.xcap{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:24px;max-width:460px}
.xcap .t{font:italic 400 52px/1.2 var(--serif);margin:0}
.xcap .d{font-size:18px;line-height:1.65;color:rgba(255,255,255,.66);margin:0}
.xdark .cta{color:#fff;border-color:rgba(255,255,255,.2)}
.xproj.single .xcap{min-height:0}
.xproj.single{padding-block:var(--band);align-items:center}
.xproj.single .xpin{height:auto}

/* ---- marquee bands (landing marquee: pixel + serif, hairlines, stickers between) */
.xband{display:block;overflow:hidden;padding-block:34px 30px;border-bottom:1px solid var(--line);color:var(--ink);user-select:none}
.xb-track{display:flex;width:max-content;align-items:center;will-change:transform}
.xb-track>span{font-size:128px;line-height:1;padding-right:.22em;white-space:nowrap}
.xb-track .hv{font-family:var(--pixel)}
.xb-track .sf{font-family:var(--serif);font-style:italic}
.xb-track .stk{position:static;width:72px;margin:0 .45em}

/* ---- closing: pixel name above the footer meta (landing hero name) */
.xname-row{margin-top:60px}
.xname{display:block;font-size:min(250px,(100vw - 2*var(--gutter))*.126);text-align:center}

@media (max-width:991px){
  .xch,.xproj{grid-template-columns:1fr;row-gap:48px}
  .xch.flip .xmedia{order:0}
  .xmedia{min-height:0}
  .xcollage{width:min(100%,440px)}
  .xpin{height:auto;padding:80px 0 0}
  .xcaps{padding:40px 0 80px}
  .xcap{min-height:0;margin-bottom:40px}
  .xh{font-size:40px}
  .xb-track>span{font-size:72px}
  /* multi-card stack: sticky under the navbar, captions scroll beneath and swap cards */
  .xproj:not(.single){row-gap:0}
  .xproj:not(.single) .xpin{position:sticky;top:102px;z-index:2;padding:32px 0 40px;background:var(--ink)}
  .xproj:not(.single) .xstack{width:min(86%,460px)}
  .xproj:not(.single) .xcaps{padding:0 0 30vh}
  .xproj:not(.single) .xcap{min-height:70vh;justify-content:flex-start;padding-top:24px;margin:0}
}
.pg-story .links--1{width:min(229px,100%)}
.pg-story .links--2{width:min(459px,100%);margin-top:24px}
.pg-story .contact__sub{margin-top:40px}
.xname-row+.footer__note{margin-top:48px}
