/* Shared typography and exhibition surfaces. Fonts are served locally. */
@font-face{font-family:"Portfolio Sans";src:url('../fonts/manrope-latin.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Portfolio CJK";src:url('../fonts/noto-sans-sc-site.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}
:root{--f-sans:"Portfolio Sans","Portfolio CJK","PingFang SC","Microsoft YaHei",sans-serif;--f-display:var(--f-sans);--f-mono:"Portfolio Sans","Portfolio CJK",sans-serif;--ui-surface:#131514;--ui-line:#d9d0bb29;--ui-text:#eeeae1;--ui-muted:#aaa99f;--ui-accent:#d0b994;--ui-radius:12px;--bg:#0b0d0c;--bg-2:#141715;--line:var(--ui-line);--text:var(--ui-text);--muted:var(--ui-muted)}
body{font-weight:400;font-kerning:normal;font-optical-sizing:auto}
body::after{opacity:.015;animation:none;inset:0}
h1,h2,h3,h4{font-weight:550;letter-spacing:-.035em}
button,input,select,textarea{font-family:var(--f-sans)}
a,button{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--ui-accent);outline-offset:5px}
.site-header{background:linear-gradient(#0c0f0ed9,#0c0f0e00);border-bottom:1px solid #e5ddc912}
.site-header.scrolled{background:#0c0f0edb;backdrop-filter:blur(18px)}
.brand{font-weight:600;letter-spacing:.04em}
.sp-monogram{font-family:"Portfolio Sans",sans-serif;font-size:33px;font-weight:800;letter-spacing:-.14em}
.sp-brand-name{font-size:12px;font-weight:500;letter-spacing:.14em}
.sp-brand-name small{font-size:8px;font-weight:500;letter-spacing:.18em;color:var(--ui-muted)}
.site-header .nav{font-size:12px;gap:clamp(16px,2.2vw,32px)}
.site-header .nav a{font-weight:450;letter-spacing:.035em;color:#cecbbf}
.site-header .nav a:hover,.site-header .nav a[aria-current="page"]{color:#fff7e8}
.site-header .lang-toggle{border-radius:6px;border:1px solid var(--ui-line);padding:8px 10px;font-size:10px;font-weight:600;letter-spacing:.06em}
.site-header .lang-toggle:hover{background:#e7dfd0;color:#111}
.spatial-home{background:#0b0d0c;color:var(--ui-text)}
.spatial-home .sp-label{font-size:9px;font-weight:500;letter-spacing:.14em;color:#d8d1c3}
.spatial-home .sp-intro h1{font-weight:500;letter-spacing:-.04em;line-height:1.3}
.spatial-home .sp-intro-note{font-weight:400;letter-spacing:.04em;line-height:1.9}
.spatial-home .sp-exhibit .sp-project h2{font-weight:500;letter-spacing:-.045em;line-height:1.32}
.spatial-home .sp-project-overline{font-size:10px;letter-spacing:.11em;color:#ccc8bd}
.spatial-home .sp-active-num{font-size:18px;font-weight:500;letter-spacing:.015em;font-variant-numeric:tabular-nums}
.spatial-home .sp-active-desc{font-size:12px;font-weight:400;line-height:1.95;color:#d0cec4}
.spatial-home .sp-enter{font-size:11px;font-weight:500;padding:13px 20px;gap:36px;background:#e3dbcb;border:1px solid #eee3d0;border-radius:7px;color:#222820;box-shadow:0 5px 20px #0003}
.spatial-home .sp-enter:hover{background:#f6efdf;gap:40px}
.spatial-home .sp-topline{font-weight:450;letter-spacing:.09em}
.spatial-home .sp-stops{gap:12px}
.spatial-home .sp-stop{gap:13px;align-items:center;padding:15px 14px;border:1px solid #c6bca71d;border-radius:8px;background:linear-gradient(145deg,#23272340,#0b0e0c30);color:#aaa99f;transition:background .3s,border-color .3s,color .3s}
.spatial-home .sp-stop i{left:14px;top:-1px;max-width:calc(100% - 28px);background:#d8c6a6}
.spatial-home .sp-stop:hover{background:#c8bea712;border-color:#d4c4a452;color:#f0e7d6}
.spatial-home .sp-stop[aria-current="true"]{background:linear-gradient(135deg,#d6c39a20,#d6c39a06);border-color:#d4c4a460;color:#eee4d2;box-shadow:inset 0 1px 0 #ead9b21c}
.spatial-home .sp-stop-number{font-size:23px;font-weight:450;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.spatial-home .sp-stop-title{font-size:11px;line-height:1.6;letter-spacing:0;font-weight:450}
.spatial-home .sp-bottom-top{font-size:10px;font-weight:450;letter-spacing:.025em;color:#bbb5a9}
.spatial-home .sp-motion{font-size:10px}
.spatial-home .facility-cinema-card,.spatial-home .sp-exhibit .sp-art-link{isolation:isolate;border:1px solid #d2c8ae3d;border-radius:var(--ui-radius);background:linear-gradient(145deg,#2c302bed,#131715ef 65%);box-shadow:inset 0 1px 0 #fff2,0 20px 48px #0007;overflow:hidden}
.spatial-home .facility-cinema-card::after,.spatial-home .sp-exhibit .sp-art-link::after{content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at var(--card-x,50%) var(--card-y,25%),#fff5dc17,transparent 62%);opacity:0;transition:opacity .35s}
.spatial-home .facility-cinema-card:hover::after,.spatial-home .sp-exhibit .sp-art-link:hover::after{opacity:1}
.spatial-home .facility-cinema-card{position:relative;padding:6px;transform:perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));transition:transform .25s ease,border-color .25s,box-shadow .25s}
.spatial-home .facility-cinema-card:hover,.spatial-home .facility-cinema-card:focus-visible{transform:perspective(1100px) translateY(-5px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));border-color:#dbc7a584;box-shadow:inset 0 1px 0 #fff2,0 25px 50px #0009}
.spatial-home .facility-cinema-card>img{border-radius:7px;filter:brightness(.88) saturate(.95)}
.spatial-home .facility-cinema-card>span{padding:12px 8px 8px;gap:10px;font-size:11px;font-weight:450;line-height:1.6;letter-spacing:0}
.spatial-home .facility-cinema-card b{font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;color:#c5bca6}
.spatial-home .sp-exhibit .sp-art-link{padding:7px;transform:perspective(1300px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,-1.5deg));transition:transform .3s,border-color .3s,box-shadow .3s}
.spatial-home .sp-exhibit .sp-art-link:hover,.spatial-home .sp-exhibit .sp-art-link:focus-visible{transform:perspective(1300px) translateY(-4px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));border-color:#dbc7a589;box-shadow:inset 0 1px 0 #fff2,0 30px 60px #0009}
.spatial-home .sp-art-image{border-radius:7px}
.spatial-home .sp-exhibit .sp-art-caption{font-size:11px;font-weight:450;letter-spacing:.04em;padding:15px 13px 9px;color:#dcd6c9}
.spatial-home .sp-art-caption b{font-variant-numeric:tabular-nums;font-weight:500;color:#c5bca6}
.spatial-home [data-tilt-active]{transition-duration:.13s!important}
.spatial-home .sp-index{background:linear-gradient(155deg,#1c211d,#0f1311 65%);color:#ede9df}
.spatial-home .sp-index .sp-section-top{color:#b7b8aa;border-color:var(--ui-line)}
.spatial-home .sp-index-heading h2,.spatial-home .sp-contact h2{font-weight:450;letter-spacing:-.045em;line-height:1.24}
.spatial-home .sp-index-heading p{color:#a6aca2}
.spatial-home .sp-index-row{border-color:var(--ui-line);padding-left:18px;padding-right:18px;border-radius:8px}
.spatial-home .sp-index-row::before{background-image:linear-gradient(90deg,#111612,transparent 65%,#0e120fad),var(--project-image);opacity:.23}
.spatial-home .sp-index-row:hover{padding-left:22px;background:#ddcda409}
.spatial-home .sp-index-num{font-size:28px;color:#baac91;font-weight:400}
.spatial-home .sp-index-link h3{font-weight:450;letter-spacing:-.025em}
.spatial-home .sp-index-link p,.spatial-home .sp-locate{color:#a4aa9f;font-weight:450}
.spatial-home .sp-about{background:linear-gradient(135deg,#191e1a,#111511 70%);color:var(--ui-text)}
.spatial-home .sp-about .sp-section-top{color:#b7b8aa;border-color:var(--ui-line)}
.spatial-home .sp-about-copy>p:not(.sp-belief){color:#aeb3a8;font-size:13px;line-height:2.1}
.spatial-home .sp-belief{font-weight:450;letter-spacing:-.025em}
.spatial-home .sp-skills{color:#bfc0b2;font-size:11px;line-height:1.8}
.spatial-home .sp-skills span{border-color:var(--ui-line)}
.spatial-home .sp-identity{display:block;min-height:430px;max-width:370px;margin:auto;border-radius:18px;padding:28px;background:radial-gradient(ellipse at 75% 0%,#8d826132,transparent 55%),linear-gradient(150deg,#2d342b,#111710 80%);border:1px solid #d4c5a54d;color:#ede7d9;box-shadow:inset 0 1px 0 #e9dfc426,0 25px 65px #0006;transform:perspective(1200px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,-3deg));transition:transform .25s,border-color .25s}
.spatial-home .sp-identity::after{background:radial-gradient(circle at var(--card-x,25%) var(--card-y,10%),#f2e6bd55,transparent 62%)}
.spatial-home .sp-identity-art{height:195px;margin:26px 0}
.spatial-home .sp-identity-art>span{font-family:"Portfolio Sans",sans-serif;font-size:125px;font-weight:600;color:#e4ddcb;letter-spacing:-.13em;text-shadow:0 8px 28px #0006}
.spatial-home .sp-identity-art i{height:185px;width:155px;border-radius:4px;transform:rotate(30deg)!important;border-color:#ded1a837;background:linear-gradient(130deg,#cbbf971a,transparent);box-shadow:none}
.spatial-home .sp-identity-art i:nth-child(2){transform:rotate(45deg)!important;border-color:#ded1a853}
.spatial-home .sp-identity-art i:nth-child(3){transform:rotate(60deg)!important}
.spatial-home .sp-identity h2{font-size:32px;font-weight:500;letter-spacing:.04em}
.spatial-home .sp-identity-top,.spatial-home .sp-identity-bottom{border-color:#d4c5a52e;font-weight:500;font-size:9px}
.spatial-home .sp-identity-name{font-size:10px;color:#aaa993}
.spatial-home .sp-contact{background:linear-gradient(140deg,#182019,#0c110e)}
.spatial-home .sp-contact::after{border-color:#c8b89124;box-shadow:0 0 75px #bcb18b0b,inset 0 0 75px #bcb18b0b,0 0 0 38px #bcb18b02,0 0 0 39px #bcb18b10}
.spatial-home .sp-contact-wave{background:radial-gradient(ellipse at 50% 25%,#b1aa7930,transparent 63%)}
.spatial-home .sp-contact h2 span span{color:#b8b49c}
.spatial-home .sp-mail{font-weight:400;letter-spacing:-.03em;border-color:#b7b39c52}
.spatial-home .sp-footer{background:#0d120e;color:#8d9889;border-color:var(--ui-line)}
/* Project essays share the same type and quiet card framing. */
.p-hero h1 .cn{font-weight:550;letter-spacing:-.055em;line-height:1.1}
.p-hero h1 .en-title{font-weight:400;letter-spacing:-.025em;line-height:1.2}
.chapter-head h2{font-weight:500;line-height:1.22}
.lead,.statement,.card h4,.stat .k,.tune .k{font-weight:500}
.cards{border:0;gap:12px}
.card{border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:linear-gradient(145deg,#1b1e1a,#101411);overflow:hidden}
.card:hover{background:#1c211b}
.card::after{height:1px;background:#d6c29a}
.card .n{font-weight:400;font-size:42px;line-height:1;color:#c8b898}
.card .label{letter-spacing:.1em;font-weight:500}
.card p{color:#afb3a9;line-height:1.9}
@media(max-width:1000px){.spatial-home .facility-cinema-card>span{font-size:10px;gap:7px;padding:9px 5px 6px}.spatial-home .sp-stop{padding:13px 10px;gap:10px}.spatial-home .sp-stop-title{font-size:10px}}
@media(max-width:700px){
 .sp-header .nav .nav-link[href*="about"],.site-header .nav .nav-link[href*="about"]{display:block;font-size:11px}
 .sp-header .nav{gap:14px}.sp-header .brand{gap:10px}.sp-brand-name{font-size:11px}.sp-monogram{font-size:29px}
 .spatial-home .sp-exhibit .sp-project h2{font-size:27px;line-height:1.35}
 .spatial-home .sp-stops{gap:6px}.spatial-home .sp-stop{display:block;padding:11px 7px 10px}.spatial-home .sp-stop-number{font-size:22px;margin-bottom:7px}.spatial-home .sp-stop-title{font-size:9px;line-height:1.6}.spatial-home .sp-stop i{left:7px;max-width:calc(100% - 14px)}
 .spatial-home .sp-bottom-top{font-size:8px}.spatial-home .sp-motion{font-size:9px}
 .spatial-home .facility-cinema-card{border-radius:9px}.spatial-home .facility-cinema-card>span{font-size:9px;padding:8px 3px 5px}.spatial-home .facility-cinema-card b{font-size:10px}
 .spatial-home .sp-exhibit .sp-art-caption{font-size:10px;padding:11px 9px 6px}
 .spatial-home .sp-exhibit .sp-art-link{transform:none}
 .spatial-home .sp-identity{min-height:395px;max-width:310px;padding:24px}.spatial-home .sp-identity-art{height:160px}.spatial-home .sp-identity-art i{height:145px;width:120px}.spatial-home .sp-identity-art>span{font-size:105px}
 .spatial-home .sp-index-row,.spatial-home .sp-index-row:hover{padding-left:0;padding-right:0}.spatial-home .sp-index-num{font-size:22px}
}
.sp-static .spatial-home .sp-exhibit .sp-art-link,.sp-static .spatial-home .facility-cinema-card,.sp-static .spatial-home .sp-identity{transform:none!important;animation-play-state:paused;transition:none}
@media(prefers-reduced-motion:reduce){[data-tilt],.spatial-home .facility-cinema-card,.spatial-home .sp-exhibit .sp-art-link,.spatial-home .sp-identity{transform:none!important;translate:none!important;animation:none!important;transition:none!important}}
