:root{
  --color-bg:#eeede8;
  --color-paper:#f7f6f1;
  --color-ink:#11110f;
  --color-muted:#686963;
  --color-line:rgba(17,17,15,.18);
  --color-line-strong:rgba(17,17,15,.42);
  --color-accent-blue:#264f63;
  --color-accent-warm:#b86e4e;
  --bg:var(--color-bg);--paper:var(--color-paper);--ink:var(--color-ink);--muted:var(--color-muted);--line:var(--color-line);--line-strong:var(--color-line-strong);--accent:var(--color-accent-blue);--warm:var(--color-accent-warm);
  --gutter:clamp(20px,3.6vw,64px);
  --gap:clamp(10px,1.15vw,20px);
  --header:58px;
  --type-display:clamp(5.4rem,10.2vw,10.8rem);
  --type-section:clamp(4rem,8.2vw,8.6rem);
  --type-case-title:clamp(4.5rem,9.5vw,10rem);
  --type-case-heading:clamp(2.2rem,3.8vw,4.4rem);
  --type-project:clamp(2.2rem,4.4vw,4.8rem);
  --type-body-lg:clamp(1.05rem,1.5vw,1.48rem);
  --type-body:1rem;
  --type-small:.875rem;
  --type-micro:.75rem;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --space-1:8px;--space-2:12px;--space-3:20px;--space-4:32px;--space-5:48px;--space-6:70px;
  --space-7:clamp(90px,10vw,150px);--space-8:clamp(120px,13vw,190px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.35;overflow-x:hidden;font-synthesis:none}
body.case-open{overflow:hidden}
a{color:inherit;text-decoration:none} button{font:inherit;color:inherit} button,a{touch-action:manipulation}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px} ::selection{background:var(--ink);color:var(--bg)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gap);padding-inline:var(--gutter)}
.micro{font-family:var(--mono);text-transform:uppercase;letter-spacing:.135em;font-size:var(--type-micro);line-height:1.35;color:var(--muted)}

