
:root{--bg:#191b1d;--fg:#f1f2f1;--muted:#9b9fa3;--line:#45494c;--blue:#80b9dc;--gutter:clamp(24px,4.5vw,72px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,.project-card:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.wrap{max-width:1680px;margin:auto;padding-inline:var(--gutter)}header{height:100px;display:flex;align-items:flex-start;padding-top:37px;justify-content:space-between}.brand{font-size:22px;font-weight:500;letter-spacing:.012em}.nav{display:flex;gap:36px;align-items:center;color:var(--muted);font-size:13px;letter-spacing:.04em}.nav a:hover{color:white}.menu{border:0;background:none;color:var(--muted);padding:0;cursor:pointer;font-size:25px;line-height:16px}.identity{text-align:center;padding:80px 0 104px}.identity h1{font-size:clamp(34px,4vw,57px);font-weight:400;letter-spacing:-.035em;margin:0 0 20px}.identity p{font-size:clamp(16px,2.1vw,27px);color:var(--muted);font-weight:400;letter-spacing:.04em;margin:0}.divider{height:1px;background:var(--line)}.section-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:35px 0 28px;color:var(--muted);font-size:12px;letter-spacing:.085em}.section-bar strong{font-weight:400}.number{font-variant-numeric:tabular-nums;white-space:nowrap}.gallery{margin-bottom:76px;overflow:hidden;touch-action:pan-y;cursor:default}.gallery-inner{display:flex;gap:20px;will-change:transform;transition:transform .52s cubic-bezier(.2,.72,.2,1)}.gallery.dragging .gallery-inner,.track.is-dragging ~ .gallery .gallery-inner{transition:none}.project-card{flex:0 0 calc((100% - 20px)/2);min-width:0;user-select:none;cursor:default}.photo{width:100%;aspect-ratio:1.2;overflow:hidden;background:#252a2d}.photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.86);transition:transform .5s ease}.project-card:hover .photo img{transform:scale(1.018)}.project-caption{display:flex;justify-content:space-between;gap:15px;padding:17px 0 0}.project-caption h3{font-size:18px;font-weight:400;margin:0 0 8px}.project-caption p{font-size:14px;color:var(--muted);margin:0}.card-arrow{font-size:24px;color:var(--muted);font-weight:200}.slider-row{display:flex;align-items:center;gap:26px;margin:0 0 30px}.track{height:28px;display:flex;align-items:center;flex:1;position:relative;touch-action:none;cursor:default;outline:none}.rail{width:100%;height:1px;background:var(--line);position:relative;pointer-events:none}.thumb{position:absolute;top:50%;left:0;width:9%;height:2px;transform:translateY(-50%);background:var(--blue);pointer-events:none;transition:height .16s ease}.track:hover .thumb,.track:focus-visible .thumb,.track.is-dragging .thumb{height:6px}.track.is-dragging .thumb{transition:height .16s ease}.controls{display:flex;align-items:center;gap:18px}.count{font-size:12px;letter-spacing:.07em;color:var(--muted);white-space:nowrap;min-width:87px;text-align:right;font-variant-numeric:tabular-nums}.arrow{border:0;background:none;color:var(--muted);font-size:24px;padding:4px;cursor:pointer}.arrow:hover{color:var(--fg)}.arrow:disabled{opacity:.22;cursor:default}.minor-heading{font-size:12px;color:var(--muted);letter-spacing:.09em;font-weight:400;margin:0 0 22px}.feature{display:grid;grid-template-columns:1fr 1.15fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:0}.feature-copy{padding:62px var(--gutter) 62px max(var(--gutter),calc((100vw - 1680px)/2 + var(--gutter)));display:flex;flex-direction:column;justify-content:center}.feature-copy h2{font-size:clamp(24px,3vw,42px);font-weight:400;line-height:1.1;letter-spacing:-.015em;margin:15px 0 20px}.feature-copy p{max-width:340px;color:var(--muted);font-size:15px;line-height:1.6;margin:0 0 34px}.feature-img{min-height:330px;background:#272a2d}.feature-img img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.75)}.text-link{font-size:12px;letter-spacing:.04em;color:#d6d8d9}.text-link span{margin-left:20px;font-size:19px}.ideas{grid-template-columns:1.15fr 1fr}.ideas .feature-img{order:-1}.ideas .feature-copy{padding-left:clamp(30px,5vw,100px)}.footer{display:flex;justify-content:space-between;align-items:end;gap:30px;padding-top:35px;padding-bottom:40px}.footer .name{font-size:16px}.footer small{display:block;font-size:10px;letter-spacing:.06em;color:var(--muted);margin-top:8px}.footer-links{display:flex;gap:24px;color:var(--muted);font-size:11px}.notice{color:#6f777b;font-size:11px;text-align:center;padding:20px 24px 30px;line-height:1.6}@media(max-width:700px){header{height:84px;padding-top:28px}.brand{font-size:17px}.nav{gap:18px;font-size:11px}.nav .practice-link{display:none}.identity{padding:67px 0 78px}.identity h1{font-size:34px}.identity p{font-size:16px}.gallery{margin-bottom:52px}.gallery-inner{gap:14px}.project-card{flex-basis:100%}.photo{aspect-ratio:1.15}.project-caption h3{font-size:16px}.slider-row{gap:12px;margin:0 0 22px}.controls{gap:6px}.count{min-width:73px;font-size:10px}.arrow{font-size:19px}.feature,.ideas{display:flex;flex-direction:column}.feature-copy,.ideas .feature-copy{padding:45px var(--gutter)}.feature-img,.ideas .feature-img{min-height:240px;order:0}.footer{flex-direction:column;align-items:start}.footer-links{flex-wrap:wrap;gap:18px}}

/* The same blue marker anchors static sections; only interactive tracks respond to hover. */
.feature{position:relative}
.static-hairline{position:absolute;top:0;left:var(--gutter);right:var(--gutter);height:1px;background:var(--line);z-index:2;pointer-events:none}
.static-hairline span{display:block;width:9%;height:2px;background:var(--blue)}

/* V10: restrained identity emblem and functional full site index */
.brand{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}
.ai-emblem{width:31px;height:31px;border:1.35px solid #e4e5e5;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:400;letter-spacing:-.045em;line-height:1}
.menu{width:28px;height:25px;display:flex;align-items:center;justify-content:center;position:relative;z-index:110;}
.menu-strokes{width:24px;height:17px;display:flex;flex-direction:column;justify-content:space-between;}
.menu-strokes i{display:block;height:1.4px;width:100%;background:#d5d7d8;transition:transform .23s ease,opacity .18s ease}
.menu:hover .menu-strokes i{background:#fff}
body.menu-open{overflow:hidden}
.menu-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.54);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:99}
.menu-panel{position:fixed;right:0;top:0;bottom:0;width:min(460px,100vw);background:#191b1d;z-index:100;padding:clamp(30px,4vw,62px);display:flex;flex-direction:column;box-shadow:-24px 0 70px rgba(0,0,0,.2);transform:translateX(102%);visibility:hidden;transition:transform .34s cubic-bezier(.2,.75,.2,1),visibility .34s}
.menu-open .menu-backdrop{opacity:1;pointer-events:auto}
.menu-open .menu-panel{transform:translateX(0);visibility:visible}
.menu-panel-top{display:flex;align-items:center;justify-content:space-between;color:#a0a4a7;font-size:12px;letter-spacing:.11em;min-height:28px}
.menu-close{width:32px;height:32px;border:0;background:transparent;cursor:pointer;position:relative;color:#d5d7d8}
.menu-close span{display:block;width:22px;height:1px;background:currentColor;position:absolute;left:5px;top:15px;transform:rotate(45deg)}
.menu-close span+span{transform:rotate(-45deg)}
.menu-close:hover{color:#fff}
.menu-rule{height:1px;background:#404447;margin:23px 0 20px}
.menu-links{display:flex;flex-direction:column}
.menu-links a{display:flex;align-items:center;justify-content:space-between;padding:19px 0;color:#c2c4c5;font-size:clamp(25px,2.8vw,35px);font-weight:400;letter-spacing:.015em;transition:color .18s ease}
.menu-links a:hover,.menu-links a:focus-visible{color:white}
.menu-links small{font-size:12px;letter-spacing:.07em;color:#80b9dc;font-weight:400}
.menu-panel-foot{color:#8c9296;font-size:12px;letter-spacing:.02em;margin-top:auto;padding-top:12px}
@media(max-width:700px){.brand{gap:8px}.ai-emblem{width:25px;height:25px;font-size:11px}.menu-panel{padding:28px}.menu-links a{padding:18px 0}}
/* V10: clear brand-first hierarchy; smaller, editorial menu typography */
.menu-open .menu{z-index:0}
.menu-panel{padding:clamp(28px,3.3vw,48px)}
.menu-panel-top{min-height:35px}
.menu-brand{display:inline-flex;align-items:center;gap:10px;color:#f1f2f1;font-size:21px;letter-spacing:.018em;font-weight:400;white-space:nowrap}
.menu-brand .ai-emblem{width:25px;height:25px;font-size:10px;border-width:1px}
.menu-rule{margin:25px 0 16px}
.menu-links a{font-size:19px;padding:16px 0;letter-spacing:.018em}
.menu-links small{font-size:11px}
.menu-panel-foot{font-size:11px}
@media(max-width:700px){.menu-panel{padding:28px}.menu-links a{font-size:18px;padding:17px 0}}
@media(prefers-reduced-motion:reduce){.menu-panel,.menu-backdrop,.menu-strokes i{transition:none}}

/* V11: client portal design milestone archive */
.portal-section{padding:48px 0 100px;min-height:70vh;scroll-margin-top:35px}.portal-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:50px 0 65px}.portal-eyebrow{font-size:11px;letter-spacing:.09em;color:var(--blue);margin-bottom:22px}.portal-intro h2{font-size:clamp(30px,4vw,57px);font-weight:400;letter-spacing:-.035em;line-height:1.12;max-width:800px;margin:0 0 20px}.portal-intro p{font-size:15px;color:var(--muted);margin:0}.portal-back{font-size:11px;letter-spacing:.06em;color:var(--muted);white-space:nowrap;padding-bottom:3px}.portal-back:hover{color:white}.portal-list{border-top:1px solid var(--line)}.portal-milestone{border-bottom:1px solid var(--line)}.portal-milestone summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:65px 1fr 30px;align-items:center;gap:15px;padding:31px 4px}.portal-milestone summary::-webkit-details-marker{display:none}.portal-index{color:var(--blue);font-size:12px}.portal-milestone-title{font-size:clamp(19px,2.3vw,29px);font-weight:400;color:#d5d7d8}.portal-plus{font-size:22px;color:var(--muted);font-weight:200;text-align:right;transition:transform .2s}.portal-milestone[open] .portal-plus{transform:rotate(45deg)}.portal-milestone summary:hover .portal-milestone-title{color:white}.portal-detail{padding:0 44px 34px 84px;max-width:650px;color:var(--muted);font-size:14px;line-height:1.7}.portal-disclaimer{font-size:10px;letter-spacing:.035em;color:#71777a;margin:50px 0 0;line-height:1.7}@media(max-width:700px){.menu-brand{font-size:20px}.portal-section{padding:30px 0 70px}.portal-intro{display:block;padding:35px 0 45px}.portal-back{display:inline-block;margin-top:30px}.portal-milestone summary{grid-template-columns:35px 1fr 24px;gap:10px;padding:24px 2px}.portal-detail{padding:0 20px 28px 47px}}

/* Single-file page routing: client portal is its own view. */
body:not(.portal-view) #client-portal{display:none!important}
body.portal-view .identity,body.portal-view #work,body.portal-view #practice,body.portal-view #ideas,body.portal-view #footer,body.portal-view .notice,body.portal-view body>.wrap>.divider{display:none!important}
body.portal-view>.wrap:first-of-type>.divider{display:none!important}
body.portal-view #client-portal{display:block!important;min-height:calc(100vh - 100px)}

/* V14 — discreet AI emblem entrance and independent Studio page */
.menu-brand>a:first-child{color:#f1f2f1;text-decoration:none}
.studio-secret{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer}
.studio-secret .ai-emblem{transition:border-color .2s,color .2s,background .2s}
.studio-secret:hover .ai-emblem,.studio-secret:focus-visible .ai-emblem{color:#80b9dc;border-color:#80b9dc}
.studio-section{padding:48px var(--gutter) 110px;min-height:calc(100vh - 100px)}
.studio-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:50px 0 68px}
.studio-eyebrow{font-size:11px;letter-spacing:.1em;color:var(--blue);margin-bottom:24px}
.studio-intro h2{font-size:clamp(42px,5vw,72px);font-weight:400;letter-spacing:-.035em;margin:0 0 12px}
.studio-intro p{font-size:17px;color:var(--muted);margin:0}
.studio-grid{border-top:1px solid var(--line)}
.studio-tile{display:grid;grid-template-columns:60px 1fr 30px;gap:20px;align-items:center;padding:31px 4px;border-bottom:1px solid var(--line)}
.studio-num{font-size:12px;color:var(--blue)}
.studio-tile h3{font-size:clamp(20px,2.4vw,30px);font-weight:400;margin:0 0 9px;color:#e4e5e5}
.studio-tile p{font-size:13px;color:var(--muted);margin:0}
.studio-arrow{color:#9ca2a6;font-size:22px;font-weight:200;text-align:right}
.studio-tile:hover h3,.studio-tile:hover .studio-arrow{color:#fff}
.studio-note{margin-top:54px;color:#777e82;font-size:10px;letter-spacing:.035em;line-height:1.6}
body:not(.studio-view) #studio{display:none!important}
body.studio-view .identity,body.studio-view #work,body.studio-view #practice,body.studio-view #ideas,body.studio-view #footer,body.studio-view .notice,body.studio-view #client-portal{display:none!important}
body.studio-view>.wrap:first-of-type>.divider{display:none!important}
@media(max-width:700px){.studio-section{padding-top:25px}.studio-intro{display:block;padding:35px 0 45px}.studio-intro .portal-back{display:inline-block;margin-top:25px}.studio-tile{grid-template-columns:34px 1fr 22px;gap:10px;padding:24px 2px}}

/* Practice — standalone editorial page */
.practice-page{padding-top:52px;padding-bottom:115px;min-height:calc(100vh - 100px)}
.practice-kicker{font-size:12px;letter-spacing:.09em;color:var(--muted);margin-bottom:47px}
.practice-headline{font-size:clamp(34px,4.5vw,65px);font-weight:400;letter-spacing:-.025em;line-height:1.14;margin:0 0 76px;max-width:950px}
.practice-rule{height:1px;background:var(--line)}
.practice-regions{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:52px 0 65px}
.practice-city{font-size:clamp(23px,2.6vw,38px);font-weight:400;letter-spacing:-.015em;margin:0 0 12px}
.practice-region{font-size:17px;color:var(--muted)}
.practice-about{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:90px 0 45px}
.practice-about h3{font-size:clamp(25px,3vw,42px);font-weight:400;line-height:1.25;margin:0;max-width:550px}
.practice-about-copy{max-width:550px;color:#aeb2b5;font-size:16px;line-height:1.8}
.practice-about-copy p{margin:0 0 23px}
.practice-caption{font-size:11px;color:#777e82;letter-spacing:.06em;margin-top:60px}
body:not(.practice-view) #practice-page{display:none!important}
body.practice-view .identity,body.practice-view #work,body.practice-view #practice,body.practice-view #ideas,body.practice-view #client-portal,body.practice-view #studio,body.practice-view .notice{display:none!important}
body.practice-view>.wrap:first-of-type>.divider{display:none!important}
@media(max-width:700px){.practice-page{padding-top:26px;padding-bottom:70px}.practice-kicker{margin-bottom:34px}.practice-headline{margin-bottom:52px}.practice-regions{gap:15px;padding:34px 0 46px}.practice-region{font-size:14px}.practice-about{grid-template-columns:1fr;gap:22px;padding-top:57px}.practice-about-copy{font-size:15px}}

/* The Planets: quiet editorial gallery, four visible and a fifth on demand */
.planets-section{border-top:1px solid var(--line);margin:6px 0 80px;padding-bottom:6px}
.planet-header{display:flex;justify-content:space-between;align-items:center;padding:25px 0 19px;font-size:12px;letter-spacing:.105em;color:var(--muted)}
.planet-header a{color:#d7dee2;letter-spacing:.055em}.planet-header a span{font-size:19px;margin-left:14px}.planet-header a:hover{color:white}
.planet-window{overflow:hidden;touch-action:pan-y}.planet-inner{display:flex;gap:14px;transform:translateX(0);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.planet-card{flex:0 0 calc((100% - 42px)/4);min-width:0;display:block;color:inherit}.planet-photo{aspect-ratio:1.29;overflow:hidden;background:#25292c}.planet-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.84);transition:transform .5s ease}.planet-card:hover img{transform:scale(1.025)}
.planet-card h3{font-size:14px;font-weight:400;letter-spacing:.015em;margin:14px 0 7px}.planet-card p{font-size:13px;line-height:1.45;color:var(--muted);margin:0;max-width:210px}
.planet-bottom{display:flex;align-items:center;gap:16px;padding:12px 0 22px}.planet-slider{height:28px;display:flex;align-items:center;flex:1;cursor:pointer;position:relative;touch-action:none}.planet-slider:before{content:'';width:100%;height:1px;background:var(--line)}.planet-slider span{position:absolute;left:0;top:13px;height:2px;width:9%;background:var(--blue);transition:left .55s ease}.planet-index{font-size:11px;color:var(--muted);white-space:nowrap;letter-spacing:.04em}.planet-arrow{border:0;background:transparent;color:#bfc4c7;cursor:pointer;font-size:22px;padding:0 3px}.planet-arrow:disabled{opacity:.22;cursor:default}
.planets-page{padding-top:40px;padding-bottom:100px;min-height:70vh}.planets-page-top{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;letter-spacing:.08em}.planets-page-top a{color:#d6d9db}.planets-page h1{font-size:clamp(42px,5.5vw,82px);font-weight:400;letter-spacing:-.035em;margin:75px 0 23px}.planets-intro{font-size:clamp(17px,2vw,25px);font-weight:400;color:#bfc2c4;line-height:1.5;max-width:850px;margin:0 0 78px}.planet-page-rule{height:1px;background:var(--line)}.planet-detail{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:45px 0;border-bottom:1px solid var(--line);align-items:center}.planet-detail img{width:100%;aspect-ratio:1.75;object-fit:cover;filter:saturate(.8)}.planet-detail-number,.planet-detail-placeholder{font-size:11px;color:var(--muted);letter-spacing:.09em}.planet-detail h2{font-size:clamp(25px,3vw,42px);font-weight:400;margin:20px 0 8px}.planet-detail-sub{color:#e3e5e6!important;font-size:16px!important}.planet-detail p{font-size:15px;color:#aeb2b5;line-height:1.7;max-width:470px}.planet-detail-placeholder{display:block;margin-top:28px}.planet-page-note{font-size:10px;color:#7b8285;letter-spacing:.08em;margin-top:45px}
body:not(.planets-view) #planets-page{display:none!important}
body.planets-view .identity,body.planets-view #work,body.planets-view #planets,body.planets-view #practice,body.planets-view #ideas,body.planets-view #practice-page,body.planets-view #client-portal,body.planets-view #studio,body.planets-view .notice{display:none!important}
@media(max-width:700px){.planet-card{flex-basis:calc((100% - 12px)/2)}.planet-inner{gap:12px}.planets-section{margin-bottom:55px}.planet-card h3{font-size:12px}.planet-card p{font-size:12px}.planet-bottom{gap:10px}.planet-detail{grid-template-columns:1fr;gap:18px;padding:32px 0}.planets-page h1{margin-top:50px}.planets-intro{margin-bottom:45px}}
