/* X — one composition, a continuous route, result-led cases, and a revealed footer. */
:root{--nav-height:64px}
.hero-stage{padding-top:calc(var(--nav-height) + 40px)}
.hero .hero-word{font-size:min(23vw,29svh,430px)}
.hero .hero-summary{overflow-wrap:anywhere}
.hero .hero-bottom{margin-top:38px}
.hero-word>.hero-group{margin-top:.1em}
.hero .hero-note>.hero-summary{max-width:36ch}
.hero-stage:after{background:linear-gradient(180deg,rgba(7,16,29,.22),rgba(7,16,29,.13) 34%,rgba(7,16,29,.55) 70%,rgba(7,16,29,.94))}
.motion-heading .motion-mask{overflow:hidden;vertical-align:top;padding:.15em .05em;margin:-.15em -.05em}
.motion-heading .motion-mask>span{filter:none!important}

.route-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:clamp(35px,6vw,100px);margin-top:80px;align-items:start}
.route-visual{position:sticky;top:calc(var(--nav-height) + 35px);margin:0;padding:26px 0 0;min-width:0}
.route-visual-top{display:flex;justify-content:space-between;gap:15px;align-items:center;font:12px/1.5 var(--mono);text-transform:uppercase;color:var(--muted)}
.route-current-counter{font:500 clamp(68px,7vw,120px)/1 var(--sans);letter-spacing:-.065em;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}
.route-visual svg{display:block;width:100%;height:auto;max-height:40svh;margin:25px 0 10px;stroke:var(--blue);stroke-width:1.2;overflow:visible}
.route-grid{stroke:rgba(120,185,255,.14);stroke-width:.6}
.route-parcel{stroke-width:1.8;fill:rgba(120,185,255,.035);stroke-dasharray:900;stroke-dashoffset:calc(900*(1 - var(--diagram-progress,1)))}
.route-scenarios,.route-buyers,.route-decision{opacity:0;transform:translateY(14px);transition:opacity .65s var(--ease),transform .8s var(--ease)}
.route-scenarios{fill:rgba(120,185,255,.07)}
.route-buyers path{stroke-dasharray:5 7;stroke:rgba(120,185,255,.5)}
.route-buyers circle{fill:var(--ink);stroke-width:1.5}
.route-decision{stroke-width:3;fill:rgba(120,185,255,.06)}
.route-decision circle{stroke-width:.7;stroke-dasharray:3 7}
.route-visual[data-step="2"] .route-scenarios,.route-visual[data-step="3"] .route-scenarios,.route-visual[data-step="3"] .route-buyers,.route-visual[data-step="4"] .route-decision{opacity:1;transform:none}
.route-visual[data-step="4"] .route-parcel{fill:rgba(120,185,255,.12)}
.route-visual figcaption{max-width:34ch;color:var(--muted);font-size:16px;line-height:1.6;margin-bottom:25px}
.route-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.route-stages a{font:13px/1.5 var(--mono);padding:12px 0;border-top:1px solid var(--line);color:var(--muted);transition:border-color .5s,color .5s}
.route-stages a[aria-current]{color:var(--blue);border-top-color:var(--blue)}
.route-visual-column{display:contents}
.route-visual .route-scene{display:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.route-visual[data-step="1"] [data-scene="1"],.route-visual[data-step="2"] [data-scene="2"],.route-visual[data-step="3"] [data-scene="3"],.route-visual[data-step="4"] [data-scene="4"]{display:block}
.route-scene text{font:15px 'Manrope',sans-serif;fill:var(--blue);stroke:none;letter-spacing:.02em}
.route-scene .route-accent{stroke:var(--paper);fill:rgba(120,185,255,.08)}
.route-scene .route-muted{stroke:var(--muted);opacity:.55}
@media(min-width:901px){
 .route-visual-column{display:block;position:relative;align-self:stretch;min-width:0}
 .route-visual-column .route-visual{--route-top:calc(var(--nav-height) + 24px);position:relative;top:auto;padding-top:0;will-change:transform}
 .route-visual-column .route-current-counter{font-size:clamp(48px,7svh,92px)}
 .route-visual-column .route-visual svg{height:clamp(140px,32svh,340px);max-height:none;margin:16px 0 8px}
 .route-visual-column .route-visual figcaption{font-size:14px;line-height:1.45;margin-bottom:16px}
 .route-visual-column .route-stages a{padding:8px 0}
}
.stepList{min-width:0}
.step{min-height:65svh;display:grid;grid-template-columns:1fr;align-content:center;padding:55px 30px;gap:0;scroll-margin-top:calc(var(--nav-height) - 60px);border-top:1px solid var(--line)}
.stepNumber{grid-row:auto;min-width:0;width:auto;max-width:230px;font-size:14px;line-height:1.5;padding:0;margin-bottom:38px}
.step h3{font-size:clamp(36px,4vw,64px);line-height:1.12;letter-spacing:-.055em;margin:0 0 28px;grid-column:1;overflow-wrap:anywhere}
.step>p{grid-column:1;font-size:18px;line-height:1.65;max-width:44ch}
.step>div{grid-column:1;margin-top:32px;padding-left:18px;max-width:40ch}
.step strong{display:block;font-size:18px;line-height:1.55}
.step.is-active{background:transparent}
.step:before{background:linear-gradient(90deg,rgba(120,185,255,.07),transparent 80%)}

.featured-cases{margin-top:90px;display:grid;gap:120px}
.featured-case{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(32px,5vw,90px);align-items:start;scroll-margin-top:100px}
.featured-case:nth-child(2){grid-template-columns:minmax(0,1fr) minmax(0,1.12fr)}
.featured-case:nth-child(2) .caseVisual{grid-column:2;grid-row:1}
.featured-case:nth-child(2) .caseBody{grid-column:1;grid-row:1}
.featured-case .caseVisual{height:auto;aspect-ratio:4/5;position:sticky;top:calc(var(--nav-height) + 30px);max-height:78svh}
.featured-case .caseVisual strong{font-size:clamp(28px,3vw,48px);line-height:1.12}
.featured-case .caseBody{padding:0;min-width:0}
.featured-case .caseNumber{display:block;font:12px/1.6 var(--mono);letter-spacing:0;color:#586473;text-transform:uppercase;margin-bottom:35px}
.case-metric{font:500 clamp(56px,6.8vw,110px)/1.03 var(--sans);letter-spacing:-.065em;display:flex;gap:16px;align-items:baseline;flex-wrap:wrap;margin-bottom:38px;color:var(--ink)}
.case-metric small{font:400 20px/1.4 var(--mono);letter-spacing:0}
.featured-case:last-child .case-metric{font-size:clamp(35px,3.5vw,60px);display:block}
.featured-case:last-child .case-metric small{display:block;margin-top:10px}
.featured-case .caseBody h3{font-size:clamp(25px,2.5vw,38px);line-height:1.25;letter-spacing:-.04em;margin:0 0 35px;max-width:26ch}
.case-result{border-top:1px solid rgba(7,16,29,.2);padding-top:22px;margin-bottom:28px}
.case-result>span{font:12px/1.5 var(--mono);text-transform:uppercase;color:#315f88;display:block;margin-bottom:14px}
.case-result>p{font-size:20px;line-height:1.55;letter-spacing:-.02em;max-width:40ch}
.featured-case .case-detail summary{font-size:14px}
.featured-case .case-detail summary i{flex:0 0 1em;width:1em;min-width:1em;font-style:normal;text-align:center}
.featured-case .detail-content dl>div{grid-template-columns:1fr;gap:12px}
.featured-case .detail-content dd,.featured-case .detail-content dl>div:last-child dd{font-size:17px;line-height:1.65;color:#586473}
.featured-case .tags{margin-top:28px}
.case-catalog-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:110px;color:#586473;font:12px/1.5 var(--mono)}
.case-catalog-heading .eyebrow{font-size:14px;color:var(--ink)}
.case-catalog-heading+.case-rows{margin-top:25px}
.case-row summary{padding-block:30px;transition:background .45s var(--ease)}
.case-row summary:hover{background:rgba(120,185,255,.05)}
.case-rows .case-row .row-no{font-size:clamp(36px,3.8vw,60px);line-height:1;font-variant-numeric:tabular-nums}
.case-rows .row-no{border:0;padding:0;min-width:0;font-family:var(--sans);letter-spacing:-.055em}
.case-rows .row-no:before{display:none}
.case-rows .row-title h3{font-size:clamp(22px,2.15vw,32px);line-height:1.25}
.case-rows .row-title small{font-size:12px;margin-bottom:10px;display:block}
.case-rows .case-row dd{font-size:17px;line-height:1.65}

.motion-on main{position:relative;z-index:2;background:var(--paper)}
.footer-reveal{width:100%;max-width:none;margin:0;background:var(--paper);color:#586473;padding:65px max(var(--gutter),calc((100vw - 1800px)/2)) 35px;border-top:0;isolation:isolate}
.footer-reveal.is-revealing{position:sticky;bottom:0;z-index:1}
.footer-reveal:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(90deg,transparent,transparent calc(25% - 1px),rgba(7,16,29,.08) calc(25% - 1px),rgba(7,16,29,.08) 25%)}
.footer-reveal .footer-top{font-size:16px;line-height:1.65}
.footer-reveal .footer-top nav{font-size:14px;line-height:1.6}
.footer-reveal .footer-word{font:600 clamp(65px,20.5vw,430px)/1.04 'Sora',sans-serif;letter-spacing:-.085em;padding-right:.06em;color:var(--ink);text-align:center;margin:55px auto 30px;transform:translate3d(0,var(--footer-y,0px),0)}
.footer-reveal .footer-bottom{font-size:12px;line-height:1.7;border-color:rgba(7,16,29,.18)}
.footer-reveal .footer-bottom>span:last-child{color:#315f88}
.footer-reveal a:hover{color:#315f88}
.contact{border-radius:0 0 var(--closing-radius,0px) var(--closing-radius,0px);border-bottom:1px solid var(--line)}
.note-page .article-section>p{max-width:70ch}
.note-page .note-hero h1{letter-spacing:-.055em}

.page-curtain{display:block;overflow:hidden}
.page-curtain-panel{position:absolute;inset:0;background:var(--blue);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:35px;transform:translateY(100%);will-change:transform}
.page-curtain-brand{font:600 clamp(52px,12vw,190px)/1 var(--sans);letter-spacing:-.075em;text-align:center}
.page-curtain-brand small{display:block;font:500 .4em/1 var(--sans);letter-spacing:-.04em;margin-top:.1em}
.page-curtain-label{font:13px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.02em;text-align:center}

@media(min-width:901px) and (max-height:800px){
 .hero .hero-word{font-size:min(22vw,25svh,430px)}
 .hero-stage{padding-top:90px;padding-bottom:64px}
 .hero .hero-content{margin-top:22px}
 .hero .hero-bottom{margin-top:28px}
 .route-visual{top:90px}
 .route-visual svg{max-height:33svh}
}
@media(max-width:900px), (hover:none) and (pointer:coarse) and (orientation:portrait){
 :root{--nav-height:72px}
 .nav-inner{height:var(--nav-height);gap:18px;justify-content:space-between}
 .brand{flex:0 0 auto;width:auto;font-size:23px}
 .desktop-links{display:none}
 .nav-cta{margin-left:auto;font-size:12px}
 .menu-toggle{width:36px}
 .hero-stage{padding-top:calc(var(--nav-height) + 18svh);padding-bottom:42px;min-height:max(620px,100svh)}
 .hero .hero-word{font-size:23vw}
 .hero .hero-content{margin-top:24px}
 .hero .hero-note>.hero-summary{font-size:17px;line-height:1.55;max-width:30ch}
 .hero .hero-bottom{margin-top:34px}
 .hero .hero-bottom .button{min-width:240px}
 .route-layout{grid-template-columns:1fr;display:block;gap:0;margin-top:48px}
 .route-visual{top:var(--nav-height);z-index:4;background:var(--ink);padding:12px 0 15px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:max-content minmax(0,1fr);gap:0 15px}
 .route-visual-top{display:flex;flex-direction:column;justify-content:center;align-items:start;gap:12px;grid-column:1;grid-row:1;font-size:10px}
 .route-visual-top>span{max-width:9ch}
 .route-current-counter{font-size:44px}
 .route-visual svg{grid-column:2;grid-row:1;max-height:none;height:135px;width:100%;margin:0}
 .route-visual figcaption{display:none}
 .route-stages{grid-column:1/-1;gap:15px}
 .route-stages a{font-size:12px;padding:8px 0 0}
 .step{min-height:55svh;padding:45px 0;scroll-margin-top:calc(var(--nav-height) + 120px)}
 .stepNumber{margin-bottom:23px;max-width:160px}
 .step h3{font-size:clamp(30px,7.5vw,48px);line-height:1.16;margin-bottom:22px}
 .step>p,.step strong{font-size:17px;line-height:1.65}
 .step>div{margin-top:24px}
 .featured-cases{margin-top:48px;gap:75px}
 .featured-case,.featured-case:nth-child(2){display:flex;flex-direction:column;gap:28px}
 .featured-case .caseVisual{position:relative;top:auto;width:100%;height:auto;max-height:none;aspect-ratio:4/3}
 .featured-case .caseVisual strong{font-size:clamp(25px,6vw,38px);bottom:50px}
 .featured-case .caseVisual>span:first-of-type,.featured-case .caseVisual .image-caption{left:20px}
 .featured-case .caseBody{width:100%}
 .featured-case .caseNumber{margin-bottom:22px}
 .case-metric{font-size:clamp(58px,15vw,100px);gap:12px;margin-bottom:25px}
 .case-metric small{font-size:18px}
 .featured-case:last-child .case-metric{font-size:clamp(32px,8vw,50px)}
 .featured-case .caseBody h3{font-size:26px;line-height:1.25;margin-bottom:28px}
 .case-result>p{font-size:18px;line-height:1.6}
 .featured-case .detail-content dd,.case-rows .case-row dd{font-size:17px}
 .case-catalog-heading{margin-top:70px;font-size:11px;align-items:start}
 .case-catalog-heading>span:last-child{max-width:14ch;text-align:right}
 .case-rows .case-row .row-no{font-size:32px}
 .case-rows .row-title h3{font-size:22px;line-height:1.3}
 .case-rows .case-row summary{padding:24px 8px;grid-template-columns:43px minmax(0,1fr) 22px;gap:10px}
 .case-rows .row-no{grid-column:1;grid-row:1;align-self:start}
 .case-rows .row-title{grid-column:2;grid-row:1}
 .case-rows .case-row summary i{grid-column:3;grid-row:1;align-self:start;width:22px;height:22px;font-size:20px}
 .footer-reveal{padding:40px var(--gutter) 25px}
 .footer-reveal .footer-top{font-size:14px;gap:25px}
 .footer-reveal .footer-top nav{font-size:13px;gap:18px}
 .footer-reveal .footer-word{font-size:20.5vw;margin-top:45px;margin-bottom:28px}
 .footer-reveal .footer-bottom{font-size:12px;gap:10px}
}
/* Touch browsers can report a wider layout viewport; keep the mobile composition. */
@media (hover:none) and (pointer:coarse) and (orientation:portrait) and (min-width:761px){
 :root{--nav-height:clamp(72px,9vw,110px)}
 .brand{font-size:clamp(23px,4vw,42px)}
 .brand small{font-size:clamp(9px,1.3vw,15px)}
 .nav-cta{font-size:clamp(12px,1.9vw,22px)}
 .menu-toggle{width:clamp(36px,5vw,60px)}
 .hero .hero-note>.hero-summary{font-size:clamp(20px,3.3vw,36px)}
 .hero-assurance{font-size:clamp(12px,1.9vw,21px)}
 .hero-bottom .button{font-size:clamp(14px,2.3vw,25px);min-width:38vw;min-height:8vw}
 .hero-bottom .button i{width:6vw;height:6vw}
 .hero-overview-copy>p,.statementSupport,.grIntro p,.case-result>p,.step>p,.step strong,.contactIntro>p,.case-rows .case-row dd,.featured-case .detail-content dd{font-size:clamp(18px,2.6vw,30px)}
 .principleGrid article:nth-child(n) h3,.principleGrid article:nth-child(n) p{font-size:clamp(20px,2.8vw,32px)}
 .contactField input,.contactField textarea{font-size:clamp(18px,2.5vw,28px)}
}
@media(prefers-reduced-motion:reduce){
 .footer-reveal{position:relative!important}
 .route-visual{position:relative;top:auto}
 .route-parcel{stroke-dashoffset:0}
 .route-scenarios,.route-buyers,.route-decision{transition:none}
 .page-curtain{display:none!important}
 .hero .hero-word,.hero .hero-content,.hero .hero-bottom{opacity:1;transform:none}
}
@media print{.route-visual{display:none}.step{min-height:0}.featured-case .caseVisual{position:relative;top:auto}.motion-on main{z-index:auto}}

/* One parcel develops through the four stages; completed layers stay visible. */
.route-visual[data-step="2"] .route-scenarios,.route-visual[data-step="3"] .route-scenarios,.route-visual[data-step="4"] .route-scenarios,
.route-visual[data-step="3"] .route-buyers,.route-visual[data-step="4"] .route-buyers{opacity:1;transform:none}
.route-scenarios{transition:opacity 650ms var(--ease),transform 850ms var(--ease)}
.route-scenarios>path{fill:rgba(120,185,255,.09)}
.route-landscape{opacity:0;transition:opacity 700ms var(--ease);stroke:rgba(120,185,255,.4);stroke-width:1}
.route-visual[data-step="2"] .route-landscape,.route-visual[data-step="3"] .route-landscape,.route-visual[data-step="4"] .route-landscape{opacity:1}
.route-decision circle{fill:var(--ink);stroke:var(--blue);stroke-dasharray:none;stroke-width:1.5}
.route-decision path{stroke:var(--paper);stroke-width:2.3}
.route-visual[data-step="4"] .route-parcel{stroke:var(--paper);fill:rgba(120,185,255,.09);transition:stroke 650ms,fill 650ms}
@media(prefers-reduced-motion:reduce){.route-landscape,.route-scenarios,.route-buyers,.route-decision{transition:none}}

/* Orthographic site plan: the same parcel evolves within its city block. */
.route-visual .route-map{stroke:none;max-width:100%}
.route-map .map-parcel{transition:fill 600ms}
.route-map .map-concept{opacity:0;transition:opacity 500ms}
.route-map .map-development,.route-map .map-participants,.route-map .map-resolution{opacity:0;transition:opacity 650ms var(--ease)}
.route-map .map-empty{transition:opacity 450ms}
.route-map .map-shadow{fill:#060e19;stroke:none}
.route-map .map-roof{fill:#456995;stroke:#a9cfff;stroke-width:1.1;stroke-linejoin:round}
.route-map .map-roof-detail{stroke:#87a9ce;stroke-width:.8;fill:none}
.route-map .map-participants rect,.route-map .map-resolution rect{fill:#102238;stroke:#54799f;stroke-width:1}
.route-map text{fill:#a8c8eb;stroke:none;font:12px 'Manrope',sans-serif;letter-spacing:0}
.route-map .map-label{font:12px 'IBM Plex Mono',monospace;letter-spacing:2px}
.route-map .map-note{font:9px 'IBM Plex Mono',monospace;letter-spacing:1px;fill:#7d92a9}
.route-visual[data-step="2"] .map-concept{opacity:1}
.route-visual[data-step="3"] .map-development,.route-visual[data-step="4"] .map-development,
.route-visual[data-step="3"] .map-participants,.route-visual[data-step="4"] .map-participants,
.route-visual[data-step="4"] .map-resolution{opacity:1}
.route-visual[data-step="2"] .map-empty,.route-visual[data-step="3"] .map-empty,.route-visual[data-step="4"] .map-empty{opacity:0}
.route-visual[data-step="4"] .map-parcel{fill:#1c383c;stroke:#c2ddff}
@media(prefers-reduced-motion:reduce){.route-map *{transition:none!important}}

/* First-user QA: visible required action and case identity at detail destination. */
.contactForm .formHint{font:12px/1.5 var(--mono);color:#c1ccd9;margin:0 0 4px;grid-column:1/-1}
.contactConsent{min-height:48px;padding-block:10px;align-items:center}
.contactConsent input{width:22px;height:22px;flex:0 0 22px}
.case-detail-context{display:block;font:11px/1.5 var(--mono);color:#586473;margin-bottom:6px}

.hero .hero-note>.hero-outcome{font:400 15px/1.5 var(--sans);color:#d0d8e1;max-width:36ch;margin:12px auto 0;text-align:center}
.contactExtras{grid-column:1;grid-row:2;min-width:0}
.contactExtras .contactNote{display:block;margin-top:24px}
.contact .contactForm{grid-row:1 / span 2}
@media(max-width:760px){
 .contactBody{gap:24px}
 .contact .contactForm{grid-row:2;grid-column:1}
 .contactExtras{grid-row:3;grid-column:1}
 .contactIntro>p{margin-bottom:0}
 .contactExtras .textLink{font-size:14px}
}
