/* STORY — extrafazant.nl structure & motion (image-trail hero, tilted polaroid chapters,
   standard CTAs, 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 .hv .ww{display:inline-block;white-space:nowrap}
.pg-story .line{overflow:clip;padding-bottom:.08em}
.pg-story{overflow-wrap:normal;word-break:normal;hyphens:manual}

/* ---- 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}

.xlinks{display:flex;flex-wrap:wrap;gap:14px;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}
/* frames hug each photo: the full image shows, never cropped */
.pol{height:auto!important;bottom:auto!important}
.pol img{width:100%;height:auto;background:var(--tile)}
.pol.logo img{aspect-ratio:4/3;object-fit:contain;padding:18% 16%;background:#fff}
.xcollage.n1{aspect-ratio:auto;padding-block:4%}
.n1 .pol{position:relative;width:80%;margin-inline:auto;rotate:-3deg}
.n2 .p0{left:0;top:4%;width:62%;height:70%;rotate:-6deg}
.n2 .p1{right:0;top:30%;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%;top:50%;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%;top:52%;width:46%;height:46%;rotate:3deg}
.n4 .p3{right:2%;top:50%;width:46%;height:46%;rotate:-5deg}

/* ---- hero scroll cue: label + tile arrow */
.xline{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font-weight:500;font-size:16px}
.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{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}
/* ---- 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}
/* left card = the same white wcard as "Next case studies" */
.xstack{position:relative;width:min(100%,420px,calc((100vh - 200px)*.72));aspect-ratio:420/600;transform-style:preserve-3d}
.xslide{position:absolute;inset:0;overflow:hidden;display:flex;flex-direction:column;color:var(--ink);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);will-change:transform}
/* image takes whatever height the caption leaves, so every card fills the frame */
.xslide .wcard__frame{flex:1;min-height:0;display:flex}
.xslide .wcard__img{flex:1;aspect-ratio:auto}
.xproj.single .xslide .wcard__img{aspect-ratio:4/3}
.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 40px/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}
.xproj.single .xslide{position:relative;inset:auto}
.xproj.single .xstack{aspect-ratio:auto}
.xthumb{display:none}

/* ---- marquee bands (landing small marquee: pixel + serif, hairlines, forest + between) */
.xband{display:block;overflow:hidden;padding-block:22px 20px;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:40px;line-height:1;padding-right:.3em;white-space:nowrap}
.xb-track .hv{font-family:var(--pixel)}
.xb-track .sf{font-family:var(--serif);font-style:italic}
.xb-track .xb-plus{font-family:var(--pixel);font-size:20px;color:var(--forest);padding:0 .9em 0 .6em;transform:translateY(-.08em)}

@media (max-width:991px){
  .xch,.xproj{grid-template-columns:1fr;row-gap:48px}
  .xch{overflow-x:clip}
  .xch.flip .xmedia{order:0}
  .xmedia{min-height:0}
  .xcollage{width:min(100%,440px)}
  .xh{font-size:40px}
  .xb-track>span{font-size:28px}
  .xb-track .xb-plus{font-size:14px}
  .xpin{height:auto;padding:80px 0 0}
  .xcaps{padding:40px 0 80px}
  .xcap{min-height:0;margin-bottom:40px}
  /* multi-card stack on phones: no pin, each project is its image + caption in plain flow */
  .xproj:not(.single) .xpin{display:none}
  .xproj:not(.single) .xcaps{padding:72px 0 32px}
  .xproj:not(.single) .xcap{min-height:0;margin:0 0 64px;gap:20px}
  .xcap .t{font-size:32px}
  .xthumb{display:block;width:100%;background:#fff;padding:12px}
  .xthumb img{width:100%;aspect-ratio:4/3;object-fit:cover}
}
.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}
.nw{white-space:nowrap}

