:root{--bg:#0a0d14;--surface:#131824;--ink:#e9edf3;--muted:#a6b0c0;--accent:#76adff;--ease:cubic-bezier(.22,1,.36,1);font-family:Onest,Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:7px}::selection{background:var(--accent);color:var(--bg)}p{font-size:17px;line-height:1.7;margin:0 0 1.4em}h1,h2,h3{margin:0;font-weight:500}h1,h2{font-family:Unbounded,Arial,sans-serif;letter-spacing:-.055em}h2{font-size:clamp(34px,4.5vw,67px);line-height:1.16}h3{font-size:25px;line-height:1.35;letter-spacing:-.035em}img{display:block;max-width:100%}button{background:none}a,button{touch-action:manipulation}.skip{position:fixed;top:10px;left:20px;transform:translateY(-160%);z-index:100;background:var(--ink);color:var(--bg);padding:15px}.skip:focus{transform:none}.header{display:flex;align-items:center;justify-content:space-between;padding:27px 4.5%;position:relative;z-index:4;gap:24px}.brand{font-size:40px;font-weight:600;letter-spacing:-5px;line-height:1}.brand-dot{color:var(--accent)}nav{display:flex;gap:36px;margin-left:60px}nav a,.contact-link{font-size:15px;transition:color .2s}.contact-link span{margin-left:20px}nav a:hover,.contact-link:hover{color:var(--accent)}.hero{position:relative;max-width:1800px;margin:auto;padding:0 4.5% 44px;overflow:hidden}.hero-intro{position:absolute;left:4.5%;top:54px;z-index:2;width:26%;pointer-events:none}.hero-intro a{pointer-events:auto}.location{font-size:14px;color:var(--muted);margin-bottom:28px}.intro-statement{font-size:clamp(20px,2vw,30px);line-height:1.35;letter-spacing:-.045em}.intro-detail{font-size:15px;color:var(--muted);line-height:1.7;margin-bottom:28px}.text-link{display:inline-flex;align-items:center;gap:24px;padding:10px 0;font-size:16px;transition:color .2s,gap .25s}.text-link:hover{color:var(--accent);gap:32px}.room-area{margin-left:23%;width:77%;position:relative;padding-top:5px}.room{position:relative;transform-style:preserve-3d;transition:transform 1.4s var(--ease);will-change:transform}.room-art{width:100%;height:auto;mix-blend-mode:lighten;user-select:none;pointer-events:none}.hotspot{position:absolute;display:flex;align-items:center;gap:10px;transform:translate(-50%,-50%);padding:14px 6px;z-index:2;white-space:nowrap;transition:opacity .3s}.hotspot-manage{left:25%;top:43%}.hotspot-portal{left:58%;top:27%}.hotspot-connect{left:81%;top:57%}.spot-symbol{width:35px;height:35px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:26px;line-height:33px;display:block;transition:background .2s,transform .4s var(--ease)}.spot-label{position:absolute;bottom:calc(100% - 4px);left:50%;transform:translate(-50%,8px);background:var(--ink);color:var(--bg);padding:10px 15px;font-size:13px;opacity:0;transition:opacity .2s,transform .3s;pointer-events:none}.hotspot:hover .spot-label,.hotspot:focus-visible .spot-label,.hotspot.touring .spot-label{opacity:1;transform:translate(-50%,0)}.hotspot:hover .spot-symbol,.hotspot:focus-visible .spot-symbol,.hotspot.touring .spot-symbol{background:var(--accent);transform:rotate(90deg)}.room-caption{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:13px;color:var(--muted);padding:0 7% 24px 3%}.quiet-button{padding:10px 0;font-size:13px;transition:color .2s;white-space:nowrap}.quiet-button:hover{color:var(--accent)}.hero-name{position:relative;z-index:1;padding-top:8px}.hero h1{font-size:clamp(50px,9.4vw,155px);font-weight:400;letter-spacing:-.075em;line-height:1.1;white-space:nowrap}.name-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font-size:13px;color:var(--muted)}.section{padding:130px 6%;max-width:1600px;margin:auto}.section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:90px}.section-intro>p{max-width:370px;margin:0}.work-layout{display:grid;grid-template-columns:1fr 44%;gap:10%}.project-row{padding:0 0 86px}.project-row:last-child{padding-bottom:0}.project-kind{display:block;font-size:14px;color:var(--muted);margin-bottom:16px}.project-name{display:block;text-align:left;font-size:clamp(35px,4.3vw,67px);letter-spacing:-.065em;line-height:1.08;padding:0 0 22px;font-weight:500;transition:color .25s}.project-name span{display:inline-block;font-size:.65em;transition:transform .3s var(--ease)}.project-name:hover{color:var(--accent)}.project-name:hover span{transform:translate(5px,-5px)}.project-row p{max-width:400px;margin-bottom:18px}.project-credit{display:block;font-size:13px;color:var(--muted);line-height:1.6}.project-preview{position:sticky;top:50px;align-self:start}.preview-window{height:460px;overflow:hidden;position:relative;background:#0d111a}.preview-window img{height:100%;width:100%;object-fit:cover;object-position:15% center;transform:scale(1.5);transition:object-position 1.2s var(--ease),transform 1.2s var(--ease),opacity .4s;filter:brightness(.7)}.preview-word{position:absolute;bottom:30px;left:28px;font-family:Unbounded,Arial,sans-serif;font-size:clamp(45px,5vw,75px);letter-spacing:-.06em}.preview-caption{display:flex;justify-content:space-between;gap:10px;margin:20px 0;font-size:13px;color:var(--muted)}.project-preview p{max-width:400px}.field{padding-top:95px;padding-bottom:100px}.field-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:65px}.field-heading p{max-width:370px;margin:0}.field-content{display:grid;grid-template-columns:1fr 1fr;gap:10%}.big-number{display:block;font-family:Unbounded,Arial,sans-serif;font-size:clamp(70px,10vw,150px);letter-spacing:-.08em;font-weight:400;line-height:1.1}.deployment-stat p{color:var(--muted);margin-top:20px}.field-story h3{margin-bottom:24px}.field-story p{font-size:17px}.experience-meta{display:flex;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:13px}.field-detail{background:var(--surface);margin-top:55px;padding:25px 30px}.field-detail summary{display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;font-size:18px;list-style:none}.field-detail summary::-webkit-details-marker{display:none}.details-mark{font-size:28px}.field-detail[open] .details-mark{transform:rotate(45deg)}.field-detail>p{max-width:800px;margin:25px 0 0}.about{display:grid;grid-template-columns:1fr 2fr;gap:70px 8%;padding-top:120px}.about-side{padding-top:15px}.about-mark{font-size:150px;font-weight:600;letter-spacing:-20px;line-height:1;display:block;color:var(--accent);margin:0 0 45px -8px}.about-side p{font-size:15px;color:var(--muted)}.about-copy h2{margin-bottom:35px}.about-copy .about-lead{font-size:clamp(21px,2.2vw,29px);line-height:1.5;letter-spacing:-.035em}.about-copy>p{max-width:680px}.capabilities{grid-column:2;display:grid;grid-template-columns:1fr;gap:30px}.capability-tabs{display:flex;gap:35px}.capability-tabs button{padding:12px 0;font-size:18px;color:var(--muted)}.capability-tabs button[aria-selected=true]{color:var(--accent)}#capability-panel{min-height:180px}#capability-panel h3{margin-bottom:16px}#capability-panel p{margin:0}.contact{padding-top:110px;padding-bottom:120px;display:flex;justify-content:space-between;gap:40px;align-items:center}.contact-intro{color:var(--muted);font-size:15px}.contact h2{margin-bottom:28px;font-size:clamp(38px,5.5vw,80px)}.email-link{font-size:clamp(16px,2vw,27px);letter-spacing:-.03em;display:inline-flex;gap:30px;transition:color .2s}.email-link:hover{color:var(--accent)}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;min-width:230px;padding-top:45px;gap:8px}.button{background:var(--ink);color:var(--bg);padding:19px 23px;display:inline-flex;align-items:center;gap:32px;font-size:15px;transition:background .2s,transform .2s}.button:hover{background:var(--accent)}.button:active{transform:scale(.97)}#copy-status{font-size:13px;color:var(--accent);min-height:20px}footer{display:flex;justify-content:space-between;gap:30px;margin:0 4.5%;padding:24px 0 35px;color:var(--muted);font-size:13px}footer a:hover{color:var(--ink)}dialog{position:fixed;inset:0;width:min(1050px,calc(100% - 48px));max-height:90svh;padding:0;background:var(--surface);color:var(--ink);border:0;overflow-y:auto;overscroll-behavior:contain}dialog::backdrop{background:rgb(3 5 9 / .88)}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:20px 35px;position:sticky;top:0;background:var(--surface);z-index:3;font-size:13px}.dialog-top button{padding:12px;font-size:15px}.dialog-top button:hover{color:var(--accent)}.dialog-top button span{margin-left:18px;font-size:24px}.case{padding:20px 65px 60px}.case h2{font-size:clamp(35px,5vw,65px);margin:15px 0 30px}.case-lead{font-size:23px;max-width:740px;line-height:1.5}.case-meta{display:flex;flex-wrap:wrap;gap:16px 40px;color:var(--accent);font-size:14px;margin:32px 0}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.case-grid h3{margin:30px 0 16px}.case-grid p{font-size:16px}.case-outcome{font-size:21px;line-height:1.6;margin:35px 0;padding:28px;background:#1c2536}.case-actions{display:flex;gap:30px;align-items:center;margin-top:35px;flex-wrap:wrap}.case-art{height:220px;overflow:hidden;margin:30px 0 8px}.case-art img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.art-note{font-size:13px;color:var(--muted)}.noscript-note{padding:30px;background:var(--surface)}.noscript-note a{text-decoration:underline}
@media(prefers-reduced-motion:no-preference){body:not(.motion-paused) .hero-intro{animation:arrive .9s var(--ease) both}body:not(.motion-paused) .room-area{animation:room-enter 1.6s var(--ease) both}body:not(.motion-paused) .hero-name{animation:arrive 1s .2s var(--ease) both}body:not(.motion-paused) [data-reveal].revealing{animation:arrive .85s var(--ease) both}body:not(.motion-paused) dialog[open]{animation:dialog-enter .35s var(--ease)}body:not(.motion-paused) .hotspot.touring .spot-symbol{animation:tour-spot 1.7s ease-in-out infinite}@keyframes arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes room-enter{from{opacity:0;transform:translateY(35px) scale(.94)}to{opacity:1;transform:none}}@keyframes dialog-enter{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes tour-spot{50%{transform:scale(1.17) rotate(90deg)}}}
.motion-paused *{animation:none!important;transition:none!important}.motion-paused .room{transform:none!important}
@media(min-width:1600px){.hero-intro{top:110px}.room-area{width:73%;margin-left:27%}}
@media(max-width:1000px){.header{padding:24px 5%}.hero-intro{top:30px;width:28%}.intro-statement{font-size:22px}.intro-detail{font-size:14px}.room-area{width:79%;margin-left:21%;padding-top:40px}.room-caption{padding:0 3% 24px;margin-left:15%;flex-direction:column;align-items:flex-end;gap:0;text-align:right}.section{padding:90px 6%}.work-layout{gap:7%;grid-template-columns:1fr 44%}.preview-window{height:380px}.field-content{gap:6%}.section-intro>p,.field-heading p{max-width:310px}.about{gap:60px 7%;grid-template-columns:1fr 2fr}.contact{align-items:flex-start;flex-direction:column}.contact-actions{padding:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:20px}#copy-status{flex-basis:100%}.case{padding:15px 35px 45px}}
@media(max-width:700px){html{scroll-padding-top:25px}.header{padding:24px 6%;gap:12px}.brand{font-size:32px;letter-spacing:-4px}nav{margin-left:0;gap:21px}nav a{font-size:13px}.header>.contact-link{display:none}.hero{padding:0 6% 35px}.hero-intro{position:relative;left:auto;top:auto;width:100%;padding-top:24px;display:grid;grid-template-columns:1fr auto;column-gap:15px}.location{grid-column:1/-1;margin-bottom:18px;font-size:13px}.intro-statement{font-size:24px;margin-bottom:10px}.intro-detail{font-size:13px;align-self:center;margin-bottom:10px}.hero-intro>.text-link{font-size:14px;margin:0}.room-area{margin:0 -7%;width:114%;padding-top:8px}.room-caption{margin:0;padding:5px 7% 20px;flex-direction:row;text-align:left;gap:15px;align-items:center}.room-caption>span{max-width:220px;font-size:12px;line-height:1.5}.room-caption .quiet-button{font-size:12px}.spot-symbol{width:31px;height:31px;line-height:29px;font-size:23px}.spot-label{font-size:11px;padding:8px}.hero h1{font-size:9.1vw;letter-spacing:-.065em}.hero-name{padding-top:18px}.name-bottom{margin-top:14px;gap:12px;flex-wrap:wrap;font-size:11px}.name-bottom>span:nth-child(2){display:none}.name-bottom .quiet-button{font-size:11px}.section{padding:75px 6%}.section-intro,.field-heading{display:block;margin-bottom:48px}.section-intro h2,.field-heading h2{margin-bottom:25px}.section-intro>p,.field-heading p{max-width:420px}.work-layout{display:flex;flex-direction:column;gap:45px}.project-list{order:2}.project-preview{position:relative;top:auto;order:1}.preview-window{height:280px}.preview-window img{transform:scale(1.25);object-position:center}.preview-word{font-size:50px}.project-preview>p,.project-preview>.text-link{display:none}.preview-caption{margin-bottom:0;font-size:12px}.project-row{padding-bottom:55px}.project-name{font-size:42px}.project-name br{display:none}.project-name span{font-size:.6em}.project-row p{max-width:none}.project-kind{margin-bottom:12px}.project-credit{font-size:12px}.field-content{grid-template-columns:1fr;gap:35px}.big-number{font-size:100px}.deployment-stat p{margin-bottom:0}.field-detail{padding:20px;margin-top:35px}.field-detail summary{font-size:16px}.about{grid-template-columns:1fr;gap:35px}.about-side{order:2;padding-top:0;display:flex;flex-wrap:wrap;align-items:center;gap:20px}.about-mark{font-size:65px;letter-spacing:-9px;margin:0 15px 0 0}.about-side p{margin:0;font-size:13px}.about-side>.text-link{flex-basis:100%}.about-copy{order:1}.about-copy h2{font-size:34px;margin-bottom:26px}.about-copy .about-lead{font-size:23px}.capabilities{grid-column:1;order:3;gap:20px}.capability-tabs{gap:30px}.capability-tabs button{font-size:16px}#capability-panel{min-height:220px}#capability-panel h3{font-size:23px}.contact h2{font-size:37px}.contact-intro{font-size:14px}.email-link{font-size:17px;gap:10px}.contact-actions{gap:12px 25px}.contact-actions .button{width:100%;justify-content:space-between}footer{flex-wrap:wrap;font-size:12px;gap:18px;margin:0 6%}footer>span:nth-child(2){display:none}dialog{width:calc(100% - 20px);max-height:95svh}.dialog-top{padding:10px 20px}.case{padding:10px 24px 35px}.case h2{font-size:32px}.case-lead{font-size:20px}.case-grid{grid-template-columns:1fr;gap:0}.case-grid h3{margin-top:20px}.case-outcome{font-size:18px;padding:20px}.case-art{height:160px}.case-meta{gap:15px;font-size:13px}}
.mobile-project-art{display:none}.preview-window img{transform:none;object-position:center;filter:brightness(.8)}.case-art{height:320px}.case-art img{object-fit:contain;background:var(--bg)}
@media(min-width:701px){.room{width:min(100%,max(550px,calc((100svh - 290px)*1.5)));margin-left:auto}}
@media(max-width:700px){.case-art{height:240px}.hero-intro{display:block}.intro-statement{font-size:24px;line-height:1.35}.intro-detail{margin-top:15px}.intro-detail br{display:none}.intro-detail br::after{content:' '}.project-preview{display:none}.mobile-project-art{display:block;margin:0 0 25px}.mobile-project-art img{width:100%;height:280px;object-fit:cover}.mobile-project-art figcaption{font-size:12px;color:var(--muted);margin-top:10px}.project-name{font-size:37px}}
@media(min-width:701px) and (max-width:1000px){.hero-intro{position:relative;left:auto;top:auto;width:100%;padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.hero-intro .location{grid-column:1/-1;margin-bottom:20px}.hero-intro .intro-statement{font-size:25px}.hero-intro .intro-detail{align-self:center}.hero-intro .text-link{grid-column:1/-1}.room-area{width:85%;margin-left:15%;padding-top:0}.room{width:100%}.room-caption{margin-left:0;flex-direction:row;align-items:center;text-align:left}.hero-name{padding-top:0}}
@media(max-width:700px){.project-name br{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.room{transform:none!important}}
