*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{font-family:var(--font);font-size:var(--t-body);font-weight:400;line-height:var(--lh-body);letter-spacing:var(--tr-body);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}::selection{background:var(--accent-blue);color:#fff}.wide{max-width:var(--max);margin:0 auto;padding-left:var(--pm);padding-right:var(--pm)}.wrap{max-width:var(--content);margin:0 auto;padding-left:var(--pm);padding-right:var(--pm)}.narrow{max-width:var(--narrow);margin:0 auto;padding-left:var(--pm);padding-right:var(--pm)}section{padding:var(--s-section) 0;position:relative}.eyebrow{font-family:var(--mono);font-size:var(--t-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-50);display:inline-flex;align-items:center;gap:var(--s-3)}.eyebrow:before{content:"";width:6px;height:6px;border-radius:var(--r-pill);background:var(--accent-active);flex:none}.light .eyebrow{color:var(--text-dark-50)}h1,h2,h3,h4{font-weight:400;letter-spacing:var(--tr-display);line-height:var(--lh-display)}.lead{font-size:var(--t-body-lg);color:var(--text-70);line-height:var(--lh-loose)}.light .lead{color:var(--text-dark-70)}.mono{font-family:var(--mono);letter-spacing:0}.soft{color:var(--text-50)}.light .soft{color:var(--text-dark-50)}a.ilink{color:var(--text);border-bottom:1px solid var(--line-strong);transition:border-color var(--d-base)}a.ilink:hover{border-color:var(--text)}.light a.ilink{color:var(--text-dark);border-bottom-color:var(--line-dark-strong)}.light a.ilink:hover{border-color:var(--text-dark)}.r{opacity:0;transform:translateY(22px);transition:opacity var(--d-dramatic) var(--ease-out),transform var(--d-dramatic) var(--ease-out)}.r.in{opacity:1;transform:none}.r.d1{transition-delay:.08s}.r.d2{transition-delay:.16s}.r.d3{transition-delay:.24s}.r.d4{transition-delay:.32s}@media(prefers-reduced-motion:reduce){.r{opacity:1;transform:none;transition:none}}.btn{display:inline-flex;align-items:center;gap:var(--s-3);font-size:var(--t-sm);font-weight:500;letter-spacing:var(--tr-body);padding:13px 22px;border-radius:var(--r-md);cursor:pointer;transition:transform var(--d-base) var(--ease),background var(--d-base) var(--ease),border-color var(--d-base) var(--ease),color var(--d-base) var(--ease)}.btn .arr{transition:transform var(--d-base) var(--ease-out)}.btn:hover .arr{transform:translate(4px)}.btn-light{background:var(--light);color:var(--text-dark);border:1px solid var(--light)}.btn-light:hover{background:#ebe8e1;border-color:#ebe8e1;transform:translateY(-1px)}.btn-dark{background:var(--text-dark);color:var(--light);border:1px solid var(--text-dark)}.btn-dark:hover{transform:translateY(-1px);background:#000}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line-strong)}.btn-ghost:hover{border-color:var(--text-50);background:var(--hover)}.light .btn-ghost{color:var(--text-dark);border-color:var(--line-dark-strong)}.light .btn-ghost:hover{border-color:var(--text-dark-50);background:var(--hover-dark)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--s-4) 0;transition:transform var(--d-base) var(--ease),background var(--d-base) var(--ease),border-color var(--d-base);border-bottom:1px solid transparent}.nav.scrolled{background:#131210d1;backdrop-filter:blur(14px);border-bottom-color:var(--line)}.nav.hide{transform:translateY(-100%)}.nav-in{max-width:var(--max);margin:0 auto;padding:0 var(--pm);display:flex;align-items:center;justify-content:space-between;gap:var(--s-5)}.logo{font-size:var(--t-h4);font-weight:500;letter-spacing:-.02em}.logo .dot{color:var(--red)}.nav-links{display:flex;gap:var(--s-5);align-items:center}.nav-links a{font-size:var(--t-sm);color:var(--text-50);transition:color var(--d-base)}.nav-links a:hover,.nav-links a.active{color:var(--text)}.nav-cta{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-sm);font-weight:500;color:var(--text-dark);background:var(--light);padding:9px 16px;border-radius:var(--r-md);transition:transform var(--d-base) var(--ease),background var(--d-base)}.nav-cta:hover{transform:translateY(-1px);background:#ebe8e1;color:var(--text-dark)}@media(max-width:880px){.nav-links{display:none}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:calc(var(--s-12) + var(--s-5)) 0 var(--s-9);overflow:hidden}.hero-split{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--pm);display:grid;grid-template-columns:6fr 5fr;gap:clamp(2rem,5vw,5rem);align-items:center}.hero-copy{min-width:0;order:1}.hero-coord{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.04em;color:var(--text-50);display:inline-flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-5)}.hero-coord b{color:var(--text-90);font-weight:400}.hero-coord .mk{width:10px;height:10px;flex:none;color:var(--accent-active)}.hero h1{font-size:var(--t-hero);letter-spacing:var(--tr-hero);line-height:var(--lh-hero);max-width:14ch}.hero h1 .soft{color:var(--text-50)}.hero-actions{margin-top:var(--s-8);display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center}.hero-meta{margin-top:var(--s-8);display:flex;gap:var(--s-7);flex-wrap:wrap;font-family:var(--mono);font-size:var(--t-xs);color:var(--text-30);letter-spacing:.02em}.hero-meta b{color:var(--text-70);font-weight:400}.hero-stage{min-width:0;order:2;position:relative}.mq{position:relative;width:100%;height:clamp(440px,76vh,660px);overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent,#000 11%,#000 89%,transparent);mask-image:linear-gradient(180deg,transparent,#000 11%,#000 89%,transparent)}.mq-track{display:flex;flex-direction:column;align-items:center;gap:var(--s-5);width:100%;animation:scrolly 44s linear infinite;will-change:transform}.mq:hover .mq-track{animation-play-state:paused}.mq-card{flex:none;width:clamp(240px,84%,400px);aspect-ratio:.74;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:var(--bg-elevated);transition:border-color var(--d-base) var(--ease),transform var(--d-base) var(--ease)}.mq-card:hover{border-color:var(--line-strong);transform:translateY(-4px)}.mq-card img{width:100%;height:100%;object-fit:cover;object-position:center top}@keyframes scrolly{to{transform:translateY(-50%)}}@media(max-width:900px){.hero{align-items:flex-start}.hero-split{grid-template-columns:1fr;gap:var(--s-9)}.hero-copy{order:1}.hero-stage{order:2}.mq{height:clamp(360px,60vh,460px)}.mq-card{aspect-ratio:1.5}}@media(prefers-reduced-motion:reduce){.mq-track{animation:none}}.intro .wrap{max-width:var(--content)}.intro p.statement{font-size:clamp(1.5rem,3.2vw,2.5rem);letter-spacing:var(--tr-display);line-height:1.24;color:var(--text);max-width:30ch;margin-top:var(--s-6)}.intro p.statement .soft{color:var(--text-50)}.intro .sub{margin-top:var(--s-7);max-width:60ch;color:var(--text-70);font-size:var(--t-body-lg);line-height:var(--lh-loose)}.intro .sub a{color:var(--text)}.whyx .head{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,5rem);align-items:end;margin-bottom:var(--s-10)}.whyx .head h2{font-size:var(--t-display);margin-top:var(--s-4);max-width:16ch}.whyx .head .intro-t{color:var(--text-70);font-size:var(--t-body-lg);line-height:var(--lh-loose);max-width:44ch}.whyx .rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}.whyx .row{min-width:0;display:grid;grid-template-columns:64px 1fr 1fr;gap:clamp(1.5rem,3vw,3.5rem);padding:var(--s-8) 0;border-bottom:1px solid var(--line);align-items:start}.whyx .row .idx{font-family:var(--mono);font-size:var(--t-sm);color:var(--text-30)}.whyx .row h3{font-size:clamp(1.35rem,2.4vw,1.85rem);letter-spacing:-.02em;line-height:1.15;max-width:18ch}.whyx .row p{color:var(--text-70);line-height:var(--lh-body);max-width:46ch}@media(max-width:860px){.whyx .head{grid-template-columns:1fr;gap:var(--s-6)}.whyx .row{grid-template-columns:1fr;gap:var(--s-3)}.whyx .row .idx{order:-1}}.svc .head{max-width:62ch;margin-bottom:var(--s-9)}.svc .head h2{font-size:var(--t-display);margin-top:var(--s-4)}.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.svc-cell{min-width:0;background:var(--bg);padding:var(--s-7) var(--s-6);display:flex;flex-direction:column;gap:var(--s-4);transition:background var(--d-base) var(--ease)}.svc-cell:hover{background:var(--bg-elevated)}.svc-cell .num{font-family:var(--mono);font-size:var(--t-xs);color:var(--text-30)}.svc-cell h3{font-size:var(--t-h3);letter-spacing:var(--tr-h3)}.svc-cell p{font-size:var(--t-sm);color:var(--text-50);line-height:var(--lh-body)}.svc-cell.span2{grid-column:span 2}@media(max-width:860px){.svc-grid{grid-template-columns:1fr}.svc-cell.span2{grid-column:span 1}}.map .head{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,5rem);align-items:end;margin-bottom:var(--s-9)}.map .head h2{font-size:var(--t-display);margin-top:var(--s-4);max-width:15ch}.map .head .note{color:var(--text-70);line-height:var(--lh-loose);max-width:44ch}.map-board{display:grid;grid-template-columns:1.05fr .95fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.map-left{min-width:0;background:var(--bg);position:relative;padding:var(--s-6)}.map-canvas{position:relative;width:100%;aspect-ratio:1.3}.map-canvas svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.mg-line{stroke:var(--line);stroke-width:1}.mg-river{fill:none;stroke:var(--accent-active);stroke-width:1.4;stroke-dasharray:3 4;opacity:.55}.dist{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;padding:6px;border-radius:var(--r-sm)}.dist .pin{width:11px;height:11px;border-radius:var(--r-pill);background:#ffffff2e;border:1px solid var(--line-strong);transition:transform var(--d-base) var(--ease),background var(--d-base) var(--ease),border-color var(--d-base) var(--ease)}.dist .nm{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.02em;color:var(--text-50);white-space:nowrap;transition:color var(--d-base) var(--ease)}.dist:hover .pin,.dist.on .pin{background:var(--accent-active);border-color:var(--accent-active);transform:scale(1.25)}.dist:hover .nm,.dist.on .nm{color:var(--text)}.dist.on .pin{box-shadow:0 0 0 5px var(--accent-active-tint)}.map-right{min-width:0;background:var(--bg-elevated);padding:clamp(1.75rem,4vw,2.75rem);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-6)}.map-panel .kx{font-family:var(--mono);font-size:var(--t-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--accent-active);display:inline-flex;align-items:center;gap:8px;margin-bottom:var(--s-5)}.map-panel h3{font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.02em;line-height:1.1;transition:opacity var(--d-base) var(--ease)}.map-panel .arch{margin-top:var(--s-3);font-family:var(--mono);font-size:var(--t-sm);color:var(--text-50)}.map-panel p{margin-top:var(--s-5);color:var(--text-70);line-height:var(--lh-body);max-width:42ch}.map-panel .tags{margin-top:var(--s-6);display:flex;flex-wrap:wrap;gap:var(--s-2)}.map-panel .tags span{font-family:var(--mono);font-size:var(--t-xs);color:var(--text-70);border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:5px 12px}.map-foot{font-family:var(--mono);font-size:var(--t-xs);color:var(--text-30);display:flex;justify-content:space-between;gap:var(--s-4);border-top:1px solid var(--line);padding-top:var(--s-5)}.map-fade{transition:opacity var(--d-base) var(--ease)}@media(max-width:860px){.map .head{grid-template-columns:1fr;gap:var(--s-6)}.map-board{grid-template-columns:1fr}.map-canvas{aspect-ratio:1.5}}.diff .head{max-width:60ch;margin-bottom:var(--s-9)}.diff .head h2{font-size:var(--t-display);margin-top:var(--s-4)}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.diff-cell{min-width:0;background:var(--bg);padding:clamp(1.75rem,4vw,2.75rem);display:flex;flex-direction:column;gap:var(--s-4)}.diff-cell .v{font-family:var(--mono);font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-.03em;color:var(--text);line-height:1}.diff-cell h3{font-size:var(--t-h3);letter-spacing:var(--tr-h3)}.diff-cell p{font-size:var(--t-sm);color:var(--text-50);line-height:var(--lh-body);max-width:42ch}@media(max-width:720px){.diff-grid{grid-template-columns:1fr}}.light{background:var(--light);color:var(--text-dark)}.light.wide{max-width:none;padding-left:max(var(--pm),calc(50% - var(--max)/2 + var(--pm)));padding-right:max(var(--pm),calc(50% - var(--max)/2 + var(--pm)))}.fcase .split{display:grid;grid-template-columns:6fr 6fr;gap:clamp(2rem,5vw,5rem);align-items:center}.fcase .copy{min-width:0}.fcase .copy .tag{font-family:var(--mono);font-size:var(--t-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-dark-50);margin-bottom:var(--s-5)}.fcase .copy h2{font-size:var(--t-display);margin-top:var(--s-2);max-width:17ch}.fcase .copy .lede{margin-top:var(--s-6);color:var(--text-dark-70);font-size:var(--t-body-lg);line-height:var(--lh-loose);max-width:44ch}.fcase .statline{margin-top:var(--s-8);display:flex;align-items:flex-end;gap:var(--s-5);padding-top:var(--s-6);border-top:1px solid var(--line-dark)}.fcase .statline .big{font-family:var(--mono);font-size:clamp(3.2rem,7vw,5rem);font-weight:400;letter-spacing:-.04em;line-height:.9;color:var(--text-dark)}.fcase .statline .big .em{color:var(--text-dark-50);font-size:.5em}.fcase .statline .k{font-size:var(--t-sm);color:var(--text-dark-70);max-width:22ch;line-height:1.4;padding-bottom:6px}.fcase .read{margin-top:var(--s-7);display:inline-flex;align-items:center;gap:12px;font-size:var(--t-sm);color:var(--text-dark);border-bottom:1px solid var(--text-dark);padding-bottom:4px;transition:gap var(--d-base) var(--ease)}.fcase .read:hover{gap:18px}.fcase .media{min-width:0;aspect-ratio:1.25;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-dark);background:var(--grey-2)}.fcase .media img{width:100%;height:100%;object-fit:cover;object-position:center}@media(max-width:860px){.fcase .split{grid-template-columns:1fr;gap:var(--s-8)}.fcase .media{order:-1}}.gallery .head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-5);flex-wrap:wrap;margin-bottom:var(--s-9)}.gallery .head h2{font-size:var(--t-display);margin-top:var(--s-4)}.gallery .head .all{font-size:var(--t-sm);color:var(--text-70);display:inline-flex;align-items:center;gap:10px;transition:color var(--d-base)}.gallery .head .all:hover{color:var(--text)}.gallery .head .all .arr{transition:transform var(--d-base) var(--ease-out)}.gallery .head .all:hover .arr{transform:translate(4px)}.gallery-flow{border-top:1px solid var(--line);padding-top:var(--s-9)}.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,5rem);margin-bottom:clamp(4.5rem,8vw,7.5rem)}.duo:last-child{margin-bottom:0}.duo>*{min-width:0}.gcard{display:block;transition:transform .5s var(--ease-out)}.gcard:hover{transform:translateY(-6px)}.gcard .thead{display:block;margin-bottom:var(--s-5)}.gcard .thead h3{font-size:clamp(1.125rem,1.5vw,1.4rem);font-weight:400;letter-spacing:var(--tr-h3);line-height:1.3;max-width:34ch;margin-bottom:var(--s-3)}.gcard .thead .view{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:var(--t-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-50);transition:color .3s var(--ease)}.gcard .thead .view i{font-style:normal;display:inline-block;transition:transform .4s var(--ease-out)}.gcard:hover .thead .view{color:var(--text)}.gcard:hover .thead .view i{transform:translate(5px)}.gcard .crop{display:block;position:relative;border-radius:var(--r-md);overflow:hidden;box-shadow:0 24px 64px #0000006b;outline:1px solid transparent;outline-offset:-1px;transition:box-shadow .5s var(--ease-out),outline-color .35s var(--ease)}.gcard:hover .crop,.gcard:focus-visible .crop{box-shadow:0 38px 90px #0000009e;outline-color:var(--line-strong)}.gcard:focus-visible{transform:translateY(-6px);outline:none}.gcard .crop img{width:100%;height:auto;display:block;filter:brightness(.92)}.gcard .crop:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#13121066,#13121000 34%);opacity:.4}@media(max-width:760px){.duo{grid-template-columns:1fr;gap:clamp(2.5rem,8vw,4rem)}}.faq .head{max-width:60ch;margin-bottom:var(--s-9)}.faq .head h2{font-size:var(--t-display);margin-top:var(--s-4)}.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-q{width:100%;text-align:left;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-5);padding:var(--s-6) 0;cursor:pointer}.faq-q h3{font-size:clamp(1.1rem,2vw,1.4rem);letter-spacing:-.018em;line-height:1.3;max-width:48ch;font-weight:400}.faq-q .sign{flex:none;font-family:var(--mono);font-size:1.25rem;color:var(--text-50);line-height:1;margin-top:4px;transition:transform var(--d-base) var(--ease),color var(--d-base)}.faq-item.open .faq-q .sign{transform:rotate(45deg);color:var(--text)}.faq-a{max-height:0;overflow:hidden;transition:max-height var(--d-slow) var(--ease)}.faq-a p{padding:0 0 var(--s-6);color:var(--text-70);line-height:var(--lh-loose);max-width:62ch}.faq-a p a{color:var(--text)}.team .split{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,5vw,5rem);align-items:center}.team-l{min-width:0}.team-l h2{font-size:clamp(2rem,4.5vw,3.25rem);letter-spacing:-.03em;line-height:1.05;margin-top:var(--s-4);max-width:16ch}.team-l h2 .soft{color:var(--text-50)}.team-l p{margin-top:var(--s-6);color:var(--text-70);line-height:var(--lh-loose);max-width:46ch}.team-r{min-width:0;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-elevated);padding:clamp(2rem,4vw,2.75rem);display:flex;flex-direction:column;gap:var(--s-6)}.team-r .badge{height:46px;width:auto}.team-r .stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);border-top:1px solid var(--line);padding-top:var(--s-6)}.team-r .stats .v{font-family:var(--mono);font-size:1.4rem;letter-spacing:-.03em;color:var(--text)}.team-r .stats .k{font-size:var(--t-xs);color:var(--text-50);margin-top:var(--s-2);line-height:1.4}@media(max-width:860px){.team .split{grid-template-columns:1fr;gap:var(--s-8)}}.close .inner{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,5vw,5rem);align-items:end}.close h2{font-size:clamp(2.6rem,6vw,4.5rem);letter-spacing:-.04em;line-height:.98;max-width:13ch}.close h2 .soft{color:var(--text-dark-50)}.close .right{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-7)}.close .right p{color:var(--text-dark-70);line-height:var(--lh-loose);max-width:40ch}.close .actions{display:flex;gap:var(--s-3);flex-wrap:wrap}@media(max-width:860px){.close .inner{grid-template-columns:1fr;gap:var(--s-7)}}.footer{background:var(--bg);border-top:1px solid var(--line);padding:var(--s-9) 0 var(--s-7)}.foot-in{max-width:var(--max);margin:0 auto;padding:0 var(--pm);display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s-8)}.footer .logo{font-size:var(--t-h3)}.foot-brand p{margin-top:var(--s-3);font-size:var(--t-sm);color:var(--text-50);max-width:32ch}.foot-brand .loc{margin-top:var(--s-5);font-family:var(--mono);font-size:var(--t-xs);color:var(--text-30);line-height:1.7}.foot-col h5{font-family:var(--mono);font-size:var(--t-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-30);margin-bottom:var(--s-4)}.foot-col a{display:block;font-size:var(--t-sm);color:var(--text-70);margin-bottom:var(--s-3);transition:color var(--d-base)}.foot-col a:hover{color:var(--text)}.foot-legal{max-width:var(--max);margin:var(--s-9) auto 0;padding:var(--s-6) var(--pm) 0;border-top:1px solid var(--line);font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.02em;color:var(--text-30);display:flex;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.foot-legal .dot{color:var(--red)}@media(max-width:860px){.foot-in{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1 / -1}}.rel{display:flex;align-items:baseline;gap:var(--s-6);flex-wrap:wrap;padding-top:var(--s-6);padding-bottom:var(--s-8);border-top:1px solid var(--line)}.rel-k{font-family:var(--mono);font-size:var(--t-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-30);flex:none}.rel-l{display:flex;gap:var(--s-5);flex-wrap:wrap;min-width:0}.rel-l a{font-size:var(--t-sm);color:var(--text-50);transition:color var(--d-base) var(--ease)}.rel-l a:hover{color:var(--text)}
