﻿:root{
  --ink:#090908;
  --ink-soft:#11110f;
  --bone:#efe9dc;
  --bone-dim:#c8c0b2;
  --bronze:#9b7a4e;
  --bronze-light:#c6a775;
  --line:rgba(239,233,220,.24);
  --mx:0;
  --my:0;
  --poster-width:204px;
  --poster-gap:26px;
  --hero-brightness:.82;
  --hero-saturation:.88;
  --cinema-opacity:.86;
  --poster-brightness:.92;
  --poster-saturation:.86;
  --transition-duration:6.9s;
  --page-pad-x:clamp(1.2rem,4vw,3.5rem);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--ink);scroll-behavior:auto}
html,body{margin:0;width:100%;min-height:100%;background:var(--ink);color:var(--bone);font-family:Arial,Helvetica,sans-serif;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
body{cursor:none}
img,video,svg,canvas{-webkit-user-drag:none;user-drag:none;-webkit-user-select:none;user-select:none}
::selection{background:transparent;color:inherit}
::-moz-selection{background:transparent;color:inherit}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text}
button{font:inherit;color:inherit}
.site-shell{background:var(--ink)}
.hero{position:relative;height:100svh;min-height:0;overflow:hidden;isolation:isolate;background:#070707}
.video-world{position:absolute;inset:-3.5%;z-index:-8;overflow:hidden;transform:translate3d(calc(var(--mx) * -8px),calc(var(--my) * -6px),0) scale(1.06);will-change:transform,filter}
.hero-video,.transition-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;will-change:transform,opacity,filter}
.hero-video{opacity:1;filter:saturate(.76) contrast(1.08) brightness(.72)}
.transition-video{opacity:0;transform:scale(1.012);filter:saturate(.9) contrast(1.06) brightness(.82)}
.world-light{position:absolute;inset:0;background:radial-gradient(circle at calc(50% + var(--mx)*6%) calc(45% + var(--my)*4%),rgba(235,222,195,.09),transparent 32%);mix-blend-mode:screen}
.cinema-grade{position:absolute;inset:0;z-index:-5;pointer-events:none;background:linear-gradient(180deg,rgba(3,3,3,.58) 0%,rgba(4,4,4,.18) 24%,rgba(4,4,4,.16) 62%,rgba(3,3,3,.63) 100%),linear-gradient(90deg,rgba(6,6,5,.55) 0%,rgba(6,6,5,.14) 24%,rgba(6,6,5,.10) 72%,rgba(6,6,5,.54) 100%)}
.vignette{position:absolute;inset:0;z-index:20;pointer-events:none;box-shadow:inset 0 0 170px 28px rgba(0,0,0,.66),inset 0 0 45px rgba(0,0,0,.48)}
.grain{position:absolute;inset:-20%;z-index:21;pointer-events:none;background:url('assets/grain.png') repeat;opacity:.105;mix-blend-mode:soft-light;animation:grainMove .28s steps(2) infinite}
@keyframes grainMove{0%{transform:translate(0,0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}100%{transform:translate(-2%,-2%)}}
.fire-wash{position:absolute;inset:0;z-index:40;pointer-events:none;opacity:0;background:radial-gradient(circle at 48% 58%,rgba(255,177,76,.74),rgba(188,64,17,.26) 33%,transparent 66%);mix-blend-mode:screen}
.blackout{position:absolute;inset:0;z-index:44;pointer-events:none;background:#050504;opacity:0}

.sound-gate{position:fixed;inset:0;z-index:300;background:#080807;display:grid;place-items:center;overflow:hidden;transition:opacity .35s ease,visibility .35s;cursor:none}
.sound-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.gate-film{position:absolute;inset:-15%;background:radial-gradient(circle at 50% 43%,rgba(128,107,77,.18),transparent 22%),linear-gradient(110deg,transparent 38%,rgba(255,255,255,.025) 50%,transparent 62%)}
.gate-inner{position:relative;width:min(560px,86vw);text-align:center}
.gate-mark{font-family:"Bodoni 72","Bodoni MT",Didot,"Iowan Old Style",Georgia,serif;font-weight:400;font-size:clamp(48px,7vw,100px);letter-spacing:.11em;line-height:.9;color:var(--bone);display:inline-block;text-shadow:0 8px 40px rgba(0,0,0,.35)}
.gate-mark.is-tilting{transition:transform .08s linear}
body.gate-tilt-on .gate-inner{perspective:900px;transform-style:preserve-3d}
body.gate-tilt-on .gate-mark{transform-style:preserve-3d;will-change:transform}
.gate-rule{height:1px;width:54px;background:var(--bronze);margin:32px auto 20px}
.gate-rule[hidden]{display:none!important}
.gate-inner #gateSubtitle{font-size:13px;letter-spacing:.28em;color:rgba(239,233,220,.55);margin:0 0 2.4rem}
.gate-scroll-hint{margin:0;font-size:11px;letter-spacing:.32em;color:rgba(239,233,220,.42)}

.brand-lockup{position:absolute;z-index:40;left:clamp(28px,4.2vw,72px);top:clamp(30px,5vh,56px);transform:none;display:flex;align-items:baseline;gap:.13em;font-family:"Bodoni 72","Bodoni MT",Didot,"Iowan Old Style",Georgia,serif;font-weight:400;font-size:clamp(22px,2vw,30px);letter-spacing:.08em;line-height:1.05;color:var(--bone);white-space:nowrap;text-shadow:0 3px 20px rgba(0,0,0,.52);pointer-events:none;opacity:0;filter:blur(8px);padding:.12em .05em;box-sizing:content-box;transition:opacity .55s ease,filter .55s ease;max-width:min(46vw,420px);overflow:visible}
.brand-lockup.is-intro{opacity:1;filter:blur(0);animation:brandCornerIn .65s ease both}
.brand-art{font-style:italic;font-size:.92em;color:#e3d9c8}
@keyframes brandCornerIn{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur(0)}}
body.brand-settled .brand-lockup{opacity:1}

.top-rail{position:absolute;z-index:27;right:clamp(24px,4vw,68px);top:clamp(27px,4.3vh,48px);display:flex;align-items:center;gap:20px;font-size:8px;letter-spacing:.26em;color:rgba(239,233,220,.55);opacity:0;transform:translateY(-8px);transition:opacity .65s ease .25s,transform .65s ease .25s;max-width:min(48vw,360px);justify-content:flex-end}
body.brand-settled .top-rail{opacity:1;transform:none}
.top-rail .chapter{transform:none!important;white-space:nowrap;flex:0 1 auto;min-width:0}
.rail-line{width:28px;height:1px;background:var(--line);flex:0 0 auto}
.sound-toggle{cursor:none;border:0;background:transparent;display:flex;align-items:center;gap:9px;padding:6px 0;font-size:8px;letter-spacing:.22em;color:inherit;flex:0 0 auto;white-space:nowrap}
.sound-bars{display:flex;align-items:end;gap:2px;height:10px}.sound-bars i{display:block;width:1px;background:var(--bronze-light);animation:soundBar .9s ease-in-out infinite alternate}.sound-bars i:nth-child(1){height:4px}.sound-bars i:nth-child(2){height:9px;animation-delay:-.35s}.sound-bars i:nth-child(3){height:6px;animation-delay:-.6s}@keyframes soundBar{to{height:2px}}
.sound-toggle[aria-pressed="false"] .sound-bars i{animation:none;height:2px;background:#777}

.poster-stage{position:absolute;z-index:8;left:0;right:0;top:58%;height:min(55vh,610px);transform:translateY(-50%);overflow:hidden;perspective:1600px;touch-action:none;mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%);opacity:0;transition:opacity 1s ease .15s,top 1s cubic-bezier(.2,.8,.2,1)}
body.experience-started .poster-stage{opacity:.9}
body.brand-settled .poster-stage{top:55.5%}
.poster-track{position:absolute;left:0;top:50%;display:flex;gap:var(--poster-gap);align-items:center;transform-style:preserve-3d;will-change:transform;user-select:none}
.poster{position:relative;flex:0 0 clamp(118px,10.8vw,var(--poster-width));aspect-ratio:9/16;overflow:hidden;background:#141310;border:1px solid rgba(239,233,220,.18);box-shadow:0 24px 60px rgba(0,0,0,.42);transform-style:preserve-3d;will-change:transform,opacity,filter;transition:border-color .25s ease,box-shadow .25s ease;backface-visibility:hidden}
.poster::before{content:"";position:absolute;inset:0;z-index:2;border:1px solid rgba(239,233,220,.06);pointer-events:none}
.poster::after{content:attr(data-index);position:absolute;z-index:3;right:9px;top:9px;font-family:Georgia,serif;font-size:9px;letter-spacing:.16em;color:rgba(239,233,220,.68);text-shadow:0 1px 5px #000}
.poster img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;filter:saturate(var(--poster-saturation)) contrast(1.035) brightness(var(--poster-brightness));transform:scale(var(--poster-zoom,1))}
.poster.is-hovered{border-color:rgba(239,233,220,.55);box-shadow:0 38px 90px rgba(0,0,0,.58)}
.poster-caption{position:absolute;z-index:24;left:clamp(24px,4vw,68px);bottom:clamp(33px,5vh,58px);display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.12em;color:rgba(239,233,220,.55);opacity:0;transition:opacity .7s ease .3s}
.poster-caption #posterCaptionLeft{letter-spacing:.28em;color:rgba(242,238,230,.78)}
.poster-caption #posterCaptionRight{font-size:11px;letter-spacing:.08em;color:rgba(242,238,230,.48)}
.poster-caption i{width:32px;height:1px;background:rgba(239,233,220,.25)}
body.brand-settled .poster-caption{opacity:1}

.scroll-cue{position:absolute;z-index:28;left:50%;bottom:clamp(22px,3.5vh,38px);transform:translateX(-50%);cursor:none;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:11px;color:rgba(239,233,220,.62);padding:10px 24px}
.scroll-cue span{font-size:7px;letter-spacing:.34em;white-space:nowrap}
.cue-line{display:block;width:1px;height:42px;background:rgba(239,233,220,.22);overflow:hidden;position:relative}.cue-line b{position:absolute;left:0;top:-60%;width:1px;height:45%;background:var(--bronze-light);animation:cueDown 1.8s cubic-bezier(.45,0,.2,1) infinite}@keyframes cueDown{0%{top:-55%}65%,100%{top:120%}}
.side-index{display:none!important}
.transition-copy{display:none!important}

.cursor{position:fixed;z-index:1000;left:0;top:0;width:24px;height:24px;border:1px solid rgba(239,233,220,.55);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);display:grid;place-items:center;mix-blend-mode:difference;transition:width .2s,height .2s,background .2s,border-color .2s}.cursor span{font-size:0;letter-spacing:.14em}.cursor.active{width:62px;height:62px;background:rgba(239,233,220,.08);border-color:rgba(239,233,220,.92)}.cursor.active span{font-size:7px}

html,body{scrollbar-width:none;-ms-overflow-style:none}
html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{width:0;height:0;display:none}

/* 全站角标：左公司名 / 右页码 — 仅离开首页后显示，避免与首页叠层 */
.site-chrome{position:fixed;inset:0 0 auto 0;z-index:120;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease}
body.entered:not([data-page="home"]) .site-chrome{opacity:1;visibility:visible}
.site-brand{position:fixed;left:var(--page-pad-x,clamp(1.2rem,4vw,3.5rem));top:max(30px,var(--brand-settled-y,5.2vh));z-index:121;font-family:"Bodoni 72","Bodoni MT",Didot,"Iowan Old Style",Georgia,serif;font-weight:400;font-size:clamp(22px,var(--brand-settled-size,28px),34px);letter-spacing:.08em;line-height:1.05;color:var(--bone,#f2eee6);text-shadow:0 3px 20px rgba(0,0,0,.52);pointer-events:none;white-space:nowrap}
.site-chapter{position:fixed;right:clamp(24px,4vw,56px);top:max(32px,var(--brand-settled-y,5.2vh));z-index:121;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(242,238,230,.62);pointer-events:none}
/* 离开首页：藏起首页专属角标与提示 */
body.entered:not([data-page="home"]) .brand-lockup{opacity:0!important;visibility:hidden!important;pointer-events:none!important;display:none!important}
body.entered:not([data-page="home"]) .poster-caption,
body.entered:not([data-page="home"]) .top-rail,
body.entered:not([data-page="home"]) .side-index,
body.entered:not([data-page="home"]) .scroll-cue{opacity:0!important;visibility:hidden;pointer-events:none}
/* 回滚到首页：恢复首次进入时的文案与控件（精选作品 / 滚动提示 / 声音） */
body.entered[data-page="home"] .brand-lockup{
  display:block!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;
}
body.entered[data-page="home"] .poster-caption{
  opacity:1!important;visibility:visible;pointer-events:none;
}
body.entered[data-page="home"] .top-rail,
body.entered[data-page="home"] .side-index{
  opacity:1!important;visibility:visible;pointer-events:auto;transform:none;
}
body.entered[data-page="home"] .scroll-cue{
  opacity:1!important;visibility:visible;pointer-events:auto;
}
body.entered .next-meta{display:none}

/* 全屏分页切换 — 每页严格落在视口内，禁止页内滚动 */
.page-deck{position:relative;width:100%;height:100svh;overflow:hidden;background:#050505}
.page-slide{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px);transition:opacity .65s cubic-bezier(.16,.86,.2,1),transform .7s cubic-bezier(.16,.86,.2,1),visibility .65s}
.page-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:none;z-index:2}
.page-slide.is-prev{transform:translateY(-12px)}
.page-slide.is-next{transform:translateY(18px)}
.page-inner{height:100%;max-height:100%;overflow:hidden;box-sizing:border-box;padding:clamp(3rem,6.5vh,4.2rem) var(--page-pad-x,clamp(1.2rem,4vw,3.5rem)) clamp(.7rem,1.8vh,1.2rem);display:flex;flex-direction:column;min-height:0}
.page-slide .hero,.page-slide .next-page,.page-slide .process-theater{height:100%;min-height:0;max-height:100%}
.page-slide .next-page{padding:clamp(3.2rem,7vh,4.5rem) clamp(1.6rem,5vw,5rem) clamp(1.2rem,3vh,2rem)}
#processPagesHost{display:contents}
.process-page{position:relative;width:100%;height:100%;overflow:hidden}
body.entered,html.entered{overflow:hidden!important}

.next-page{position:relative;height:100svh;min-height:0;background:#050505;color:#f2eee6;overflow:hidden;padding:clamp(3.2rem,7vh,5rem) clamp(1.6rem,6vw,6rem);display:flex;align-items:center;isolation:isolate}
.about-bg{position:absolute;inset:0;z-index:0;background:center center/cover no-repeat;opacity:0;pointer-events:none;transition:opacity .45s ease}
.next-page::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 50% 40% at 70% 30%,rgba(255,236,200,.05),transparent 60%),linear-gradient(90deg,rgba(5,5,5,.72),rgba(5,5,5,.35) 55%,rgba(5,5,5,.55)),url('assets/grain.png') repeat;opacity:.9;pointer-events:none;mix-blend-mode:normal}
.about-title-stage{display:block;max-width:100%}
#nextTitleLabel{display:block;white-space:pre-line;transform:none}
.next-meta{position:absolute;left:8vw;top:7vh;font-size:8px;letter-spacing:.3em;color:rgba(242,238,230,.45)}
/* 进入内页后章节标挪到右上，把左上留给贯穿全站的公司名 */
body.entered .next-meta{left:auto;right:clamp(24px,8vw,8vw);top:max(30px,var(--brand-settled-y,5.2vh));text-align:right}
.next-page{perspective:none}
.next-copy{
  position:relative;z-index:3;max-width:min(52vw,640px);
}
.next-copy.is-float-enabled{
  transform:translate3d(0,0,0) rotate(0deg);
}
.next-copy.is-waving{
  animation:aboutCopyWave 9.5s ease-in-out infinite;
  will-change:transform;
}
.next-copy.is-settling{
  animation:none;
  will-change:transform;
}
@keyframes aboutCopyWave{
  0%{transform:translate3d(0,0,0) rotate(0deg)}
  14%{transform:translate3d(10px,-8px,0) rotate(.35deg)}
  28%{transform:translate3d(-6px,-14px,0) rotate(-.25deg)}
  42%{transform:translate3d(-12px,4px,0) rotate(.2deg)}
  56%{transform:translate3d(4px,11px,0) rotate(-.3deg)}
  70%{transform:translate3d(12px,2px,0) rotate(.15deg)}
  84%{transform:translate3d(-4px,-6px,0) rotate(-.2deg)}
  100%{transform:translate3d(0,0,0) rotate(0deg)}
}
@media (prefers-reduced-motion:reduce){
  .next-copy.is-waving{animation:none}
}
.next-copy h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(32px,5.2vw,72px);line-height:1.12;letter-spacing:.02em}
.next-copy h2 em{font-weight:400;color:#c4b49a}
.next-copy #nextSubtitleLabel{margin:clamp(.55rem,1.4vh,1rem) 0 0;max-width:34rem;font-size:clamp(12px,1.35vw,15px);letter-spacing:.06em;line-height:1.55;color:rgba(242,238,230,.78)}
.next-copy .studio-lead,.next-copy #aboutBodyText{margin:clamp(.7rem,1.8vh,1.35rem) 0 0;max-width:34rem;font-size:clamp(12px,1.3vw,14px);letter-spacing:.04em;line-height:1.7;color:rgba(242,238,230,.62)}
.replay{position:absolute;z-index:3;left:clamp(1.6rem,6vw,8vw);bottom:clamp(1.2rem,3.5vh,4vh);border:0;border-bottom:1px solid rgba(242,238,230,.35);background:transparent;padding:8px 0;cursor:none;font-size:8px;letter-spacing:.2em;color:rgba(242,238,230,.75)}.replay span{padding-left:12px}.next-orbit{position:absolute;z-index:2;right:-6vw;top:50%;width:min(40vw,560px);aspect-ratio:1;transform:translateY(-50%);opacity:.12}.next-orbit i,.next-orbit b{position:absolute;border:1px solid rgba(242,238,230,.35);border-radius:50%;inset:8%}.next-orbit b{inset:27%}.next-orbit::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(242,238,230,.25);transform:rotate(-23deg)}.next-orbit span{position:absolute;inset:0;display:grid;place-items:center;font-family:Georgia,serif;font-size:clamp(28px,4vw,64px);letter-spacing:.1em;color:rgba(242,238,230,.35)}

/* Studio pages after home */
.studio{background:#050505;color:#f2eee6;position:relative}
.studio-section{padding:clamp(3rem,6.5vh,4.2rem) var(--page-pad-x,clamp(1.2rem,4vw,3.5rem)) clamp(.7rem,1.8vh,1.2rem);border-top:1px solid rgba(255,255,255,.06);box-sizing:border-box}
.studio-section.page-inner{padding:clamp(3rem,6.5vh,4.2rem) var(--page-pad-x,clamp(1.2rem,4vw,3.5rem)) clamp(.7rem,1.8vh,1.2rem)}
.studio-kicker{display:flex;align-items:center;gap:.65rem;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(242,238,230,.38);margin-bottom:clamp(.45rem,1.2vh,.8rem)}
.studio-kicker::before{content:"";width:22px;height:1px;background:rgba(242,238,230,.2)}
.studio-title{margin:0;font-family:Georgia,"Noto Serif SC",serif;font-weight:500;font-size:clamp(1.55rem,3.6vw,2.6rem);line-height:1.15}
.studio-lead{margin:clamp(.45rem,1.2vh,.75rem) 0 0;max-width:36rem;font-size:clamp(12px,1.25vw,14px);line-height:1.65;color:rgba(242,238,230,.62);font-weight:300}
.studio-stats{margin-top:2.5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.studio-stat{border-top:1px solid rgba(242,238,230,.14);padding-top:1rem}
.studio-stat b{display:block;font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;margin-bottom:.4rem}
.studio-stat span{font-size:12px;color:rgba(242,238,230,.4);line-height:1.5}
.studio-pillars{margin-top:2.8rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.studio-pillar{border-top:1px solid rgba(242,238,230,.14);padding:1rem 0}
.studio-pillar .en{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(242,238,230,.35);margin-bottom:.5rem}
.studio-pillar h3{margin:0 0 .45rem;font-size:15px;font-weight:500}
.studio-pillar p{margin:0;font-size:12px;line-height:1.7;color:rgba(242,238,230,.42);font-weight:300}

.process-theater{position:relative;height:100%;min-height:0;background:#000;overflow:hidden;touch-action:none;cursor:pointer}
.process-theater .process-bg{position:absolute;inset:0;z-index:0;background:center center/cover no-repeat;opacity:0;pointer-events:none;transition:opacity .45s ease}
#processStages{position:absolute;inset:0;z-index:1}
.process-theater .stage{position:absolute;inset:0;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s;z-index:1}
.process-theater .stage.is-active{opacity:1;visibility:visible;pointer-events:auto}
.process-theater .stage-title{text-align:center;z-index:5;position:relative;color:#f2eee6;text-shadow:0 8px 40px rgba(0,0,0,.65);transition:opacity 1.1s ease,transform 1.15s cubic-bezier(.2,.7,.2,1),filter 1.1s ease,left 1.15s cubic-bezier(.2,.7,.2,1),right 1.15s cubic-bezier(.2,.7,.2,1),top 1.15s cubic-bezier(.2,.7,.2,1)}
.process-theater .stage-title.title-in{animation:titleIn .7s cubic-bezier(.16,.86,.2,1) both}
@keyframes titleIn{from{opacity:0;transform:scale(.92);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
.process-theater .stage-title .cn{font-size:clamp(2.2rem,7.5vw,5.2rem);font-weight:700;letter-spacing:.08em;line-height:1;transition:font-size 1.15s cubic-bezier(.2,.7,.2,1),letter-spacing 1.15s ease}
.process-theater .stage-title .en{margin-top:.7rem;font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:rgba(242,238,230,.45);transition:font-size 1.15s ease,margin .8s ease,letter-spacing 1.15s ease,opacity .8s ease}
.process-theater .stage.is-playing .stage-title,
.process-theater .stage.is-revealed .stage-title{opacity:0;transform:scale(2.2) translateY(-24px);filter:blur(16px);pointer-events:none}
/* 2-1~2-4 统一：入场淡入变小 2s → 出场字距拉开/上浮/虚化；素材布局另由 media-layout-* 控制 */
.process-theater[data-reveal="title-media"],
.process-theater[data-reveal="title-jump-works"]{cursor:default}
.process-theater .stage.has-jump-works .stage-media{display:none!important}
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-title,
.process-theater .stage.has-title-enter .stage-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;pointer-events:none;z-index:10;text-align:center;will-change:transform,opacity,filter}
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-title.title-in,
.process-theater .stage.has-title-enter .stage-title.title-in{animation:titleInVisual 2s cubic-bezier(.16,.86,.2,1) both}
/* 过程页标题：静态显示，无入场/出场动画；展开后由 is-revealed 隐藏 */
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-title.title-wait,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter .stage-title.title-wait,
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-title.title-in,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter .stage-title.title-in{
  opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0);animation:none;
}
@keyframes titleInVisual{from{opacity:0;transform:translate(-50%,-50%) scale(1.55);filter:blur(0)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-title.title-out,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter .stage-title.title-out{animation:titleOutVisual 1.15s cubic-bezier(.22,.7,.18,1) forwards}
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-title.title-out .cn,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter .stage-title.title-out .cn{animation:titleOutCn 1.15s cubic-bezier(.22,.7,.18,1) forwards}
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-title.title-out .en,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter .stage-title.title-out .en{animation:titleOutEn 1.05s .06s cubic-bezier(.22,.7,.18,1) forwards}
@keyframes titleOutVisual{
  0%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0) brightness(1);text-shadow:0 10px 48px rgba(0,0,0,.75)}
  40%{opacity:.92;filter:blur(1px) brightness(1.2);text-shadow:0 0 40px rgba(255,236,210,.18),0 12px 48px rgba(0,0,0,.55)}
  100%{opacity:0;transform:translate(-50%,-38%) scale(1.22);filter:blur(16px) brightness(1.35);text-shadow:0 0 80px rgba(255,236,210,.08)}
}
@keyframes titleOutCn{
  0%{letter-spacing:.08em;transform:translateY(0);opacity:1}
  100%{letter-spacing:.38em;transform:translateY(-18px);opacity:0}
}
@keyframes titleOutEn{
  0%{letter-spacing:.42em;transform:translateY(0);opacity:.45}
  100%{letter-spacing:.9em;transform:translateY(14px);opacity:0}
}
.process-theater[data-reveal="title-media"] .stage.has-title-enter.is-title-exiting .stage-fx,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter.is-title-exiting .stage-fx{animation:titleExitFx 1.15s ease both}
@keyframes titleExitFx{0%{filter:brightness(1)}38%{filter:brightness(1.28)}100%{filter:brightness(1)}}
.process-theater[data-reveal="title-media"] .stage.has-title-enter.is-revealed .stage-title,
.process-theater[data-reveal="title-media"] .stage.has-title-enter.is-revealed .stage-title.title-out,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter.is-revealed .stage-title,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter.is-revealed .stage-title.title-out{left:50%;right:auto;top:50%;opacity:0;transform:translate(-50%,-38%) scale(1.22);filter:blur(16px);pointer-events:none;z-index:10}
.process-theater[data-reveal="title-media"] .stage.has-title-enter.is-title-exiting:not(.is-revealed) .stage-title,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter.is-title-exiting:not(.is-revealed) .stage-title{z-index:12}
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-caption,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter .stage-caption{left:50%;right:auto;bottom:clamp(2.6rem,4.2vh,3.8rem);top:auto;transform:translateX(-50%) translateY(18px);width:min(560px,88vw);text-align:center;z-index:11}
.process-theater[data-reveal="title-media"] .stage.has-title-enter.is-revealed .stage-caption,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter.is-revealed .stage-caption{opacity:1;transform:translateX(-50%) translateY(0);bottom:clamp(2.6rem,4.2vh,3.8rem);top:auto}
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-caption p,
.process-theater[data-reveal="title-jump-works"] .stage.has-title-enter .stage-caption p{border-top:0;padding-top:0}
/* 素材布局：球形内壁照片墙（WebGL） */
.process-theater .stage.media-layout-simple .stage-media,
.process-theater .stage.has-simple-gallery .stage-media{inset:3% 1.5% 10%;background:transparent;border:0;overflow:hidden}
.process-theater .stage-media.is-inner-sphere{overflow:hidden;background:#050505;cursor:grab;touch-action:none}
.process-theater .stage-media.is-inner-sphere.is-dragging{cursor:grabbing}
.process-theater .inner-sphere{position:absolute;inset:0;overflow:hidden;isolation:isolate;user-select:none;-webkit-user-select:none}
.process-theater .inner-sphere-gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;image-rendering:auto;-webkit-font-smoothing:antialiased}
.process-theater .inner-sphere-veil{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 88% 78% at 50% 48%,transparent 58%,rgba(5,5,5,.42) 100%),linear-gradient(180deg,rgba(5,5,5,.28) 0%,transparent 12%,transparent 88%,rgba(5,5,5,.48) 100%)}
.process-theater .inner-sphere-hint{position:absolute;left:50%;bottom:.15rem;transform:translateX(-50%);z-index:3;font-size:10px;letter-spacing:.28em;color:rgba(242,238,230,.48);pointer-events:none}
@media(max-width:960px){
  .process-theater .stage.media-layout-simple .stage-media,
  .process-theater .stage.has-simple-gallery .stage-media{inset:5% 0 12%}
  .process-theater .inner-sphere-hint{font-size:9px;letter-spacing:.22em}
}
/* 视觉原图灯箱 */
.visual-lightbox{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:clamp(.8rem,3vh,1.8rem);opacity:0;transition:opacity .28s ease}
.visual-lightbox.is-show{opacity:1}
.visual-lightbox[hidden]{display:none!important}
.visual-lightbox-backdrop{position:absolute;inset:0;background:rgba(5,5,5,.86);cursor:pointer}
.visual-lightbox-frame{position:relative;z-index:1;margin:0;max-width:min(94vw,1280px);max-height:90vh;display:grid;place-items:center}
.visual-lightbox-frame img,
.visual-lightbox-frame video{display:block;max-width:min(94vw,1280px);max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:2px;box-shadow:0 24px 80px rgba(0,0,0,.65);background:#0a0908}
.visual-lightbox-frame video[hidden],
.visual-lightbox-frame img[hidden]{display:none!important}
.visual-lightbox-close{position:absolute;top:-.2rem;right:-.2rem;translate:40% -40%;width:2.2rem;height:2.2rem;border:0;border-radius:50%;background:rgba(20,18,16,.85);color:#f2eee6;font-size:1.35rem;line-height:1;cursor:pointer;z-index:2}
.visual-lightbox-close:hover{background:rgba(40,36,30,.95)}
body.visual-lightbox-open{overflow:hidden}
/* 素材布局：球体（2-2）仍可用，但不改统一标题布局 */
.process-theater .stage.has-gallery .stage-index{display:none}
.process-theater .stage.is-leaving{opacity:0!important;transition:opacity .3s ease}
.process-theater .stage-fx{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.process-theater .stage-fx::before,.process-theater .stage-fx::after{content:"";position:absolute;inset:0}
.process-theater .stage[data-fx="visual"] .stage-fx{background:radial-gradient(ellipse 55% 45% at 50% 48%,rgba(255,220,170,.12),transparent 62%),#070707}
.process-theater .stage[data-fx="visual"] .stage-fx::before{background:repeating-linear-gradient(90deg,transparent 0 72px,rgba(255,255,255,.03) 72px 73px);animation:fxPan 16s linear infinite;opacity:.7}
.process-theater .stage[data-fx="visual"] .stage-fx::after{background:radial-gradient(circle at 50% 50%,rgba(255,236,200,.18),transparent 28%);animation:fxPulse 3.2s ease-in-out infinite}
.process-theater .stage[data-fx="storyboard"] .stage-fx{background:radial-gradient(ellipse 70% 55% at 50% 45%,rgba(255,220,170,.06),transparent 62%),#070707}
.process-theater .stage[data-fx="storyboard"] .stage-fx::before{inset:0;border:0;background:repeating-linear-gradient(90deg,transparent 0 72px,rgba(255,255,255,.025) 72px 73px);opacity:.55;animation:fxPan 18s linear infinite}
.process-theater .stage[data-fx="storyboard"] .stage-fx::after{background:radial-gradient(ellipse 55% 48% at 50% 48%,rgba(255,236,200,.08),transparent 58%);animation:fxPulse 3.6s ease-in-out infinite}
/* 展开后去掉黑色素材框，地球直接叠在舞台底景上 */
.process-theater .stage.has-gallery.is-revealed[data-fx="storyboard"] .stage-fx,
.process-theater .stage.has-gallery.is-revealed .stage-fx{background:radial-gradient(ellipse 65% 52% at 50% 46%,rgba(255,220,170,.07),transparent 68%),#060606}
.process-theater .stage[data-fx="generation"] .stage-fx{background:radial-gradient(ellipse at center,rgba(40,30,20,.5),#050505 70%)}
.process-theater .stage[data-fx="generation"] .stage-fx::before{background:radial-gradient(circle at 30% 40%,rgba(255,200,140,.16),transparent 22%),radial-gradient(circle at 70% 55%,rgba(180,140,255,.1),transparent 20%),radial-gradient(circle at 50% 70%,rgba(120,200,255,.1),transparent 18%);animation:fxOrbs 5s ease-in-out infinite alternate}
.process-theater .stage[data-fx="generation"] .stage-fx::after{box-shadow:inset 0 0 120px rgba(0,0,0,.75);background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.02) 3px 4px);mix-blend-mode:overlay}
/* 成片交付入场：与分镜等页一致，无黑框 */
.process-theater .stage[data-fx="delivery"] .stage-fx{background:radial-gradient(ellipse 70% 55% at 50% 45%,rgba(255,220,170,.06),transparent 62%),#070707}
.process-theater .stage[data-fx="delivery"] .stage-fx::before{inset:0;border:0;box-shadow:none;background:repeating-linear-gradient(90deg,transparent 0 72px,rgba(255,255,255,.025) 72px 73px);opacity:.55;animation:fxPan 18s linear infinite}
.process-theater .stage[data-fx="delivery"] .stage-fx::after{background:radial-gradient(ellipse 55% 48% at 50% 48%,rgba(255,236,200,.08),transparent 58%);animation:fxPulse 3.6s ease-in-out infinite;box-shadow:none}
@keyframes fxPan{to{transform:translateX(-72px)}}
@keyframes fxPulse{0%,100%{opacity:.35;transform:scale(.92)}50%{opacity:.9;transform:scale(1.08)}}
@keyframes fxGrid{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.015)}}
@keyframes fxScan{0%{transform:translateX(-40%)}100%{transform:translateX(40%)}}
@keyframes fxOrbs{from{transform:scale(1) translateY(0)}to{transform:scale(1.08) translateY(-2%)}}
@keyframes fxFrame{0%,100%{transform:scale(1);opacity:.75}50%{transform:scale(1.02);opacity:1}}
.process-theater .stage-media{position:absolute;inset:10% 12%;overflow:hidden;opacity:0;background:#101010;clip-path:inset(22% 26%);z-index:3;border:0;transform:scale(1.06);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),clip-path 1.25s cubic-bezier(.16,.86,.2,1),transform 1.25s cubic-bezier(.16,.86,.2,1)}
/* 顶部避开 CODE ART 角标，两侧收拢，底部留给说明文案 */
.process-theater .stage.has-gallery .stage-media,
.process-theater .stage.has-cubes-gallery .stage-media{inset:clamp(4.8rem,9.5vh,6.2rem) clamp(4.5vw,7vw,6.5rem) clamp(5.2rem,10vh,6.8rem);background:transparent;border:0;overflow:hidden;box-shadow:none}
.process-theater .stage.is-playing .stage-media,
.process-theater .stage.is-revealed .stage-media{opacity:1;clip-path:inset(0% 0%);transform:scale(1)}
.process-theater .stage-media video,.process-theater .stage-media>img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.05)}
.process-theater .stage-media.is-sphere{overflow:hidden;cursor:grab;border:0;background:transparent;touch-action:none}
.process-theater .stage-media.is-sphere.is-dragging{cursor:grabbing}
.process-theater .sphere-root{position:absolute;inset:0;isolation:isolate;overflow:hidden;background:#0a0908}
.process-theater .cyl-gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.process-theater .sphere-scene,.process-theater .sphere-world,.process-theater .sphere-card,.process-theater .cyl-canvas,.process-theater .sphere-flyout,.process-theater .sphere-topline,.process-theater .sphere-count,.process-theater .sphere-fly-tag,.process-theater .sphere-back{display:none!important}
.process-theater .sphere-meta{position:absolute;left:auto;right:1rem;bottom:.55rem;z-index:9;display:flex;justify-content:flex-end;align-items:center;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,238,230,.42);pointer-events:none}
/* 分镜展开后停掉底景动画，减轻合成压力 */
.process-theater .stage.has-gallery.is-revealed .stage-fx::before,
.process-theater .stage.has-gallery.is-revealed .stage-fx::after,
.process-theater .stage.has-cubes-gallery.is-revealed .stage-fx::before,
.process-theater .stage.has-cubes-gallery.is-revealed .stage-fx::after{animation:none!important;opacity:.35}

/* —— 影像生成：WebGL 卡片抽拉画廊 —— */
.process-theater .stage.has-cubes-gallery .stage-media{z-index:8}
.process-theater .stage-media.is-cubes{background:#050505;cursor:default;overflow:hidden;z-index:8;pointer-events:auto}
.process-theater .card-deck{position:absolute;inset:0 1% 1.1rem;isolation:isolate;z-index:2;pointer-events:auto;user-select:none;-webkit-user-select:none}
.process-theater .card-deck-gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:default}
.process-theater .card-deck-hint{position:absolute;left:50%;bottom:.1rem;transform:translateX(-50%);z-index:5;font-size:10px;letter-spacing:.28em;color:rgba(242,238,230,.42);pointer-events:none}
@media (max-width:820px){
  .process-theater .card-deck{inset:0 0 1rem}
}
.process-theater .stage-media .ph{position:absolute;inset:0;display:grid;place-content:center;gap:10px;text-align:center;color:rgba(242,238,230,.5);padding:2rem;background:
      radial-gradient(ellipse 60% 50% at 50% 45%,rgba(255,236,200,.08),transparent 60%),
      repeating-linear-gradient(135deg,transparent 0 18px,rgba(255,255,255,.025) 18px 19px)}
.process-theater .stage-media .ph strong{font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:rgba(242,238,230,.72)}
.process-theater .stage-media .ph span{font-size:18px;letter-spacing:.08em;color:#f2eee6}
.process-theater .stage-media .ph small{font-size:11px;letter-spacing:.12em;color:rgba(242,238,230,.35);text-transform:none}
.process-theater .stage-caption{position:absolute;left:50%;bottom:clamp(2.6rem,4.5vh,4rem);transform:translateX(-50%) translateY(18px);opacity:0;width:min(520px,86vw);text-align:center;z-index:6;font-size:clamp(12px,1.3vw,14px);line-height:1.65;color:rgba(242,238,230,.7);text-shadow:0 4px 20px rgba(0,0,0,.8);transition:opacity .7s ease .35s,transform .7s ease .35s}
.process-theater .stage.is-revealed .stage-caption{opacity:1;transform:translateX(-50%) translateY(0)}
/* 分镜步：说明放左上角，更醒目 */
.process-theater .stage.has-gallery .stage-caption{bottom:auto;top:clamp(4.6rem,9vh,5.8rem);left:clamp(1.2rem,3vw,2.2rem);right:auto;transform:none;width:min(360px,38vw);text-align:left;font-size:clamp(13px,1.35vw,15px);line-height:1.75;opacity:0;color:rgba(242,238,230,.82);z-index:12;text-shadow:0 3px 18px rgba(0,0,0,.75)}
.process-theater .stage.has-gallery.is-revealed .stage-caption{opacity:1;transform:none;bottom:auto}
.process-theater .stage.has-gallery .stage-caption p{margin:0;padding:.15rem 0 0;border-top:1px solid rgba(198,167,117,.35);padding-top:.7rem}
/* 统一入场页：说明文案仍居底居中（覆盖球体旧布局） */
.process-theater[data-reveal="title-media"] .stage.has-title-enter.has-gallery .stage-caption,
.process-theater[data-reveal="title-media"] .stage.has-title-enter.has-cubes-gallery .stage-caption,
.process-theater[data-reveal="title-media"] .stage.has-title-enter .stage-caption{bottom:clamp(2.6rem,4.2vh,3.8rem);top:auto;left:50%;right:auto;transform:translateX(-50%) translateY(18px);width:min(560px,88vw);text-align:center;font-size:clamp(12px,1.3vw,14px);line-height:1.65;z-index:11}
/* 说明层不拦截立方体第二行点击 */
.process-theater .stage.has-cubes-gallery .stage-caption,
.process-theater .stage.has-cubes-gallery .process-hint,
.process-theater[data-reveal="title-media"] .stage.has-cubes-gallery .stage-caption{pointer-events:none!important}
.process-theater[data-reveal="title-media"] .stage.has-title-enter.has-gallery.is-revealed .stage-caption,
.process-theater[data-reveal="title-media"] .stage.has-title-enter.has-cubes-gallery.is-revealed .stage-caption,
.process-theater[data-reveal="title-media"] .stage.has-title-enter.is-revealed .stage-caption{opacity:1;transform:translateX(-50%) translateY(0);bottom:clamp(2.6rem,4.2vh,3.8rem);top:auto}
.process-theater[data-reveal="title-media"] .stage.has-title-enter.has-gallery .stage-caption p,
.process-theater[data-reveal="title-media"] .stage.has-title-enter.has-cubes-gallery .stage-caption p{border-top:0;padding-top:0}
.process-theater .stage-index{position:absolute;left:clamp(1.2rem,4vw,3rem);top:clamp(1.2rem,4vw,3rem);z-index:7;font-size:11px;letter-spacing:.28em;color:rgba(242,238,230,.5)}
.process-hint{position:absolute;left:50%;bottom:clamp(.8rem,1.8vh,1.4rem);transform:translateX(-50%);z-index:8;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:rgba(242,238,230,.55);pointer-events:none}
.process-dots{position:absolute;right:1.4rem;top:50%;transform:translateY(-50%);z-index:8;display:flex;flex-direction:column;gap:.75rem}
.process-dots button{width:7px;height:7px;border:1px solid rgba(242,238,230,.45);border-radius:50%;padding:0;background:transparent;cursor:pointer}
.process-dots button.is-on{background:#f2eee6;border-color:#f2eee6;transform:scale(1.25)}
body.process-locked{overflow:hidden!important}
body.process-locked .process-theater{position:fixed;inset:0;z-index:50;height:100svh;min-height:0}
.process-spacer{display:none;height:100svh;min-height:0}
body.process-locked .process-spacer{display:block}

/* Works — static masonry waterfall */
.works-chapter{position:relative;background:#050505;overflow:hidden;height:100%;min-height:0;display:flex;flex-direction:column;gap:0}
.works-head{display:grid;grid-template-columns:1.2fr auto;gap:clamp(.8rem,2vw,1.6rem);align-items:end;margin:clamp(.55rem,1.4vh,1rem) 0 clamp(.35rem,1vh,.7rem);flex:0 0 auto;padding-top:clamp(.2rem,.8vh,.55rem)}
.works-head-meta{display:flex;align-items:flex-end;justify-content:flex-end;padding-bottom:.15rem}
.works-stage{flex:1 1 auto;min-height:0;position:relative;overflow:hidden}
.works-empty{padding:2rem 1rem;text-align:center;color:rgba(242,238,230,.35);letter-spacing:.18em;font-size:11px}
.works-more-btn{appearance:none;border:0;background:transparent;color:rgba(242,238,230,.78);padding:.15rem 0;display:inline-flex;flex-direction:column;align-items:flex-end;gap:.4rem;cursor:pointer;white-space:nowrap;transition:color .35s ease}
.works-more-btn:hover{color:#f2eee6;background:transparent;transform:none}
.works-more-line{display:inline-flex;align-items:center;gap:.7rem}
.works-more-txt{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:clamp(14px,1.35vw,17px);font-weight:400;letter-spacing:.28em;line-height:1}
.works-more-sub{font-family:Georgia,"Times New Roman",serif;font-size:9px;letter-spacing:.36em;color:rgba(198,167,117,.72);transition:color .35s}
.works-more-btn:hover .works-more-sub{color:rgba(198,167,117,.95)}
.works-more-arrow{width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(-45deg);transition:transform .35s;opacity:.65;margin-top:-1px}
.works-more-btn.is-open .works-more-arrow{transform:rotate(135deg)}

/* 精品竖屏转盘堆叠 — WebGL 均匀扇形 */
.works-deck{position:absolute;inset:0;display:grid;grid-template-columns:minmax(5.5rem,7.5rem) minmax(0,1fr) minmax(5.5rem,7.5rem);align-items:center;column-gap:clamp(.2rem,1vw,.8rem);padding:0 clamp(10vw,14vw,18vw) clamp(.8rem,2vh,1.4rem);isolation:isolate}
.works-deck[hidden]{display:none!important}
.works-deck-gl-wrap{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem}
.works-deck-gl{display:block;width:100%;height:min(calc(72vh * var(--works-deck-scale, 1)), calc(640px * var(--works-deck-scale, 1)));max-height:calc(100% - 1.4rem);touch-action:none;cursor:pointer}
.works-deck-btn{appearance:none;border:0;background:transparent;color:rgba(242,238,230,.72);font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:clamp(13px,1.25vw,16px);letter-spacing:.28em;padding:1.1rem .15rem;cursor:pointer;transition:color .3s ease,opacity .3s ease,transform .3s ease;z-index:5;white-space:nowrap}
.works-deck-btn.is-prev{justify-self:start}
.works-deck-btn.is-next{justify-self:end}
.works-deck-btn:hover:not(:disabled){color:#f2eee6;transform:translateY(-1px)}
.works-deck-btn:disabled{opacity:.28;cursor:default}
.works-deck-hint{margin:0;font-size:9px;letter-spacing:.28em;color:rgba(242,238,230,.34);pointer-events:none}

/* 基础页：横向瀑布流铺满视口；更多页：向左自动循环滚动 */
.works-masonry{position:absolute;inset:0 0 1.35rem;overflow:hidden;touch-action:pan-y}
.works-masonry[hidden]{display:none!important}
.works-masonry.is-expanded{overflow:hidden;cursor:grab;touch-action:pan-x}
.works-masonry.is-expanded.is-dragging{cursor:grabbing}
.works-masonry-scene{position:relative;height:100%;min-width:100%;will-change:transform;transform:translate3d(0,0,0)}
.work-tile{position:absolute;overflow:hidden;border-radius:2px;background:#100e0c;box-shadow:0 18px 48px rgba(0,0,0,.48),0 0 0 1px rgba(255,255,255,.06);cursor:pointer;opacity:0;animation:workTileIn .55s cubic-bezier(.16,.86,.2,1) forwards;animation-delay:var(--tile-delay,0ms);transition:box-shadow .3s ease,transform .35s cubic-bezier(.16,.86,.2,1)}
.work-tile.is-clone{animation:none;opacity:1}
.work-tile::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);background:linear-gradient(160deg,rgba(255,255,255,.07) 0%,transparent 34%,transparent 70%,rgba(0,0,0,.22) 100%)}
.work-tile img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.94) contrast(1.05) brightness(.92);transition:filter .35s,transform .55s ease;pointer-events:none}
.work-tile-meta{position:absolute;left:0;right:0;bottom:0;padding:.75rem .85rem .7rem;background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));opacity:0;transform:translateY(6px);transition:opacity .28s ease,transform .28s ease;pointer-events:none;z-index:2}
.work-tile-meta b{display:block;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:13px;font-weight:400;letter-spacing:.05em;color:#f2eee6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-tile:hover{box-shadow:0 26px 64px rgba(0,0,0,.6),0 0 0 1px rgba(198,167,117,.4);transform:translateY(-3px);z-index:3}
.work-tile:hover img{filter:saturate(1.02) contrast(1.08) brightness(1);transform:scale(1.04)}
.work-tile:hover .work-tile-meta{opacity:1;transform:none}
.works-masonry-hint{position:absolute;left:50%;bottom:.15rem;transform:translateX(-50%);z-index:2;font-size:9px;letter-spacing:.28em;color:rgba(242,238,230,.32);pointer-events:none}
@keyframes workTileIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.works-masonry,.work-tile{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}

@media(max-width:960px){
  .works-head{grid-template-columns:1fr;align-items:start}
  .works-head-meta{justify-content:flex-start;margin-top:.4rem}
  .works-more-btn{align-items:flex-start}
  .works-more-txt{letter-spacing:.2em}
  .work-tile-meta b{font-size:12px}
  .works-deck{column-gap:.2rem;padding:0 8vw 1rem}
  .works-deck-btn{letter-spacing:.18em;font-size:12px;padding:.7rem 0}
  .works-deck-gl{height:min(68vh,560px)}
}

/* Modal — 轻量淡入，无放大飞入 */
.work-fly{display:none!important}
.work-modal{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:clamp(.8rem,2.4vh,1.6rem);opacity:0;transition:opacity .22s ease}
.work-modal.is-show{opacity:1}
.work-modal[hidden]{display:none!important}
.work-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.work-modal-open{overflow:hidden!important}

/* 共用窗口壳 */
.work-win{position:relative;z-index:1;box-sizing:border-box;background:#0a0908;border:1px solid rgba(242,238,230,.14);box-shadow:0 28px 80px rgba(0,0,0,.7);overflow:hidden;transform:translateY(8px) scale(.985);opacity:0;transition:transform .28s cubic-bezier(.16,.86,.2,1),opacity .24s ease}
.work-modal.is-show .work-win:not([hidden]){transform:none;opacity:1}
.work-win[hidden]{display:none!important}
.work-win-close{position:absolute;right:.4rem;top:.35rem;z-index:4;width:32px;height:32px;border:0;border-radius:50%;background:rgba(0,0,0,.4);color:rgba(242,238,230,.85);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.work-win-close:hover{color:#f2eee6;background:rgba(0,0,0,.55)}
.work-win-media{position:relative;background:#050505;overflow:hidden;flex:0 0 auto}
.work-win-blur{position:absolute;inset:-10%;background-size:cover;background-position:center;filter:blur(26px) brightness(.32) saturate(.95);transform:scale(1.1);opacity:.9;pointer-events:none}
.work-win-media video,.work-win-media>img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center;display:block;background:transparent}
.work-win-media video[hidden],.work-win-media>img[hidden]{display:none!important}
.work-win-play{position:absolute;inset:0;z-index:3;margin:0;padding:0;border:0;background:rgba(0,0,0,.22);cursor:pointer;display:grid;place-items:center;appearance:none}
.work-win-play[hidden]{display:none!important}
.work-win-play-icon{width:64px;height:64px;border-radius:50%;background:rgba(10,9,8,.55);border:1px solid rgba(242,238,230,.45);box-shadow:0 10px 36px rgba(0,0,0,.45);position:relative;transition:transform .2s ease,background .2s ease,border-color .2s ease}
.work-win-play-icon::before{content:"";position:absolute;left:52%;top:50%;width:0;height:0;border-style:solid;border-width:10px 0 10px 16px;border-color:transparent transparent transparent rgba(242,238,230,.95);transform:translate(-40%,-50%)}
.work-win-play:hover .work-win-play-icon{transform:scale(1.06);background:rgba(10,9,8,.72);border-color:rgba(242,238,230,.7)}
.work-win.is-cover-only .work-win-play{display:none!important}
.work-win-tags{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:rgba(198,167,117,.78)}
.work-win-title{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-weight:500;color:#f2eee6;white-space:pre-line}
.work-win-subtitle{margin:0;font-size:12px;letter-spacing:.14em;color:rgba(198,167,117,.78);line-height:1.5}
.work-win-content{margin:0;color:rgba(242,238,230,.66);font-size:13px;line-height:1.75;white-space:pre-line;overflow-wrap:anywhere}
.work-win-desc{margin:0;color:rgba(242,238,230,.62);line-height:1.65}

/* —— 竖屏窗口：左图右文 —— */
.work-win-portrait{
  width:min(960px,94vw);
  max-height:min(92svh,860px);
  overflow:hidden;
}
.work-win-portrait__body{
  display:grid;
  grid-template-columns:minmax(0,0.92fr) minmax(220px,1fr);
  align-items:stretch;
  width:100%;
  min-width:0;
  max-height:min(92svh,860px);
}
.work-win-portrait .work-win-media{
  position:relative;
  width:100%;
  min-width:0;
  min-height:min(72svh,680px);
  max-height:min(92svh,860px);
  aspect-ratio:9/16;
  overflow:hidden;
  background:#050505;
}
.work-win-portrait .work-win-media video,
.work-win-portrait .work-win-media>img{
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:cover;
  object-position:center center;
  background:transparent;
}
.work-win-portrait .work-win-blur{inset:0;opacity:.45}
.work-win-portrait .work-win-info{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:clamp(1rem,2.4vh,1.5rem) clamp(1rem,2vw,1.45rem);
  display:flex;flex-direction:column;gap:.55rem;justify-content:center;
  border-left:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#12100e,#0a0908);
  overflow:auto;
}
.work-win-portrait .work-win-tags{letter-spacing:.16em;line-height:1.45;overflow-wrap:anywhere}
.work-win-portrait .work-win-title{font-size:clamp(1.25rem,2.6vw,1.7rem);line-height:1.2;overflow-wrap:anywhere}
.work-win-portrait .work-win-desc{font-size:12.5px;line-height:1.65;overflow-wrap:anywhere}

/* —— 横屏窗口：上图下文 —— */
.work-win-landscape{width:min(920px,94vw);height:fit-content;max-height:min(92svh,860px);overflow:auto}
.work-win-landscape__body{display:flex;flex-direction:column;width:100%;height:fit-content}
.work-win-landscape .work-win-media{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  max-height:min(56svh,520px);
  overflow:hidden;
  background:#050505;
}
.work-win-landscape .work-win-media video,.work-win-landscape .work-win-media>img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
}
.work-win-landscape .work-win-info{
  width:100%;
  box-sizing:border-box;
  padding:clamp(.85rem,2vh,1.2rem) clamp(1rem,2vw,1.4rem) 1.15rem;
  display:flex;flex-direction:column;gap:.45rem;
  border-top:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#12100e,#0a0908);
}
.work-win-landscape .work-win-title{font-size:clamp(1.2rem,2.4vw,1.65rem);line-height:1.18}
.work-win-landscape .work-win-desc{font-size:12.5px;line-height:1.65;max-width:68ch}

/* 封面模式：彻底隐藏视频控件 */
.work-win.is-cover-only .work-win-media video{display:none!important}

.work-win-meta{display:flex;flex-direction:column;gap:.32rem;margin:.1rem 0 .15rem}
.work-win-meta-row{display:grid;grid-template-columns:5.2em 1fr;gap:.55rem;align-items:baseline;font-size:12px;line-height:1.5}
.work-win-meta-row .k{color:rgba(198,167,117,.72);letter-spacing:.08em}
.work-win-meta-row .v{color:rgba(242,238,230,.78);overflow-wrap:anywhere}

@media(max-width:720px){
  .work-win-portrait{width:min(96vw,440px);max-height:min(94svh,920px);overflow:auto}
  .work-win-portrait__body{grid-template-columns:1fr;max-height:none}
  .work-win-portrait .work-win-media{min-height:0;max-height:min(52svh,480px);aspect-ratio:9/16;width:100%}
  .work-win-portrait .work-win-info{border-left:0;border-top:1px solid rgba(255,255,255,.08)}
  .work-win-landscape{width:min(96vw,920px)}
  .work-win-landscape .work-win-media{max-height:min(42svh,360px)}
  .work-win-meta-row{grid-template-columns:4.6em 1fr}
}

/* —— 主创团队：列表 + 成员详情（暗色影院风，对齐全站） —— */
.team-chapter{position:relative;height:100%;min-height:0;overflow:hidden;background:#030303;isolation:isolate}
.team-bg,.team-detail-bg{position:absolute;inset:0;z-index:0;background:#0a0908 center center/cover no-repeat;opacity:0;transition:opacity .5s ease,filter .5s ease,background-image .01s linear;pointer-events:none;filter:grayscale(.4) saturate(.55) brightness(.42)}
.team-bg.has-image,.team-detail-bg.has-image{opacity:1}
.team-bg.is-member{filter:grayscale(.15) saturate(.7) brightness(.34)}
.team-veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:
  radial-gradient(ellipse 55% 45% at 72% 38%,rgba(255,236,200,.05),transparent 62%),
  linear-gradient(105deg,rgba(3,3,3,.92) 0%,rgba(3,3,3,.62) 46%,rgba(3,3,3,.28) 72%,rgba(3,3,3,.7) 100%),
  linear-gradient(180deg,rgba(3,3,3,.5) 0%,transparent 42%,rgba(3,3,3,.88) 100%)}
.team-home,.team-detail{position:absolute;inset:0;z-index:2}
.team-home{display:flex;flex-direction:column;padding:clamp(3.6rem,7.5vh,5rem) var(--page-pad-x,clamp(1.2rem,4vw,3.5rem)) clamp(.9rem,2vh,1.4rem);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility .4s}
.team-home.is-active{opacity:1;visibility:visible;pointer-events:auto}
.team-home-copy{max-width:min(58rem,86vw);width:100%;margin:0 0 clamp(.8rem,1.8vh,1.3rem);padding:0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:clamp(.7rem,1.6vh,1.2rem)}
.team-home-title{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-weight:500;font-size:clamp(2.2rem,5.6vw,4.2rem);line-height:1.18;letter-spacing:.02em;color:#f2eee6;text-shadow:0 8px 36px rgba(0,0,0,.55);max-width:18em;white-space:pre-line}
.team-home-en{margin:0;font-size:clamp(11px,1.2vw,13px);letter-spacing:.32em;text-transform:uppercase;color:rgba(242,238,230,.42)}
.team-home-lead{margin:0;max-width:42rem;font-size:clamp(14px,1.7vw,18px);line-height:1.75;color:rgba(242,238,230,.58);font-weight:300}
.team-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.45rem,1vw,.85rem);flex:0 0 auto;margin-top:0}
.team-card{appearance:none;position:relative;border:1px solid rgba(242,238,230,.12);background:
  linear-gradient(165deg,rgba(255,255,255,.035),transparent 42%),
  rgba(10,9,8,.72);color:#f2eee6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-height:clamp(9.5rem,20vh,12.5rem);padding:0;display:block;overflow:hidden;cursor:pointer;transition:transform .35s ease,background .3s ease,border-color .3s ease,box-shadow .35s ease;text-align:left}
.team-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:rgba(198,167,117,.28);opacity:.55;transition:opacity .3s ease,background .3s ease}
.team-card::after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:linear-gradient(90deg,rgba(198,167,117,.35),transparent 70%);opacity:.5;pointer-events:none;transition:opacity .3s ease}
.team-card:hover,.team-card.is-active{transform:translateY(-4px);background:
  linear-gradient(165deg,rgba(255,255,255,.06),transparent 46%),
  rgba(16,14,12,.82);border-color:rgba(242,238,230,.28);box-shadow:0 18px 42px rgba(0,0,0,.48)}
.team-card:hover::before,.team-card.is-active::before{opacity:1;background:rgba(198,167,117,.72)}
.team-card:hover::after,.team-card.is-active::after{opacity:.85}
.team-card-main{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;gap:.55rem;min-width:0;height:100%;box-sizing:border-box;padding:clamp(.95rem,1.8vh,1.25rem) clamp(.85rem,1.2vw,1.1rem)}
.team-card-top{display:flex;flex-direction:column;align-items:flex-start;gap:.28rem;min-width:0;opacity:0;max-height:0;overflow:hidden;transform:translateY(6px);pointer-events:none;transition:opacity .3s ease,max-height .35s ease,transform .35s ease}
.team-card:hover .team-card-top,.team-card.is-active .team-card-top{opacity:1;max-height:11rem;transform:translateY(0);pointer-events:auto}
.team-card-role-en{font-size:clamp(8.5px,.75vw,10px);letter-spacing:.16em;text-transform:uppercase;line-height:1.35;color:rgba(198,167,117,.7);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.team-card-role{font-size:clamp(12px,1.1vw,14px);letter-spacing:.04em;line-height:1.35;color:rgba(242,238,230,.82);font-weight:500}
.team-card-bio{margin-top:.15rem;font-size:clamp(10px,.9vw,11.5px);letter-spacing:.02em;line-height:1.5;color:rgba(242,238,230,.42);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-weight:300}
.team-card-name{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:clamp(1.2rem,1.85vw,1.55rem);font-weight:500;letter-spacing:.16em;color:#f2eee6;flex:0 0 auto;line-height:1.2}

.team-detail{display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility .4s}
.team-detail.is-open{opacity:1;visibility:visible;pointer-events:auto}
.team-detail[hidden]{display:none!important}
.team-detail-bg{z-index:0;opacity:0;filter:saturate(.75) brightness(.28) blur(1px);transform:scale(1.04)}
.team-detail.is-open .team-detail-bg.has-image{opacity:.9}
.team-detail-back{position:absolute;left:var(--page-pad-x);bottom:clamp(1rem,2.4vh,1.6rem);top:auto;z-index:5;border:0;background:transparent;color:rgba(242,238,230,.62);font-size:11px;letter-spacing:.18em;cursor:pointer;padding:0;transition:color .25s ease}
.team-detail-back:hover{color:#f2eee6}
.team-detail-body{position:relative;z-index:2;flex:1 1 auto;min-height:0;display:block;padding:0;box-sizing:border-box;margin:clamp(3.6rem,7vh,5rem) var(--page-pad-x) clamp(3.8rem,7vh,5rem)}
.team-detail-field{position:absolute;display:flex;flex-direction:column;justify-content:flex-start;min-width:0;min-height:0;overflow:hidden;box-sizing:border-box;padding:0 .15rem;opacity:0;transform:translateY(10px);transition:opacity .55s cubic-bezier(.16,.86,.2,1),transform .65s cubic-bezier(.16,.86,.2,1)}
.team-detail.is-open .team-detail-field:not([hidden]):not(.is-layout-hidden){opacity:1;transform:none}
.team-detail.is-open .team-detail-field.is-name{transition-delay:.04s}
.team-detail.is-open .team-detail-field.is-role-en{transition-delay:.1s}
.team-detail.is-open .team-detail-field.is-role-cn{transition-delay:.14s}
.team-detail.is-open .team-detail-field.is-role{transition-delay:.12s}
.team-detail.is-open .team-detail-field.is-bio{transition-delay:.2s}
.team-detail.is-open .team-detail-field.is-quote{transition-delay:.28s}
.team-detail-field[hidden],.team-detail-field.is-layout-hidden{display:none!important;opacity:0!important}
.team-detail-field.is-name{justify-content:flex-end;padding-bottom:.15rem}
.team-detail-field.is-bio,.team-detail-field.is-quote{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(242,238,230,.2) transparent}
.team-detail-name{margin:0;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-weight:500;font-size:clamp(2.6rem,5.8vw,4.8rem);line-height:.98;letter-spacing:.14em;color:#f2eee6;text-shadow:0 18px 48px rgba(0,0,0,.35)}
.team-detail-role{margin:0;font-size:clamp(13px,1.25vw,15px);letter-spacing:.08em;color:rgba(242,238,230,.82);font-weight:400}
.team-detail-field.is-role-cn::after{content:"";display:block;width:2.6rem;height:1px;margin-top:.65rem;background:linear-gradient(90deg,rgba(198,167,117,.7),transparent)}
.team-detail-role-en{margin:0;font-size:clamp(9px,.85vw,11px);letter-spacing:.34em;text-transform:uppercase;color:rgba(198,167,117,.78);font-weight:400}
.team-detail-role-merge{margin:0;font-size:clamp(12px,1.15vw,14px);line-height:1.5;letter-spacing:.04em;color:rgba(242,238,230,.62)}
.team-detail-bio{margin:0;max-width:100%;font-size:clamp(12px,1.15vw,13.5px);line-height:1.9;color:rgba(242,238,230,.52);font-weight:300;letter-spacing:.02em}
.team-detail-quote{margin:0;padding:.15rem 0 0 .85rem;border:0;border-left:1px solid rgba(198,167,117,.42);max-width:100%;font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:clamp(1.05rem,1.85vw,1.35rem);line-height:1.55;color:rgba(242,238,230,.9);letter-spacing:.06em;font-weight:400}
.team-detail-quote:empty{display:none}
.team-detail-works{position:absolute;min-width:0;min-height:0;display:block;overflow:hidden;box-sizing:border-box;cursor:default;touch-action:none;padding:0;opacity:0;transform:translateX(16px);transition:opacity .7s cubic-bezier(.16,.86,.2,1) .12s,transform .75s cubic-bezier(.16,.86,.2,1) .12s}
.team-detail.is-open .team-detail-works{opacity:1;transform:none}
.team-works-orbit-slot{position:relative;width:100%;height:100%;overflow:hidden;background:transparent}
.team-orbit{position:absolute;inset:0;isolation:isolate}
.team-orbit-gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;background:transparent;opacity:0;pointer-events:none;transition:opacity .35s ease}
.team-orbit.is-gl-ready .team-orbit-gl{opacity:1;pointer-events:auto}
.team-orbit.is-gl-ready .team-orbit-fallback{opacity:0;pointer-events:none}
.team-orbit-fallback{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:clamp(.55rem,1.4vw,1rem);padding:1.2rem 1rem 2rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.team-orbit-card{flex:0 0 auto;border:0;padding:0;background:#111;cursor:pointer;overflow:hidden;box-shadow:0 12px 36px rgba(0,0,0,.45)}
.team-orbit-card.is-portrait{width:min(28%,160px);aspect-ratio:9/16}
.team-orbit-card.is-landscape{width:min(42%,240px);aspect-ratio:16/9}
.team-orbit-card img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.team-orbit-hint{position:absolute;left:50%;bottom:.4rem;transform:translateX(-50%);z-index:5;font-size:10px;letter-spacing:.28em;color:rgba(242,238,230,.4);pointer-events:none;white-space:nowrap}
.team-works-empty{padding:2rem 1rem;color:rgba(242,238,230,.35);letter-spacing:.16em;font-size:11px;text-align:center}
.team-detail-next{position:absolute;right:var(--page-pad-x);bottom:clamp(1rem,2.4vh,1.6rem);z-index:5;border:0;background:transparent;color:rgba(242,238,230,.72);text-align:right;cursor:pointer;padding:0;display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}
.team-detail-next:hover{color:#f2eee6}
.team-detail-next-label{font-size:10px;letter-spacing:.28em}
.team-detail-next-meta{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(14px,1.4vw,17px);font-weight:400;letter-spacing:.12em}
body.team-detail-open .site-chapter{opacity:.35}

.studio-contact{min-height:0;height:100%;display:grid;place-items:center;text-align:center;background:radial-gradient(ellipse 45% 35% at 50% 42%,rgba(255,236,200,.08),transparent 65%),#030303}
.studio-contact .brand{font-family:Georgia,serif;font-size:clamp(2rem,5.5vw,3.8rem);letter-spacing:.16em}
.studio-contact-links{margin-top:clamp(1rem,2.5vh,1.6rem);display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
.studio-contact-links a,
.studio-contact-links .contact-copy{position:relative;appearance:none;min-width:140px;padding:.7rem 1rem;border:1px solid rgba(242,238,230,.2);background:transparent;font:inherit;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:inherit;text-decoration:none;cursor:pointer;transition:border-color .3s,background .3s,color .25s}
.studio-contact-links a:hover,
.studio-contact-links .contact-copy:hover{border-color:rgba(242,238,230,.55);background:rgba(255,255,255,.03)}
.studio-contact-links .contact-copy{display:inline-flex;align-items:center;justify-content:center}
.studio-contact-links .contact-copy-label{display:block}
.studio-contact-links .contact-copy-tip{position:absolute;left:50%;bottom:calc(100% + .65rem);transform:translateX(-50%) translateY(6px);padding:.4rem .7rem;border:1px solid rgba(242,238,230,.16);background:rgba(10,9,8,.92);color:rgba(242,238,230,.78);font-size:11px;letter-spacing:.06em;text-transform:none;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;box-shadow:0 10px 28px rgba(0,0,0,.45)}
.studio-contact-links .contact-copy-tip::after{content:"";position:absolute;left:50%;top:100%;width:6px;height:6px;margin-left:-3px;border-right:1px solid rgba(242,238,230,.16);border-bottom:1px solid rgba(242,238,230,.16);background:rgba(10,9,8,.92);transform:rotate(45deg) translateY(-50%)}
.studio-contact-links .contact-copy:hover .contact-copy-tip,
.studio-contact-links .contact-copy:focus-visible .contact-copy-tip{opacity:1;transform:translateX(-50%) translateY(0)}
.studio-contact-links .contact-copy.is-copied{border-color:rgba(198,167,117,.55);color:rgba(198,167,117,.95)}
.studio-contact-meta{margin-top:clamp(.9rem,2vh,1.3rem);font-size:12px;line-height:1.8;color:rgba(242,238,230,.4)}

@media(max-width:980px){
  .studio-stats,.studio-pillars{grid-template-columns:1fr 1fr}
  .team-rail{grid-template-columns:repeat(3,minmax(0,1fr))}
  .team-detail-body{display:flex;flex-direction:column;gap:1rem;padding:clamp(4rem,8vh,5.2rem) var(--page-pad-x) clamp(4.5rem,10vh,5.8rem);margin:0;overflow:auto}
  .team-detail-field,.team-detail-works{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important}
  .team-detail-works{height:42vh!important;max-height:42vh;flex:0 0 auto}
  .works-head{grid-template-columns:1fr;gap:.8rem}
  .works-shelf{height:min(42vh,360px);min-height:0}
  .work-card{flex-basis:clamp(110px,28vw,150px)}
}
@media(max-width:640px){
  .studio-stats,.studio-pillars{grid-template-columns:1fr}
  .team-rail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-card{min-height:9.2rem}
  .team-card-bio{-webkit-line-clamp:3}
  .team-home-copy{justify-content:flex-start;padding-top:.4rem}
  .team-home-title{font-size:clamp(1.75rem,6.8vw,2.4rem)}
  .team-home-lead{font-size:clamp(13px,3.4vw,15px)}
  .process-dots{display:none}
  .works-focus-meta{grid-template-columns:auto 1fr;gap:.7rem}
  .works-focus-count{grid-column:1/-1}
}

/* 离场转场：轻量动画，避免滤镜/散射造成滚轮当下卡顿 */
body.transitioning{cursor:none}
body.transitioning .hero-video{opacity:0;transition:opacity .2s linear}
body.transitioning .transition-video{opacity:1;transform:scale(1.04);transition:opacity .2s linear,transform var(--transition-duration) cubic-bezier(.16,.7,.2,1);will-change:transform,opacity}
body.transitioning .video-world{transform:scale(1.08);transition:transform var(--transition-duration) cubic-bezier(.14,.74,.2,1);will-change:transform}
body.transitioning .poster-stage{opacity:0;transition:opacity .35s ease;pointer-events:none;will-change:opacity}
body.transitioning .poster{transition:none!important}
body.transitioning .brand-lockup,body.transitioning .top-rail,body.transitioning .poster-caption,body.transitioning .scroll-cue,body.transitioning .side-index{opacity:0!important;transition:opacity .25s ease;pointer-events:none}
body.transitioning .grain{opacity:0;transition:opacity .2s ease}
body.fire-impact .fire-wash{animation:fireWash .55s ease both}@keyframes fireWash{0%{opacity:0}30%{opacity:.28}100%{opacity:0}}
body.impact-shake .hero{animation:none}
body.transition-end .blackout{animation:blackout .45s ease both}@keyframes blackout{0%{opacity:0}100%{opacity:1}}
body.is-admin-preview{cursor:default!important}
body.is-admin-preview .cursor{display:none!important}
body.preview-page-locked .scroll-cue,
body.preview-page-locked .replay{opacity:.35!important;pointer-events:none!important}
body.preview-page-locked::after{
  content:"预览锁定 · 不可翻页";
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
  z-index:400;padding:8px 14px;font-size:11px;letter-spacing:.14em;
  color:rgba(242,238,230,.72);border:1px solid rgba(242,238,230,.16);
  background:rgba(10,9,8,.72);pointer-events:none;
}

@media(max-width:800px){
  body{cursor:auto}.cursor{display:none}.hero{min-height:0}
  body.experience-started .brand-lockup,body.brand-settled .brand-lockup{font-size:22px!important;left:max(20px,4vw)!important;top:max(28px,4.5vh)!important;max-width:40vw}
  .site-brand{left:var(--page-pad-x);top:max(28px,4.5vh);font-size:22px}.top-rail{right:20px;top:24px;max-width:52vw;gap:10px}.rail-line{display:none}.poster-stage{height:48vh;top:58%}.poster{flex-basis:118px}.poster-caption{left:20px;bottom:28px}.poster-caption span:last-child,.poster-caption i{display:none}.side-index{display:none}.scroll-cue{bottom:18px}.next-page{padding:10vw 7vw}.next-orbit{width:88vw;right:-33vw}.next-meta{left:7vw}.replay{left:7vw}
  body.entered .next-meta{left:auto;right:7vw}
}
@media(prefers-reduced-motion:reduce){.grain,.cue-line b,.sound-bars i{animation:none}.cursor{display:none}body{cursor:auto}}

.hero-video{filter:brightness(var(--hero-brightness)) saturate(var(--hero-saturation)) contrast(1.06)!important}
.cinema-grade{opacity:var(--cinema-opacity)!important}
body.no-posters .poster-stage,body.no-posters .poster-caption{opacity:0!important;pointer-events:none}

/* V5 — editable typography / material layer overrides */
:root{--brand-x:4.2vw;--brand-y:5.2vh;--brand-size:28px;--brand-settled-x:4.2vw;--brand-settled-y:5.2vh;--brand-settled-size:28px;--grain-opacity:.105;--page-pad-x:clamp(1.2rem,4vw,3.5rem)}
.grain{opacity:var(--grain-opacity)!important;background-size:auto!important}
/* 进场后永远用角标尺寸/位置，杜绝中央大字叠层 */
.brand-lockup{left:var(--brand-x)!important;top:var(--brand-y)!important;font-size:var(--brand-size)!important;display:block;white-space:nowrap}
body.experience-started .brand-lockup,
body.brand-settled .brand-lockup{
  left:max(28px,var(--brand-settled-x))!important;
  top:max(30px,var(--brand-settled-y))!important;
  font-size:clamp(22px,var(--brand-settled-size),34px)!important;
  transform:none!important;
  line-height:1.05!important;
  letter-spacing:.08em!important;
  z-index:40!important;
  overflow:visible!important;
  white-space:nowrap!important;
  max-width:min(46vw,420px);
}
.managed-text{transition:font-size .22s ease,letter-spacing .22s ease,color .22s ease,opacity .22s ease,transform .22s ease}
.custom-text-layer{position:absolute;inset:0;z-index:58;pointer-events:none;overflow:hidden}
#gateCustomText{position:fixed;z-index:5}
.managed-custom-text{position:absolute;max-width:min(86vw,1100px);pointer-events:none;text-shadow:0 3px 24px rgba(0,0,0,.28)}
.next-page .managed-custom-text{ text-shadow:none }
.txt-fade-up{animation:txtFadeUp 1.1s cubic-bezier(.16,.86,.2,1) both}
.txt-letter-spread{animation:txtLetterSpread 1.25s cubic-bezier(.16,.86,.2,1) both}
.txt-float{animation:txtFloat 5s ease-in-out infinite}
.txt-pulse{animation:txtPulse 2.5s ease-in-out infinite}
@keyframes txtFadeUp{from{opacity:0;filter:blur(8px);transform:translateY(28px)}to{filter:blur(0)}}
@keyframes txtLetterSpread{from{opacity:0;letter-spacing:.65em;filter:blur(7px)}to{filter:blur(0)}}
@keyframes txtFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes txtPulse{0%,100%{filter:brightness(.78)}50%{filter:brightness(1.25)}}
#replayLabel{padding-left:0}
.replay>span:last-child{padding-left:12px}

@media(max-width:800px){
  body.experience-started .brand-lockup,
  body.brand-settled .brand-lockup{left:max(20px,var(--brand-settled-x))!important;top:max(28px,var(--brand-settled-y))!important;font-size:var(--brand-settled-size)!important;max-width:42vw}
  .top-rail{right:20px;max-width:50vw;gap:12px}
}
body.hide-poster-numbers .poster::after{display:none}
body.brand-settled .brand-lockup.is-intro{animation-name:brandCornerIn!important}
