/* Shared interior pages */
.interior .container,.interior .container-tight{width:min(1440px,100% - 112px);margin-inline:auto}.interior main{padding-bottom:30px}.interior h1{font-size:clamp(48px,6.6vw,100px);max-width:1100px;line-height:1.06;letter-spacing:-.055em;margin:25px 0 32px}.interior h1 em,.interior h2 em{font-family:'Instrument Serif',Georgia,serif;font-weight:400}.interior h2{font-size:clamp(28px,3vw,44px);font-weight:500;letter-spacing:-.04em;line-height:1.12}.interior h3{font-size:24px;line-height:1.25;font-weight:500;letter-spacing:-.025em}.interior p,.interior li{font-size:16px;line-height:1.75}.interior p{color:var(--muted)}.interior em{font-style:normal}.interior h1 em,.interior h2 em{font-style:italic}:where(.interior) img{max-width:100%;display:block;height:auto}.interior nav a[aria-current=page]{color:var(--accent);text-decoration:underline;text-underline-offset:7px}.interior .lede{max-width:790px;font-size:20px;line-height:1.65;letter-spacing:-.015em}.interior .crumbs{display:flex;gap:15px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-bottom:35px}.crumbs a:hover{color:var(--accent)}.page-intro,.project-intro,.cs-hero,.about-hero,.ct-hero{padding-block:65px 45px}.interior .marker{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);padding-top:8px}.interior .cs-section,.interior .sf-walk,.interior .sf-gallery,.interior .ag-product,.interior .ag-engineering,.interior .ag-gallery{padding:50px 0}.interior .cs-prose{display:grid;grid-template-columns:200px 1fr;gap:50px}.interior .cs-prose>.body{max-width:820px}.interior .body>p:first-child{margin-top:0}.interior .cs-head{margin:0 0 30px}.interior .cs-head h2{max-width:820px}.interior .pull{font-family:'Instrument Serif',Georgia,serif;font-size:34px;line-height:1.25;letter-spacing:-.015em;margin:35px 0;border-left:3px solid var(--accent);padding-left:25px}.interior .cs-meta,.project-facts{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;padding:30px 0;border-block:1px solid var(--line);margin:40px 0}.interior .cs-meta .label,.project-facts>div>span{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px}.interior .cs-meta .value{font-size:14px;line-height:1.7}.project-facts{grid-template-columns:repeat(3,1fr)}.project-facts p{margin:0;color:var(--ink)}.device-panel{background:var(--surface);overflow:hidden;border-radius:4px}.cs-hero-panel,.sf-hero-panel{margin-top:45px;padding:50px;max-height:720px}.cs-hero-panel>img{width:100%;max-height:620px;object-fit:contain;object-position:top}.sf-hero-panel>img{max-height:550px;width:100%;object-fit:contain}.hero-fan{display:flex;justify-content:center;max-height:550px}.hero-fan img{width:33.333%;object-fit:contain}.case-step{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;margin:45px 0 65px}.case-step:nth-child(even)>figure{order:2}.case-step figure{margin:0;background:var(--surface);border-radius:4px;overflow:hidden;padding:25px}.case-step figure img{width:100%;max-height:530px;object-fit:contain}.case-step .step-index{font-size:12px;text-transform:uppercase;letter-spacing:.075em;color:var(--accent)}.case-step h3{font-size:clamp(26px,3vw,42px);letter-spacing:-.04em;margin-block:18px}.case-step p{max-width:520px}.interior .rail{overflow-x:auto;position:relative;padding:25px 20px 65px;scroll-snap-type:x mandatory;scrollbar-width:thin}.rail-track{display:flex;gap:20px;width:max-content}.rail-item{width:300px;margin:0;scroll-snap-align:start}.rail-shot{height:370px}.rail-shot img{width:100%;height:100%;object-fit:contain}.rail-item figcaption,.cs-web figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:15px}.slider-btn{position:sticky;left:0;bottom:0;width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink);margin-top:15px;cursor:pointer}.slider-btn.next{left:50px;margin-left:10px}.slider-btn svg{width:18px;height:18px}.slider-btn:disabled{opacity:.35;cursor:default}.cs-web{margin:45px 0}.cs-web .device-panel{padding:30px}.cs-web img{width:100%;max-height:1100px;object-fit:contain;object-position:top}.ag-pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin:40px 0}.ag-stage{border-top:1px solid var(--line);padding-top:25px}.ag-stage h3{font-size:20px}.ag-stage .n,.badge{font-size:12px;color:var(--accent)}.ag-stage p{font-size:14px}.ag-stack{display:flex;flex-wrap:wrap;gap:9px}.chip{border:1px solid var(--line);padding:7px 12px;border-radius:100px;font-size:12px}.ag-decisions{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-block:35px}.ag-decision{padding-top:25px;border-top:1px solid var(--line)}.cs-timeline{display:grid;grid-template-columns:200px 1fr;gap:50px}.cs-timeline .step{font-size:16px;color:var(--ink);padding:25px 0;border-bottom:1px solid var(--line)}.cs-timeline .step-num{font-size:13px;color:var(--accent)}.cs-outcomes{background:var(--surface);padding:50px 0;margin:40px 0}.cs-outcomes-grid,.cs-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.cs-outcomes .num,.cs-stats .num{font-size:clamp(25px,3.5vw,53px);font-weight:500;letter-spacing:-.045em;line-height:1.2;margin:15px 0}.cs-outcomes .label,.cs-stats .label{font-size:14px;line-height:1.6;color:var(--muted)}.cs-quote{padding:60px 0}.cs-quote p,.cs-quote blockquote{font-family:'Instrument Serif',Georgia,serif;font-size:clamp(28px,3.5vw,46px);line-height:1.3;max-width:940px;margin:0 auto 22px;color:var(--ink)}.cs-quote .who{font-size:13px;color:var(--muted);text-align:center}.cs-next-band{margin-top:50px}.cs-next,.project-next{display:flex;justify-content:space-between;gap:35px;border-block:1px solid var(--line);padding:30px 0}.cs-next>a{max-width:46%;flex:1}.cs-next .next{text-align:right}.cs-next .label{font-size:12px;color:var(--muted)}.cs-next h4{font-size:24px;font-weight:500;letter-spacing:-.03em;margin:12px 0}.cs-next a:hover,.project-next a:hover{color:var(--accent)}
/* Archive and compact project stories */
.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 25px}.archive-section{padding-bottom:70px}.archive-image{height:auto;aspect-ratio:16/11;position:relative;background:var(--surface);overflow:hidden;border-radius:3px}.archive-image img{display:block;transition:transform .3s;transform-origin:center top}
.archive-image.preview-mobile img{width:100%;height:100%;object-fit:cover;object-position:center top;padding:0}
.archive-image.preview-desktop img{position:absolute;top:9%;left:8%;width:100%;max-width:none;height:auto;padding:0;object-fit:initial;border-radius:6px 0 0 0;filter:drop-shadow(0 12px 18px #18263c20)}.archive-card:hover img{transform:scale(1.035)}.archive-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px}.archive-caption h3{font-size:23px;margin:0}.archive-card p{font-size:13px;margin:7px 0}.project-sector{font-size:12px;color:var(--muted)}.archive{padding:35px 0 60px}.archive-list{display:grid;grid-template-columns:1fr 1fr;gap:40px}.archive-row{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.archive-row small{display:block;color:var(--muted);margin-top:5px}.archive-row .year{font-size:13px;color:var(--muted)}.project-gallery{padding:15px 0 40px}.project-gallery>h2{font-size:24px}.detail-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.detail-images>a{background:var(--surface);border-radius:4px;padding:25px;display:block}.detail-images img{width:100%;height:560px;object-fit:contain;object-position:top}.detail-images>a:only-child{grid-column:1/-1}.detail-images>a:only-child img{height:auto;max-height:1400px}.project-outcomes{padding-block:35px}.project-outcomes ul{display:flex;flex-wrap:wrap;gap:20px 50px;padding-left:20px}.project-quote{max-width:900px;margin:30px 0 60px}.project-quote blockquote{font-family:'Instrument Serif',Georgia,serif;font-size:36px;margin:0 0 20px}.project-quote figcaption{font-size:14px;color:var(--muted)}
/* About */
.about-hero>.container{display:grid;grid-template-columns:1.6fr 1fr;gap:60px;align-items:center}.about-hero h1{font-size:clamp(46px,5.3vw,78px)}.portrait{background:var(--surface);border-radius:4px;overflow:hidden}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}.about-prose,.about-page .timeline{padding:55px 0}.about-prose>.container,.about-page .timeline>.container{display:grid;grid-template-columns:200px 1fr;gap:50px}.about-prose .body{max-width:850px}.about-page .timeline .row{display:grid;grid-template-columns:130px 1fr;gap:25px;border-bottom:1px solid var(--line);padding:23px 0}.about-page .timeline .when{font-size:13px;color:var(--muted)}.about-page .timeline h3{margin:0 0 10px}.about-page .timeline .role{font-size:14px;color:var(--accent)}.about-page .timeline p{margin-bottom:0}.skills{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding-block:35px;border-block:1px solid var(--line)}.skills ul{padding-left:20px}.impact-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:30px}.impact-num{font-size:46px;letter-spacing:-.05em}.impact-label{font-size:13px;color:var(--muted)}.impact-win{padding:20px 0;border-top:1px solid var(--line);line-height:1.7}.lead-cards{display:grid;grid-template-columns:1fr 1fr;gap:30px}.lead-card{border-top:1px solid var(--line);padding-top:20px}.lead-card-badge{font-size:20px;letter-spacing:-.03em}.speak-block{margin-top:50px}.speak-head{margin-bottom:25px}.speak-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.07em}.speak-count{margin-top:8px;font-size:24px;letter-spacing:-.03em}.speak-row{padding:22px 0;border-bottom:1px solid var(--line)}.speak-title{font-size:20px}.speak-desc{font-size:16px;line-height:1.7;color:var(--muted);margin:10px 0}.speak-venue{display:flex;gap:20px;font-size:13px;color:var(--accent)}
/* Contact */
.ct-grid{padding-bottom:60px}.ct-grid>.container{display:grid;grid-template-columns:1.5fr 1fr;gap:9%}.ct-channels>a{display:flex;justify-content:space-between;gap:20px;padding:25px 0;border-top:1px solid var(--line)}.ct-channels .label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:10px}.ct-channels .value{font-size:clamp(20px,2.3vw,32px);letter-spacing:-.03em;overflow-wrap:anywhere}.ct-channels .arrow{font-size:25px}.ct-channels a:hover{color:var(--accent)}.ct-side{background:var(--surface);padding:32px;align-self:start;border-radius:4px}.ct-side h4{font-size:24px;margin:0;font-weight:500}.ct-side .check{font-size:14px;line-height:1.8;padding-top:20px;border-top:1px solid var(--line);margin-top:20px}.interior .btn{display:inline-flex;border-bottom:1px solid currentColor;padding:8px 0;font-size:14px}footer>div{flex-wrap:wrap}
@media(max-width:1000px){.interior .container,.interior .container-tight{width:calc(100% - 64px)}.cs-meta{grid-template-columns:repeat(3,1fr)!important}.interior .cs-prose,.cs-timeline,.about-prose>.container,.about-page .timeline>.container{grid-template-columns:130px 1fr;gap:30px}.about-hero>.container{gap:35px}.about-hero .lede{font-size:17px}.ag-pipeline{grid-template-columns:repeat(3,1fr)}.archive-grid{grid-template-columns:repeat(2,1fr)}.detail-images img{height:420px}.ct-grid>.container{gap:40px}.ct-side{padding:22px}.cs-hero-panel,.sf-hero-panel{padding:25px}.case-step{gap:35px}.cs-outcomes-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.site-header{gap:13px}.identity{display:none}nav{margin-left:auto;gap:18px}nav a:nth-child(2),nav a:last-child{display:block}.interior .container,.interior .container-tight{width:calc(100% - 40px)}.page-intro,.project-intro,.cs-hero,.about-hero,.ct-hero{padding-block:38px 25px}.interior h1{font-size:44px;letter-spacing:-.055em;line-height:1.08;margin-block:25px}.interior .lede{font-size:17px}.interior .cs-prose,.cs-timeline,.about-prose>.container,.about-page .timeline>.container{grid-template-columns:1fr;gap:20px}.interior .cs-meta{grid-template-columns:1fr 1fr!important;gap:22px;margin:30px 0}.cs-hero-panel,.sf-hero-panel{padding:12px;margin-top:25px}.hero-fan{max-height:300px}.interior .cs-section,.interior .sf-walk,.interior .sf-gallery,.interior .ag-product,.interior .ag-engineering,.interior .ag-gallery{padding-block:30px}.case-step{grid-template-columns:1fr;gap:22px;margin:30px 0 50px}.case-step:nth-child(even)>figure{order:0}.case-step figure{padding:12px}.case-step figure img{max-height:430px}.case-step h3{font-size:30px}.ag-pipeline,.ag-decisions{grid-template-columns:1fr}.ag-stage h3{font-size:24px}.ag-stage p{font-size:16px}.cs-outcomes-grid,.cs-stats{grid-template-columns:1fr 1fr}.cs-outcomes{padding:30px 0}.cs-outcomes .num{font-size:32px}.cs-next h4{font-size:21px}.cs-next{gap:20px}.rail-item{width:250px}.rail-shot{height:310px}.interior .rail{padding-inline:10px}.cs-web .device-panel{padding:12px}.archive-grid{grid-template-columns:1fr;gap:35px}.archive-image{height:auto}.archive-list{grid-template-columns:1fr;gap:0}.project-facts{grid-template-columns:1fr;gap:20px}.project-facts>div{display:grid;grid-template-columns:80px 1fr;gap:15px}.detail-images{grid-template-columns:1fr;gap:15px}.detail-images>a{padding:12px}.detail-images img{height:auto;max-height:800px}.project-next{font-size:14px}.about-hero>.container{grid-template-columns:1fr;gap:25px}.portrait{max-width:400px}.portrait img{aspect-ratio:1/1}.about-prose,.about-page .timeline{padding-block:30px}.about-page .timeline .row{grid-template-columns:1fr;gap:10px}.skills{grid-template-columns:1fr;gap:15px}.impact-stats{grid-template-columns:1fr 1fr}.lead-cards{grid-template-columns:1fr}.ct-grid>.container{grid-template-columns:1fr;gap:35px}.ct-channels .value{font-size:24px}.ct-side{padding:25px}.interior footer>div{gap:16px}.interior .project-role{font-size:12px}.interior .project-caption{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Keep archive image sizing authoritative over the general page image rule. */
.archive-image{background:radial-gradient(ellipse at 25% 0%,color-mix(in oklab,var(--image-tint,#8290b3) 32%,var(--bg)),color-mix(in oklab,var(--image-tint,#8290b3) 14%,var(--surface)) 85%)}

@media(max-width:640px){.project-caption,.interior .project-caption{display:block}.project-caption p{max-width:none}.project-role,.interior .project-role{display:block;text-align:left;padding-top:10px}}

/* Detail-page cards share the home/work tint sampled from their image. */
.device-panel,.case-step figure,.detail-images>a{--image-tint:#8290b3;background:radial-gradient(ellipse at 25% 0%,color-mix(in oklab,var(--image-tint) 32%,var(--bg)),color-mix(in oklab,var(--image-tint) 14%,var(--surface)) 85%)}

/* Phone screen carousel: one large, centered screen per swipe on mobile. */
@media(max-width:640px){.interior .rail{padding:20px 14% 10px;scroll-padding-inline:14%;scroll-snap-type:x mandatory}.rail-track{gap:14px}.rail-item{width:72vw;max-width:320px;scroll-snap-align:center}.rail-shot{height:min(110vw,460px)}.rail--phones .rail-shot{overflow:hidden}.rail--phones .rail-shot img{object-fit:cover}.rail-item figcaption{font-size:14px;margin-top:12px}.has-rail{text-align:center;padding-bottom:18px}.has-rail .slider-btn{position:static;margin:10px 6px 0}.has-rail .slider-btn.next{margin-left:6px}}

/* Browser/desktop screenshots get rounded corners like a window. */
.cs-web img,.detail-images img,.case-step figure img,.cs-hero-panel img{border-radius:10px}
@media(max-width:640px){.cs-web img,.detail-images img,.case-step figure img,.cs-hero-panel img{border-radius:6px}}

/* Taller featured cards on phones. */
@media(max-width:640px){.project-image{height:auto;aspect-ratio:4/5}.project-image.preview-desktop>img{width:175%;top:64px;left:10%}}

/* Slider arrows live outside the scrolling rail so they stay put. */
.interior .rail{padding-bottom:20px}
.rail-controls{display:flex;gap:10px;padding:0 20px 20px}
.rail-controls .slider-btn{position:static;margin:0}
.rail-controls .slider-btn.next{margin-left:0}
@media(max-width:640px){.rail-controls{justify-content:center;padding:4px 0 6px}}

/* Centered slider: bigger phone crops, track centered when it fits, arrows centered. */
.rail-track{margin-inline:auto}
.rail--phones .rail-shot{overflow:hidden}
.rail--phones .rail-shot img{object-fit:cover}
.rail-controls{justify-content:center;padding:6px 0 24px}
.rail-controls[hidden]{display:none}
@media(min-width:641px){.rail--phones .rail-item{width:320px;scroll-snap-align:center}.rail--phones .rail-shot{height:480px}.rail-track{gap:28px}}

/* Hide slider scrollbar */
.rail,.interior .rail{scrollbar-width:none;-ms-overflow-style:none}.rail::-webkit-scrollbar{display:none}
