:root{--bg:#090a0d;--yellow:#f7d64e;--accent:#a88aff;--muted:#a2a3ab;color-scheme:dark}
@font-face{font-family:"Portfolio Sans";src:url("assets/fonts/lmsans10-regular.woff") format("woff");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Portfolio Sans";src:url("assets/fonts/lmsans10-bold.woff") format("woff");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Portfolio Serif";src:url("assets/fonts/lmroman12-regular.woff") format("woff");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Portfolio Serif";src:url("assets/fonts/lmroman12-italic.woff") format("woff");font-style:italic;font-weight:400;font-display:swap}
*{box-sizing:border-box}
html{scrollbar-gutter:stable;scroll-behavior:auto}
body{margin:0;background:var(--bg);color:#f4f4f1;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
.embed-mode #site-header,.embed-mode #vision-panel,.embed-mode>footer{display:none!important}
.embed-mode{scrollbar-width:none}
.embed-mode::-webkit-scrollbar{display:none}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
button:disabled{cursor:default}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible{outline:2px solid var(--yellow);outline-offset:6px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#site-header{position:absolute;z-index:45;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:25px 4vw;color:#f4f4f1;transition:color .35s;background:linear-gradient(#07080a45,transparent);pointer-events:none}
.in-gallery #site-header{position:fixed}
#site-header>*{pointer-events:auto}
#site-header.ink{color:#1a2622;background:none}
.brand{display:flex;align-items:center;gap:7px;font-size:20px;font-weight:800;letter-spacing:-.6px}
.brand svg{height:21px;width:19px;margin-right:3px}
.brand>span{font-size:8px;font-weight:400;letter-spacing:1.5px;margin-left:15px;opacity:.55}
#site-header nav{display:flex;align-items:center;gap:28px;font-size:11px;letter-spacing:.5px}
#site-header nav a,#site-header nav button{padding:8px 0;position:relative}
#site-header nav a:after,#site-header nav button:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
#site-header nav a:hover:after,#site-header nav button:hover:after{transform:scaleX(1)}
body:not(.in-gallery) #site-header{padding:27px 4vw;background:linear-gradient(#0009,transparent);color:#f5f2f7}
body:not(.in-gallery) .brand{display:block;font-size:23px;font-weight:900;letter-spacing:-1px}
body:not(.in-gallery) .brand svg,body:not(.in-gallery) #directory-open{display:none}
body:not(.in-gallery) .brand>span{font-size:10px;letter-spacing:2px;margin-left:14px;opacity:1}
body:not(.in-gallery) .brand>span:before{content:"/ "}
body:not(.in-gallery) #site-header nav{gap:30px;font-size:13px;letter-spacing:0}
#experience{position:relative;height:970svh}
#experience,#directory,#case,footer{--work-sans:"Portfolio Sans","PingFang SC","Microsoft YaHei",sans-serif;--work-serif:"Portfolio Serif","Songti SC","STSong","SimSun",serif;font-family:var(--work-sans);font-kerning:normal}
.in-gallery #site-header{font-family:"Portfolio Sans","PingFang SC","Microsoft YaHei",sans-serif}
.in-gallery #site-header nav a,.in-gallery #site-header nav button{display:flex;align-items:center;min-height:44px}
#world{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;background:#090a0d;touch-action:pan-y}
#scene,#scene-fallback{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#scene{visibility:hidden}
.has-webgl #scene{visibility:visible}
.has-webgl #scene-fallback{display:none}
#scene-fallback{background:radial-gradient(ellipse at 48% 44%,#24283a,#090a0d 72%);perspective:1000px}
.fallback-grid{position:absolute;inset:-20%;background:linear-gradient(#050507 1px,transparent 1px),linear-gradient(90deg,#050507 1px,transparent 1px),url("assets/end.jpg") center/cover;background-size:42px 42px,42px 42px,cover;background-blend-mode:normal,normal,luminosity;opacity:.12;transform:perspective(1200px) rotateY(9deg);animation:fallback-flow 18s ease-in-out infinite alternate}
.fallback-symbol{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%) rotate(-10deg);font-size:55vh;line-height:1;color:#ffffff08;font-weight:900;font-style:italic;letter-spacing:-6vh}
.fallback-card{position:absolute;overflow:hidden;box-shadow:0 12px 45px #0006;border:1px solid #ffffff19;transform-style:preserve-3d}
.fallback-card img{width:100%;height:100%;object-fit:fill;display:block}
@keyframes fallback-flow{to{transform:perspective(1200px) rotateY(-9deg) scale(1.05)}}
#hero{position:relative;min-height:100svh;background:#000;display:flex;flex-direction:column;justify-content:center;--yellow:#ffd42b}
.stage{position:relative;width:min(100%,calc((100svh - 64px)*16/9));aspect-ratio:16/9;margin-inline:auto}
.stage>img,.stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.stage video.done{visibility:hidden}
#motion-fallback{z-index:1}
#badge{position:absolute;z-index:2;left:12.5%;top:44%;width:32%;height:54%;clip-path:polygon(55% 0,100% 20%,81% 100%,0 63%);cursor:pointer}
#badge:disabled{cursor:default}
#badge:not(:disabled):hover{background:#ffd42b17;filter:drop-shadow(0 0 10px #ffd42b)}
#hint{position:absolute;z-index:2;left:6%;top:73%;font-size:12px;color:var(--yellow);opacity:0;transition:opacity 1s;pointer-events:none;text-shadow:0 2px 5px #000}
.ready #hint{opacity:1}
.hero-bottom{padding:20px 4vw;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1px;color:#b7b2bc}
.hero-bottom a{color:var(--yellow);display:flex;align-items:center;gap:14px}
.hero-bottom a span{font-size:17px;animation:scroll-nudge 2s ease-in-out infinite}
@keyframes scroll-nudge{50%{transform:translateY(4px)}}
#play{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#15111fe6;border:1px solid #ffd42b;padding:18px 28px;border-radius:100px}
#scene-word{position:absolute;z-index:1;left:50%;top:47%;font-family:var(--work-serif);font-size:clamp(64px,13.4vw,230px);font-weight:400;line-height:.92;letter-spacing:-.055em;text-align:center;color:#e0e7fa;opacity:0;mix-blend-mode:soft-light;pointer-events:none;white-space:nowrap}
#scene-word em{display:block;font-weight:400}
#scene-word>span{display:block;margin-top:28px;font-family:var(--work-sans);font-size:11px;line-height:1.5;letter-spacing:.22em}
#works{position:absolute;inset:0;z-index:8;opacity:0;visibility:hidden;pointer-events:none}
#works button,#works a{pointer-events:auto}
.gallery-heading{position:absolute;top:94px;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:center;color:#aeb1be;font-size:11px;letter-spacing:.1em}
.gallery-heading>span:first-child{display:flex;align-items:center;gap:13px;color:#d0d1d9}
.gallery-heading b{font-size:12px;font-weight:500;letter-spacing:.16em}
.gallery-heading em{font-family:var(--work-serif);font-size:19px;letter-spacing:-.01em;color:#b7b4c5}
.heading-slash{padding:0 12px;color:#747887}
.gallery-heading i{display:inline-block;background:var(--accent);height:4px;width:4px;border-radius:50%;vertical-align:middle}
.orientation{position:absolute;right:4vw;top:125px;display:flex;align-items:center;flex-direction:column;gap:12px}
.orientation>span{font-size:10px;letter-spacing:.12em;color:#b3b7c4}
.orb{height:39px;width:39px;border:1px solid #74788966;border-radius:50%;position:relative}
.orb:before,.orb:after{content:"";position:absolute;background:#9ca4b060}
.orb:before{width:1px;top:3px;bottom:3px;left:50%}
.orb:after{height:1px;left:3px;right:3px;top:50%}
.orb span,.orb i,.orb b{position:absolute;z-index:1;height:4px;width:4px;border-radius:50%;background:#e4d956;left:5px;top:17px}
.orb i{background:#ac8cee;left:29px}
.orb b{background:#a1d0d4;top:5px;left:17px}
#project-hitboxes{position:absolute;inset:0;pointer-events:none}
.project-hitbox{position:absolute;pointer-events:auto!important;padding:0;background:transparent;touch-action:pan-y;cursor:pointer;border-radius:0}
.cursor-active .project-hitbox:hover{cursor:none}
#project-caption{position:absolute;left:4vw;bottom:78px;max-width:min(67vw,820px);pointer-events:none}
.project-kicker{margin:0 0 6px;display:flex;align-items:center;gap:13px;line-height:1.1;color:#b9bac8}
#project-number{font-family:var(--work-serif);font-size:25px;font-style:italic;font-variant-numeric:tabular-nums;color:var(--accent)}
#project-category{font-family:var(--work-serif);font-size:16px;font-style:italic;letter-spacing:.01em}
.caption-dot{width:3px;height:3px;border-radius:50%;background:var(--accent)}
#project-title{font-weight:600;font-size:clamp(27px,4.4vh,50px);line-height:1.18;letter-spacing:.02em;margin:0 0 7px}
#project-title.latin-title{font-family:var(--work-serif);font-size:clamp(34px,5.7vh,64px);font-weight:400;font-style:italic;letter-spacing:-.025em;line-height:1.05}
#project-subtitle{font-size:12px;line-height:1.4;letter-spacing:.06em;margin:0 0 8px;color:#d0ccd9}
.letter-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:2px}
.letter-mask>span{display:inline-block;animation:letter-in .66s cubic-bezier(.16,1,.3,1) both}
@keyframes letter-in{from{transform:translateY(115%) rotate(5deg);opacity:0}to{transform:none;opacity:1}}
#project-description{margin:0;max-width:60ch;color:#b0b1bf;font-size:12px;line-height:1.8;letter-spacing:.025em}
#project-tags{display:none}
#project-tags>span{border:1px solid #7b7f922e;border-radius:2px;padding:4px 7px;color:#a9abb5;font-size:7px;letter-spacing:.7px}
.project-action{position:absolute;right:4vw;bottom:102px;display:flex;flex-direction:column;align-items:end;gap:12px}
.project-action button{display:flex;align-items:center;min-height:44px;font-size:13px;letter-spacing:.06em;padding:5px 0}
.project-action button span{display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;border:1px solid #ffffff30;border-radius:50%;margin-left:18px;color:var(--accent);font-size:20px;transition:transform .3s}
.project-action button:hover span{transform:translate(3px,-3px)}
.project-action>span{font-size:11px;color:#a4a8b6;letter-spacing:.03em}
.gallery-bottom{position:absolute;bottom:30px;left:4vw;right:4vw;display:flex;align-items:center;justify-content:space-between}
.gallery-pagination{display:flex;gap:17px;align-items:center}
.gallery-pagination button{min-width:24px;min-height:40px;font-size:12px;color:#a0a5b4;position:relative;padding:7px 2px;transition:color .3s;letter-spacing:.05em;font-variant-numeric:tabular-nums}
.gallery-pagination button:after{content:"";position:absolute;bottom:0;left:1px;right:1px;height:1px;transform:scaleX(0);background:var(--accent);transition:transform .4s}
.gallery-pagination button.active{color:#e5e8ef}
.gallery-pagination button.active:after{transform:scaleX(1)}
.gallery-arrows{display:flex;align-items:center;gap:20px}
.gallery-arrows button{min-width:44px;min-height:44px;font-size:18px;color:#d0d5df;padding:7px;transition:color .3s}
.gallery-arrows button:disabled{color:#484b55}
#gallery-count{font-size:11px;color:#b2b7c5;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.gallery-progress{position:absolute;left:4vw;right:4vw;bottom:16px;height:1px;background:#737d991f}
.gallery-progress>span{display:block;background:#cbd2e294;height:1px;transform-origin:left;transition:background .6s}
#gallery-cursor{position:absolute;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:57px;height:57px;border:1px solid #ffffff70;border-radius:50%;background:#080b1540;backdrop-filter:blur(8px);pointer-events:none;transform:translate(-50%,-50%) scale(.65);opacity:0;transition:opacity .2s,transform .3s}
#gallery-cursor>span{font-size:19px}
#gallery-cursor small{font-family:var(--work-sans);font-size:9px;letter-spacing:.1em}
.cursor-active #gallery-cursor{opacity:1;transform:translate(-50%,-50%) scale(1)}
#vision-panel{position:absolute;inset:0;z-index:16;background:#e4e9e6;color:#17251f;visibility:hidden;transform:translateY(100%);overflow:hidden}
.vision-grid{position:absolute;inset:0;background-image:radial-gradient(#6f837e55 .7px,transparent 1px);background-size:8vw 8vw;opacity:.5}
.vision-label{position:absolute;left:6vw;top:100px;margin:0;display:flex;align-items:center;gap:16px;font-size:11px;letter-spacing:.14em;color:#4b665a}
.vision-label em{font-family:var(--work-serif);font-size:19px;letter-spacing:0}
.vision-copy{position:absolute;left:8vw;top:37%;z-index:1}
.vision-copy>span{font-size:12px;letter-spacing:.15em;color:#536e61}
.vision-copy h2{font-family:var(--work-serif);font-size:clamp(30px,3.3vw,47px);line-height:1.5;font-weight:400;letter-spacing:.04em;margin:24px 0}
.vision-copy h2 span{color:#223c30;padding:0}
.vision-copy h2 span:last-child{color:#627d6a}
.vision-copy>p{font-size:12px;line-height:1.9;letter-spacing:.05em;color:#536e61}
.vision-copy{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(20px)}
.revealed .vision-copy{opacity:1;transform:none}
.vision-outline{position:absolute;width:clamp(190px,28vw,420px);height:58vh;left:50%;top:49%;transform:translate(-50%,-50%) rotate(-8deg);color:#fff;opacity:.85}
.vision-bottom{position:absolute;left:8vw;bottom:55px;color:#506b5c;font-size:12px;letter-spacing:.05em}
.vision-bottom>span{margin-left:15px}
#portal{position:absolute;z-index:3;overflow:hidden;isolation:isolate;background:#0e1118;will-change:width,height,left,top;opacity:0}
.portal-city{position:absolute;inset:0;background:linear-gradient(90deg,#04060ca0,#101320c0),url("assets/end.jpg") center/cover;transform:scale(1.05);filter:saturate(.35);opacity:.7}
.portal-sheen{position:absolute;inset:-30%;z-index:1;pointer-events:none;background:conic-gradient(from 70deg at 40% 50%,transparent 0deg,#91b5bb2b 80deg,transparent 100deg,#9773df21 160deg,transparent 220deg,#cfb34a20 300deg,transparent);mix-blend-mode:screen;animation:portal-light 15s linear infinite}
@keyframes portal-light{to{transform:rotate(360deg)}}
#contact-content{position:absolute;inset:0;z-index:2;color:#f3f5f1;opacity:0}
.contact-card{position:absolute;left:12%;top:19%;height:60%}
.contact-card>button{padding:0;height:100%;transform:perspective(1200px) rotateY(10deg) rotateZ(-10deg);transition:transform .65s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 25px 35px #0006)}
.contact-card>button:hover{transform:perspective(1200px) rotateY(0) rotateZ(-4deg) translateY(-8px)}
.contact-card img{display:block;height:100%;width:auto}
.contact-copy{position:absolute;left:52%;right:7%;top:23%}
.contact-copy>span{font-family:var(--work-serif);font-size:24px;letter-spacing:-.01em;color:#ccd0d9}
.contact-copy>span em{color:#f3f1ed}
.contact-copy h2{font-family:var(--work-serif);font-size:clamp(43px,6.1vw,96px);font-weight:400;letter-spacing:.015em;line-height:1.14;margin:30px 0}
.contact-copy h2 span{font-family:var(--work-sans);font-weight:500;color:var(--yellow)}
.contact-copy>p{font-size:13px;line-height:2;color:#c0c5d1}
.contact-links{display:flex;gap:30px;margin-top:35px;font-size:13px}
.contact-links a,.contact-links button{border-bottom:1px solid #697184;padding:0 0 12px}
.contact-links span{color:var(--yellow);margin-left:16px}
.contact-links a,.contact-links button{min-height:44px}
.contact-bottom{position:absolute;left:4vw;right:4vw;bottom:35px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#a1a9b9}
footer{height:22svh;min-height:120px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:9px;letter-spacing:2px;color:#858b9b;background:#0b0d13}
footer button{font-size:10px;letter-spacing:1px}
.footer-note{display:flex;align-items:baseline;gap:26px}
.footer-note b{font-size:22px;font-weight:500;letter-spacing:.06em;color:#d5d5de}
.footer-note em{font-family:var(--work-serif);font-size:24px;letter-spacing:-.01em;color:#a5a2b2}
footer button{min-height:44px;font-size:12px;letter-spacing:.05em}
dialog{border:0;padding:0;color:#f5f4f1;background:transparent}
dialog::backdrop{background:#080b13dd;backdrop-filter:blur(10px)}
#profile{overflow:visible;width:min(44vh,88vw);max-width:540px;max-height:90svh}
.front{position:relative;animation:flip .85s cubic-bezier(.2,.7,.2,1);transform-origin:top center}
.front img{width:100%;display:block;max-height:83svh;object-fit:contain}
.pdf-hotspot{position:absolute;right:4.5%;top:4.5%;width:23%;height:5.5%;border-radius:8px}
.pdf-hotspot:hover{background:#ffd42b35}
.close{position:absolute;right:0;top:-35px;font-size:12px;color:#c6c0cd}
@keyframes flip{0%{opacity:0;transform:perspective(1200px) rotateX(-85deg) rotateZ(18deg) scale(.65)}45%{opacity:1}100%{transform:perspective(1200px) rotateX(0) rotateZ(0) scale(1)}}
#directory{width:min(1200px,92vw);max-height:88svh;overflow:auto;background:#0e1017ed;padding:30px 35px}
.directory-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 25px;border-bottom:1px solid #ffffff18;letter-spacing:.03em}
.directory-header>span{display:flex;align-items:baseline;gap:18px}
.directory-header b{font-size:23px;font-weight:500}
.directory-header em{font-family:var(--work-serif);font-size:24px;color:#b8b3c9}
.directory-header button{min-height:44px;font-size:12px;color:#c2c5d1}
#directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 25px;padding-top:30px}
.directory-project{text-align:left;padding:0;position:relative}
.directory-project img{width:100%;height:auto;aspect-ratio:2048/1427;object-fit:contain;display:block;filter:saturate(.9);transition:filter .3s,transform .5s}
.directory-project:hover img{filter:saturate(1);transform:translateY(-4px)}
.directory-number{font-family:var(--work-serif);font-style:italic;font-size:25px;color:var(--yellow);display:block;margin-top:16px}
.directory-project h2{font-size:18px;font-weight:500;line-height:1.45;letter-spacing:.03em;margin:7px 0 10px}
.directory-project p{font-size:11px;color:#b1b5c1;margin:0;line-height:1.7}
#case{position:fixed;inset:0;margin:0;width:100%;height:100svh;max-width:none;max-height:none;background:#101116;overflow:auto;overscroll-behavior:contain}
#case::backdrop{background:#090b11;backdrop-filter:none}
.case-toolbar{position:fixed;top:0;left:0;right:0;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 4vw;background:#0e1014e6;backdrop-filter:blur(15px);border-bottom:1px solid #ffffff12;font-size:12px}
.case-toolbar button{min-height:44px}
.case-toolbar>span{font-size:10px;color:#8d93a2}
#case-nav{display:flex;align-items:center;gap:22px;font-size:12px;color:#b4bdcb}
#case-nav button:hover{color:var(--yellow)}
#case-content{width:100%}
.case-hero{height:100svh;width:100%;overflow:hidden;background:#090a0d}
.case-hero img{height:100%;width:100%;object-fit:contain;display:block}
.case-lead{max-width:1160px;padding:75px 30px 65px;margin:auto}
.case-kicker{font-family:var(--work-serif);font-size:22px;font-style:italic;letter-spacing:.015em;color:var(--yellow)}
.case-lead h1{font-weight:600;font-size:clamp(32px,4.1vw,60px);letter-spacing:.02em;line-height:1.35;margin:25px 0 18px}
.case-lead p{font-size:14px;color:#b8bfca;line-height:1.9;max-width:650px}
.case-tags{display:flex;gap:8px;margin-top:25px}
.case-tags span{font-size:11px;border:1px solid #59607055;padding:7px 10px;color:#b1bac9}
.case-chapter{max-width:1160px;margin:0 auto 65px;padding:0 30px}
.chapter-title{display:flex;align-items:center;gap:22px;border-top:1px solid #8a91a54a;padding:25px 0}
.chapter-title>span:first-child{font-family:var(--work-serif);font-size:28px;font-style:italic;color:var(--yellow)}
.chapter-title h2{font-size:20px;font-weight:500;letter-spacing:.05em;margin:0}
.chapter-title>span:last-child{margin-left:auto;font-size:9px;color:#737e91;letter-spacing:2px}
.case-chapter img{display:block;width:100%;height:auto;cursor:zoom-in}
.case-chapter img:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}
#next{display:block;margin:65px auto 85px;background:var(--yellow);color:#0f1219;border-radius:2px;padding:19px 30px;font-size:12px;letter-spacing:.5px}
#transition-cover{position:fixed;z-index:10;overflow:hidden;pointer-events:none;display:none;background:#090a0d;will-change:left,top,width,height}
#transition-cover img{width:100%;height:100%;object-fit:contain;display:block}
#case.transitioning{background:transparent;overflow:hidden}
#case.transitioning::backdrop{background:transparent}
#case.transitioning .case-toolbar,#case.transitioning #case-content,#case.transitioning #next{opacity:0;pointer-events:none}
#case.transitioning #transition-cover{display:block}
.case-toolbar,#case-content,#next{transition:opacity .25s}
#lightbox{position:fixed;inset:0;margin:0;max-width:none;max-height:none;width:100%;height:100svh;overflow:auto;background:#080a0ff5;padding:65px 5vw 35px;overscroll-behavior:contain}
#lightbox img{display:block;width:min(1400px,100%);margin:auto}
#lightbox img.zoomed{width:1400px;max-width:none;cursor:zoom-out}
#lightbox-image{cursor:zoom-in}
#lightbox-zoom{position:fixed;top:20px;right:calc(4vw + 104px);background:#111620e8;border:1px solid #ffffff30;border-radius:2px;padding:12px 16px;font-size:11px;z-index:2}
#lightbox-close{position:fixed;top:20px;right:4vw;background:#111620e8;border:1px solid #ffffff30;border-radius:2px;padding:12px 20px;font-size:11px;z-index:2}
@media(min-width:1700px){#project-caption{bottom:90px}.project-action{bottom:120px}.gallery-bottom{bottom:34px}.gallery-progress{bottom:23px}}
@media(max-height:640px) and (min-width:701px){.gallery-heading{top:80px}.orientation{top:102px}#project-caption{bottom:72px}#project-title,#project-title.latin-title{font-size:25px;line-height:1.15}#project-number{font-size:20px}#project-category{font-size:14px}.project-kicker{margin-bottom:4px}#project-description,#project-subtitle,#project-tags{display:none}.project-action{bottom:76px}.gallery-bottom{bottom:18px}.gallery-progress{bottom:10px}}
@media(max-width:900px){.brand>span{display:none}.gallery-heading>span:last-child{font-size:9px;letter-spacing:.08em}.project-action>span{display:none}#project-description{max-width:400px}.case-toolbar>span{display:none}#directory{padding:25px}.contact-copy h2{font-size:58px}}
@media(max-width:700px){
  #site-header{padding:18px 20px}.brand{font-size:17px}.brand svg{height:18px;width:16px}#site-header nav{gap:17px;font-size:10px}
  body:not(.in-gallery) #site-header{padding:20px}body:not(.in-gallery) #site-header nav{gap:16px}
  .stage{width:100%}.hero-bottom{flex-wrap:wrap;gap:20px;padding:20px}.hero-bottom>span{width:100%;font-size:10px}.hero-bottom>a{font-size:11px}#hint{font-size:9px;left:3%}
  .gallery-heading{top:83px;left:20px;right:20px;font-size:10px}.gallery-heading>span:last-child{display:none}.gallery-heading>span:first-child{gap:10px}.gallery-heading b{font-size:11px}.gallery-heading em{font-size:18px}.orientation{top:112px;right:20px}.orientation .orb{height:29px;width:29px}.orientation>span{display:none}.orb span{left:3px;top:12px}.orb i{left:21px}.orb b{left:12px;top:3px}
  #scene-word{font-size:23vw}#scene-word>span{font-size:10px;margin-top:18px}#project-caption{left:20px;right:20px;bottom:92px;max-width:none}.project-kicker{gap:10px;margin-bottom:7px}#project-number{font-size:23px}#project-category{font-size:16px}#project-title{font-size:clamp(27px,7.5vw,34px);letter-spacing:.02em;margin-bottom:7px}#project-title.latin-title{font-size:36px}#project-subtitle{font-size:12px;margin-bottom:8px}#project-description{font-size:12px;max-width:100%;margin:0}
  .project-action{display:none}.gallery-bottom{left:20px;right:20px;bottom:24px}.gallery-pagination{gap:3px}.gallery-pagination button{font-size:12px;min-width:34px;min-height:44px}.gallery-arrows{gap:6px}.gallery-arrows button{font-size:17px}#gallery-count{display:none}.gallery-progress{left:20px;right:20px;bottom:15px}
  #gallery-cursor{display:none}.cursor-active .project-hitbox:hover{cursor:pointer}.vision-label{left:25px;top:100px;font-size:10px;gap:12px}.vision-label em{font-size:17px}.vision-copy{left:25px;top:32%;max-width:62%}.vision-copy h2{font-size:30px;letter-spacing:.02em;line-height:1.55}.vision-copy>span{font-size:11px}.vision-copy>p{font-size:12px}.vision-outline{width:230px;left:65%;top:47%;height:50vh}.vision-bottom{left:25px;bottom:40px;font-size:11px}
  .contact-card{left:10%;top:18%;height:34%;transform:rotate(5deg)}.contact-copy{left:44%;right:5%;top:23%}.contact-copy>span{display:block;font-size:16px;letter-spacing:0;line-height:1.3}.contact-copy h2{font-size:38px;letter-spacing:.01em;margin:20px 0}.contact-copy>p{font-size:11px}.contact-links{position:absolute;top:calc(100% + 18px);left:-26vw;width:76vw;gap:25px;font-size:12px;margin-top:35px}.contact-links span{margin-left:18px}.contact-bottom{left:20px;right:20px;bottom:30px;font-size:9px;letter-spacing:.08em}
  footer{letter-spacing:0;padding:0 20px;gap:16px}.footer-note{flex-direction:column;gap:8px}.footer-note b{font-size:17px}.footer-note em{font-size:18px}footer button{font-size:11px;white-space:nowrap}
  #directory{width:94vw;padding:24px 18px}#directory-grid{grid-template-columns:repeat(2,1fr);gap:28px 14px}.directory-header>span{gap:10px}.directory-header b{font-size:19px}.directory-header em{font-size:18px}.directory-project h2{font-size:14px;line-height:1.5}.directory-project p{font-size:11px}
  .case-toolbar{padding:10px 18px;font-size:11px;gap:10px}#case-nav{gap:10px;font-size:11px}#case-top{display:none}.case-lead{padding:45px 22px 40px}.case-lead h1{letter-spacing:.01em;font-size:30px}.case-lead p{font-size:14px}.case-chapter{padding:0 12px;margin-bottom:40px}.chapter-title{gap:12px;padding:20px 8px}.chapter-title h2{font-size:18px}.chapter-title>span:last-child{font-size:10px}#next{max-width:90%;font-size:12px;padding:18px 24px}
}
@media(max-width:380px){#site-header nav{gap:12px}.gallery-pagination{gap:2px}.gallery-pagination button{min-width:30px}.gallery-arrows{gap:0}#project-title{font-size:27px}.contact-copy h2{font-size:33px}.contact-copy>span{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.letter-mask>span{opacity:1;transform:none}#gallery-cursor{display:none}.cursor-active .project-hitbox:hover{cursor:pointer}.vision-copy{transition:none}.portal-sheen{display:none}}
