@font-face{font-family:"Geist Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/geist-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Geist Sans";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/geist-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Geist Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/geist-sans-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Geist Sans";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/geist-sans-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Caveat";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/caveat-latin.woff2") format("woff2")}
:root{
  color-scheme:light dark;
  --page:#fbfcfe;--ink:#17191d;--muted:#626873;--line:rgba(23,25,29,.14);
  --accent:#126fc3;--accent-ink:#fff;--band:#f3f4f6;--media:#e9ebef;--selected:#edf4fc;
  --sans:"Geist Sans",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --hand:"Caveat",cursive;
  --type-display:52px;--type-title:36px;--type-heading:22px;--type-body:18px;--type-caption:16px;--type-small:14px;--type-hand:30px;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:120px;
  --width:1080px;--hero-width:1280px;--reading:720px;--gutter:32px;--radius:8px;--nav-height:88px;--target:44px;
}
@media(prefers-color-scheme:dark){:root{--page:#111315;--ink:#f5f5f7;--muted:#b1b6be;--line:rgba(255,255,255,.16);--accent:#82bfff;--accent-ink:#111315;--band:#191b1e;--media:#24272b;--selected:#202b38}}
*{box-sizing:border-box;letter-spacing:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}
body{margin:0;color:var(--ink);background:var(--page);font:400 var(--type-body)/1.65 var(--sans)}
[hidden]{display:none!important}
img{display:block;max-width:100%}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
a{color:var(--accent);text-underline-offset:var(--space-1)}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:var(--space-1)}
.case-wrap{width:min(var(--width),calc(100% - var(--gutter)*2));margin-inline:auto}
.skip-link{position:fixed;z-index:100;top:var(--space-2);left:var(--space-2);padding:var(--space-3);background:var(--ink);color:var(--page);transform:translateY(-200%)}
.skip-link:focus{transform:none}
.case-nav{position:fixed;top:var(--space-4);left:50%;transform:translateX(-50%);z-index:50;display:flex;gap:var(--space-1);padding:var(--space-2);max-width:calc(100% - var(--space-5));border:1px solid var(--line);border-radius:999px;background:var(--page)}
.case-nav a{display:flex;align-items:center;justify-content:center;min-height:var(--target);padding-inline:var(--space-4);color:var(--ink);font-size:var(--type-small);font-weight:600;text-decoration:none;white-space:nowrap;border-radius:999px}
.case-nav a:hover,.case-nav a[aria-current]{color:var(--accent);background:var(--selected)}
.case-hero{padding:var(--space-9) 0 var(--space-7)}
.hero-grid{display:grid;width:min(var(--hero-width),calc(100% - var(--gutter)*2));grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:var(--space-6);align-items:center}
.kicker{font-size:var(--type-small);font-weight:500;color:var(--accent);margin:0 0 var(--space-4)}
h1{font-size:var(--type-display);line-height:1.08;font-weight:700;margin:0;text-wrap:balance;overflow-wrap:anywhere}
.hero-summary{color:var(--muted);font-size:var(--type-body);line-height:1.65;margin:var(--space-5) 0 0}
.hero-image{width:100%;height:auto;aspect-ratio:8/5;object-fit:contain}
.project-context{padding-bottom:var(--space-7)}
.project-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5);border-top:1px solid var(--line);margin:0;padding-top:var(--space-5)}
.project-facts dt{font-size:var(--type-small);color:var(--muted);margin-bottom:var(--space-2)}
.project-facts dd{font-size:var(--type-caption);line-height:1.5;margin:0;font-weight:500}
.contribution{margin-top:var(--space-6);max-width:var(--reading)}
.hand-note{font:600 var(--type-hand)/1.15 var(--hand);color:var(--accent);margin:0 0 var(--space-3)}
.contribution p{margin:0;color:var(--muted);font-size:var(--type-body)}
.confidential-note{font-size:var(--type-small);color:var(--muted);max-width:var(--reading);padding-top:var(--space-4);border-top:1px solid var(--line);margin:var(--space-5) 0 0}
.case-section{padding-block:var(--space-8)}
.case-section:nth-of-type(odd){background:var(--band)}
.section-heading{margin-bottom:var(--space-6)}
.section-heading h2{font-size:var(--type-title);line-height:1.2;margin:0;max-width:var(--reading);text-wrap:balance}
.section-lead,.reading-copy{max-width:var(--reading);color:var(--muted)}
.section-lead{margin:var(--space-5) 0 0}
.reading-copy{margin-block:var(--space-5)}
.reading-copy p{margin:0}
.migration-map{margin-block:var(--space-6);padding:var(--space-6);background:var(--page);border-radius:var(--radius)}
.migration-map-route{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-6);align-items:center}
.migration-endpoint h3{font-size:var(--type-title);line-height:1.2;margin:0 0 var(--space-2)}
.migration-endpoint p{font-size:var(--type-caption);color:var(--muted);line-height:1.5;margin:0}
.migration-destination h3{color:var(--accent)}
.migration-bridge{display:grid;gap:var(--space-2);text-align:center;font-size:var(--type-small);color:var(--muted)}
.migration-bridge strong{color:var(--ink);font-size:var(--type-caption);font-weight:600}
.migration-line{display:flex;align-items:center;color:var(--accent);font-size:var(--type-hand);line-height:1}
.migration-line::before{content:"";height:1px;flex:1;background:var(--accent)}
.migration-map figcaption{max-width:none;margin-top:var(--space-5);border-top:1px solid var(--line);padding-top:var(--space-4);font-size:var(--type-caption);color:var(--muted);text-align:center}
@media(max-width:600px){
  .migration-map{padding:var(--space-5)}
  .migration-map-route{grid-template-columns:minmax(0,1fr);gap:var(--space-5);text-align:center}
  .migration-bridge{width:100%}
}
.insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);margin-block:var(--space-6);padding-block:var(--space-5);border-top:1px solid var(--line)}
.insight-grid h3{font-size:var(--type-heading);line-height:1.4;margin:0 0 var(--space-2)}
.insight-grid p{margin:0;color:var(--muted)}
blockquote{max-width:var(--reading);border-left:2px solid var(--accent);padding-left:var(--space-5);margin:var(--space-6) 0}
blockquote p{font-size:var(--type-heading);line-height:1.5;margin:0 0 var(--space-2)}
blockquote cite{font-style:normal;color:var(--muted);font-size:var(--type-small)}
.decision-list{margin-block:var(--space-6)}
.decision-list article{display:grid;grid-template-columns:var(--space-6) minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-5);padding-block:var(--space-5);border-top:1px solid var(--line)}
.decision-number{font:600 var(--type-hand)/1 var(--hand);color:var(--accent)}
.decision-list h3{font-size:var(--type-heading);line-height:1.4;margin:0}
.decision-list p{color:var(--muted);margin:0}
.case-gallery{margin-block:var(--space-7);scroll-margin-top:var(--space-5)}
.case-gallery:last-child{margin-bottom:0}
.gallery-tabs{display:grid;grid-template-columns:repeat(var(--tab-columns,4),minmax(0,1fr));gap:var(--space-1);background:var(--page);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2);margin-bottom:var(--space-5)}
.gallery-tabs button{border:0;border-radius:var(--radius);padding:var(--space-2);min-height:var(--target);background:transparent;color:var(--ink);font-size:var(--type-caption);line-height:1.4;font-weight:500}
.gallery-tabs button:hover{background:var(--selected)}
.gallery-tabs button[aria-selected=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}
figure{margin:0 0 var(--space-6)}
.case-gallery figure:last-child,.case-gallery.enhanced figure{margin:0}
.media-stage{position:relative;display:grid;place-items:center;aspect-ratio:8/5;padding:var(--space-5);background:var(--media);border-radius:var(--radius);overflow:hidden}
.media-stage img{width:100%;height:100%;min-height:0;object-fit:contain;position:absolute;inset:var(--space-5);width:calc(100% - var(--space-5)*2);height:calc(100% - var(--space-5)*2)}
figcaption{padding-top:var(--space-4);max-width:var(--reading)}
figcaption h3{font-size:var(--type-body);line-height:1.4;font-weight:600;margin:0 0 var(--space-2)}
figcaption p{font-size:var(--type-caption);line-height:1.6;color:var(--muted);margin:0}
.video-stage{aspect-ratio:16/9;padding:0;border-radius:var(--radius)}
.video-stage iframe{width:100%;height:100%;position:absolute;inset:0;border:0;background:var(--media)}
.video-fallback{display:inline-flex;align-items:center;min-height:var(--target);margin-top:var(--space-2);font-size:var(--type-small)}
.image-zoom,.image-close{display:grid;place-items:center;width:var(--target);height:var(--target);border:1px solid var(--line);border-radius:var(--radius);background:var(--page);color:var(--ink);font-size:var(--type-hand);line-height:1}
.image-zoom{position:absolute;right:var(--space-4);bottom:var(--space-4)}
.image-zoom:hover,.image-close:hover{background:var(--selected);color:var(--accent)}
.image-dialog{max-width:calc(100vw - var(--space-6));max-height:calc(100dvh - var(--space-6));width:max-content;padding:var(--space-7) var(--space-4) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--page);color:var(--ink);overflow:auto}
.image-dialog::backdrop{background:rgba(0,0,0,.75)}
.image-dialog img{max-width:100%;width:auto;height:auto;max-height:none}
.image-close{position:sticky;top:0;float:right;margin-top:calc(var(--space-7)*-1);z-index:1}
.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6);border-block:1px solid var(--line);padding-block:var(--space-5);margin:var(--space-6) 0}
.result-grid dt{font-size:var(--type-small);color:var(--muted)}
.result-grid dd{font-size:var(--type-title);line-height:1.2;font-weight:600;margin:var(--space-2) 0 var(--space-3)}
.result-grid p{font-size:var(--type-caption);line-height:1.6;color:var(--muted);margin:0}
.case-action{display:inline-flex;gap:var(--space-4);align-items:center;min-height:var(--target);padding:var(--space-3) var(--space-5);background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);text-decoration:none;font-weight:600}
.case-action:hover{filter:brightness(.9)}
.next-project{padding-block:var(--space-7);border-top:1px solid var(--line)}
.next-project .case-wrap{display:grid;grid-template-columns:1fr auto;gap:var(--space-3) var(--space-5);align-items:center}
.next-project .hand-note{grid-column:1/-1}
.next-project a{font-size:var(--type-title);line-height:1.3;font-weight:600;color:var(--ink);text-decoration:none}
.next-project a:hover{color:var(--accent)}
.next-project .back-to-work{font-size:var(--type-small)}
.case-footer{padding:var(--space-5);text-align:center;color:var(--muted);font-size:var(--type-small)}
@media(max-width:800px){
  :root{--type-display:44px;--type-title:30px;--type-heading:21px;--type-body:17px;--gutter:24px;--space-8:48px}
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
  .hero-image{width:calc(100% + var(--gutter)*2);max-width:none;margin-inline:calc(var(--gutter)*-1)}
  .project-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .decision-list article{grid-template-columns:var(--space-6) minmax(0,1fr);gap:var(--space-3) var(--space-4)}
  .decision-list p{grid-column:2}
  .case-nav a{padding-inline:var(--space-3);font-size:12px}
}
@media(max-width:600px){
  :root{--type-display:40px;--type-title:28px;--type-heading:20px;--gutter:20px;--nav-height:128px}
  .case-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:calc(100% - var(--space-5));border-radius:var(--radius);gap:0;padding:var(--space-1)}
  .case-nav a{padding:var(--space-1);white-space:normal;text-align:center;border-radius:var(--radius)}
  .case-hero{padding-top:calc(var(--nav-height) + var(--space-4));padding-bottom:var(--space-6)}
  .insight-grid,.result-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
  .result-grid>div+div{padding-top:var(--space-5);border-top:1px solid var(--line)}
  .case-gallery{margin-block:var(--space-6)}
  .gallery-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-tabs button{font-size:var(--type-small)}
  .media-stage{padding:var(--space-3)}
  .media-stage img{inset:var(--space-3);width:calc(100% - var(--space-3)*2);height:calc(100% - var(--space-3)*2)}
  .image-zoom{right:var(--space-2);bottom:var(--space-2)}
  .next-project .case-wrap{grid-template-columns:minmax(0,1fr)}
  .next-project .back-to-work{margin-top:var(--space-4)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
