@charset "UTF-8";
:root{--bg:#111211;--paper:#efeee8;--muted:#a3a59d;--line:#353730;--accent:#d5ff63;--gutter:4.4vw;--ease:cubic-bezier(.2,.75,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--paper);font-family:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}body.locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{border:0;background:none}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}::selection{background:var(--accent);color:var(--bg)}.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}.mono,.eyebrow{font-family:"Courier New",monospace;font-size:11px;font-weight:400;letter-spacing:.07em}.dot{display:inline-block;background:var(--accent);width:6px;height:6px;border-radius:50%;margin-right:9px;vertical-align:middle}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--accent);color:#111;padding:16px}.skip:focus{top:10px}
.header{height:92px;position:absolute;top:0;left:0;width:100%;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);border-bottom:1px solid #ffffff28;background:linear-gradient(#1118,transparent)}.wordmark{display:flex;align-items:center;gap:12px;font-size:24px;letter-spacing:-1.4px;line-height:.85;font-weight:700}.wordmark small{display:block;font-size:11px;letter-spacing:5px;margin-top:6px;font-weight:400}.source-symbol{color:var(--accent);font-size:43px;font-weight:400;line-height:1}.header nav{display:flex;gap:36px;font-size:12px}.header nav a,.text-link{transition:color .25s}.header nav a:hover,.text-link:hover{color:var(--accent)}.header-tools{display:flex;align-items:center;gap:28px}.language{font-size:11px;padding:10px 0;white-space:nowrap}.language span{color:#777;margin:0 8px}.language b{color:var(--accent)}.contact-link{font-size:12px;display:flex;gap:26px;align-items:center}.contact-link>span:last-child{display:grid;place-items:center;border:1px solid #aaa7;border-radius:50%;width:33px;height:33px;font-size:20px;transition:background .3s,color .3s}.contact-link:hover>span:last-child{background:var(--accent);color:#111;border-color:var(--accent)}.menu{display:none}
.hero{position:relative;height:max(800px,100svh);max-height:1100px;overflow:hidden;isolation:isolate}.hero-art,.hero-shade{position:absolute;inset:0;z-index:-2}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:53% 48%;animation:drift 20s ease-in-out infinite alternate;transition:opacity .45s ease;filter:saturate(.72)}.hero-shade{z-index:-1;background:linear-gradient(90deg,#0b101160 0%,#0b10111a 60%),linear-gradient(180deg,#0a11164d 0%,#11121100 25%,#11121125 45%,#111211ee 100%)}.hero-top{position:absolute;top:126px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;font-size:10px;color:#dddfda}.hero-content{position:absolute;left:var(--gutter);right:var(--gutter);bottom:190px}.eyebrow{margin-bottom:30px;letter-spacing:.2em}.hero h1{font-size:clamp(65px,8.8vw,146px);letter-spacing:-.065em;line-height:1.12;font-weight:500}.hero h1 span{display:block;animation:rise-in 1.2s var(--ease) both}.hero h1 .second-line{margin-left:9.5vw;animation-delay:.15s}.hero-summary{margin-top:30px;display:flex;align-items:center;justify-content:space-between;max-width:52vw;padding-left:10vw}.hero-summary p{font-size:13px;line-height:1.9;color:#e1e1dc;letter-spacing:.03em}.round-link{width:56px;height:56px;border:1px solid #eeeeee7a;border-radius:50%;display:grid;place-items:center;font-size:29px;transition:background .3s,color .3s,transform .3s}.round-link:hover{background:var(--accent);color:#111;transform:rotate(45deg)}.hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:37px;display:flex;align-items:flex-end;justify-content:space-between;padding-top:22px;border-top:1px solid #ffffff35}.frame-meta{display:flex;flex-direction:column;gap:8px;font-size:13px}.frame-meta>.mono{font-size:9px;color:var(--accent);margin-bottom:2px}.frame-category{color:#aeb1ac;font-size:10px}.frame-controls{display:flex;align-items:center;gap:10px}.frame{position:relative;padding:0;width:90px;height:54px;opacity:.5;transition:opacity .3s,transform .4s}.frame img{width:100%;height:100%;object-fit:cover}.frame span{position:absolute;bottom:4px;left:6px;font:9px monospace;text-shadow:0 1px 5px #000}.frame.active{outline:1px solid var(--accent);outline-offset:4px;opacity:1}.frame:hover{opacity:1;transform:translateY(-3px)}.motion{margin-left:8px;font-size:16px;width:33px;height:40px}.ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0}.ticker>div{display:flex;justify-content:space-around;gap:30px;white-space:nowrap;font-size:13px;letter-spacing:.13em}.ticker span{color:var(--accent);font-size:17px}
.section-kicker{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.06em}.mini-cross{color:var(--accent);font-size:30px}.intro{padding-top:100px;padding-bottom:114px}.intro-body{display:grid;grid-template-columns:1.25fr 1fr;gap:12vw;margin-top:55px}.intro h2{font-size:clamp(30px,3.4vw,60px);line-height:1.5;font-weight:400;letter-spacing:-.05em}.intro-copy p{font-size:14px;line-height:2.1;max-width:470px}.intro-copy .muted{color:var(--muted);margin-top:20px;font-size:12px}.text-link{display:inline-flex;align-items:center;gap:40px;font-size:12px;padding:20px 0 10px;border-bottom:1px solid #666;margin-top:22px}.text-link>span:last-child{font-size:24px}.works{padding-top:40px;padding-bottom:100px}.works .section-kicker{padding-top:26px;border-top:1px solid var(--line);color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:42px 0 47px}.section-heading h2,.practice>h2{font-size:clamp(36px,4.7vw,75px);font-weight:400;letter-spacing:-.05em}.count{font-family:monospace;font-size:12px;vertical-align:top;margin-left:20px;letter-spacing:0;color:var(--accent);display:inline-block;margin-top:8px}.filters{display:flex;gap:8px}.filters button{border:1px solid var(--line);border-radius:30px;padding:10px 18px;font-size:11px;transition:background .2s,color .2s}.filters button.active,.filters button:hover{background:var(--paper);color:#111}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px 26px}.project{display:block;width:100%;text-align:left;padding:0}.project[hidden]{display:none}.project:nth-child(even){margin-top:70px}.project-image{position:relative;aspect-ratio:1.65;overflow:hidden;background:#1d201d}.project img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter 1.1s;filter:saturate(.85)}.project:hover img{transform:scale(1.045);filter:saturate(1)}.project-number{position:absolute;top:17px;left:17px;font:10px monospace;background:#111b;border:1px solid #ffffff38;padding:7px 10px}.project-open{position:absolute;right:18px;bottom:18px;background:var(--accent);color:#111;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:24px;transform:translateY(70px);transition:transform .5s var(--ease)}.project:hover .project-open,.project:focus-visible .project-open{transform:translateY(0)}.project-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:19px}.project-caption h3{font-size:21px;font-weight:400;letter-spacing:-.04em}.project-caption span{font-size:10px;color:var(--muted);white-space:nowrap}.project-subtitle{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.7}.work-footnote{text-align:center;margin-top:78px;color:var(--muted);font-size:11px;letter-spacing:.12em}.practice{padding-top:50px;padding-bottom:110px}.practice .section-kicker{border-top:1px solid var(--line);padding-top:25px;color:var(--muted)}.practice>h2{margin:50px 0 60px}.practice-row{display:grid;grid-template-columns:.15fr 1fr 1fr .1fr;gap:35px;border-top:1px solid var(--line);padding:38px 0 46px}.practice-row:last-child{border-bottom:1px solid var(--line)}.practice-num{color:var(--accent);padding-top:8px}.practice-row h3{font-size:clamp(22px,2.5vw,38px);font-weight:400;letter-spacing:-.045em}.practice-cn{display:block;margin-top:14px;color:var(--muted);font-size:12px}.practice-desc{max-width:420px}.practice-desc p{font-size:12px;line-height:2;color:var(--muted)}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.tags span{border:1px solid var(--line);padding:7px 9px;font-size:9px;color:#d3d4cd}.practice-arrow{font-size:30px;color:var(--accent)}.manifesto{height:580px;position:relative;isolation:isolate;overflow:hidden}.manifesto img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;position:absolute;inset:0;z-index:-2}.manifesto:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1119,#1111),linear-gradient(0deg,#1118,transparent);z-index:-1}.manifesto>div{height:100%;display:flex;flex-direction:column;justify-content:center;padding:var(--gutter);gap:40px}.manifesto p{font-size:clamp(32px,4.8vw,76px);line-height:1.35;letter-spacing:-.05em}.contact{padding-top:100px;padding-bottom:90px}.contact .section-kicker{color:var(--muted)}.contact-main{display:flex;justify-content:space-between;align-items:center;margin:60px 0}.contact h2{font-size:clamp(48px,6.7vw,105px);font-weight:400;line-height:1.25;letter-spacing:-.06em}.contact-orbit{width:140px;height:140px;display:grid;place-items:center;border:1px solid var(--accent);border-radius:50%;font-size:70px;color:var(--accent);transition:background .4s,color .4s,transform .5s}.contact-orbit:hover{background:var(--accent);color:#111;transform:rotate(45deg)}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:50px}.contact-bottom>p{color:var(--muted);font-size:13px;line-height:2}.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:17px}.contact-details>a[href^="mailto:"]{font-size:clamp(18px,2.1vw,30px);letter-spacing:-.025em;border-bottom:1px solid var(--line);padding-bottom:10px}.contact-details>div{font-size:12px;color:var(--muted);display:flex;gap:25px;align-items:center}.contact-details button{font-size:10px;border:1px solid var(--line);padding:6px 12px;border-radius:20px}.contact-details>a{font-size:12px}.contact-details a:hover{color:var(--accent)}#copy-status{font-size:11px;color:var(--accent);min-height:14px}footer{overflow:hidden}.footer-word{font-size:20.5vw;line-height:1;letter-spacing:-.085em;font-weight:500;border-top:1px solid var(--line);padding:45px 0 25px;display:flex;justify-content:space-between;align-items:center}.footer-word span{font-size:14vw;color:var(--accent);font-weight:400;letter-spacing:-.08em}.footer-base{display:flex;justify-content:space-between;padding:24px 0 35px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
dialog{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:0 var(--gutter) 70px;background:#111211;color:var(--paper);overflow-y:auto;overscroll-behavior:contain}dialog::backdrop{background:#000d}.dialog-toolbar{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#111211f5;z-index:2;padding:28px 0;border-bottom:1px solid var(--line)}.dialog-toolbar .wordmark{font-size:20px;letter-spacing:-1px}.dialog-toolbar .wordmark span{font-size:10px;letter-spacing:2px}.dialog-toolbar button{font-size:13px;padding:8px 0 8px 20px}.dialog-intro{padding:65px 0}.dialog-intro>.mono{color:var(--accent)}.dialog-intro h2{font-size:clamp(35px,5vw,80px);font-weight:400;letter-spacing:-.05em;margin:25px 0}.dialog-intro p{max-width:650px;font-size:14px;line-height:2;color:var(--muted)}.dialog-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.dialog-tags span{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:9px 14px}#dialog-gallery{display:grid;gap:25px;max-width:1500px;margin:auto}#dialog-gallery figure{margin:0}#dialog-gallery img{width:100%;height:auto;background:#080808}#dialog-gallery figcaption{font-size:10px;color:var(--muted);margin-top:8px;text-align:right}.dialog-end{padding:65px 0 0;font-size:24px}.dialog-end .text-link{font-size:14px}
.reveal{opacity:1;transform:none}.js-motion .reveal.pending{opacity:0;transform:translateY(30px)}.js-motion .reveal{transition:opacity .8s var(--ease),transform 1s var(--ease)}.motion-paused .hero-art img{animation-play-state:paused}.motion-paused{scroll-behavior:auto}.motion-paused .reveal{transition:none}.motion-paused .project img{transition:none}.motion-paused .hero h1 span{animation:none}
html[lang=en] .hero h1{font-size:clamp(65px,8.7vw,139px);line-height:1.02;letter-spacing:-.065em}html[lang=en] .hero-summary{max-width:60vw}html[lang=en] .intro h2{line-height:1.15}html[lang=en] .contact h2{line-height:1.05}
@keyframes drift{from{transform:scale(1.02)}to{transform:scale(1.09)}}@keyframes rise-in{from{opacity:0;transform:translateY(35px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(min-width:1800px){:root{--gutter:7vw}.hero-content{bottom:230px}.hero-top{top:145px}}
@media(max-width:1000px){.header nav{gap:24px}.header-tools{gap:18px}.contact-link{gap:12px}.intro-body{gap:7vw}.hero-summary{max-width:65vw}.hero{height:850px}.project-caption{align-items:flex-start}.project-caption h3{font-size:18px}.project-caption span{font-size:9px}.practice-row{gap:20px}.manifesto{height:460px}.contact-orbit{width:110px;height:110px;font-size:55px}.hero h1{font-size:10vw}html[lang=en] .hero h1{font-size:10vw}}
@media(max-width:700px){:root{--gutter:6vw}html{scroll-padding-top:20px}.header{height:80px}.wordmark{font-size:20px;gap:9px}.wordmark small{font-size:9px;letter-spacing:4px}.source-symbol{font-size:35px}.header-tools{gap:22px}.contact-link{display:none}.menu{display:flex;flex-direction:column;gap:6px;padding:12px 0 12px 8px}.menu span{width:22px;height:1px;background:var(--paper)}.header nav{display:none;position:absolute;top:80px;left:0;right:0;padding:28px var(--gutter);background:var(--bg);border-bottom:1px solid var(--line)}.header nav.open{display:flex;flex-direction:column;gap:30px;font-size:19px}.hero{height:850px;min-height:95svh;max-height:1000px}.hero-art img{object-position:57% center}.hero-shade{background:linear-gradient(0deg,#111211 0%,#11121150 45%,#11121133 100%)}.hero-top{top:108px;font-size:8px}.hero-top>span:last-child{display:none}.hero-content{bottom:235px}.eyebrow{font-size:9px;letter-spacing:.09em;margin-bottom:25px}.hero h1{font-size:14vw;line-height:1.3;letter-spacing:-.07em}.hero h1 .second-line{margin-left:0}.hero-summary{padding-left:0;max-width:100%;margin-top:25px;gap:25px}.hero-summary p{font-size:11px;line-height:1.9}.round-link{flex-shrink:0;width:48px;height:48px}.hero-bottom{bottom:28px;gap:25px;flex-wrap:wrap}.frame-meta{gap:5px;font-size:12px}.frame-category{font-size:9px}.frame-controls{gap:9px}.frame{width:62px;height:40px}.motion{margin-left:0;width:24px}.ticker{padding:20px 0}.ticker>div{justify-content:flex-start;font-size:10px;gap:25px;padding-left:var(--gutter)}.ticker span{font-size:13px}.intro{padding-top:65px;padding-bottom:65px}.intro-body{grid-template-columns:1fr;gap:30px;margin-top:30px}.intro h2{font-size:32px;line-height:1.5}.intro-copy p{font-size:13px}.intro-copy .muted{font-size:11px}.text-link{margin-top:15px}.section-kicker .mono{font-size:9px}.section-heading{align-items:flex-start;flex-direction:column;gap:25px;margin:32px 0}.section-heading h2{font-size:40px}.filters button{padding:9px 15px;font-size:10px}.project-grid{grid-template-columns:1fr;gap:32px}.project:nth-child(even){margin-top:0}.project-image{aspect-ratio:1.55}.project-caption{margin-top:14px}.project-caption h3{font-size:21px}.project-open{transform:none;width:35px;height:35px;font-size:20px;right:12px;bottom:12px}.project-number{top:12px;left:12px;font-size:9px}.work-footnote{margin-top:45px;font-size:9px}.works{padding-bottom:55px}.practice{padding-top:30px;padding-bottom:65px}.practice>h2{font-size:37px;margin:35px 0}.practice-row{grid-template-columns:25px 1fr;gap:18px;padding:28px 0 32px}.practice-desc{grid-column:2}.practice-row h3{font-size:25px}.practice-cn{margin-top:9px;font-size:11px}.practice-arrow{display:none}.practice-desc p{font-size:11px}.tags{margin-top:17px}.manifesto{height:430px}.manifesto img{object-position:65% center}.manifesto>div{gap:25px}.manifesto .mono{font-size:9px}.manifesto p{font-size:35px;line-height:1.5}.contact{padding-top:65px;padding-bottom:40px}.contact .section-kicker{font-size:8px;gap:15px;align-items:flex-start}.contact .section-kicker>.mono{max-width:150px;line-height:1.5}.contact h2{font-size:45px}.contact-main{margin:40px 0}.contact-orbit{height:65px;width:65px;font-size:36px;flex-shrink:0}.contact-bottom{grid-template-columns:1fr;gap:30px}.contact-bottom>p{font-size:12px}.contact-details>a[href^="mailto:"]{font-size:22px}.footer-word{padding:35px 0 25px;font-size:20vw}.footer-base{flex-wrap:wrap;gap:20px;font-size:9px}.footer-base>span:nth-child(2){order:3;width:100%;font-size:8px}.footer-base a{margin-left:auto}.dialog-toolbar{padding:23px 0}.dialog-intro{padding:40px 0}.dialog-intro h2{font-size:39px}.dialog-intro p{font-size:12px}#dialog-gallery{gap:18px}#dialog-gallery figcaption{font-size:8px}.dialog-end{font-size:20px}.dialog-tags span{font-size:9px}html[lang=en] .hero h1{font-size:13.1vw;line-height:1.1}html[lang=en] .hero-summary{max-width:100%}html[lang=en] .hero-content{bottom:255px}html[lang=en] .contact h2{font-size:43px}html[lang=en] .intro h2{font-size:38px}}
@media(max-width:700px){.manifesto p{font-size:clamp(24px,7.1vw,32px)}html[lang=en] .manifesto p{font-size:clamp(28px,8vw,36px)}}
/* Brand-led hero: use the supplied artwork unchanged, with a square symbol crop. */
.header,.hero{--accent:#dededb}
.hero{background:#080808}
.logo-symbol{position:relative;display:block;overflow:hidden;aspect-ratio:1;flex-shrink:0}
.logo-symbol img,.hero-art .logo-symbol img{position:absolute;width:165.51725%;height:auto;max-width:none;left:-32.75862%;top:-21.55172%;object-fit:initial;animation:none;filter:grayscale(1);transform:none}
.header .source-symbol{width:40px;height:40px;mix-blend-mode:screen}
.hero-art{background:#080808}
.hero-logo{position:absolute;width:min(78vw,1100px);height:auto;right:-9vw;top:48%;transform:translateY(-50%);opacity:.13;mix-blend-mode:screen}
.hero-shade{background:linear-gradient(90deg,#08080875 0%,#08080818 60%,transparent 100%),linear-gradient(0deg,#080808 0%,transparent 24%)}
.hero-bottom{border-color:#ffffff20;align-items:center}
.brand-signature{display:flex;flex-direction:column;gap:12px}
.brand-signature>.mono{font-size:12px;letter-spacing:.16em}
.brand-signature>span:last-child{font-size:10px;letter-spacing:.08em;color:#939393}
.hero-scroll{display:flex;align-items:center;gap:28px;color:#bbb;font-size:10px}
.hero-scroll>span:last-child{font-size:23px;transition:transform .3s}
.hero-scroll:hover>span:last-child{transform:translateY(4px)}
@media(max-width:700px){.header .source-symbol{width:34px;height:34px}.hero-logo{width:122vw;right:-34vw;top:35%;opacity:.16}.hero-content{bottom:215px}.hero-bottom{flex-wrap:nowrap;gap:12px;bottom:34px}.brand-signature>.mono{font-size:10px}.brand-signature>span:last-child{font-size:8px;max-width:180px;line-height:1.6}.hero-scroll{font-size:8px;gap:12px}html[lang=en] .hero-content{bottom:230px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal.pending{opacity:1;transform:none}}


/* Show game interfaces in full at their intended 2340:1080 presentation ratio. */
.project[data-type="game"] .project-image{aspect-ratio:2340 / 1080;background:#101110}
.project[data-type="game"] img{object-fit:contain;transform:none;filter:none}
.project[data-type="game"]:hover img{transform:none;filter:none}
.project-ui-meta{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;color:var(--muted);font:10px "Courier New",monospace;letter-spacing:.06em}
.project-ui-meta>span:last-child{font-size:22px;color:var(--accent)}