/* shell */
.nav{position:fixed;z-index:80;inset:0 0 auto;height:var(--header);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding-inline:var(--gutter);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{justify-self:start;font-size:.78rem;font-weight:700;letter-spacing:.11em}.menu{display:flex;gap:24px;font-size:.75rem}.nav-meta{justify-self:end}

/* homepage */
.hero{min-height:100svh;padding-top:var(--header);position:relative;border-bottom:1px solid var(--line)}
.hero-top{min-height:55svh;align-items:end;padding-top:clamp(56px,8vh,110px);padding-bottom:clamp(30px,4vw,58px)}
.hero-kicker{grid-column:1/5;align-self:start;margin-top:4px}
.hero-title{grid-column:1/9;margin:0;font-size:var(--type-display);line-height:.88;letter-spacing:-.065em;font-weight:700;max-width:9ch;text-wrap:balance;}
.hero-copy{grid-column:9/13;align-self:end;margin:0 0 .25rem;font-size:var(--type-body-lg);line-height:1.2;letter-spacing:-.025em;max-width:25ch}
.reveal{display:block;overflow:hidden;padding-bottom:.18em;margin-bottom:-.18em;}
.reveal>span{display:block;animation:heroIn .9s cubic-bezier(.2,.75,.2,1) both;animation-delay:calc(var(--i)*80ms);
}@keyframes heroIn{from{transform:translateY(110%)}to{transform:none}}
.ticker{min-height:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;display:flex;align-items:center}
.ticker-track{display:flex;width:100%;white-space:nowrap;font-size:clamp(1.7rem,2.7vw,3rem);line-height:1;letter-spacing:-.05em;font-weight:400;padding-inline:var(--gutter)}
.capabilities{min-height:calc(45svh - 70px);display:grid;grid-template-columns:repeat(4,1fr)}
.capability{position:relative;overflow:hidden;border:0;border-right:1px solid var(--line);background:transparent;text-align:left;padding:18px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;transition:background .25s,color .25s}
.capability:last-child{border-right:0}.capability .cap-index{color:var(--muted)}.capability strong{font-size:clamp(1rem,1.3vw,1.35rem);font-weight:500;letter-spacing:-.02em}
.capability p{max-width:23ch;margin:0 0 12px;font-size:.78rem;line-height:1.4;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease}
.capability:hover,.capability[aria-pressed="true"]{background:var(--ink);color:var(--bg)}.capability:hover .cap-index,.capability[aria-pressed="true"] .cap-index{color:rgba(238,237,232,.6)}.capability:hover p,.capability[aria-pressed="true"] p{opacity:1;transform:none}
.practice{min-height:74svh;align-content:center;padding-top:clamp(110px,14vw,210px);padding-bottom:clamp(130px,16vw,240px)}
.practice .micro{grid-column:1/4}.practice h2{grid-column:4/13;margin:0;font-size:clamp(3.3rem,6.3vw,7.1rem);line-height:.94;letter-spacing:-.058em;font-weight:500;max-width:12.6ch}.practice em{font-style:normal;color:var(--muted)}
.work{border-top:1px solid var(--line);padding-top:42px;padding-bottom:clamp(120px,15vw,220px)}.work-head{align-items:end;padding-bottom:40px}.work-head h2{grid-column:1/10;margin:0;font-size:var(--type-section);line-height:.82;letter-spacing:-.073em;font-weight:700}.work-note{grid-column:10/13;align-self:end;text-align:right}.filters-status{margin-top:12px;color:var(--muted)}
.rows{border-top:1px solid var(--line)}
.project{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding-inline:var(--gutter);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.project[hidden]{display:none}.project-index{grid-column:1/2;padding-top:20px}.project-main{grid-column:2/7;padding:20px 0 var(--space-4);display:flex;flex-direction:column;justify-content:space-between;min-height:330px}.project-title{margin:0;font-size:var(--type-project);line-height:.93;letter-spacing:-.055em;font-weight:500}.project-role{margin:8px 0 0;max-width:46ch}.project-argument{margin:var(--space-4) 0 0;max-width:36ch;font-size:1rem;line-height:1.45;color:var(--muted)}
.project-proof{display:flex;gap:24px;align-items:end;flex-wrap:wrap;margin-top:var(--space-5)}.proof-number{font-size:clamp(2rem,2.7vw,3.1rem);letter-spacing:-.055em;line-height:.9}.proof-label{max-width:18ch}
.project-visual{grid-column:7/12;margin:20px 0;aspect-ratio:16/10;min-height:0;position:relative;overflow:hidden;border:1px solid var(--line);background:var(--paper);transform:translateZ(0)}.project-arrow{grid-column:12/13;padding-top:20px;display:flex;justify-content:flex-end}.open-project{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s,transform .2s}.open-project:hover{background:var(--ink);color:var(--bg);transform:rotate(45deg)}
.project-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.project:hover .project-visual img,.project:focus-within .project-visual img{transform:scale(1.015)}
.visual-spotify{background:#111;color:#fff}.visual-shandoka{background:#0d0e0e;color:var(--bg)}.visual-pitchkit{background:#e7e6df}.visual-blauw{background:#d9ddd7;color:#111}.visual-blauw .browser{position:absolute;border:1px solid var(--line-strong);background:rgba(247,246,241,.72)}.visual-blauw .browser.one{left:7%;top:15%;width:58%;height:58%}.visual-blauw .browser.two{right:6%;bottom:12%;width:48%;height:48%}.visual-blauw .browser:before{content:"";display:block;height:26px;border-bottom:1px solid var(--line);background:rgba(17,17,15,.04)}.visual-blauw .browser:after{content:"";position:absolute;left:10%;right:10%;top:42%;height:28%;background:linear-gradient(90deg,var(--accent) 0 48%,var(--warm) 48%)}.visual-label{position:absolute;left:16px;top:14px}.visual-foot{position:absolute;left:16px;bottom:14px;right:16px;display:flex;justify-content:space-between;gap:18px}
.more{border-top:1px solid var(--line);padding-top:34px}.more-head{padding-bottom:24px}.more-head .micro{grid-column:1/4}.more-head p{grid-column:7/13;margin:0;font-size:1rem;color:var(--muted)}.more-row{display:grid;grid-template-columns:90px 1fr 1fr auto;gap:var(--gap);align-items:center;padding:18px var(--gutter);border-top:1px solid var(--line)}.more-row:last-child{border-bottom:1px solid var(--line)}.more-row strong{font-weight:500;font-size:1.08rem}.more-row span{font-size:.82rem;color:var(--muted)}
.about{background:var(--ink);color:var(--bg);padding:clamp(110px,13vw,190px) 0}.about .micro{grid-column:1/4;color:rgba(238,237,232,.55)}.about h2{grid-column:4/13;margin:0;font-size:clamp(3.6rem,7vw,7.6rem);line-height:.92;letter-spacing:-.06em;font-weight:500;max-width:12ch}.about-copy{grid-column:8/13;margin:80px 0 0;font-size:clamp(1.05rem,1.4vw,1.35rem);color:rgba(238,237,232,.72);max-width:36ch}.footer{background:var(--ink);color:var(--bg);border-top:1px solid rgba(238,237,232,.16);padding:28px var(--gutter);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.75rem}

/* case shell */
.case-stage{position:fixed;z-index:120;inset:0;background:var(--bg);transform:translateY(100%);visibility:hidden;transition:transform .58s cubic-bezier(.2,.78,.2,1),visibility 0s linear .58s;overflow:auto;overscroll-behavior:contain}.case-stage[aria-hidden="false"]{transform:none;visibility:visible;transition-delay:0s}.case-head{position:sticky;top:0;z-index:4;height:var(--header);display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(14px)}.case-close{border:0;background:transparent;cursor:pointer;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}
.case-hero{min-height:78svh;align-content:end;padding-top:calc(var(--header) + var(--space-5));padding-bottom:var(--space-7);border-bottom:1px solid var(--line)}.case-hero>.micro{grid-column:1/3;align-self:start}.case-hero h2{grid-column:3/10;margin:0;font-size:var(--type-case-title);line-height:.82;letter-spacing:-.074em;font-weight:700}.case-summary{grid-column:10/13;align-self:end;margin:0;font-size:var(--type-body-lg);line-height:1.25;letter-spacing:-.02em}.case-summary strong{font-weight:600}.case-proof-grid{grid-column:3/13;margin-top:var(--space-6);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.case-proof-grid>div{padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:108px}.case-proof-grid strong{display:block;font-size:clamp(1rem,1.35vw,1.25rem);font-weight:500;letter-spacing:-.025em}.case-proof-grid span{display:block;margin-top:9px;color:var(--muted);font-size:.76rem;max-width:24ch}
.metadata-grid{grid-column:3/13;margin-top:var(--space-4);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-strong)}.metadata-item{padding:14px 18px 0 0}.metadata-item span{display:block;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;color:var(--muted);margin-bottom:6px}.metadata-item strong{font-size:.82rem;font-weight:500;line-height:1.35}
.case-hero-visual{grid-column:3/13;margin-top:var(--space-6);border:1px solid var(--line);background:var(--paper);overflow:hidden}.case-hero-visual img{display:block;width:100%;height:auto}.case-hero-visual--dark{background:#0f1114}.case-hero-visual--pitchkit{position:relative}.hero-evidence-note{position:absolute;left:3.3%;top:67.5%;width:31.5%;min-height:10.5%;display:flex;align-items:center;padding:8px 12px;background:linear-gradient(90deg,rgba(4,8,12,.99),rgba(7,11,16,.99));color:#eeede8;font-family:var(--mono);font-size:clamp(.62rem,.72vw,.76rem);line-height:1.3;letter-spacing:.03em}

.case-story,.case-chapter{padding-top:var(--space-7);padding-bottom:var(--space-7);border-bottom:1px solid var(--line)}.story-label,.block-index{grid-column:1/3}.story-copy,.block-copy{grid-column:3/8}.story-copy h3,.block-copy h3{margin:0 0 22px;font-size:var(--type-case-heading);line-height:.98;letter-spacing:-.045em;font-weight:500;max-width:15ch}.story-copy p,.block-copy p{margin:0;color:var(--muted);font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.68;max-width:64ch}.block-copy p+p{margin-top:18px}.block-copy blockquote{margin:32px 0 0;padding:22px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);font-size:clamp(1.35rem,2vw,2rem);line-height:1.15;letter-spacing:-.025em}
.chapter-caption,.case-caption{grid-column:9/13;align-self:start;border-top:1px solid var(--line-strong);padding-top:14px;font-size:.78rem;line-height:1.48;color:var(--muted)}.chapter-caption strong,.case-caption strong{display:block;color:var(--ink);font-size:.86rem;font-weight:500;margin-bottom:5px}
.case-module,.evidence{grid-column:3/13;margin-top:var(--space-6);min-width:0}.evidence.frame,.case-module.frame{border:1px solid var(--line);background:var(--paper);overflow:hidden}
.evidence-image{grid-column:3/13;margin-top:var(--space-6);border:1px solid var(--line);background:var(--paper);overflow:hidden}.evidence-image img{display:block;width:100%;height:auto}.evidence-image--dark{background:#0d0e0e}.evidence-caption{font-family:var(--mono);font-size:.7rem;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:10px}
.evidence-pair{grid-column:3/13;margin-top:var(--space-6);display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:#fff;overflow:hidden}.evidence-pair figure{margin:0;min-width:0}.evidence-pair figure+figure{border-left:1px solid var(--line)}.evidence-pair img{display:block;width:100%;height:100%;object-fit:cover}.evidence-pair figcaption{position:static;padding:10px 12px;border-top:1px solid var(--line);background:var(--bg);font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.system-flow{grid-column:3/13;margin-top:var(--space-6);display:grid;grid-template-columns:repeat(var(--steps,6),minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.system-step{min-height:126px;padding:16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;background:transparent}.system-step .n{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.system-step strong{font-size:.95rem;line-height:1.16;font-weight:500}.system-step span:last-child{font-size:.75rem;line-height:1.35;color:var(--muted);margin-top:8px}
.system-signature{grid-column:3/13;margin-top:var(--space-4);font-size:clamp(2.2rem,4vw,4.6rem);letter-spacing:-.06em;line-height:.92;max-width:15ch}
.evidence-matrix{grid-column:3/13;margin-top:var(--space-6);display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.evidence-item{padding:22px;min-height:190px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.evidence-item .tag{font-family:var(--mono);font-size:.67rem;line-height:1;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.evidence-item h4{font-size:1.2rem;line-height:1.08;margin:26px 0 12px;font-weight:500}.evidence-item p{font-size:.88rem;line-height:1.5;color:var(--muted);margin:0}.evidence-item strong{font-size:1rem;font-weight:500}
.product-ui-evidence{grid-column:3/13;margin-top:var(--space-6);border:1px solid var(--line);background:var(--paper);overflow:hidden}.data-evidence{grid-column:3/13;margin-top:var(--space-6);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);padding:var(--space-4) 0}

/* Live product evidence */
.live-product-evidence{grid-column:3/13;margin-top:var(--space-6);border:1px solid var(--line);background:var(--paper);overflow:hidden}
.live-product-bar{min-height:52px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);font-size:.78rem}
.live-product-bar span{color:var(--muted)}
.live-product-bar a{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;border-bottom:1px solid var(--line-strong);padding-bottom:2px}
.live-product-frame{display:block;width:100%;height:min(74svh,760px);border:0;background:#fff}
.live-product-fallback{padding:18px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem;line-height:1.45}


/* Blauw Studio case */
/* Blauw sits smaller than the other covers: a quiet photo, not a poster. */
@media(min-width:761px){.project-visual.visual-blauw{grid-column:9/12}}
.blauw-hero-field{grid-column:3/13;margin-top:var(--space-6);min-height:310px;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.15fr .85fr;align-items:end;padding:var(--space-5) 0;overflow:hidden}
.blauw-hero-field h3{margin:0;font-size:clamp(3.3rem,6vw,7rem);line-height:.9;letter-spacing:-.065em;font-weight:500;max-width:10ch}.blauw-hero-field p{align-self:start;margin:0 0 0 auto;max-width:30ch;border-top:1px solid var(--line-strong);padding-top:14px;color:var(--muted);font-size:1rem;line-height:1.5}
.wire-flow{grid-column:3/13;margin-top:var(--space-6);position:relative;min-height:260px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:38px 0 26px;overflow:hidden}
.wire-flow svg{position:absolute;left:0;right:0;top:74px;width:100%;height:82px;overflow:visible;pointer-events:none}.wire-base{fill:none;stroke:var(--line-strong);stroke-width:1}.wire-signal{animation:none}.wire-flow-steps{position:relative;z-index:2;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.wire-node{min-width:0;padding:0 12px;text-align:center}.wire-dot{width:10px;height:10px;border-radius:50%;margin:40px auto 28px;background:var(--bg);border:1px solid var(--line-strong);box-shadow:0 0 0 5px var(--bg)}.wire-node .n{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:var(--muted);margin-bottom:8px}.wire-node strong{display:block;font-size:.9rem;font-weight:500;line-height:1.15}.wire-node p{margin:8px auto 0;max-width:15ch;font-size:.72rem;line-height:1.35;color:var(--muted)}
.cdt-board{grid-column:3/13;margin-top:var(--space-6);position:relative;min-height:720px;border:1px solid var(--line);background:var(--paper);padding:36px;overflow:hidden}.cdt-site{width:78%;margin-left:auto;border:1px solid var(--line);background:#fff}.cdt-site img,.cdt-ad img{display:block;width:100%;height:auto}.cdt-ad{position:absolute;left:3.2%;top:15%;width:38%;background:#fff;border:1px solid var(--line);padding:12px}.artifact-label{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.cdt-outcome{position:absolute;right:3.2%;bottom:5%;width:28%;background:color-mix(in srgb,var(--bg) 96%,transparent);border-top:1px solid var(--line-strong);padding:18px}.cdt-outcome strong{display:block;font-size:clamp(1.5rem,2.2vw,2.4rem);font-weight:500;letter-spacing:-.04em}.cdt-outcome p{margin:12px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}.claim-note{grid-column:3/13;margin-top:14px;font-family:var(--mono);font-size:.66rem;line-height:1.45;color:var(--muted)}
.lifecycle-strip{grid-column:3/13;margin-top:var(--space-6);display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.lifecycle-step{padding:22px 14px;min-height:130px;border-right:1px solid var(--line)}.lifecycle-step:last-child{border-right:0}.lifecycle-step .n{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:var(--muted);margin-bottom:30px}.lifecycle-step strong{display:block;font-size:.98rem;font-weight:500}.lifecycle-step span:last-child{display:block;margin-top:7px;font-size:.74rem;line-height:1.35;color:var(--muted)}
.client-index{grid-column:3/13;margin-top:var(--space-6);border-top:1px solid var(--line-strong)}.client-row{display:grid;grid-template-columns:64px 1.2fr 1fr auto;gap:var(--gap);align-items:center;min-height:88px;border-bottom:1px solid var(--line);padding:14px 0}.client-row .idx{font-family:var(--mono);font-size:.67rem;color:var(--muted)}.client-row strong{font-size:1.15rem;font-weight:500}.client-row span{font-size:.82rem;color:var(--muted)}.client-row .arrow{font-size:1rem;color:var(--ink)}
.live-product-shot{display:block;width:100%;height:auto}

.case-closing{padding-top:var(--space-8);padding-bottom:var(--space-8);background:var(--ink);color:var(--bg)}.case-closing .micro{grid-column:1/3;color:rgba(238,237,232,.55)}.case-closing h3{grid-column:3/10;margin:0;font-size:clamp(3.2rem,6.4vw,7rem);line-height:.94;letter-spacing:-.06em;font-weight:500;max-width:11ch}.case-closing p{grid-column:10/13;align-self:end;margin:0;color:rgba(238,237,232,.68);font-size:1rem;line-height:1.5}.case-closing .closing-line{grid-column:3/13;margin-top:var(--space-6);border-top:1px solid rgba(238,237,232,.22);padding-top:20px;font-size:clamp(1.35rem,2vw,2rem);letter-spacing:-.03em}


/* Editorial case-study system --------------------------------------------- */
.evidence-framework{grid-column:3/13;margin-top:var(--space-6);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}
.evidence-framework article{padding:16px 16px 22px 0;border-right:1px solid var(--line);min-height:170px}
.evidence-framework article+article{padding-left:16px}.evidence-framework article:last-child{border-right:0}
.evidence-framework p{margin:28px 0 0;font-size:.82rem;line-height:1.5;color:var(--muted);max-width:26ch}
.case-index{position:fixed;z-index:3;left:var(--gutter);top:calc(var(--header) + 38px);width:clamp(138px,14vw,208px);max-height:calc(100svh - var(--header) - 74px);overflow:auto;padding-right:18px}
.case-index-eyebrow{padding-bottom:14px;border-bottom:1px solid var(--line-strong)}
.case-index nav{display:block}
.case-index a{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.72rem;line-height:1.25;color:var(--muted);transition:color .18s ease,opacity .18s ease}
.case-index a span{font-family:var(--mono);font-size:.61rem;letter-spacing:.08em;padding-top:1px}
.case-index a strong{font-weight:500;color:inherit;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.case-index a:hover,.case-index a.is-active{color:var(--ink)}
.case-index a.is-active{border-bottom-color:var(--line-strong)}
.case-index a.is-active span{color:var(--accent)}
.case-index .on-dark{color:rgba(238,237,232,.55);border-color:rgba(238,237,232,.22)}
.case-index a.on-dark:hover,.case-index a.on-dark.is-active{color:var(--bg)}
.case-index a.on-dark.is-active{border-bottom-color:rgba(238,237,232,.5)}
.article-figure{position:relative}
.article-figure::after{content:"FIG " attr(data-figure);position:absolute;right:10px;top:10px;z-index:2;padding:5px 7px;background:color-mix(in srgb,var(--paper) 88%,transparent);border:1px solid var(--line);font-family:var(--mono);font-size:.58rem;line-height:1;letter-spacing:.09em;color:var(--muted);backdrop-filter:blur(8px)}
/* The fixed case index occupies columns 1-2, so section labels sit above their content instead. */
@media(min-width:1001px){.case-hero>.micro,.story-label,.block-index,.case-closing>.micro{grid-column:3/13;grid-row:1;margin-bottom:var(--space-4)}}
.case-stage[aria-hidden="false"] .case-story,.case-stage[aria-hidden="false"] .case-chapter{scroll-margin-top:calc(var(--header) + 34px)}

@media(max-width:1000px){.case-index{display:none}.evidence-framework{grid-template-columns:repeat(2,1fr)}.evidence-framework article{border-bottom:1px solid var(--line)}.hero-title{grid-column:1/9}.hero-copy{grid-column:9/13}.practice .micro{grid-column:1/3}.practice h2{grid-column:3/13}.project-main{grid-column:2/8}.project-visual{grid-column:8/12}.more-row{grid-template-columns:60px 1.2fr 1fr auto}.system-flow{grid-template-columns:repeat(3,1fr)}.evidence-matrix{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  :root{--gutter:20px;--gap:10px;--header:54px;--type-display:clamp(4.4rem,20vw,7rem);--type-section:clamp(3.7rem,17vw,6.3rem);--type-project:clamp(2.25rem,11vw,4rem);--space-6:48px;--space-7:96px;--space-8:124px}
  .nav{grid-template-columns:1fr auto}.menu{gap:14px}.nav-meta{display:none}.hero-top{min-height:62svh;display:block;padding-top:54px;padding-bottom:38px}.hero-kicker{margin-bottom:54px}.hero-title{max-width:7ch}.hero-copy{margin-top:34px;max-width:29ch}.ticker{min-height:58px}.ticker-track{font-size:2.35rem;padding-inline:20px}.capabilities{min-height:0;grid-template-columns:repeat(2,1fr)}.capability{min-height:190px;border-bottom:1px solid var(--line)}.capability:nth-child(2){border-right:0}.capability p{opacity:1;transform:none;max-width:18ch}.capability[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
  .practice{display:block;min-height:auto;padding-top:120px;padding-bottom:140px}.practice .micro{margin-bottom:40px;display:block}.practice h2{font-size:clamp(3rem,13vw,5rem)}.work-head{display:block}.work-head h2{margin-bottom:28px}.work-note{text-align:left}
  .project{grid-template-columns:42px 1fr;column-gap:10px}.project-index{grid-column:1;padding-top:18px}.project-main{grid-column:2;padding:18px 0 24px;min-height:auto}.project-argument{margin-top:24px;max-width:30ch}.project-proof{margin-top:32px}.project-visual{grid-column:1/3;margin:10px 0 0;aspect-ratio:4/3}.project-arrow{position:absolute;right:18px;top:12px}.open-project{width:40px;height:40px}.more-head{display:block}.more-head .micro{display:block;margin-bottom:18px}.more-head p{max-width:32ch}.more-row{grid-template-columns:38px 1fr auto;padding-inline:var(--gutter)}.more-row span:nth-child(3){display:none}.about{display:block;padding-inline:var(--gutter)}.about .micro{display:block;margin-bottom:44px}.about h2{font-size:clamp(3.1rem,13vw,5.3rem)}.about-copy{margin:58px 0 0;max-width:31ch}

  .blauw-hero-field{display:block;min-height:0;padding:40px 0}.blauw-hero-field h3{font-size:clamp(3rem,13vw,5.4rem)}.blauw-hero-field p{margin:30px 0 0;max-width:29ch}
  .wire-flow{min-height:0;padding:0;border-top:1px solid var(--line-strong)}.wire-flow svg{display:none}.wire-flow-steps{grid-template-columns:1fr}.wire-node{position:relative;text-align:left;padding:18px 0 18px 42px;border-bottom:1px solid var(--line)}.wire-node:before{content:"";position:absolute;left:14px;top:0;bottom:0;width:1px;background:var(--line-strong)}.wire-node:after{content:"";position:absolute;left:10px;top:31px;width:9px;height:9px;border-radius:50%;background:var(--bg);border:1px solid var(--line-strong)}.wire-dot{display:none}.wire-node .n{margin-bottom:5px}.wire-node p{margin:5px 0 0;max-width:none}
  .cdt-board{min-height:0;padding:16px;display:flex;flex-direction:column;gap:16px}.cdt-site{width:100%;margin:0;order:1}.cdt-ad{position:static;width:100%;order:2;padding:10px}.cdt-outcome{position:static;width:100%;order:3;background:transparent;padding:18px 0 2px}.claim-note{margin-top:12px}.lifecycle-strip{grid-template-columns:1fr;border-bottom:0}.lifecycle-step{min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:18px 0;display:grid;grid-template-columns:34px 1fr}.lifecycle-step .n{margin:0}.lifecycle-step span:last-child{grid-column:2}.client-row{grid-template-columns:38px 1fr auto;min-height:78px}.client-row span:nth-child(3){display:none}.mizzica-frame{height:600px}
  .evidence-framework{display:grid;grid-template-columns:1fr;margin-top:42px}.evidence-framework article,.evidence-framework article+article{padding:16px 0 20px;border-right:0;border-bottom:1px solid var(--line);min-height:0}.evidence-framework p{margin-top:14px;max-width:none}.case-hero,.case-story,.case-chapter{display:block;padding-inline:var(--gutter)}.case-hero>.micro{display:block;margin-bottom:44px}.case-hero h2{font-size:clamp(4rem,18vw,7.4rem)}.case-summary{margin-top:36px;max-width:30ch}.case-proof-grid{grid-template-columns:1fr 1fr;margin-top:42px}.case-proof-grid>div{min-height:100px}.metadata-grid{grid-template-columns:1fr 1fr;margin-top:32px}.metadata-item{padding-top:14px}.case-hero-visual{margin-top:48px}.story-label,.block-index{display:block;margin-bottom:34px}.story-copy h3,.block-copy h3{font-size:clamp(2.7rem,12vw,4.5rem)}.chapter-caption,.case-caption{margin-top:38px}.case-module,.evidence,.evidence-image,.evidence-pair,.system-flow,.evidence-matrix,.product-ui-evidence,.data-evidence{margin-top:48px}.system-flow{grid-template-columns:1fr;border-left:0}.system-step{min-height:auto;padding:16px 0;border-right:0;border-left:0;display:grid;grid-template-columns:34px 1fr;gap:12px}.system-step strong{align-self:start}.system-step span:last-child{grid-column:2;margin-top:0}.evidence-matrix{grid-template-columns:1fr;border-left:0}.evidence-item{min-height:auto;border-right:0;padding:22px 0}.evidence-pair{display:block}.evidence-pair figure+figure{border-left:0;border-top:1px solid var(--line)}.live-product-evidence{margin-top:48px}.live-product-bar{align-items:flex-start;flex-direction:column;padding:14px 16px;gap:8px}.live-product-frame{height:560px}.hero-evidence-note{left:3.3%;top:66.5%;width:34%;min-height:13.5%;padding:4px 5px;font-size:.48rem;line-height:1.18}.case-closing{display:block;padding-inline:var(--gutter)}.case-closing .micro{display:block;margin-bottom:42px}.case-closing h3{font-size:clamp(3rem,13vw,5.2rem)}.case-closing p{margin-top:38px;max-width:30ch}.case-closing .closing-line{margin-top:58px}
}
@media(hover:none){.capability p{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal>span{animation:none!important}.case-stage,.capability,.open-project,.project-visual img{transition:none!important}.wire-signal{animation:none!important;transform:translateX(50%)}}


/* D8 — GSAP motion layer + interface QA */
.skip-link{position:fixed;left:16px;top:12px;z-index:200;transform:translateY(-160%);background:var(--ink);color:var(--bg);padding:10px 14px;font-size:.78rem;border:1px solid var(--line-strong);transition:transform .18s ease}.skip-link:focus-visible{transform:none}
.menu a,.brand,.case-close,.client-row{transition:opacity .18s ease,color .18s ease}.menu a:hover,.brand:hover,.case-close:hover{opacity:.58}.client-row:hover strong,.client-row:focus-visible strong{color:var(--accent)}
.hero-title,.practice h2,.work-head h2,.about h2,.story-copy h3,.block-copy h3,.case-closing h3{text-wrap:balance}
.reveal>span{animation:none!important}
.motion-section{transform-origin:50% 20%;will-change:transform,opacity}
.motion-copy{will-change:transform,opacity}
.project.motion-project{transform-origin:50% 30%;will-change:transform,opacity}
.wire-flow{min-height:300px;padding:32px 0 24px}
.wire-flow .wire-desktop{top:62px;height:190px}
.wire-base{stroke:var(--line);stroke-width:1.15;vector-effect:non-scaling-stroke}
.wire-feedback-path{fill:none;stroke:var(--line-strong);stroke-width:1;stroke-dasharray:4 7;opacity:.2;vector-effect:non-scaling-stroke}
.wire-signal{animation:none!important;transform:translateX(0);transform-box:fill-box;transform-origin:center}
.wire-flow-steps{padding-top:0}
.wire-node{padding-inline:10px}
.wire-dot{margin-top:46px;margin-bottom:29px;transform-origin:center;will-change:transform,opacity}
.wire-feedback{position:absolute;left:0;right:0;bottom:21px;text-align:center;color:var(--muted);opacity:.58}
.wire-mobile-progress{display:none}
.case-stage [id]{scroll-margin-top:calc(var(--header) + 18px)}
@media(max-width:760px){
  .wire-flow{position:relative;padding:0 0 38px;min-height:0}
  .wire-flow .wire-desktop{display:none}
  .wire-mobile-progress{display:block;position:absolute;left:14px;top:0;width:1px;height:calc(100% - 44px);background:var(--accent);transform:scaleY(0);transform-origin:top;opacity:.65;z-index:2;pointer-events:none}
  .wire-node{padding-left:42px}
  .wire-node:before{background:var(--line)}
  .wire-feedback{position:static;text-align:left;padding:18px 0 0 42px;opacity:.7}
}
@media(prefers-reduced-motion:reduce){
  .motion-section,.motion-copy,.motion-project,.wire-dot,.wire-mobile-progress{will-change:auto!important;transform:none!important;opacity:1!important}
  .wire-mobile-progress{transform:scaleY(1)!important}
  .wire-feedback-path{opacity:.35!important}
}

/* Production refinements -------------------------------------------------- */
:root{
  --motion-ease:cubic-bezier(.22,.78,.2,1);
  --motion-ease-soft:cubic-bezier(.2,.7,.2,1);
}
.brand-lockup{display:flex;align-items:center;gap:11px;min-width:max-content}
.brand-logo{display:block;width:auto;height:22px}
.brand-person{font-size:.68rem;font-weight:500;letter-spacing:.02em;color:var(--muted)}
.case-brand,.footer-brand{display:flex;align-items:center;gap:10px}
.case-brand img,.footer-brand img{display:block;width:auto;height:20px}
.case-brand span{font-family:var(--mono);font-size:.66rem;letter-spacing:.11em;color:var(--muted)}
.footer-brand span{font-size:.75rem}
.footer-brand img{filter:invert(1);opacity:.92}
.case-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;will-change:transform}

.hero-title{grid-column:1/10;font-size:min(8.8rem,calc(((100vw - 2*var(--gutter) - 11*var(--gap))*.75 + 8*var(--gap))/10.3));max-width:none}
.hero-title .reveal>span{white-space:nowrap}
.hero-copy{grid-column:10/13;max-width:29ch}


/* Hero character motion ---------------------------------------------------- */
.hero{--halo-x:50%;--halo-y:34%;isolation:isolate}
.hero::before{
  content:"";
  position:absolute;
  inset:var(--header) 0 auto 0;
  height:min(62svh,720px);
  pointer-events:none;
  z-index:0;
  opacity:0;
  background:
    radial-gradient(circle at var(--halo-x) var(--halo-y),rgba(38,79,99,.15) 0,rgba(38,79,99,.07) 13%,rgba(38,79,99,0) 35%),
    radial-gradient(circle at calc(var(--halo-x) + 8%) calc(var(--halo-y) + 5%),rgba(184,110,78,.11) 0,rgba(184,110,78,.04) 12%,rgba(184,110,78,0) 31%);
  filter:blur(10px);
  transform:translateZ(0);
  transition:opacity .5s var(--motion-ease-soft);
}
.hero.hero-halo-active::before{opacity:1}
.hero>.hero-top,.hero>.ticker,.hero>.capabilities{position:relative;z-index:1}
.hero-title .reveal{overflow:visible}
.hero-word{display:inline-block;white-space:nowrap}
.hero-char{display:inline-block;text-align:center}
/* Hero title sequence: the title paints muted in its final position, then is inked in
   place. Kicker, copy and ticker wait for the sequence (4s fallback in app.js). */
.motion-pending .hero-title{color:var(--muted)}
.motion-pending :is(.hero-kicker,.hero-copy,.ticker-track){opacity:0}
.hero-title .reveal{position:relative}
.hero-ink{position:absolute;left:-.1em;top:-.2em;right:-.3em;bottom:-.3em;overflow:hidden;pointer-events:none}
.hero-ink>span{display:block;padding:.2em .3em .3em .1em;color:var(--ink)}
.hero-head,.hero-rule{position:absolute;left:0;top:0;z-index:2;pointer-events:none;background:var(--accent)}
.hero-head{width:3px;height:100px}
.hero-rule{right:0;height:2px}
.js-motion :is(.practice,.work-head,.about) h2:not(.is-split){opacity:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Delay work below the first viewport without changing document semantics. */
.more,.about{content-visibility:auto;contain-intrinsic-size:900px}

/* UX in Motion: expectation, continuity, narrative, relationship. */
.motion-observe{opacity:0;transform:translateY(22px) scale(.992);transition:opacity .58s var(--motion-ease),transform .58s var(--motion-ease);transition-delay:var(--motion-delay,0ms)}
.motion-observe.is-visible{opacity:1;transform:none}
.motion-child{opacity:0;transform:translateY(16px);transition:opacity .5s var(--motion-ease),transform .5s var(--motion-ease);transition-delay:var(--motion-delay,0ms)}
.motion-child.is-visible{opacity:1;transform:none}
.project,.capability,.open-project,.project-visual img{transition-timing-function:var(--motion-ease-soft)}
.case-stage{transition:transform .5s var(--motion-ease),visibility 0s linear .5s}
.case-stage[aria-hidden="false"]{transition-delay:0s}

@media(max-width:760px){
  .brand-person{display:none}
  .brand-logo{height:20px}
  .hero-title{font-size:clamp(3rem,13.2vw,5.2rem)}
  .hero-copy{max-width:31ch}
  .hero-title .reveal>span{white-space:normal}
}
@media(prefers-reduced-motion:reduce){
  .motion-observe,.motion-child,.hero-char{opacity:1!important;transform:none!important;filter:none!important;text-shadow:none!important;transition:none!important}
  .hero::before{display:none!important}
  .case-stage{transition:none!important}
  .case-progress{transition:none!important}
}


/* Cal.com booking trigger: matches the embed's floating button; the embed itself loads on first click. */
.cal-trigger{position:fixed;right:40px;bottom:24px;z-index:50;display:inline-flex;align-items:center;gap:14px;padding:20px 24px;border-radius:999px;background:#000;color:#fff;font-size:1rem;font-weight:500;line-height:1;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:transform .2s var(--motion-ease)}
.cal-trigger:hover{transform:scale(1.03)}
.cal-trigger.is-tucked{opacity:0;visibility:hidden;transform:translateY(12px);transition:transform .25s var(--motion-ease),opacity .2s ease,visibility 0s .25s}
.cal-trigger{transition:transform .2s var(--motion-ease),opacity .2s ease,visibility 0s}
@media(max-width:760px){.cal-trigger{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.cal-trigger{transition:none}}
