@font-face{font-family:Forum;src:url('assets/forum.ttf') format('truetype');font-display:swap;font-weight:400}@font-face{font-family:'Xanh Mono';src:url('assets/xanh-mono.ttf') format('truetype');font-display:swap;font-weight:400}
:root{--bg:#000;--ink:#cecece;--white:#f4f3ee;--muted:#a6a6a0;--line:#666963;--gutter:2.5vw;--display:Forum,Georgia,serif;--body:'Xanh Mono',monospace;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--white);font-family:var(--body);font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible{outline:2px solid var(--white);outline-offset:6px}button:disabled{cursor:default}img{display:block;max-width:100%}h1,h2,p{margin:0}h1,h2{font:400 1em/1 var(--display);letter-spacing:-.02em}button,a{touch-action:manipulation}::selection{background:#ccc;color:#000}.skip{position:fixed;top:-100px;left:20px;z-index:200;padding:16px;background:#fff;color:#000}.skip:focus{top:20px}
.header{height:8vw;min-height:80px;max-height:126px;padding:0 var(--gutter);display:flex;align-items:center;gap:24px;position:relative;z-index:10}.brand{width:6vw;max-width:76px;min-width:48px;display:block}.brand svg{width:100%;display:block}.desktop-nav{display:flex;gap:24px;text-transform:uppercase}.desktop-nav a{min-height:44px;display:flex;align-items:center;position:relative}.desktop-nav a:after{content:'';position:absolute;left:0;right:0;bottom:8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.desktop-nav a:hover:after{transform:scaleX(1)}.pill{border:1px solid #8d8d87;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;min-height:44px;text-transform:uppercase;background:transparent;transition:background-color .2s,color .2s;line-height:1.1}.pill:hover{background:var(--ink);color:#000}.header-cta{margin-left:auto}.menu-toggle{display:none}.mobile-menu[hidden]{display:none}
.hero{height:54vw;max-height:860px;position:relative;margin:0 var(--gutter)}.hero-word{position:absolute;font-size:17.8vw;line-height:.85;white-space:nowrap;color:var(--ink);z-index:2;pointer-events:none}.hero-word.first{left:0;top:3.8vw}.hero-word.second{font-size:14.8vw;right:0;top:31vw;z-index:4}.photo{display:block;background:#101210;padding:0;position:absolute;overflow:hidden;text-align:left}.photo img{width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.55);transition:transform 1.1s var(--ease),filter .7s}.photo:hover img,.photo:focus-visible img{transform:scale(1.045);filter:brightness(.96) saturate(.85)}.photo-label{position:absolute;bottom:0;left:0;right:0;padding:26px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.7));font-size:13px;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}.photo:hover .photo-label,.photo:focus-visible .photo-label{opacity:1;transform:translateY(0)}.hero-center{left:38%;top:13vw;width:24%;height:27vw;z-index:3}.hero-right{left:71%;top:6.8vw;width:15.5%;height:19vw;z-index:1}.hero-left{left:12.5%;top:21.3vw;width:11.5%;height:14vw;z-index:3}.hero-caption{position:absolute;left:0;top:36vw;line-height:1.25;font-size:clamp(13px,1.6vw,18px)}.scroll-cue{position:absolute;bottom:2vw;right:0;display:flex;gap:40px;font-size:12px;color:var(--muted);align-items:center;min-height:44px}.scroll-cue span:last-child{font-size:23px}
.collage{height:144vw;max-height:2300px;position:relative;isolation:isolate}.collage-center{left:30.5%;top:0;width:39%;height:45vw;max-height:720px}.sticky-copy{position:sticky;top:40vh;padding-top:13vw;text-align:center;z-index:3;width:65%;margin:0 auto;pointer-events:none}.sticky-copy h2{font-size:clamp(40px,6vw,100px);line-height:.88;text-wrap:balance}.sticky-copy .tiny{display:block;margin-top:25px;opacity:0;transition:opacity .4s}.collage:hover .tiny{opacity:.65}.tiny{font-size:12px;letter-spacing:.05em;text-transform:uppercase}.collage-right{right:0;top:42vw;width:41.5%;height:48vw;max-height:770px}.collage-left{left:0;top:65vw;width:33.4%;height:46vw;max-height:740px}.collage-small{left:50.5%;top:78vw;width:11%;height:19vw;max-height:310px;z-index:4}.about{min-height:33vw;padding:3vw 10vw 12vw 2.5vw;display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:start}.section-index{font-size:12px;color:var(--muted);padding-top:8px}.about h2{font-size:clamp(26px,3vw,48px);line-height:.98}.about p{color:var(--muted);font-size:15px;line-height:1.5;max-width:400px;margin:25px 0}.text-link{background:transparent;padding:0;text-decoration:underline;text-underline-offset:4px;min-height:44px;text-align:left}.text-link span{margin-left:20px}.text-link:hover{color:var(--ink)}
.footer{background:linear-gradient(#000 0%,#10120f 48%,#1b1e18 100%);padding:0 var(--gutter) 24px}.contact-heading{text-align:center;padding:4vw 0 6vw}.contact-heading h2{font-size:clamp(46px,9.8vw,160px);color:var(--ink);line-height:.87;margin-bottom:4vw}.contact-heading h2>span{display:flex;justify-content:center;align-items:center;gap:.06em}.contact-heading h2>span+span{margin-top:.18em}.contact-heading img{width:.72em;height:.9em;object-fit:cover;filter:saturate(.45) brightness(.8);margin:0 .02em}.footer-line{height:1px;background:var(--line)}.footer-main{padding:3vw 0 12vw;display:grid;grid-template-columns:2fr .5fr .5fr;gap:40px}.footer-name{font-family:var(--display);font-size:clamp(34px,5.7vw,90px);color:var(--muted);letter-spacing:-.03em;line-height:.9}.footer-main nav{display:flex;flex-direction:column;align-items:flex-start;text-transform:uppercase;font-size:clamp(16px,2.1vw,28px)}.footer-main nav a{line-height:1.3;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;padding-bottom:5px}.footer-social{display:flex;flex-direction:column;align-items:flex-start;gap:22px;color:var(--muted)}.footer-social>span{font-size:13px;line-height:1.5}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);align-items:center}.footer-bottom a{min-height:44px;display:flex;align-items:center}
dialog{color:var(--white);background:#080908;border:1px solid #43463f;padding:0}dialog::backdrop{background:rgba(0,0,0,.85);backdrop-filter:blur(12px)}body.modal-open{overflow:hidden}.gallery-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;margin:0;padding:24px 3vw}.gallery-dialog[open]{display:flex;flex-direction:column}.gallery-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.gallery-top h2{font-size:clamp(28px,4vw,60px);margin:8px 0 14px;text-transform:uppercase}.close{display:flex;align-items:center;gap:20px;background:transparent;font-size:13px;min-height:44px}.close span{font-size:32px}.gallery-stage{position:relative;flex:1;min-height:0;padding:14px 65px;display:flex;align-items:center;justify-content:center}.gallery-stage>img{max-height:100%;width:100%;height:100%;object-fit:contain;animation:appear .4s var(--ease)}.gallery-arrow{position:absolute;top:calc(50% - 24px);font-size:27px;background:transparent;border:1px solid #666;border-radius:50%;width:48px;height:48px}.gallery-arrow:hover{background:#ddd;color:#000}.previous{left:0}.next{right:0}.gallery-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:20px;color:var(--muted);font-size:12px;align-items:center}.info-dialog{width:min(640px,calc(100% - 36px));padding:35px}.info-dialog>.close{margin-left:auto;margin-bottom:30px}.info-dialog h2{font-size:clamp(40px,6vw,70px);margin:25px 0;text-transform:uppercase}.info-dialog p{font-size:16px;color:var(--muted);line-height:1.6}.info-dialog .pill{margin-top:28px}.info-dialog[open]{animation:appear .4s var(--ease)}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.collage-right{top:672px}.collage-left{top:1040px}.collage-small{top:1248px}}
@media(max-width:700px){:root{--gutter:5vw}.header{height:88px;min-height:0;gap:16px}.brand{min-width:44px;width:44px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:48px;height:48px;margin-left:auto;background:transparent;z-index:20}.menu-toggle span{height:1px;background:#eee;width:26px;transition:transform .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-menu{position:absolute;z-index:9;top:88px;left:0;right:0;background:#080908;padding:30px 5vw 40px;display:flex;flex-direction:column;gap:20px;border-bottom:1px solid #333}.mobile-menu a{font:40px/1.1 var(--display);text-transform:uppercase;padding:8px 0}.hero{height:125vw;max-height:none}.hero-word.first{top:6vw;font-size:24vw}.hero-word.second{top:68vw;right:-1vw;font-size:15.7vw}.hero-center{left:29%;top:27vw;width:46%;height:52vw}.hero-right{left:77%;top:15vw;width:23%;height:30vw}.hero-left{left:4%;top:49vw;width:21%;height:28vw}.hero-caption{top:92vw;font-size:13px;line-height:1.3}.scroll-cue{bottom:7vw;font-size:11px;gap:20px}.collage{height:210vw;max-height:none}.collage-center{left:18%;width:56%;height:69vw}.sticky-copy{width:94%;padding-top:32vw;top:35vh}.sticky-copy h2{font-size:8.6vw;line-height:.92}.sticky-copy .tiny{font-size:10px}.collage-right{top:80vw;width:51%;height:73vw}.collage-left{top:121vw;width:41%;height:64vw}.collage-small{left:42%;top:158vw;width:19%;height:31vw}.about{grid-template-columns:1fr;padding:12vw 7vw 24vw;gap:30px}.about>div{max-width:80%;margin-left:auto}.about h2{font-size:7vw}.about p{font-size:14px;line-height:1.55}.contact-heading{padding:8vw 0 15vw}.contact-heading h2{font-size:10.8vw;margin-bottom:10vw}.contact-heading .pill{font-size:14px}.footer-main{grid-template-columns:1fr 1fr;padding:10vw 0 16vw;gap:32px}.footer-name{grid-column:1/-1;font-size:12vw}.footer-main nav{font-size:19px}.footer-main nav a{min-height:44px;display:flex;align-items:center}.footer-bottom{flex-wrap:wrap;font-size:10px;gap:8px}.demo-note{order:3;width:100%;font-size:9px}.gallery-dialog{padding:18px}.gallery-stage{padding:12px 0 66px}.gallery-arrow{top:auto;bottom:0}.previous{left:calc(50% - 60px)}.next{right:calc(50% - 60px)}.gallery-bottom{flex-wrap:wrap;font-size:10px;gap:10px}.gallery-bottom>span:last-child{display:none}.gallery-top h2{font-size:32px}.close{gap:10px}.info-dialog{padding:25px}.photo-label{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.sticky-copy{position:relative;top:0;padding-top:30vw}.photo:hover img{transform:none}}
/* Side-page compositions measured against the Night reference. */
.desktop-nav a[aria-current=page]:after{transform:scaleX(1)}
.reference-portfolio{padding:4.2vw 0 11vw}.reference-portfolio>h1{font-size:6vw;line-height:.86;color:var(--ink);margin:0 var(--gutter) 2.6vw}.project-pair{display:grid;grid-template-columns:1fr 1fr}.reference-project{background:none;padding:0;display:block;align-self:start;text-align:center;min-width:0}.reference-project img{width:100%;object-fit:cover;filter:brightness(.8) saturate(.5);transition:filter .6s}.reference-project:hover img{filter:brightness(.98) saturate(.85)}.reference-project>span{display:block;font-size:16px;line-height:1.2;padding:8px 10px 0;text-transform:uppercase}.first-pair .reference-project:first-child img,.last-pair .reference-project:last-child img{height:55.2vw}.first-pair .reference-project:last-child img{height:26.6vw}.project-trio{display:grid;grid-template-columns:1fr 1.2fr 1fr;width:63.3%;margin:11vw auto}.project-trio img{height:30.7vw}.last-pair .reference-project:first-child img{height:30.7vw}
.reference-cover{position:relative;height:59vw;padding-top:3.2vw}.reference-cover>img{width:30.8vw;height:41.8vw;object-fit:cover;filter:brightness(.73) saturate(.45);margin:0 auto}.reference-cover h1{position:absolute;top:16.3vw;left:0;width:100%;text-align:center;font-size:16.4vw;line-height:1;color:var(--ink);pointer-events:none}.reference-about .reference-cover h1{font-size:13.5vw;top:17.5vw}.reference-story{display:grid;grid-template-columns:1fr 1.65fr;width:63%;margin:0 auto;gap:10vw;align-items:stretch}.story-picture{position:relative}.story-picture img{position:sticky;top:35vh;width:15vw;height:23vw;object-fit:cover;filter:brightness(.75) saturate(.4)}.story-text>div{margin-bottom:10vw}.story-text>div:last-child{margin-bottom:0}.story-text h2{font:16px/1.2 var(--body);margin-bottom:18px;color:var(--muted)}.story-text p{font:20px/.98 var(--display);text-transform:uppercase;color:var(--ink);letter-spacing:-.02em}.reference-accordions{margin:11vw var(--gutter) 7vw}.reference-accordions details{border-top:1px solid var(--ink)}.reference-accordions details:last-child{border-bottom:1px solid var(--ink)}.reference-accordions summary{display:flex;justify-content:space-between;align-items:center;list-style:none;cursor:pointer;font:20px/1 var(--display);padding:32px 0;min-height:80px}.reference-accordions summary::-webkit-details-marker{display:none}.reference-accordions summary span:before{content:'+';font:25px/1 var(--display)}.reference-accordions details[open] summary span:before{content:'−'}.reference-accordions details>p{font:16px/1.5 var(--body);color:var(--muted);max-width:600px;padding-bottom:30px}.reference-inquiry{display:grid;grid-template-columns:1fr 1fr;gap:5vw;padding:5vw 5vw 7vw}.reference-inquiry>h2{font-size:3vw;line-height:.96;max-width:30vw}.reference-inquiry form{width:100%;max-width:none;padding-right:1.3vw}.reference-inquiry label,.reference-inquiry legend{font:16px/1.3 var(--body);text-transform:uppercase;display:block}.reference-inquiry label{margin-bottom:22px}.reference-inquiry fieldset{padding:0;border:0;margin:0 0 0;min-width:0}.reference-inquiry legend{margin-bottom:6px}.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.reference-inquiry input,.reference-inquiry select,.reference-inquiry textarea{display:block;width:100%;background:#000;border:1px solid #ddd;color:var(--white);border-radius:0;padding:10px;font:16px/1.25 var(--body);margin-top:4px;min-height:41px}.reference-inquiry textarea{height:100px;resize:vertical}.reference-inquiry select{font-size:14px;color-scheme:dark}.reference-inquiry .pill{padding:7px 13px;font-size:14px;min-height:36px}.reference-inquiry :is(input,select,textarea):focus-visible{outline:2px solid #fff;outline-offset:3px}.form-note{font-size:12px;line-height:1.5;color:var(--muted);margin-top:16px}
@media(max-width:700px){.reference-portfolio{padding-top:8vw}.reference-portfolio>h1{font-size:9vw;margin-bottom:6vw}.reference-project>span{font-size:11px;padding:8px 5px 0}.project-trio{width:84%;margin:15vw auto;grid-template-columns:1fr 1fr 1fr}.project-trio img{height:44vw}.reference-cover{height:99vw;padding-top:7vw}.reference-cover>img{width:49vw;height:68vw}.reference-cover h1{font-size:22vw;top:29vw}.reference-about .reference-cover h1{font-size:18vw;top:30vw}.reference-story{width:90%;gap:7vw;grid-template-columns:1fr 1.6fr}.story-picture img{width:28vw;height:42vw;top:30vh}.story-text h2{font-size:12px;margin-bottom:12px}.story-text p{font-size:17px;line-height:1.05}.story-text>div{margin-bottom:14vw}.reference-accordions{margin-top:16vw}.reference-accordions summary{font-size:19px;padding:24px 0;min-height:70px}.reference-inquiry{grid-template-columns:1fr;gap:35px;padding:0 6vw 12vw}.reference-inquiry>h2{max-width:none;font-size:7vw}.reference-inquiry form{padding-right:0}.reference-inquiry label,.reference-inquiry legend{font-size:14px}.reference-inquiry input,.reference-inquiry select{min-height:44px}.reference-inquiry .pill{min-height:44px}}
@media(prefers-reduced-motion:reduce){.story-picture img{position:static}}
/* Mobile navigation: a full-height, interruptible reveal. */
@media(max-width:700px){
 body.menu-open{overflow:hidden}
 .header{z-index:60}
 .menu-open .header{position:relative}
 .menu-toggle{position:relative;display:block;flex:none}
 .menu-toggle span{position:absolute;left:11px;top:23px;margin:0;transform-origin:center;transition:transform .45s var(--ease),background-color .2s;width:26px}
 .menu-toggle span:first-child{transform:translateY(-4px)}
 .menu-toggle span:last-child{transform:translateY(4px)}
 .menu-toggle[aria-expanded=true] span:first-child{transform:rotate(45deg)}
 .menu-toggle[aria-expanded=true] span:last-child{transform:rotate(-45deg)}
 .mobile-menu{position:fixed;inset:0;top:0;z-index:50;min-height:100dvh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding:clamp(120px,20dvh,190px) 6vw max(28px,env(safe-area-inset-bottom));background:linear-gradient(160deg,#080908,#11140f);border:0;gap:0;display:flex;flex-direction:column;opacity:0;transform:translateY(-18px);clip-path:inset(0 0 100% 0);transition:clip-path .65s var(--ease),transform .65s var(--ease),opacity .3s ease;pointer-events:none}
 .mobile-menu.is-open{opacity:1;transform:translateY(0);clip-path:inset(0);pointer-events:auto}
 .mobile-menu>a{font:clamp(37px,11.8vw,66px)/1.1 var(--display);letter-spacing:-.03em;padding:22px 0;display:flex;align-items:center;gap:16px;border-bottom:1px solid #45483e;opacity:0;transform:translateY(24px);transition:opacity .35s ease,transform .55s var(--ease),color .2s;transition-delay:0s;min-height:86px}
 .mobile-menu.is-open>a{opacity:1;transform:translateY(0);transition-delay:calc(130ms + var(--order)*70ms)}
 .mobile-menu .menu-number{font:11px/1 var(--body);letter-spacing:0;color:#a3a89b;align-self:flex-start;margin-top:10px}
 .mobile-menu .menu-arrow{font:27px/1 var(--display);margin-left:auto;transition:transform .3s var(--ease);color:#a3a89b}
 .mobile-menu>a:hover,.mobile-menu>a:focus-visible{color:#fff}
 .mobile-menu>a:hover .menu-arrow{transform:translate(3px,-3px)}
 .mobile-menu>a[aria-current=page]{color:#fff}
 .mobile-menu>a[aria-current=page] .menu-number{color:#fff}
 .menu-note{margin-top:auto;padding-top:55px;display:flex;justify-content:space-between;gap:24px;font:11px/1.5 var(--body);color:#a3a89b;opacity:0;transform:translateY(12px);transition:opacity .35s,transform .5s var(--ease)}
 .is-open .menu-note{opacity:1;transform:none;transition-delay:.35s}
 .mobile-menu[hidden]{display:none}
}
@media(max-width:700px) and (max-height:560px){.mobile-menu{padding-top:95px}.mobile-menu>a{padding:12px 0;min-height:60px;font-size:34px}.menu-note{padding-top:24px}}
@media(prefers-reduced-motion:reduce){.mobile-menu,.mobile-menu>a,.menu-note,.menu-toggle span{transition:none!important;transform:none}.menu-toggle[aria-expanded=false] span:first-child{transform:translateY(-4px)}.menu-toggle[aria-expanded=false] span:last-child{transform:translateY(4px)}.menu-toggle[aria-expanded=true] span:first-child{transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:rotate(-45deg)}}
