*{margin:0;padding:0;box-sizing:border-box}
:root{--black:#0a0a0a;--white:#fafaf8;--dim:rgba(255,255,255,.07)}
html,body{background:var(--black);color:var(--white);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif}
a{color:inherit;text-decoration:none}
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2.5rem;background:rgba(10,10,10,.88);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.06)}
nav .logo{font-size:12px;letter-spacing:.18em}
nav ul{list-style:none;display:flex;gap:2.5rem}
nav ul li a{font-size:11px;letter-spacing:.12em;opacity:.4;transition:opacity .2s}
nav ul li a:hover{opacity:1}
.hero{position:relative;width:100%;height:100vh;overflow:hidden;display:flex;align-items:flex-end}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55)}
.hero-caption{position:relative;z-index:2;padding:3rem 2.5rem;width:100%;border-top:1px solid rgba(255,255,255,.1)}
.hero-title{font-size:clamp(2.5rem,7vw,6rem);font-weight:200;letter-spacing:-.02em;line-height:.95;margin-bottom:.6rem}
.hero-tags{font-size:11px;letter-spacing:.12em;opacity:.35}
.content{max-width:1100px;margin:0 auto}
.intro{max-width:720px;padding:5rem 2.5rem;border-bottom:1px solid var(--dim)}
.intro-zh{font-size:16px;line-height:2.05;opacity:.75;margin-bottom:2.5rem}
.intro-en{font-size:13px;line-height:1.95;opacity:.28;font-style:italic}
.plan-section{padding:4rem 2.5rem;border-bottom:1px solid var(--dim)}
.plan-section.hidden{display:none}
.plan-eyebrow{font-size:9px;letter-spacing:.22em;opacity:.22;text-transform:uppercase;margin-bottom:2rem}
.plan-section img{width:100%;display:block;filter:brightness(.85);cursor:zoom-in}
.plan-section img:hover{filter:brightness(1)}
.mag-row{display:grid;gap:1px;background:var(--dim);border-bottom:1px solid var(--dim)}
.mag-row.r-full{grid-template-columns:1fr}
.mag-row.r-6040{grid-template-columns:6fr 4fr}
.mag-row.r-half{grid-template-columns:1fr 1fr}
.mag-row.r-third{grid-template-columns:1fr 1fr 1fr}
@media(max-width:600px){.mag-row.r-6040,.mag-row.r-half,.mag-row.r-third{grid-template-columns:1fr}}
.mag-cell{background:var(--black);overflow:hidden}
.mag-cell img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.82);transition:filter .4s,transform .55s;cursor:zoom-in}
.mag-cell:hover img{filter:brightness(1);transform:scale(1.03)}
.mag-cell.tall{aspect-ratio:3/4}
.mag-cell.wide{aspect-ratio:16/9}
.mag-cell.sq{aspect-ratio:1}
.text-break{max-width:720px;padding:4rem 2.5rem;border-bottom:1px solid var(--dim)}
.tb-num{font-size:9px;letter-spacing:.2em;opacity:.2;text-transform:uppercase;margin-bottom:1.5rem}
.tb-zh{font-size:14px;line-height:2.05;opacity:.68;margin-bottom:1.8rem}
.tb-en{font-size:12px;line-height:1.95;opacity:.27;font-style:italic}
.proj-nav{display:flex;justify-content:space-between;align-items:center;padding:2.5rem;border-top:1px solid var(--dim)}
.proj-nav a{font-size:11px;letter-spacing:.1em;opacity:.3;transition:opacity .2s}
.proj-nav a:hover{opacity:.9}
.proj-nav .back{font-size:10px;letter-spacing:.15em;opacity:.2}
#lb{display:none;position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.95);align-items:center;justify-content:center}
#lb.open{display:flex}
#lb img{max-width:92vw;max-height:90vh;object-fit:contain}
#lb-close{position:absolute;top:1.5rem;right:2rem;font-size:22px;opacity:.4;cursor:pointer;background:none;border:none;color:var(--white)}
#lb-close:hover{opacity:1}
#lb-prev,#lb-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--white);font-size:2rem;opacity:.25;cursor:pointer;padding:1rem;transition:opacity .2s}
#lb-prev:hover,#lb-next:hover{opacity:.9}
#lb-prev{left:.5rem}
#lb-next{right:.5rem}
#lb-counter{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);font-size:10px;opacity:.3;letter-spacing:.1em}
.thumb-label{font-size:9px;letter-spacing:.22em;opacity:.22;text-transform:uppercase;padding:2.5rem 2.5rem 1rem;max-width:1100px;margin:0 auto}
.thumb-strip{display:flex;gap:2px;overflow-x:auto;padding:0 2.5rem 2rem;max-width:1100px;margin:0 auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.thumb-strip::-webkit-scrollbar{height:4px}
.thumb-strip::-webkit-scrollbar-track{background:transparent}
.thumb-strip::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
.thumb{flex:0 0 auto;width:100px;height:68px;overflow:hidden;cursor:zoom-in;opacity:.5;transition:opacity .3s}
.thumb:hover{opacity:1}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
