:root{--bg:#100a0c;--ink:#f5f0e9;--muted:#a59c9c;--red:#ff273b;--accent:#ff273b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,'Microsoft YaHei',sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}header{height:80px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff20;background:#100a0cee;position:sticky;top:0;z-index:10;backdrop-filter:blur(16px)}.brand{font-size:32px;font-weight:900;font-style:italic;letter-spacing:-3px;display:flex;gap:22px;align-items:center}.brand span{font-size:9px;line-height:1.5;letter-spacing:2px;font-style:normal;font-weight:400}nav{display:flex;gap:32px;align-items:center;font-size:12px}nav button{font-size:12px}.hero{position:relative;overflow:hidden;padding:30px 4vw 40px;min-height:calc(100svh - 80px)}.hero-top,.catalog-foot,.encore-bottom{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:var(--muted)}.hero-art{position:relative;margin:25px auto;max-width:1050px;height:min(62vw,620px);display:grid;place-items:center}.hero-art>img{width:100%;height:100%;object-fit:contain;transition:transform .2s ease-out;filter:drop-shadow(0 25px 60px #bc001d30)}.hero-tag{position:absolute;left:-6%;bottom:8%;font-weight:900;font-style:italic;font-size:clamp(40px,7vw,110px);letter-spacing:-5px;line-height:.85;pointer-events:none;text-shadow:0 4px 25px #000}.hero-tag span{display:block;font-size:16px;letter-spacing:5px;font-style:normal;margin-top:22px}.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.hero-bottom p{font-size:12px;line-height:1.9;color:var(--muted)}.enter{background:var(--red);border-radius:50%;height:110px;width:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;transition:transform .3s}.enter span{font-size:35px}.enter:hover{transform:rotate(-10deg)}.edition{font-size:10px;line-height:1.8;letter-spacing:2px}.curtain{position:absolute;top:0;bottom:0;width:50%;z-index:5;pointer-events:none;background:repeating-linear-gradient(90deg,#510713 0,#ab0b24 8%,#e81535 13%,#620814 20%);transform:translateX(-110%)}.curtain.right{right:0;transform:translateX(110%)}.hero.opening .left{animation:leftCurtain 1.1s ease-in-out}.hero.opening .right{animation:rightCurtain 1.1s ease-in-out}@keyframes leftCurtain{0%{transform:translateX(-110%)}25%{transform:translateX(0)}100%{transform:translateX(-110%)}}@keyframes rightCurtain{0%{transform:translateX(110%)}25%{transform:translateX(0)}100%{transform:translateX(110%)}}.projects{padding:100px 4vw 45px;background:#ece7df;color:#161113}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:60px}.eyebrow{font-size:10px;letter-spacing:2px}.section-heading h1{font-size:clamp(35px,5.4vw,78px);font-weight:800;letter-spacing:-3px;line-height:1.12;margin:25px 0 0}.section-heading h1 span{color:var(--red)}.track-controls p{font-size:12px}.track-controls button{border:1px solid #16111340;border-radius:50%;width:42px;height:42px;margin:15px 8px 0 0}.records{display:flex;gap:45px;overflow-x:auto;padding:25px 10px 35px;scroll-snap-type:x mandatory;scrollbar-width:thin;cursor:grab}.record{flex:0 0 min(340px,76vw);text-align:left;scroll-snap-align:start;padding:0}.sleeve{position:relative;aspect-ratio:1.05;margin-right:26px}.vinyl{position:absolute;right:-30px;top:6%;width:86%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(#181718 0px,#181718 2px,#323032 3px,#181718 4px);box-shadow:5px 6px 15px #0003;display:grid;place-items:center;transition:transform .6s,right .6s}.vinyl::after{content:'';width:28%;height:28%;border-radius:50%;background:radial-gradient(circle,#e9e2d8 0 5%,var(--record-color) 6% 100%)}.cover{position:absolute;inset:0;background:var(--record-color);box-shadow:0 15px 25px #0002;overflow:hidden;display:flex;align-items:center;justify-content:center}.cover img{width:100%;height:100%;object-fit:cover}.cover::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 65%,#0006)}.cover span{position:absolute;bottom:15px;left:15px;color:white;z-index:1;font-size:10px;letter-spacing:2px}.record:hover .vinyl,.record:focus-visible .vinyl{right:-55px;transform:rotate(90deg)}.record-meta{display:flex;justify-content:space-between;align-items:center;margin-top:25px}.record h2{font-size:22px;letter-spacing:-1px;margin:0}.record small{display:block;margin-top:8px;font-size:10px;color:#686161;letter-spacing:1px}.record-arrow{font-size:30px}.catalog-foot{border-top:1px solid #16111330;padding-top:25px;margin-top:30px;color:#786e6b}.statement{padding:100px 8vw;display:grid;grid-template-columns:1fr 2fr;gap:40px}.statement p{font-size:clamp(28px,4vw,60px);margin:0;line-height:1.4;letter-spacing:-2px}.statement p span{color:var(--red)}.statement>div{grid-column:2;color:var(--muted);font-size:13px;line-height:1.9}.encore{padding:50px 4vw;background:#18070c}.image-button{display:block;width:100%;padding:0;cursor:zoom-in}.image-button img{width:100%;height:auto;display:block}.encore .image-button{margin:30px auto;max-width:1200px}.encore-bottom{padding-top:20px;border-top:1px solid #ffffff20}footer{padding:30px 4vw;display:flex;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:1.5px;color:var(--muted)}.case-bar{position:sticky;top:80px;display:flex;justify-content:space-between;align-items:center;padding:18px 4vw;background:#100a0cf5;z-index:9;border-bottom:1px solid #ffffff20;font-size:12px}.case-intro{padding:70px 8vw 50px;background:radial-gradient(ellipse at right,var(--glow,#3a0a14),transparent 65%)}.case-intro h1{font-size:clamp(42px,7vw,95px);letter-spacing:-4px;margin:20px 0}.case-intro p{color:var(--muted);line-height:1.8;max-width:600px;font-size:14px}.case-body{display:grid;grid-template-columns:140px minmax(0,1fr);gap:35px;margin:20px 4vw 70px}.case-body aside{position:sticky;top:150px;height:75vh;overflow:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:4px}.page-jump{text-align:left;padding:10px 12px;font-size:11px;border-left:1px solid #ffffff20;color:var(--muted)}.page-jump.active{border-color:var(--accent);color:var(--ink);background:#ffffff09}.page{max-width:1200px;margin:0 auto 35px;scroll-margin-top:155px}.page-label{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-bottom:12px;letter-spacing:1px}.page img{width:100%;height:auto}.end-next{display:block;background:var(--accent);color:#080808;padding:25px 50px;margin:0 auto 80px;border-radius:60px}#special{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}#special button{border:1px solid #ffffff40;padding:12px 18px;border-radius:30px;font-size:12px}#special button:hover{background:var(--accent);color:#080808}.ip-disc{border-radius:50%!important;background:repeating-radial-gradient(#191919 0 2px,#383838 3px 4px);width:110px;height:110px}.ip-disc:hover{transform:rotate(30deg);transition:transform .4s}.city-chip{border-color:var(--chip)!important;color:var(--chip)}.flip-card{perspective:500px;transition:transform .5s}.flip-card.flipped{transform:rotateY(360deg);background:var(--accent)!important;color:#080808}dialog{padding:0;border:1px solid #ffffff20;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;background:#080809;color:white}dialog::backdrop{background:#000e}.viewer-toolbar{height:65px;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid #ffffff20;gap:10px;font-size:12px}.viewer-toolbar>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.viewer-toolbar button,.viewer-toolbar a{background:#242424;border-radius:5px;padding:9px 12px}.viewport{height:calc(100dvh - 105px);overflow:auto;display:flex;align-items:flex-start;cursor:grab;touch-action:pan-x pan-y}.viewport img{display:block;flex:none;max-width:none;margin:auto;object-fit:contain}.viewport.dragging{cursor:grabbing;user-select:none}.viewer-status{text-align:center;padding:12px;font-size:10px;color:#aaa;height:40px}@media(max-width:700px){header{height:64px}.brand span{display:none}nav{gap:15px;font-size:11px}.hero{min-height:auto;padding-top:25px}.hero-art{height:85vw;margin:25px 0}.hero-tag{left:0;font-size:13vw;letter-spacing:-3px;bottom:0}.hero-tag span{font-size:11px;margin-top:12px}.hero-bottom{margin-top:25px}.hero-bottom p{max-width:55%;font-size:11px}.edition{display:none}.enter{width:85px;height:85px}.projects{padding-top:65px}.section-heading{display:block;margin-bottom:30px}.section-heading h1{letter-spacing:-1px}.track-controls{margin-top:25px}.records{gap:35px}.catalog-foot{font-size:8px;letter-spacing:0}.statement{padding:65px 6vw;display:block}.statement p{margin:30px 0;letter-spacing:-1px}.statement>div{margin-top:20px}.encore{padding:40px 4vw}footer{font-size:8px;letter-spacing:0}.case-bar{top:64px;font-size:10px;padding:15px 3vw}.case-intro{padding:45px 6vw 30px}.case-intro h1{letter-spacing:-2px}.case-body{display:block;margin:15px 3vw 40px}.case-body aside{position:sticky;top:112px;height:auto;max-height:65px;flex-direction:row;overflow:auto;background:#100a0cf5;z-index:8;margin-bottom:20px;padding:8px 0}.page-jump{flex:none;padding:7px 12px}.page{scroll-margin-top:190px}.viewer-toolbar{height:105px;display:block;padding:12px;font-size:10px}.viewer-toolbar>div{margin-top:12px;gap:5px}.viewer-toolbar button,.viewer-toolbar a{padding:8px}.viewport{height:calc(100dvh - 145px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Sequential screens: the entry cover remains completely unobstructed. */
body[data-screen="home"]{overflow:hidden}body[data-screen="home"] header{height:60px}body[data-screen="home"] .hero{height:calc(100svh - 60px);min-height:0;padding:12px 4vw 18px;display:flex;flex-direction:column}.hero-top{flex:none;font-size:9px}.hero-art{flex:1;min-height:0;width:100%;max-width:1100px;height:auto;margin:12px auto;isolation:isolate}.hero-art>img{position:absolute;width:100%;height:100%;object-fit:contain;transform:none;filter:drop-shadow(0 18px 35px #e0002533);animation:coverBreath 7s ease-in-out infinite}.hero-art>img.person-layer{z-index:2;pointer-events:none;mask-image:radial-gradient(ellipse 27% 44% at 66% 53%,#000 65%,transparent 100%);animation:portraitFloat 6s ease-in-out infinite;filter:none}.stage-light{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(110deg,transparent 30%,#ff234510 45%,#fff3 49%,transparent 54%);mix-blend-mode:screen;animation:lightSweep 8s ease-in-out infinite}.hero-bottom{flex:none;min-height:70px;position:relative;z-index:4}.enter{width:220px;height:64px;flex-direction:row;gap:35px;border-radius:12px;font-size:18px;font-weight:700;background:#ff2440;box-shadow:0 0 35px #ff24404d;animation:entryPulse 2.5s ease-in-out infinite}.enter span{font-size:27px}.enter:hover{transform:translateY(-3px);background:#ff4660}.enter:disabled{cursor:default}.projects{min-height:calc(100svh - 80px);padding:45px 4vw 30px}.projects .section-heading{margin-bottom:30px}.projects h1{font-size:clamp(30px,4vw,60px)}.cover{background:#080909}.cover img{object-fit:contain}.cover span{display:none}.records{padding-bottom:25px}.record{animation:recordArrive .7s both}.record:nth-child(2){animation-delay:.07s}.record:nth-child(3){animation-delay:.14s}.record:nth-child(4){animation-delay:.21s}.record:nth-child(5){animation-delay:.28s}.record:nth-child(6){animation-delay:.35s}.record:nth-child(7){animation-delay:.42s}.vinyl{animation:vinylSpin 24s linear infinite}.record.visited small::after{content:' · 已探索';color:#08785e}.record.visited .cover{outline:2px solid var(--record-color);outline-offset:4px}.encore{min-height:calc(100svh - 80px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.encore .image-button{animation:encoreGlow 6s ease-in-out infinite;position:relative;z-index:1;flex:none}.encore::before{content:'';position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent,#ff143515,transparent,#ff143520,transparent);animation:vinylSpin 30s linear infinite;pointer-events:none}.encore .eyebrow,.encore-bottom{position:relative;z-index:1}#visitCount{font-size:11px;color:#aaa}.screen:not([hidden]){animation:screenIn .6s ease both}#back{background:#f5f0e9;color:#161113;border-radius:30px;padding:10px 18px;font-weight:700}.hero .curtain{z-index:6}.hero.opening .left{animation:leftCurtain .75s ease-in-out}.hero.opening .right{animation:rightCurtain .75s ease-in-out}@keyframes coverBreath{0%,100%{transform:scale(.985)}50%{transform:scale(1)}}@keyframes portraitFloat{0%,100%{transform:translate(var(--mx,0px),var(--my,0px))}50%{transform:translate(calc(var(--mx,0px) + 3px),calc(var(--my,0px) - 5px))}}@keyframes lightSweep{0%,20%{transform:translateX(-90%);opacity:0}45%{opacity:.7}75%,100%{transform:translateX(90%);opacity:0}}@keyframes entryPulse{0%,100%{box-shadow:0 0 20px #ff24404d}50%{box-shadow:0 0 45px #ff244095}}@keyframes vinylSpin{to{rotate:360deg}}@keyframes recordArrive{from{opacity:0;transform:translateY(30px) rotate(-4deg)}to{opacity:1;transform:none}}@keyframes screenIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes encoreGlow{0%,100%{filter:drop-shadow(0 0 8px #c4002020);transform:scale(.992)}50%{filter:drop-shadow(0 0 25px #e3004044);transform:scale(1)}}
@media(max-width:700px){body[data-screen="home"] .hero{padding:12px 4vw 24px}.hero-bottom{flex-direction:column;gap:8px;min-height:110px}.hero-bottom p{display:none}.enter{width:min(290px,85vw);height:62px}.hero-art{margin:10px auto}.hero-top{font-size:8px;letter-spacing:1px}.projects{padding-top:35px}.track-controls{margin-top:15px}.section-heading{margin-bottom:10px}.record{flex-basis:73vw}.records{gap:35px}.encore{min-height:calc(100svh - 64px)}.case-bar{padding:10px 3vw}.brand{font-size:26px}nav{gap:12px}nav button{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Full-bleed gallery and automatic subject animation. */
header,body[data-screen="home"] header{height:60px;position:fixed;inset:0 0 auto;background:linear-gradient(#0009,transparent);border:0;backdrop-filter:none;z-index:20}body[data-screen="home"] .hero{height:100svh;min-height:100svh;padding:0;display:block}.hero-top,.hero-bottom p,.edition{display:none}.hero-art{position:absolute;inset:0;margin:0!important;max-width:none;width:100%;height:100%;display:block}.hero-art>img{width:100%;height:100%;object-fit:cover;object-position:center;animation:none;filter:none}.hero-art>img.motion-ready{visibility:hidden}#portraitMotion{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.hero-bottom{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);display:block;margin:0;min-height:0}.enter{position:relative;width:250px;height:72px;display:flex;align-items:center;justify-content:center;gap:30px;background:linear-gradient(135deg,#f50839,#8d0020);border:1px solid #ff899d;border-radius:0;clip-path:polygon(10% 0,100% 0,100% 75%,90% 100%,0 100%,0 25%);text-transform:uppercase;letter-spacing:3px;box-shadow:0 0 35px #ff124680;animation:entryPulse 2s ease-in-out infinite;overflow:hidden}.enter::after{content:'';position:absolute;inset:-80% -30%;background:linear-gradient(110deg,transparent 40%,#ffffff66 50%,transparent 60%);animation:buttonScan 3s ease-in-out infinite;pointer-events:none}.enter:hover{background:linear-gradient(135deg,#ff4762,#bd002d);transform:translateY(-4px)}.projects{height:100svh;min-height:100svh;padding:85px 3vw 25px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 60% 80%,#33151d,#100a0c 75%);color:#f5f0e9;overflow:hidden}.section-heading{flex:none;margin-bottom:20px!important;align-items:center}.section-heading h1{font-size:clamp(28px,3vw,48px);line-height:1.1;margin:12px 0 0;letter-spacing:-1px}.track-controls p{color:#aaa}.track-controls button{border-color:#ffffff40}.records{flex:1;min-height:0;align-items:center;gap:4vw;scroll-snap-type:none;scrollbar-width:none;padding:15px 2vw 30px;cursor:default}.records::-webkit-scrollbar{display:none}.record{flex-basis:clamp(270px,31vw,520px)}.sleeve{aspect-ratio:1;margin-right:30px}.cover img{width:100%;height:calc(100% / var(--crop,1));object-fit:cover;object-position:center top;position:absolute;inset:0}.cover::after{display:none}.record h2{font-size:24px}.record small{color:#aaa}.record.visited small::after{color:#80e3bc}.catalog-foot{flex:none;color:#aaa;border-color:#ffffff25;margin-top:10px;font-size:10px}.track-controls p::after{content:' 鼠标左右移动切换唱片';display:block;margin-top:8px}.catalog-foot span:last-child{font-size:0}.catalog-foot span:last-child::after{content:'移动鼠标切换 / 点击进入 ↗';font-size:10px}.case-bar{top:60px;padding:10px 3vw;background:#100a0ced}.case-intro{padding:95px 4vw 35px}.case-body{display:block;margin:0;gap:0}.case-body aside{position:fixed;left:10px;bottom:15px;top:auto;max-height:40vh;height:auto;width:70px;background:#0009;border-radius:8px;z-index:8;opacity:.4;transition:opacity .2s}.case-body aside:hover{opacity:1}.page{max-width:none;width:100%;margin:0;min-height:100svh;background:#090a0b;scroll-margin-top:110px;position:relative}.page-label{position:absolute;top:8px;right:12px;left:auto;z-index:2;gap:15px;background:#0007;padding:8px;font-size:9px}.page .image-button{width:100%;min-height:100svh;background:#090a0b;display:flex;align-items:center}.page .image-button img{width:100%;height:auto;min-height:100svh;object-fit:contain;display:block}.encore{height:100svh;min-height:100svh;padding:0;background:#000}.encore>.eyebrow{display:none}.encore .image-button{position:absolute;inset:0;margin:0;max-width:none;width:100%;height:100%;animation:none}.encore .image-button img{width:100%;height:100%;object-fit:cover;object-position:center;animation:contactLight 7s ease-in-out infinite}.encore-bottom{position:absolute;bottom:22px;left:3vw;right:3vw;border:0;background:#0006;padding:10px}.encore-bottom>span{display:none}.encore-bottom button{margin-left:auto;border:1px solid #ffffff66;padding:10px 18px;border-radius:25px}footer{display:none!important}body[data-screen="contact"]{overflow:hidden}.stage-light{animation:lightSweep 8s infinite;opacity:.3;z-index:3}.end-next{margin:35px auto}.page .image-button img{object-position:center top}@keyframes buttonScan{0%,15%{transform:translateX(-70%)}80%,100%{transform:translateX(70%)}}@keyframes contactLight{0%,100%{filter:brightness(1)}50%{filter:brightness(1.10)}}
@media(max-width:700px){header,body[data-screen="home"] header{height:60px;padding:0 3vw}nav{gap:8px}#visitCount{display:none}nav button{font-size:10px}.hero-bottom{bottom:13%;min-height:0;width:250px}.hero-art>img{object-position:58% center}.enter{width:250px;height:65px}.projects{padding-top:85px}.projects .section-heading{display:block}.projects h1{font-size:28px}.track-controls{margin-top:10px}.track-controls button{display:none}.records{gap:30px}.record{flex-basis:75vw}.record h2{font-size:20px}.case-intro{padding-top:125px}.case-bar{top:60px}.case-body aside{top:auto;max-height:32vh;width:55px;margin:0;padding:0;flex-direction:column}.page-jump{font-size:8px;padding:7px 5px}.encore .image-button img{object-fit:contain}.encore-bottom{bottom:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Readable project presentation. */
#special{display:none!important}.case-body aside{display:none!important}.case-body{display:block;margin:20px auto 60px;padding:0 4vw;max-width:1340px}.page{max-width:1200px;margin:0 auto 38px;min-height:0;background:transparent}.page-label{position:static;background:transparent;padding:0;margin-bottom:10px;justify-content:space-between}.page .image-button{min-height:0;background:transparent;display:block}.page .image-button img{min-height:0;width:100%;height:auto;object-fit:contain}.case-intro{max-width:1280px;margin:auto;padding:100px 4vw 30px}.case-bar{position:sticky}.page{scroll-margin-top:120px}@media(max-width:700px){.case-body{padding:0 3vw}.page{margin-bottom:22px}.case-intro{padding-top:120px}}

/* Focused vinyl archive, inspired by physical record sleeves. */
.projects{--focus-color:#16bac7;background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--focus-color) 16%,#100c15),#09090e 76%);transition:background .6s}.projects::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.08;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 4px 4.5px)}.projects{position:relative}.projects .section-heading{position:relative;z-index:2}.projects h1{font-size:clamp(25px,2.5vw,40px)}.track-controls p{font-size:10px}.track-controls p::after{content:'移动鼠标 / 滚轮 / 方向键切换';font-size:9px;letter-spacing:1px}.records{display:block;position:relative;width:100%;flex:1;min-height:280px;overflow:visible;padding:0;perspective:1400px;touch-action:pan-y}.record{position:absolute;top:48%;left:50%;width:clamp(260px,34vw,570px);max-height:100%;padding:0;transform:translate(-50%,-50%) translateX(calc(var(--offset,0)*min(39vw,620px))) scale(var(--scale,.7));filter:blur(var(--blur,0px));opacity:var(--opacity,1);transition:transform .55s cubic-bezier(.2,.75,.2,1),filter .55s,opacity .55s;animation:none;will-change:transform}.record .sleeve{width:85%;aspect-ratio:1;margin:0;perspective:800px}.cover{inset:5% 0 5% 0;border:2px solid #ffffff55;border-radius:9px;overflow:hidden;box-shadow:inset 0 0 0 7px #ffffff17,0 15px 25px #0008;background:#12121b;z-index:3}.cover img{inset:10% 0 auto 14%;width:86%;height:calc(82% / var(--crop,1));object-position:center top}.cover::after{display:block;background:linear-gradient(125deg,#ffffff22,transparent 45%,#ffffff08 65%,transparent);border:7px solid #ffffff0b;pointer-events:none}.album-rail{position:absolute;left:0;top:0;bottom:0;width:15%;background:var(--record-color);color:#0a1015;z-index:4;display:flex;align-items:center;flex-direction:column;justify-content:space-around;border-right:2px solid #161a2240}.album-rail b{font-size:clamp(25px,3vw,50px);font-weight:900;letter-spacing:-3px}.album-rail span{writing-mode:vertical-rl;font-size:10px;letter-spacing:3px;font-weight:700}.album-rail i{writing-mode:vertical-rl;font-size:7px;letter-spacing:1px;font-style:normal}.album-top{position:absolute;left:16%;right:0;top:0;height:10%;display:flex;align-items:center;padding:0 10px;color:var(--record-color);font-size:8px;letter-spacing:1px;background:#11121bef;z-index:4}.album-sticker{position:absolute;right:5%;bottom:8%;padding:8px 12px;border:1px solid #ffffff99;color:#fff;font-size:8px;line-height:1.4;border-radius:50%;transform:rotate(-16deg);background:conic-gradient(from 20deg,#ffffff44,var(--record-color),#ffffff44,#23152b);text-shadow:0 1px 2px #000;z-index:4;box-shadow:0 0 8px #ffffff30}.album-code{position:absolute;left:18%;bottom:4%;width:28%;height:6%;background:repeating-linear-gradient(90deg,#fff 0 1px,transparent 1px 3px,#fff 3px 5px,transparent 5px 8px);opacity:.75;z-index:4}.vinyl{width:88%;right:-13%;top:6%;background:repeating-radial-gradient(circle,transparent 0 2px,#ffffff14 2.3px 3px,transparent 3.3px 5px),conic-gradient(from 20deg,color-mix(in srgb,var(--record-color) 68%,#071015),var(--record-color),color-mix(in srgb,var(--record-color) 60%,#0b0c10),var(--record-color),color-mix(in srgb,var(--record-color) 70%,#091017));border:1px solid #ffffff55;box-shadow:inset 0 0 0 4px #ffffff20,0 5px 28px #0009;animation:vinylSpin 22s linear infinite;z-index:1;transition:right .6s,box-shadow .6s}.vinyl::after{display:none}.disc-label{position:absolute;width:33%;height:33%;border-radius:50%;left:33.5%;top:33.5%;background:#0f1014ee;border:2px solid #ffffff66;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--record-color);font-size:9px;overflow:hidden}.disc-label::after{content:'';position:absolute;width:8%;height:8%;background:#ddd;border-radius:50%;top:46%;left:46%;box-shadow:0 0 0 3px #000}.disc-label b{font-size:24px;line-height:1;margin-bottom:10px}.disc-label span{font-size:7px;letter-spacing:3px;margin-bottom:5px}.disc-label small{font-size:5px;width:70%;letter-spacing:1px;margin-top:0;text-align:center}.case-screw{position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(#111 20%,#ddd 30%,#555 70%);z-index:5}.screw-a{left:5px;top:7%}.screw-b{right:5px;top:7%}.screw-c{left:5px;bottom:7%}.screw-d{right:5px;bottom:7%}.record-meta{display:none}.record.active .cover{box-shadow:0 0 0 1px var(--record-color),0 0 28px color-mix(in srgb,var(--record-color) 55%,transparent),0 25px 40px #0009}.record.active .vinyl{right:-27%;box-shadow:0 0 25px color-mix(in srgb,var(--record-color) 28%,transparent),0 10px 25px #0009}.record.active:hover .vinyl,.record.active:focus-visible .vinyl{right:-51%}.record:not(.active):hover .vinyl{right:-13%}.record:focus-visible{outline:0}.focus-caption{position:relative;z-index:12;flex:none;text-align:center;display:flex;flex-direction:column;gap:6px;margin:5px 0 15px;align-items:center}.focus-caption>span:first-child{font-size:9px;letter-spacing:4px;color:var(--focus-color)}.focus-caption strong{font-size:26px;letter-spacing:2px}.focus-caption>span:nth-child(3){font-size:9px;letter-spacing:3px;color:#aaa}.focus-caption button{border:1px solid var(--focus-color);background:color-mix(in srgb,var(--focus-color) 20%,#121119);border-radius:30px;color:#fff;padding:12px 32px;margin-top:7px;box-shadow:0 0 20px color-mix(in srgb,var(--focus-color) 24%,transparent);font-size:12px}.catalog-foot{z-index:2}.catalog-foot span:last-child::after{content:'聚焦项目 / 点击进入 ↗'}.track-controls button{display:inline-block}.stage-drape{position:absolute;top:0;bottom:0;width:50.5%;background:repeating-linear-gradient(90deg,#2c020b 0%,#870820 5%,#cf1234 10%,#580514 16%,#a50a2d 20%);box-shadow:inset 0 0 60px #0009;transition:transform 1.4s cubic-bezier(.4,0,.25,1);will-change:transform}.drape-left{left:0;transform:translateX(-102%)}.drape-right{right:0;transform:translateX(102%)}#stageTransition{position:fixed;inset:0;z-index:100;pointer-events:none;overflow:hidden}#stageTransition.closed .stage-drape{transform:translateX(0)}#stageTransition.closed{pointer-events:auto}#stageTransition.slow-open .stage-drape{transition-duration:1.8s}#cursorLight{position:fixed;left:-100px;top:-100px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff,0 0 22px #ff3462,0 0 45px #ff346288;transform:translate(-50%,-50%);pointer-events:none;z-index:300;opacity:0;transition:opacity .2s}#cursorLight.visible{opacity:1}#thanksMotion{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.encore img.motion-ready{visibility:hidden}.wave-started .enter{opacity:.45}.hero .stage-light{opacity:.12}.case-body aside,#special{display:none!important}
@media(max-width:700px){.projects .section-heading h1{font-size:24px}.track-controls p{display:none}.track-controls{position:absolute;right:0;top:20px}.track-controls button{display:inline-block;width:34px;height:34px}.record{width:64vw;transform:translate(-50%,-50%) translateX(calc(var(--offset,0)*74vw)) scale(var(--scale,.7))}.record .sleeve{width:87%}.records{min-height:260px}.focus-caption strong{font-size:22px}.focus-caption{margin-top:15px}.album-rail span{font-size:7px}.album-top{font-size:5px}.album-sticker{font-size:5px;padding:6px}.disc-label b{font-size:15px}.disc-label small{font-size:3px}.disc-label span{font-size:4px}.case-screw{width:5px;height:5px}.catalog-foot{font-size:8px}.catalog-foot span:last-child::after{font-size:8px}#cursorLight{display:none}}
@media(prefers-reduced-motion:reduce){.stage-drape{transition:none!important}#cursorLight{display:none}}

/* Restore the project page index; keep images at a readable width. */
body #case .case-body{display:grid;grid-template-columns:120px minmax(0,1fr);gap:28px;max-width:1380px;margin:20px auto 60px;padding:0 3vw}body #case .case-body aside#pageNav{display:flex!important;position:sticky;left:auto;bottom:auto;top:125px;width:auto;height:calc(100svh - 155px);max-height:none;flex-direction:column;overflow:auto;opacity:1;background:transparent;border-radius:0;gap:3px;z-index:4;padding:0}.page-jump{font-size:11px;padding:10px 12px;color:#aaa;text-align:left;border-left:2px solid #ffffff20;flex:none}.page-jump.active{color:#fff;border-color:var(--accent);background:#ffffff08}.page{margin-bottom:35px}#special{display:none!important}.hero-bottom .enter{transition:opacity .35s,transform .35s}.hero-bottom .enter.intro-hidden{visibility:hidden;opacity:0;pointer-events:none}.hero-bottom .enter.intro-typing{visibility:visible;opacity:1}.hero-bottom .enter #enterLabel{font-size:18px;letter-spacing:3px;min-width:100px}.hero-bottom .enter .enter-arrow{font-size:27px}.hero-bottom .enter.intro-typing .enter-arrow{opacity:0}.hero-bottom .enter.intro-complete .enter-arrow{opacity:1;transition:opacity .4s}
@media(max-width:700px){body #case .case-body{display:block;padding:0 3vw}body #case .case-body aside#pageNav{position:sticky;top:120px;height:auto;max-height:60px;flex-direction:row;overflow-x:auto;white-space:nowrap;background:#100a0cf2;margin-bottom:18px;padding:8px 0;width:100%;z-index:8}.page-jump{padding:7px 12px}.page{scroll-margin-top:190px}}

/* True textless base plates, transparent typography with no fill patches. */
.artwork-layer{position:absolute;pointer-events:none;z-index:4;overflow:visible}.artwork-layer>g{opacity:0}#coverTypeLayer{isolation:isolate}#coverTypeLayer>g:first-of-type{opacity:1}#coverCapitals{opacity:0}#thanksTypeLayer{z-index:4}.hero-art,.encore .image-button{overflow:hidden}.hero .stage-light{display:none}.encore .image-button img{animation:none}#thanksMotion{z-index:2}.encore-bottom{z-index:6}.hero-bottom{z-index:8}#coverTypeLayer [id^="cover-"]{transition:none}#thanksTypeLayer [id^="thanks-"]{will-change:opacity}

/* Text is now vector-only: no source image rectangles or extracted edges. */
#contactButton{border:0;outline-offset:4px;box-shadow:none;background:none} .encore-bottom{background:transparent}.encore-bottom button{border:0;box-shadow:none;background:transparent}

/* White cover lettering is immediate; only the red title animates. */
#coverTypeLayer [id^="cover-"]{opacity:1!important;visibility:visible!important;clip-path:none!important}
