/* ============ TOKENS ============ */
:root{
  --ink:#070a0e;
  --ink-2:#0a0e13;
  --panel:#0e141b;
  --panel-2:#111922;
  --paper:#ece2cf;
  --paper-2:#d8ccb8;
  --muted:#8f9089;
  --faint:#5e636a;
  --amber:#e9b87c;
  --amber-2:#f3d3a4;
  --jade:#79d2c0;
  --rose:#d8899f;
  --rust:#b56b6b;
  --lilac:#b9a7e0;
  --line:rgba(236,226,207,.13);
  --line-soft:rgba(236,226,207,.07);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","STZhongsong","SimSun",serif;
  --sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --mono:"SF Mono","JetBrains Mono",Consolas,"Liberation Mono",monospace;
  --maxw:1560px;
  --gutter:3.00004rem;
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5.99996rem;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--paper);
  font-family:var(--sans);font-size:1.05469rem;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(68.74999rem 34.99999rem at 78% -8%,rgba(233,184,124,.075),transparent 62%),
    radial-gradient(56.25rem 43.75001rem at 6% 24%,rgba(121,210,192,.045),transparent 66%),
    radial-gradient(43.75001rem 31.25003rem at 55% 68%,rgba(216,137,159,.03),transparent 70%);
}
.grain{
  position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 9s steps(6) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}20%{transform:translate(-2%,1%)}40%{transform:translate(1%,-2%)}
  60%{transform:translate(-1%,2%)}80%{transform:translate(2%,1%)}100%{transform:translate(0,0)}
}
::selection{background:rgba(233,184,124,.28);color:#fff}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
:focus-visible{outline:1px solid var(--amber);outline-offset:4px}
.skip{position:fixed;left:-62.4375rem;top:0;z-index:200;padding:0.49995rem 1.00001rem;background:var(--amber);color:#0b0e12;font-size:0.84375rem;letter-spacing:.08em}
.skip:focus{left:0.75004rem;top:0.75004rem}
::-webkit-scrollbar{width:10px;height:8px}
::-webkit-scrollbar-track{background:#080b0f}
::-webkit-scrollbar-thumb{background:#2a3038;border-radius:0.49995rem;border:2px solid #080b0f}
::-webkit-scrollbar-thumb:hover{background:#3a424c}

.container{width:min(var(--maxw),calc(100% - var(--gutter) * 2));margin-inline:auto;position:relative;z-index:1}
.ic{width:1.00001rem;height:1.00001rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(1.62495rem);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

/* ============ NAV ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:120;height:4.87496rem;
  display:flex;align-items:center;transition:background .4s,border-color .4s,height .4s;
  border-bottom:0.0625rem solid transparent;
}
.nav.is-scrolled{height:4.25002rem;background:rgba(7,10,14,.82);backdrop-filter:blur(18px) saturate(120%);border-bottom-color:var(--line-soft)}
.nav-inner{width:min(var(--maxw),calc(100% - var(--gutter) * 2));margin:auto;display:flex;align-items:center;}
.brand{display:flex;align-items:center;gap:0.75004rem;flex:none}
.seal{
  width:2.12501rem;height:2.12501rem;border:1px solid rgba(233,184,124,.55);display:grid;place-items:center;
  font-family:var(--serif);font-size:1.19531rem;color:var(--amber);position:relative;
}
.seal::after{content:"";position:absolute;inset:0.18754rem;border:1px solid rgba(233,184,124,.16)}
.brand-txt{display:flex;flex-direction:column;line-height:1}
.brand-txt b{font-family:var(--serif);font-size:1.47656rem;font-weight:600;letter-spacing:.16em}
.brand-txt span{font-family:var(--mono);font-size:0.73823rem;letter-spacing:.34em;color:var(--faint);margin-top:0.37496rem}
.demo-badge{
  font-family:var(--mono);font-size:0.73823rem;letter-spacing:.18em;color:var(--amber);
  border:1px solid rgba(233,184,124,.32);padding:0.18754rem 0.37496rem;margin-left:0.12499rem;align-self:center;transform:translateY(-3px);
}
.nav-links{display:flex;align-items:center;gap:1.87504rem;margin-left:auto; padding: 0 2.25rem 0 0;}
.nav-links a{font-size:0.91406rem;letter-spacing:.08em;color:var(--muted);position:relative;padding:0.37496rem 0;transition:color .3s}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--amber);transition:right .4s var(--ease)}
.nav-links a:hover{color:var(--paper)}
.nav-links a:hover::after{right:0}
.nav-links a span{font-family:var(--mono);font-size:0.70312rem;color:var(--faint);margin-right:0.37496rem;letter-spacing:0}
/* 二级菜单：鼠标悬停展开，和文章库内页顶栏保持同一套外观 */
.nav-links .has-sub{position:relative;display:flex;align-items:center}
.nav-links .has-sub>a{display:inline-flex;align-items:center}
.nav-arrow{width:0.375rem;height:0.375rem;margin-left:0.375rem;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55;transition:transform .25s,opacity .25s}
.nav-links .has-sub:hover .nav-arrow{transform:rotate(225deg) translateY(-2px);opacity:1}
.nav-links .subnav{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);min-width:11rem;padding:0.5rem;background:#1a2632;border:1px solid rgba(236,226,207,.22);border-radius:0.5rem;box-shadow:0 1rem 2.2rem rgba(0,0,0,.55);opacity:0;visibility:hidden;z-index:210;transition:opacity .2s,transform .2s,visibility .2s}
.nav-links .subnav::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav-links .subnav-wide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0.25rem;min-width:19rem}
.nav-links .has-sub:hover .subnav,.nav-links .has-sub:focus-within .subnav{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-links .subnav a{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;margin-bottom:0.2rem;padding:0.55rem 0.8rem;background:rgba(236,226,207,.07);border-radius:0.3rem;font-size:0.875rem;line-height:1.4;color:var(--paper-2)!important;white-space:nowrap;transition:background .2s,color .2s}
.nav-links .subnav a:last-child{margin-bottom:0}
.nav-links .subnav a::after{display:none}
.nav-links .subnav a:hover{background:rgba(233,184,124,.26);color:var(--amber)!important}
.nav-links .subnav a i{font-style:normal;font-family:var(--mono);font-size:0.7rem;letter-spacing:.06em;color:var(--faint)}
.nav-act{display:flex;align-items:center;gap:0.75004rem;margin-left:0.37496rem}
.icon-btn{width:2.37499rem;height:2.37499rem;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--muted);transition:.3s}
.icon-btn:hover{color:var(--amber);border-color:rgba(233,184,124,.4);background:rgba(233,184,124,.05)}
.nav-menu-btn{display:none;width:2.37499rem;height:2.37499rem;border:1px solid var(--line);border-radius:50%;place-items:center;color:var(--paper)}
.nav-mobile{position:fixed;top:4.25002rem;left:0;right:0;z-index:119;background:rgba(8,11,15,.97);border-bottom:0.0625rem solid var(--line);padding:1.125rem var(--gutter) 1.62495rem;display:none}
.nav-mobile.is-open{display:block;animation:fadeDown .35s var(--ease)}
.nav-mobile a,.nav-mobile button{display:flex;justify-content:space-between;width:100%;padding:0.81247rem 0;border-bottom:0.0625rem solid var(--line-soft);font-size:0.98438rem;color:var(--paper-2);text-align:left}
.nav-mobile a span,.nav-mobile button span{font-family:var(--mono);font-size:0.70312rem;color:var(--faint)}
@keyframes fadeDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* nav search */
.nav-search{
  display:flex;align-items:center;gap:0.49995rem;height:2.37499rem;margin:0;padding:0 0.5625rem;
  border:1px solid var(--line);background:rgba(236,226,207,.02);transition:border-color .3s,background .3s;
}
.nav-search:focus-within{border-color:rgba(233,184,124,.45);background:rgba(233,184,124,.045)}
.nav-search .ic{width:0.93746rem;height:0.93746rem;color:var(--faint);flex:none}
.nav-search input{
  width:14.625rem;background:none;border:0;padding:0;color:var(--paper);
  font-family:var(--sans);font-size:0.84375rem;letter-spacing:.03em;outline:none;
}
.nav-search input::placeholder{color:var(--faint)}
.nav-search input::-webkit-search-cancel-button{display:none}
.nav-search-submit{
  height:1.75005rem;padding:0 0.68749rem;margin-right:-0.24998rem;flex:none;
  background:var(--amber);color:#0b0e12;font-size:0.77344rem;letter-spacing:.08em;
  transition:background .25s,color .25s;
  border-radius: 0.225rem;
}
.nav-search-submit:hover{background:var(--amber-2)}
.nav-search-btn{display:none}
.nav-search-panel{
  position:fixed;top:4.87496rem;left:0;right:0;z-index:119;display:none;
  padding:1.24999rem var(--gutter) 1.49996rem;background:rgba(8,11,15,.98);
  border-bottom:0.0625rem solid var(--line);backdrop-filter:blur(18px);
}
.nav-search-panel.is-open{display:block;animation:fadeDown .32s var(--ease)}
body.is-searching::after{content:"";position:fixed;inset:0;z-index:118;background:rgba(4,7,10,.6);backdrop-filter:blur(2px)}
.search-big{display:flex;align-items:center;gap:0.87503rem;border-bottom:0.0625rem solid rgba(233,184,124,.4);padding-bottom:0.75004rem}
.search-big .ic{width:1.24999rem;height:1.24999rem;color:var(--amber);flex:none}
.search-big input{flex:1;min-width:0;background:none;border:0;padding:0;color:var(--paper);font-family:var(--serif);font-size:1.40625rem;letter-spacing:.02em;outline:none}
.search-big input::placeholder{color:var(--faint)}
.search-big button{
  flex:none;height:2.37499rem;padding:0 1.125rem;border:1px solid var(--paper);background:var(--paper);
  color:#0b0e12;font-size:0.84375rem;letter-spacing:.1em;transition:.3s;
}
.search-big button:hover{background:var(--amber);border-color:var(--amber)}
.search-hints{display:flex;align-items:center;flex-wrap:wrap;gap:0.49995rem 0.75004rem;margin-top:0.93746rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.1em;color:var(--faint)}
.search-hints a{padding:0.24998rem 0.62505rem;border:1px solid var(--line);color:var(--paper-2);transition:.25s}
.search-hints a:hover{color:var(--amber);border-color:rgba(233,184,124,.4)}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.62505rem;height:3.00004rem;padding:0 1.49996rem;
  border:1px solid var(--line);border-radius:0.12499rem;font-size:0.91406rem;letter-spacing:.08em;color:var(--paper);
  transition:background .35s,color .35s,border-color .35s,transform .35s;position:relative;
}
.btn .ic{width:0.93746rem;height:0.93746rem;transition:transform .35s var(--ease)}
.btn:hover .ic{transform:translateX(3px)}
.btn-primary{background:var(--paper);color:#0b0e12;border-color:var(--paper)}
.btn-primary:hover{background:var(--amber);border-color:var(--amber);transform:translateY(-1px)}
.btn-ghost{background:transparent}
.btn-ghost:hover{border-color:rgba(233,184,124,.5);color:var(--amber);background:rgba(233,184,124,.05)}

/* ============ HERO ============ */
.hero{position:relative;padding:9.37496rem 0 3.62498rem;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:2.87505rem;align-items:center}
.eyebrow{display:flex;align-items:center;gap:0.75004rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.26em;color:var(--amber);text-transform:uppercase}
.eyebrow::before{content:"";width:2.12501rem;height:1px;background:var(--amber);opacity:.7}
.eyebrow i{font-style:normal;color:var(--faint);letter-spacing:.16em}
.hero h1{
  font-family:var(--serif);font-size:clamp(2.95312rem,4.6vw,4.78125rem);font-weight:600;line-height:1.16;
  letter-spacing:.015em;margin:1.62495rem 0 0;
}
.hero h1 em{font-style:normal;color:var(--amber);position:relative;display:inline-block}
.hero h1 em::after{
  content:"";position:absolute;left:0;right:-0.12499rem;bottom:.02em;height:2px;
  background:linear-gradient(90deg,rgba(233,184,124,.7),rgba(233,184,124,0));
}
.lede{margin-top:1.62495rem;max-width:510px;color:#a7a59c;font-size:1.0899rem;line-height:2}
.lede b{color:var(--paper-2);font-weight:500}
.hero-actions{display:flex;align-items:center;gap:0.87503rem;margin:2.12501rem 0 2.62496rem}
.hero-stats{display:flex;border-top:0.0625rem solid var(--line);padding-top:1.37498rem;max-width:560px}
.stat{padding:0 1.62495rem;border-left:0.0625rem solid var(--line-soft)}
.stat:first-child{padding-left:0;border-left:0}
.stat b{display:block;font-family:var(--serif);font-size:1.82812rem;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;line-height:1.2}
.stat span{display:block;font-size:0.77344rem;letter-spacing:.14em;color:var(--faint);margin-top:0.31252rem}
.stat b i{font-style:normal;font-size:0.84375rem;color:var(--amber);margin-left:0.18754rem}

.hero-visual{position:relative}
.art-frame{position:relative;border:1px solid var(--line);background:#081019;overflow:hidden}
.art-frame::before,.art-frame::after{
  content:"";position:absolute;width:1.37498rem;height:1.37498rem;z-index:3;pointer-events:none;opacity:.55;
}
.art-frame::before{top:0.49995rem;left:0.49995rem;border-top:0.0625rem solid var(--amber);border-left:0.0625rem solid var(--amber)}
.art-frame::after{bottom:0.49995rem;right:0.49995rem;border-bottom:0.0625rem solid var(--amber);border-right:0.0625rem solid var(--amber)}
.hero-art{width:100%;display:block;aspect-ratio:16/9}
.hero-art svg{width:100%;height:100%;display:block}
.art-caption{display:flex;justify-content:space-between;margin-top:0.75004rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.18em;color:var(--faint)}
.float-note{
  position:absolute;left:1.37498rem;bottom:1.37498rem;z-index:4;max-width:252px;padding:1.125rem 1.24999rem 1.125rem;
  background:linear-gradient(135deg,rgba(233,184,124,.16),rgba(9,13,18,.9) 38%,rgba(9,13,18,.94));
  border:1px solid rgba(233,184,124,.36);
  box-shadow:0 1.24999rem 3.00004rem rgba(0,0,0,.45),inset 0 0 0 1px rgba(236,226,207,.04);
  backdrop-filter:blur(16px);transition:.45s var(--ease);overflow:hidden;
  animation:noteIn .9s var(--ease) .5s both;
}
.float-note::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(243,211,164,.18) 48%,transparent 62%);
  transform:translateX(-130%);animation:noteSheen 7s ease-in-out infinite;
}
.float-note::after{
  content:"";position:absolute;left:0;top:0;width:0.18754rem;height:100%;pointer-events:none;
  background:linear-gradient(180deg,var(--amber),rgba(233,184,124,.08));
}
.float-note:hover{
  border-color:rgba(233,184,124,.62);transform:translateY(-3px);
  box-shadow:0 1.49996rem 3.375rem rgba(0,0,0,.55),0 0 1.75005rem rgba(233,184,124,.16);
}
.fn-k{display:flex;align-items:center;gap:0.43751rem;font-family:var(--mono);font-size:0.73823rem;letter-spacing:.22em;color:var(--amber);margin-bottom:0.49995rem}
.fn-k::before{content:"";width:0.31252rem;height:0.31252rem;border-radius:50%;background:var(--amber);box-shadow:0 0 8px var(--amber);animation:live 2.4s infinite}
@keyframes live{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes noteIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes noteSheen{0%,55%{transform:translateX(-130%)}80%,100%{transform:translateX(130%)}}
.float-note b{display:block;font-family:var(--serif);font-size:1.125rem;font-weight:500;line-height:1.5;color:var(--paper)}
.float-note span{display:block;margin-top:0.37496rem;font-size:0.73823rem;letter-spacing:.06em;color:var(--muted)}
.float-note .fn-author{display:flex;align-items:center;gap:0.62505rem;margin-top:0.68749rem;padding-top:0.68749rem;border-top:0.0625rem solid rgba(233,184,124,.22)}
.float-note .fn-author>img,.float-note .fn-author>i{width:1.75005rem;height:1.75005rem;flex:none;border-radius:50%;object-fit:cover;border:1px solid rgba(233,184,124,.4);background:rgba(233,184,124,.1);display:grid;place-items:center;font-family:var(--serif);font-style:normal;font-size:0.91406rem;color:var(--amber)}
.float-note .fn-by{display:flex;flex-direction:column;gap:0.12499rem;min-width:0;margin-top:0}
.float-note .fn-by b{font-family:var(--sans);font-size:0.84375rem;font-weight:500;line-height:1.3;color:var(--paper);letter-spacing:.1em}
.float-note .fn-by em{font-style:normal;font-family:var(--mono);font-size:0.7rem;letter-spacing:.06em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.float-note .fn-bar{margin-top:0.68749rem;height:1px;background:var(--line);overflow:hidden}
.float-note .fn-bar i{display:block;height:100%;width:62%;background:linear-gradient(90deg,var(--amber),rgba(233,184,124,.2));animation:fnBar 5s ease-in-out infinite}
@keyframes fnBar{0%,100%{width:38%}50%{width:88%}}
.hero-aside{
  position:absolute;right:-0.87503rem;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:center;
  font-family:var(--mono);font-size:0.73823rem;letter-spacing:.42em;color:var(--faint);white-space:nowrap;
}

/* ============ TICKER / UPDATE STREAM ============ */
.ticker{display:flex;align-items:stretch;border-top:0.0625rem solid var(--line-soft);border-bottom:0.0625rem solid var(--line-soft);background:rgba(236,226,207,.018);position:relative;overflow:hidden}
.ticker-label{
  display:flex;align-items:center;gap:0.62505rem;flex:none;position:relative;z-index:3;
  padding:0 1.49996rem;border-right:0.0625rem solid var(--line);background:rgba(233,184,124,.045);
  font-family:var(--mono);font-size:0.70312rem;letter-spacing:.2em;color:var(--amber);
}
.ticker-label i{width:0.31252rem;height:0.31252rem;border-radius:50%;background:var(--amber);box-shadow:0 0 10px var(--amber);animation:live 2.4s infinite}
.ticker-label span{color:var(--faint);letter-spacing:.12em}
.ticker-viewport{position:relative;flex:1;min-width:0;overflow:hidden}
.ticker-viewport::before,.ticker-viewport::after{content:"";position:absolute;top:0;bottom:0;width:4.99995rem;z-index:2;pointer-events:none}
.ticker-viewport::before{left:0;background:linear-gradient(90deg,var(--ink),transparent)}
.ticker-viewport::after{right:0;background:linear-gradient(270deg,var(--ink),transparent)}
.ticker-track{display:flex;width:max-content;animation:marquee 62s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.ticker-item{display:flex;align-items:center;gap:0.87503rem;padding:0.93746rem 1.87504rem;font-size:0.80865rem;letter-spacing:.1em;color:var(--muted);border-right:0.0625rem solid var(--line-soft);white-space:nowrap;transition:background .3s,color .3s}
.ticker-item:hover{background:rgba(236,226,207,.035);color:var(--paper-2)}
.ticker-item b{font-weight:500;color:var(--paper-2);letter-spacing:.04em;transition:color .3s}
.ticker-item:hover b{color:var(--amber)}
.ticker-item i{width:0.24998rem;height:0.24998rem;background:var(--amber);border-radius:50%;flex:none}

/* ============ DISPATCH ============ */
.dispatch{border-bottom:0.0625rem solid var(--line-soft);background:linear-gradient(180deg,rgba(233,184,124,.045),rgba(236,226,207,.008) 72%,transparent);position:relative;z-index:1}
.dispatch-inner{display:grid;grid-template-columns:14.99996rem minmax(0,1fr) auto;align-items:stretch}
.dispatch-head{display:flex;flex-direction:column;justify-content:center;gap:0.37496rem;padding:1.75005rem 1.87504rem 1.75005rem 0;border-right:0.0625rem solid var(--line-soft);opacity:.62}
.dispatch-kicker{display:flex;align-items:center;gap:0.49995rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.2em;color:var(--amber);line-height:1.4}
.dispatch-kicker i{width:0.31252rem;height:0.31252rem;border-radius:50%;background:var(--amber);box-shadow:0 0 10px rgba(233,184,124,.8);animation:live 2.4s infinite}
.dispatch-head b{font-family:var(--serif);font-size:1.19531rem;font-weight:600;letter-spacing:.04em;line-height:1.45}
.dispatch-date{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.05em;color:var(--faint)}
.dispatch-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.dispatch-item{position:relative;display:flex;flex-direction:column;gap:0.31252rem;padding:1.75005rem 1.49996rem 1.62495rem;border-right:0.0625rem solid var(--line-soft);transition:background .35s}
.dispatch-item:hover{background:rgba(236,226,207,.03)}
.dispatch-item .di-top{display:flex;align-items:center;gap:0.62505rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.1em;color:var(--faint)}
.di-cat{color:var(--amber)}
.dispatch-item b{font-family:var(--serif);font-size:1.05469rem;font-weight:500;line-height:1.55;color:var(--paper-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .3s;padding-right:0.62505rem}
.dispatch-item:hover b{color:var(--amber)}
.di-meta{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.04em;color:var(--faint)}
.di-arrow{position:absolute;right:1.18755rem;bottom:1.24999rem;width:0.87503rem;height:0.87503rem;color:var(--faint);opacity:0;transform:translate(-3px,3px);transition:.35s}
.dispatch-item:hover .di-arrow{opacity:1;transform:none;color:var(--amber)}
.dispatch-all{align-self:center;display:inline-flex;align-items:center;gap:0.49995rem;padding:1.75005rem 0 1.75005rem 1.62495rem;font-size:0.77344rem;letter-spacing:.1em;color:var(--paper-2);white-space:nowrap;opacity:.6;transition:color .3s,opacity .3s}
.dispatch-all:hover{color:var(--amber);opacity:1}
.dispatch-all .ic{width:0.81247rem;height:0.81247rem}

/* ============ SECTION ============ */
.section{padding:7.875rem 0;position:relative}
.section + .section{border-top:0.0625rem solid var(--line-soft)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(22.5rem,29.25rem);gap:3.74996rem;align-items:end;margin-bottom:3.25001rem}
.sec-index{display:flex;align-items:center;gap:0.75004rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.24em;color:var(--muted);margin-bottom:1.24999rem}
.sec-index .num{color:var(--amber)}
.sec-index .line{width:2.87505rem;height:1px;background:var(--line);display:inline-block}
.sec-title{font-family:var(--serif);font-size:clamp(2.39062rem,3.5vw,3.65625rem);font-weight:600;line-height:1.18;letter-spacing:.02em}
.sec-title em{font-style:normal;color:var(--amber)}
.sec-side{display:flex;flex-direction:column;align-items:stretch;gap:1.00001rem;padding-top:1.125rem;border-top:0.0625rem solid var(--line)}
.sec-note{max-width:29.25rem;color:var(--muted);font-size:0.91406rem;line-height:1.9;letter-spacing:.01em}
.sec-note span{display:flex;align-items:center;gap:0.62505rem;margin-top:0.75004rem;color:var(--amber);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.14em;line-height:1.6}
.sec-note span::before{content:"";width:1.24999rem;height:1px;background:rgba(233,184,124,.55);flex:none}
.sec-link{display:inline-flex;align-items:center;align-self:flex-end;gap:0.49995rem;font-size:0.84375rem;letter-spacing:.1em;color:var(--paper-2);border-bottom:0.0625rem solid var(--line);padding-bottom:0.37496rem;transition:.3s}
.sec-link:hover{color:var(--amber);border-color:rgba(233,184,124,.5)}
.sec-link .ic{width:0.81247rem;height:0.81247rem}

/* ============ STAGE ============ */
.stage-scroll{position:relative}
.stage{position:relative;border:1px solid var(--line);background:#0a1117;overflow:hidden;isolation:isolate}
.stage::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;box-shadow:inset 0 0 90px rgba(3,5,8,.5)}
.stage-tag{
  position:absolute;top:1.125rem;left:1.125rem;z-index:8;display:flex;align-items:center;gap:0.49995rem;
  padding:0.43751rem 0.68749rem;background:rgba(8,12,16,.62);border:1px solid rgba(236,226,207,.14);
  backdrop-filter:blur(8px);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.2em;color:var(--paper-2);
}
.stage-tag i{width:0.24998rem;height:0.24998rem;border-radius:50%;background:var(--jade);box-shadow:0 0 8px var(--jade)}
.stage-tools{position:absolute;top:1.125rem;right:1.125rem;z-index:8;display:flex;align-items:center;gap:0.49995rem}
.stage-tool{
  display:inline-flex;align-items:center;gap:0.43751rem;height:1.87504rem;padding:0 0.62505rem;
  background:rgba(8,12,16,.62);border:1px solid rgba(236,226,207,.14);color:var(--paper-2);
  font-family:var(--mono);font-size:0.70312rem;letter-spacing:.14em;backdrop-filter:blur(8px);transition:.3s;
}
.stage-tool:hover{color:var(--amber);border-color:rgba(233,184,124,.45);background:rgba(12,18,24,.8)}
.stage-tool[aria-pressed="true"]{color:var(--amber);border-color:rgba(233,184,124,.36)}
.stage-tool .ic{width:0.75004rem;height:0.75004rem}
.stage-swipe{display:none;margin-top:0.62505rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.18em;color:var(--faint)}
.stage-swipe i{width:1.125rem;height:1px;background:linear-gradient(90deg,var(--amber),transparent);display:inline-block}

/* ============ SVG SCENE ============ */
.scene-wrap{position:absolute;inset:0;z-index:0;overflow:hidden}
.scene-svg{width:100%;height:100%;display:block}
.scene-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:#04090d;opacity:0;transition:opacity .8s var(--ease)}
.stage.lights-off .scene-shade{opacity:.5}
.stage.lights-off .lamp-glow,.stage.lights-off #roomLampHalo{opacity:.05}
.stage.lights-off .desk-lamp{opacity:.45}
.scene-dim{
  position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .55s var(--ease);
  background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,50%),
    rgba(3,7,10,0) 0 17%,rgba(3,7,10,.12) 27%,rgba(3,7,10,.48) 50%,rgba(3,7,10,.64) 100%);
}
.stage.has-active .scene-dim{opacity:1}
.scene-focus{
  position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .5s var(--ease);
  background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,50%),rgba(255,205,140,.16),rgba(255,198,128,.04) 20%,transparent 40%);
}
.stage.has-active .scene-focus{opacity:1}
.scene-lantern{
  position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .7s ease;
  background:radial-gradient(260px circle at var(--cx,50%) var(--cy,55%),rgba(255,206,140,.17),rgba(255,196,120,.05) 40%,transparent 72%);
}
@media (hover:hover) and (pointer:fine){
  .town-stage:hover .scene-lantern{opacity:1}
  .town-stage.has-active .scene-lantern{opacity:.65}
}
/* ambience */
.firefly-layer,.dust-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.firefly-layer i{
  position:absolute;width:3px;height:3px;border-radius:50%;background:#f6d7a0;
  box-shadow:0 0 7px 1px rgba(246,215,160,.55);opacity:0;
  animation:firefly 11s ease-in-out infinite;
}
@keyframes firefly{
  0%,100%{transform:translate3d(0,0,0);opacity:0}
  12%{opacity:.85}
  45%{transform:translate3d(0.87503rem,-1.62495rem,0);opacity:.5}
  70%{opacity:.08}
  92%{opacity:0}
}
.dust-layer i{
  position:absolute;width:2px;height:2px;border-radius:50%;background:rgba(255,224,176,.55);
  animation:dustFloat 15s linear infinite;
}
@keyframes dustFloat{
  0%{transform:translate3d(0,0,0);opacity:0}
  18%{opacity:.55}
  70%{opacity:.2}
  100%{transform:translate3d(-1.125rem,-2.87505rem,0);opacity:0}
}
.scene-enter{position:absolute;inset:0;z-index:3;pointer-events:none;background:#e9b87c;opacity:0}
.stage.is-entering .scene-enter{animation:enterFlash .5s ease forwards}
@keyframes enterFlash{0%{opacity:0}22%{opacity:.11}100%{opacity:0}}

/* town fog — a lantern hole follows the pointer */
.town-fog{
  position:absolute;inset:-2%;z-index:2;pointer-events:none;opacity:.95;transition:opacity 1.2s var(--ease);
  background:
    radial-gradient(52% 44% at 20% 78%,rgba(196,218,214,.20),transparent 72%),
    radial-gradient(46% 40% at 58% 90%,rgba(196,218,214,.17),transparent 74%),
    radial-gradient(58% 46% at 88% 72%,rgba(196,218,214,.14),transparent 76%),
    linear-gradient(180deg,rgba(174,198,198,0) 40%,rgba(174,198,198,.13) 76%,rgba(174,198,198,.2) 100%);
  -webkit-mask-image:radial-gradient(circle 210px at var(--cx,50%) var(--cy,55%),transparent 0 38%,#000 100%);
  mask-image:radial-gradient(circle 210px at var(--cx,50%) var(--cy,55%),transparent 0 38%,#000 100%);
  animation:fogDrift 34s ease-in-out infinite alternate;
}
@keyframes fogDrift{to{transform:translate3d(1.8%,-.8%,0)}}
.town-stage.has-active .town-fog{opacity:.22}
.town-stage.is-clear .town-fog{opacity:0}
.town-haze{
  position:absolute;left:-10%;right:-10%;bottom:-4%;height:46%;z-index:2;pointer-events:none;
  background:
    radial-gradient(46% 62% at 26% 66%,rgba(190,214,210,.12),transparent 70%),
    radial-gradient(42% 56% at 72% 58%,rgba(190,214,210,.09),transparent 72%);
  animation:mistDrift 40s ease-in-out infinite alternate;
}
@keyframes mistDrift{to{transform:translate3d(3.2%,-1.5%,0)}}

/* whisper + readout */
.scene-whisper{
  position:absolute;left:0;right:0;bottom:0;z-index:7;pointer-events:none;padding:0 1.37498rem 1.37498rem;
  display:flex;align-items:flex-end;gap:0.75004rem;opacity:0;transform:translateY(0.49995rem);transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.scene-whisper.is-on{opacity:1;transform:none}
.scene-whisper i{width:1.49996rem;height:1px;background:linear-gradient(90deg,var(--amber),transparent);flex:none;margin-bottom:0.5625rem}
.scene-whisper span{
  max-width:min(560px,72%);font-family:var(--serif);font-size:0.98438rem;line-height:1.75;letter-spacing:.03em;color:rgba(236,226,207,.82);
  text-shadow:0 1px 18px rgba(0,0,0,.95);
}
.scene-whisper span em{font-style:normal;color:var(--amber);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.14em;margin-left:0.49995rem}

.scene-readout{
  position:absolute;left:1.37498rem;bottom:1.37498rem;z-index:7;width:min(21.25001rem,calc(100% - 2.74995rem));
  padding:1.00001rem 1.125rem 1.00001rem;background:linear-gradient(180deg,rgba(11,17,23,.94),rgba(8,12,16,.97));
  border:1px solid rgba(236,226,207,.16);box-shadow:0 24px 70px rgba(0,0,0,.5);
  opacity:0;transform:translateY(0.87503rem);pointer-events:none;transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.scene-readout.is-on{opacity:1;transform:none;pointer-events:auto}
.scene-readout.is-right{left:auto;right:1.37498rem}
.ro-top{display:flex;align-items:center;gap:0.5625rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.16em;color:var(--amber)}
.ro-top .ro-no{color:var(--faint)}
.ro-x{margin-left:auto;width:1.49996rem;height:1.49996rem;display:grid;place-items:center;color:var(--faint);border:1px solid var(--line-soft);transition:.3s}
.ro-x:hover{color:var(--amber);border-color:rgba(233,184,124,.4)}
.ro-x .ic{width:0.62505rem;height:0.62505rem}
.ro-name{display:block;margin-top:0.5625rem;font-family:var(--serif);font-size:1.54688rem;font-weight:600;letter-spacing:.03em}
.ro-meta{display:block;margin-top:0.31252rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.06em;color:var(--faint)}
.ro-desc{margin-top:0.62505rem;font-size:0.84375rem;line-height:1.8;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ro-cta{display:flex;align-items:center;justify-content:space-between;margin-top:0.81247rem;padding:0.5625rem 0.68749rem;border:1px solid var(--line);font-size:0.80865rem;letter-spacing:.08em;color:var(--paper);transition:.3s}
.ro-cta:hover{background:var(--paper);color:#0b0e12;border-color:var(--paper)}
.ro-cta .ic{width:0.75004rem;height:0.75004rem}

/* hotspots */
.hot{
  position:absolute;transform:translate(-50%,-50%);z-index:6;width:1.75005rem;height:1.75005rem;border-radius:50%;
  border:1px solid rgba(233,184,124,.5);background:rgba(8,12,16,.55);color:var(--amber);
  display:grid;place-items:center;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.04em;
  backdrop-filter:blur(4px);transition:background .3s,color .3s,border-color .3s,box-shadow .3s,opacity .4s;
}
.hot::before{content:"";position:absolute;inset:-0.49995rem;border-radius:50%;border:1px solid rgba(233,184,124,.18);animation:pulse 3.6s ease-out infinite}
.hot::after{content:"";position:absolute;inset:-0.06255rem;border-radius:50%;opacity:0;transition:.3s;box-shadow:0 0 22px rgba(233,184,124,.45)}
.hot:hover,.hot.is-active,.hot.is-hover{background:var(--amber);color:#171208;border-color:var(--amber);box-shadow:0 0 26px rgba(233,184,124,.32)}
.hot.is-active::after,.hot.is-hover::after{opacity:1}
.hot .hot-label{
  position:absolute;left:50%;bottom:calc(100% + 0.81247rem);transform:translate(-50%,0.31252rem);
  white-space:nowrap;padding:0.37496rem 0.5625rem;background:var(--paper);color:#0d1014;font-family:var(--sans);
  font-size:0.77344rem;letter-spacing:.04em;opacity:0;pointer-events:none;transition:.3s;box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.hot:hover .hot-label,.hot.is-hover .hot-label,.hot:focus-visible .hot-label{opacity:1;transform:translate(-50%,0)}
.hot.flip .hot-label{left:auto;right:0;transform:translate(0,0.31252rem)}
.hot.flip:hover .hot-label,.hot.flip.is-hover .hot-label,.hot.flip:focus-visible .hot-label{transform:translate(0,0)}
.town-stage .hot.is-active .hot-label{opacity:0}
@keyframes pulse{0%{transform:scale(.86);opacity:.7}75%{transform:scale(1.55);opacity:0}100%{opacity:0}}
.stage.is-dived .hot{opacity:0;pointer-events:none}

/* room reactions (hover / active) */
.room-stage .prop{transition:filter .5s var(--ease)}
.room-stage[data-active="yl"] .prop[data-prop="yl"],
.room-stage[data-active="mbti"] .prop[data-prop="mbti"],
.room-stage[data-active="9t"] .prop[data-prop="9t"],
.room-stage[data-active="pua"] .prop[data-prop="pua"],
.room-stage[data-active="red"] .prop[data-prop="red"],
.room-stage[data-active="tian"] .prop[data-prop="tian"],
.room-stage[data-active="fei"] .prop[data-prop="fei"]{filter:brightness(1.06) drop-shadow(0 0 18px rgba(255,196,120,.10))}
.town-stage .bldg .halo{opacity:0;transition:opacity .9s var(--ease)}
.town-stage[data-active="gate"] .bldg[data-prop="gate"] .halo,
.town-stage[data-active="astro"] .bldg[data-prop="astro"] .halo,
.town-stage[data-active="tarot"] .bldg[data-prop="tarot"] .halo,
.town-stage[data-active="dream"] .bldg[data-prop="dream"] .halo,
.town-stage[data-active="numerology"] .bldg[data-prop="numerology"] .halo,
.town-stage[data-active="shengxiao"] .bldg[data-prop="shengxiao"] .halo,
.town-stage[data-active="palm"] .bldg[data-prop="palm"] .halo,
.town-stage[data-active="zhouyi"] .bldg[data-prop="zhouyi"] .halo{opacity:1}
.town-stage .bldg{transition:filter .6s var(--ease);cursor:pointer}
.room-stage .prop{cursor:pointer}
@media (hover:hover) and (pointer:fine){
  .room-stage .prop[data-prop]:hover,.room-stage .prop[data-prop].is-lit{filter:url(#r-outline) brightness(1.08)}
}
.town-stage[data-active="gate"] .bldg[data-prop="gate"],
.town-stage[data-active="astro"] .bldg[data-prop="astro"],
.town-stage[data-active="tarot"] .bldg[data-prop="tarot"],
.town-stage[data-active="dream"] .bldg[data-prop="dream"],
.town-stage[data-active="numerology"] .bldg[data-prop="numerology"],
.town-stage[data-active="shengxiao"] .bldg[data-prop="shengxiao"],
.town-stage[data-active="palm"] .bldg[data-prop="palm"],
.town-stage[data-active="zhouyi"] .bldg[data-prop="zhouyi"]{filter:brightness(1.14)}
@media (hover:hover) and (pointer:fine){
  .town-stage .bldg[data-prop]:hover,.town-stage .bldg[data-prop].is-lit{filter:url(#t-outline) brightness(1.16)}
}
.bldg .win{transition:filter .5s var(--ease)}
.sky-lantern{transform-box:fill-box;transform-origin:center;animation:skyLantern 18s ease-in-out infinite}
@keyframes skyLantern{0%,100%{transform:translate(0,0)}50%{transform:translate(7px,-16px)}}
.moon-breathe{transform-box:fill-box;transform-origin:center;animation:moonBreathe 14s ease-in-out infinite}
@keyframes moonBreathe{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.75;transform:scale(1.02)}}
.tlantern{transform-box:fill-box;transform-origin:center;animation:lanternGlow 6s ease-in-out infinite}
@keyframes lanternGlow{0%,100%{opacity:.94}50%{opacity:1}}
.const-path{filter:drop-shadow(0 0 4px rgba(244,217,162,.5))}
.room-back{display:none}
.stage.is-dived .room-back{display:inline-flex}

.dive-ring{
  position:absolute;width:5.25004rem;height:5.25004rem;margin:-2.62496rem 0 0 -2.62496rem;border-radius:50%;
  border:1px solid rgba(255,222,166,.75);z-index:8;pointer-events:none;
  box-shadow:0 0 30px rgba(255,205,140,.25) inset;
}
.room-back .ic{transform:rotate(180deg)}

/* depth trail in inspector */
.depth-trail{display:flex;align-items:center;gap:0.5625rem;margin-top:0.81247rem;padding-top:0.75004rem;border-top:0.0625rem solid var(--line-soft);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.1em;color:#4f545b}
.depth-trail .dt-k{color:var(--faint);margin-right:0.12499rem}
.depth-trail span[data-layer]{position:relative;transition:color .35s}
.depth-trail span[data-layer]::before{content:"";display:inline-block;width:0.31252rem;height:0.31252rem;border-radius:50%;border:1px solid currentColor;margin-right:0.31252rem;vertical-align:1px;transition:.35s}
.depth-trail span[data-layer].is-on{color:var(--amber)}
.depth-trail span[data-layer].is-on::before{background:var(--amber);box-shadow:0 0 8px rgba(233,184,124,.6)}
.depth-trail .dt-note{margin-left:auto;color:#454a51;letter-spacing:.06em}

/* ============ STUDY ============ */
/* 左图右栏等高：右栏高度跟左图（1400:875）对齐，放不下的测试清单在栏内滚动，不再拖出一截空白 */
.study-grid{--study-side:21.87495rem;--study-gap:2.00002rem;display:grid;grid-template-columns:minmax(0,1fr) var(--study-side);gap:var(--study-gap);align-items:start;container-type:inline-size}
.room-stage{aspect-ratio:1400/875}

.inspector{position:sticky;top:5.99996rem;border:1px solid var(--line);background:linear-gradient(180deg,rgba(17,24,33,.96),rgba(9,13,18,.98));overflow:hidden;display:flex;flex-direction:column;max-height:calc((100cqw - var(--study-side) - var(--study-gap)) * 0.625)}
.insp-top{display:flex;align-items:center;justify-content:space-between;padding:1.00001rem 1.24999rem;border-bottom:0.0625rem solid var(--line-soft)}
.insp-kicker{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.24em;color:var(--amber)}
.insp-count{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.12em;color:var(--faint)}
.insp-count b{color:var(--paper-2);font-weight:400}
.insp-body{padding:1.37498rem 1.24999rem 1.49996rem}
.insp-tags{display:flex;flex-wrap:wrap;gap:0.37496rem;margin-bottom:0.87503rem;min-height:1.31254rem}
.insp-tags span{font-size:0.70312rem;letter-spacing:.05em;color:var(--amber);border:1px solid rgba(233,184,124,.28);padding:0.12499rem 0.43751rem}
.insp-name{font-family:var(--serif);font-size:2.03906rem;font-weight:600;line-height:1.25;letter-spacing:.02em}
.insp-meta{font-family:var(--mono);font-size:0.73823rem;letter-spacing:.08em;color:var(--faint);margin-top:0.5625rem}
.insp-desc{margin-top:0.87503rem;font-size:0.87885rem;line-height:1.9;color:var(--muted);min-height:4.5rem}
.insp-cta{display:flex;align-items:center;justify-content:space-between;margin-top:1.00001rem;padding:0.75004rem 0.87503rem;border:1px solid var(--line);font-size:0.84375rem;letter-spacing:.08em;color:var(--paper);transition:.3s}
.insp-cta:hover{background:var(--paper);color:#0b0e12;border-color:var(--paper)}
.insp-cta .ic{width:0.81247rem;height:0.81247rem}
.insp-list{border-top:0.0625rem solid var(--line);flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(236,226,207,.18) transparent;}
.insp-item{display:grid;grid-template-columns:1.62495rem 1fr auto 0.87503rem;align-items:center;gap:0.62505rem;width:100%;padding:0.68749rem 1.24999rem;text-align:left;border-bottom:0.0625rem solid var(--line-soft);transition:background .3s}
.insp-item:last-child{border-bottom:0}
.insp-item .ii-no{font-family:var(--mono);font-size:0.70312rem;color:var(--faint);letter-spacing:.06em}
.insp-item .ii-name{font-size:0.87885rem;letter-spacing:.03em;color:var(--paper-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.insp-item .ii-meta{font-family:var(--mono);font-size:0.70312rem;color:var(--faint);letter-spacing:.03em;white-space:nowrap}
.insp-item .ic{width:0.68749rem;height:0.68749rem;color:var(--faint);transition:.3s}
.insp-item:hover{background:rgba(233,184,124,.05)}
.insp-item:hover .ii-name{color:var(--paper)}
.insp-item.is-active{background:linear-gradient(90deg,rgba(233,184,124,.14),rgba(233,184,124,.03))}
.insp-item.is-active .ii-no{color:var(--amber)}
.insp-item.is-active .ii-name{color:var(--amber)}
.insp-item.is-active .ic{color:var(--amber);transform:translate(2px,-2px)}
.study-foot{display:flex;align-items:center;justify-content:space-between;gap:1.24999rem;margin-top:1.62495rem;padding-top:1.125rem;border-top:0.0625rem solid var(--line-soft)}
.study-foot p{font-size:0.80865rem;letter-spacing:.06em;color:var(--faint)}
.study-foot p b{color:var(--paper-2);font-weight:500}

/* test index */
.test-index{margin-top:2.37499rem;padding-top:1.75005rem;border-top:0.0625rem solid var(--line-soft)}
.ti-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.49996rem;margin-bottom:1.00001rem}
.ti-kicker{display:block;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.2em;color:var(--amber);margin-bottom:0.5625rem}
.ti-head b{display:block;font-family:var(--serif);font-size:1.40625rem;font-weight:600;letter-spacing:.03em}
.test-grid{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line);border-right:0;border-bottom:0}
.test-chip{padding:0.81247rem 0.87503rem 0.87503rem;border-right:0.0625rem solid var(--line);border-bottom:0.0625rem solid var(--line);transition:background .3s}
.test-chip--all{background:rgba(233,184,124,.045)}
.test-chip--all b{color:var(--amber);display:flex;align-items:center;justify-content:space-between;gap:0.49995rem}
.test-chip--all b svg{width:0.68749rem;height:0.68749rem;stroke:currentColor;fill:none;stroke-width:1.6}
.test-chip:hover{background:rgba(233,184,124,.05)}
.test-chip b{display:block;font-family:var(--serif);font-size:1.05469rem;font-weight:600;letter-spacing:.03em;color:var(--paper);transition:color .3s}
.test-chip span{display:block;margin-top:0.31252rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.03em;color:var(--faint);line-height:1.5}
.test-chip:hover b{color:var(--amber)}
.quick-strip,.dict-strip{display:flex;align-items:center;flex-wrap:wrap;gap:0.49995rem 1.125rem;margin-top:0.93746rem;font-size:0.80865rem}
.dict-strip{margin-top:0.62505rem;padding-top:0.75004rem;border-top:0.0625rem dashed var(--line-soft);font-size:0.73823rem}
.quick-strip .qs-k,.dict-strip .qs-k{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.16em;color:var(--amber);margin-right:0.12499rem}
.quick-strip a,.dict-strip a{color:var(--muted);border-bottom:0.0625rem solid transparent;padding-bottom:0.06255rem;transition:.25s}
.quick-strip a:hover,.dict-strip a:hover{color:var(--paper);border-color:var(--amber)}
.quick-strip a i{font-style:normal;font-family:var(--mono);font-size:0.73823rem;color:var(--faint);margin-left:0.37496rem}
.quick-strip .qs-all{display:inline-flex;align-items:center;gap:0.24998rem;color:var(--amber);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.08em}
.quick-strip .qs-all .ic{width:0.75004rem;height:0.75004rem}

/* ============ MYSTIC ============ */
.mystic{position:relative}
.town-stage{aspect-ratio:1720/921}
.town-bar{display:flex;align-items:center;justify-content:space-between;gap:1.49996rem;padding:1.24999rem 0 1.49996rem;border-bottom:0.0625rem solid var(--line);margin-bottom:0}
.town-bar b{display:block;font-family:var(--serif);font-size:1.33594rem;font-weight:600;letter-spacing:.04em}
.town-bar span{display:block;margin-top:0.24998rem;font-size:0.84375rem;color:var(--muted);letter-spacing:.04em}
.town-bar .btn{height:2.62496rem;padding:0 1.125rem;font-size:0.84375rem;flex:none}
.town-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5625rem,1fr));gap:0.0625rem;background:var(--line-soft);border:1px solid var(--line);border-top:0}
.town-item{display:block;padding:1.125rem 0.93746rem 1.06245rem;background:#080d12;text-align:left;transition:background .35s;position:relative}
.town-item::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:transparent;transition:.35s}
.town-item:hover,.town-item.is-active{background:rgba(233,184,124,.055)}
.town-item.is-active::after{background:var(--amber)}
.town-item .ti-no{font-family:var(--mono);font-size:0.70312rem;color:var(--faint);letter-spacing:.14em;display:block}
.town-item .ti-name{display:block;margin-top:0.5625rem;font-family:var(--serif);font-size:1.125rem;letter-spacing:.05em;color:var(--paper-2);transition:.3s}
.town-item .ti-kind{display:block;margin-top:0.24998rem;font-size:0.70312rem;color:var(--faint);letter-spacing:.06em}
.town-item:hover .ti-name,.town-item.is-active .ti-name{color:var(--amber)}

/* ============ ARCHIVE ============ */
.archive{background:linear-gradient(180deg,transparent,rgba(236,226,207,.022) 18%,rgba(236,226,207,.012) 82%,transparent)}
.archive-top{display:grid;grid-template-columns:repeat(12,1fr);gap:1.62495rem;margin-bottom:1.62495rem}
.lead{grid-column:span 5;position:relative;display:block;border:1px solid var(--line);overflow:hidden;background:var(--panel);aspect-ratio:5/6}
.lead-media{position:absolute;inset:0}
.lead-media img{width:100%;height:100%;object-fit:cover;object-position:center 22%;transition:transform 1.2s var(--ease),filter .6s}
.lead:hover .lead-media img{transform:scale(1.045);filter:brightness(.92)}
.lead-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,8,11,.24) 0%,rgba(5,8,11,.02) 20%,rgba(5,8,11,.56) 52%,rgba(5,8,11,.97) 100%);
}
.lead-content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.75005rem 1.75005rem 1.62495rem}
.lead-cat{display:inline-flex;align-items:center;gap:0.49995rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.2em;color:var(--amber);margin-bottom:0.87503rem;padding:0.31252rem 0.5625rem;background:rgba(6,9,12,.45);border:1px solid rgba(233,184,124,.22);backdrop-filter:blur(6px);text-shadow:0 1px 10px rgba(0,0,0,.85)}
.lead-cat::before{content:"";width:1.24999rem;height:1px;background:var(--amber)}
.lead h3{font-family:var(--serif);font-size:clamp(1.75781rem,2.4vw,2.32031rem);font-weight:600;line-height:1.38;letter-spacing:.01em;text-shadow:0 2px 22px rgba(0,0,0,.55)}
.lead p{margin-top:0.75004rem;font-size:0.87885rem;line-height:1.8;color:#b9b2a5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.lead-meta{display:flex;align-items:center;gap:1.00001rem;margin-top:1.00001rem;padding-top:0.87503rem;border-top:0.0625rem solid rgba(236,226,207,.16);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.1em;color:#9d988e;text-shadow:0 1px 10px rgba(0,0,0,.8)}
.lead-meta .lm-arrow{margin-left:auto;width:1.75005rem;height:1.75005rem;border:1px solid rgba(236,226,207,.3);border-radius:50%;display:grid;place-items:center;transition:.35s}
.lead:hover .lm-arrow{background:var(--paper);color:#0b0e12;border-color:var(--paper);transform:rotate(45deg)}
.lead-meta .lm-arrow .ic{width:0.75004rem;height:0.75004rem}

.side{grid-column:span 7;border-top:0.0625rem solid var(--line);display:flex;flex-direction:column}
.side-head{display:flex;align-items:center;justify-content:space-between;padding:0.81247rem 0.12499rem 0.75004rem;border-bottom:0.0625rem solid var(--line-soft)}
.side-head b{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.22em;color:var(--faint);font-weight:400}
.side-head span{font-family:var(--mono);font-size:0.70312rem;color:var(--amber);letter-spacing:.12em}
.story{display:grid;grid-template-columns:5.74999rem 1fr;gap:1.24999rem;padding:1.06245rem 0.12499rem;border-bottom:0.0625rem solid var(--line-soft);transition:background .35s;align-items:center}
.story:hover{background:rgba(236,226,207,.025)}
.story-thumb{position:relative;overflow:hidden;aspect-ratio:3/4;background:#141b22}
.story-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.story:hover .story-thumb img{transform:scale(1.06)}
.story-body{min-width:0}
.story-cat{font-family:var(--mono);font-size:0.73823rem;letter-spacing:.16em;color:var(--amber)}
.story h4{font-family:var(--serif);font-size:1.1601rem;font-weight:500;line-height:1.5;margin-top:0.37496rem;letter-spacing:.01em;transition:color .3s;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.story:hover h4{color:var(--amber)}
.story p{margin-top:0.31252rem;font-size:0.80865rem;line-height:1.7;color:var(--faint);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.story-meta{margin-top:0.43751rem;font-family:var(--mono);font-size:0.84375rem;line-height:1.6;letter-spacing:.04em;color:#b0aca1}
.side-foot{display:flex;align-items:center;justify-content:space-between;padding:0.87503rem 0.12499rem 0;margin-top:auto}
.side-foot a{display:inline-flex;align-items:center;gap:0.49995rem;font-size:0.77344rem;letter-spacing:.1em;color:var(--paper-2);transition:.3s}
.side-foot a:hover{color:var(--amber)}
.side-foot .ic{width:0.75004rem;height:0.75004rem}

/* reading routes band */
.routes{border:1px solid var(--line);margin-bottom:3.25001rem;background:linear-gradient(115deg,rgba(233,184,124,.05),rgba(236,226,207,.012) 46%,transparent 74%)}
.routes-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2.25rem;padding:1.75005rem 2.00002rem 1.37498rem;border-bottom:0.0625rem solid var(--line)}
.rt-kicker{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.22em;color:var(--amber)}
.routes-head h3{margin-top:0.75004rem;font-family:var(--serif);font-size:clamp(1.40625rem,1.9vw,1.82812rem);font-weight:600;line-height:1.45;letter-spacing:.02em}
.routes-head h3 em{font-style:normal;color:var(--amber)}
.routes-head>p{max-width:340px;padding-left:1.24999rem;border-left:0.0625rem solid var(--line);font-size:0.87885rem;line-height:1.95;color:var(--muted)}
.routes-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.route{display:flex;flex-direction:column;padding:1.49996rem 2.00002rem 1.24999rem;border-right:0.0625rem solid var(--line);transition:background .3s}
.route:last-child{border-right:0}
.route:hover{background:rgba(233,184,124,.035)}
.route-main{display:flex;flex-direction:column;flex:1}
.route-no{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.18em;color:var(--faint)}
.route-kicker{margin-top:0.75004rem;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.16em;color:var(--amber)}
.route-main>b{margin-top:0.37496rem;font-family:var(--serif);font-size:1.19531rem;font-weight:600;color:var(--paper);transition:color .3s}
.route:hover .route-main>b{color:var(--amber)}
.route-main>p{margin-top:0.49995rem;font-size:0.84375rem;line-height:1.9;color:var(--muted)}
.route-links{display:flex;flex-wrap:wrap;gap:0.37496rem 0.49995rem;margin-top:1.125rem}
.route-links a{display:inline-flex;align-items:center;gap:0.37496rem;padding:0.24998rem 0.49995rem;border:1px solid var(--line);font-size:0.77344rem;color:var(--paper-2);transition:.3s}
.route-links a:hover{border-color:rgba(233,184,124,.45);color:var(--amber)}
.route-links i{font-style:normal;font-family:var(--mono);font-size:0.7rem;color:var(--faint)}
.route-all{display:flex;align-items:center;justify-content:space-between;margin-top:1.00001rem;padding-top:0.75004rem;border-top:0.0625rem solid var(--line-soft);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.1em;color:var(--amber)}
.route-all .ic{width:1.125rem;height:1.125rem;transition:transform .3s}
.route-all:hover .ic{transform:translateX(3px)}
.latest-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.87504rem;margin-bottom:1.62495rem}
.latest-title{font-family:var(--serif);font-size:1.89844rem;font-weight:600;letter-spacing:.03em}
.latest-sub{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.14em;color:var(--faint);margin-top:0.43751rem}
.filters{display:flex;align-items:center;gap:1.37498rem;flex-wrap:wrap}
.filter{position:relative;font-size:0.80865rem;letter-spacing:.08em;color:var(--faint);padding:0.31252rem 0;transition:.3s}
.filter i{font-style:normal;font-family:var(--mono);font-size:0.70312rem;color:#474c53;margin-left:0.24998rem}
.filter::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--amber);transition:right .4s var(--ease)}
.filter:hover{color:var(--paper-2)}
.filter.is-active{color:var(--amber)}
.filter.is-active i{color:var(--amber)}
.filter.is-active::after{right:0}
.latest-grid{display:grid;grid-template-columns:minmax(0,1fr) 23.74999rem;gap:3.375rem;align-items:start}
.lines{border-top:0.0625rem solid var(--line)}
.line-item{
  display:grid;grid-template-columns:2.12501rem 5.99996rem minmax(0,1fr) 10.6875rem 1.00001rem;align-items:center;gap:1.00001rem;
  padding:0.87503rem 0.24998rem;border-bottom:0.0625rem solid var(--line-soft);transition:background .3s,padding .3s;
}
.line-item:hover{background:rgba(236,226,207,.025);padding-left:0.62505rem}
.li-idx{font-family:var(--mono);font-size:0.70312rem;color:#484d54;letter-spacing:.06em}
.li-cat{display:block;font-size:0.70312rem;letter-spacing:.05em;color:var(--faint);border:1px solid var(--line-soft);padding:0.12499rem 0.37496rem;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis;transition:.25s}
.li-cat:hover{color:var(--amber);border-color:rgba(233,184,124,.35);background:rgba(233,184,124,.05)}
.li-title{display:block;font-size:0.94927rem;line-height:1.6;color:var(--paper-2);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.line-item:hover .li-title{color:var(--amber)}
.li-short{display:block;font-family:var(--mono);font-size:0.77344rem;line-height:1.5;color:#8f9089;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.line-item:hover .li-short{color:#b7b1a4}
.li-go{display:grid;place-items:center}
.li-go .ic{width:0.68749rem;height:0.68749rem;color:#3f444b;transition:.3s}
.line-item:hover .li-go .ic{color:var(--amber);transform:translate(2px,-2px)}
.line-item.is-hidden{display:none}

/* archive aside */
.archive-aside{position:sticky;top:5.99996rem;display:flex;flex-direction:column;gap:1.125rem}
.aa-card{border:1px solid var(--line);padding:1.49996rem 1.49996rem 1.37498rem;background:linear-gradient(180deg,rgba(223,187,130,.07),rgba(10,14,19,.6) 60%)}
.aa-k{font-family:var(--mono);font-size:0.73823rem;letter-spacing:.24em;color:var(--faint)}
.aa-num{display:flex;align-items:baseline;gap:0.49995rem;margin-top:1.00001rem;padding-bottom:1.125rem;border-bottom:0.0625rem solid var(--line-soft)}
.aa-num b{font-family:var(--serif);font-size:3.65625rem;font-weight:600;line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.aa-num span{font-size:0.77344rem;letter-spacing:.1em;color:var(--muted)}
.aa-mini{display:grid;grid-template-columns:1fr 1fr;gap:0.87503rem 0.62505rem;padding:1.125rem 0 0.24998rem}
.aa-mini div{display:flex;align-items:baseline;gap:0.43751rem}
.aa-mini b{font-family:var(--serif);font-size:1.26562rem;font-weight:600;color:var(--amber);font-variant-numeric:tabular-nums}
.aa-mini span{font-size:0.70312rem;color:var(--faint);letter-spacing:.04em}
.aa-link{display:flex;align-items:center;justify-content:space-between;margin-top:1.125rem;padding-top:0.93746rem;border-top:0.0625rem solid var(--line-soft);font-size:0.80865rem;letter-spacing:.1em;color:var(--paper-2);transition:.3s}
.aa-link:hover{color:var(--amber)}
.aa-link .ic{width:0.81247rem;height:0.81247rem}
.aa-quote{border-left:0.0625rem solid rgba(233,184,124,.4);padding:0.12499rem 0 0.12499rem 1.125rem}
.aa-quote p{font-family:var(--serif);font-size:1.05469rem;line-height:1.85;color:var(--paper-2);letter-spacing:.02em}
.aa-quote cite{display:block;margin-top:0.49995rem;font-style:normal;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.14em;color:var(--faint)}
.aa-note{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.14em;color:#484d54;text-align:right}

/* tags */
.tag-strip{display:flex;align-items:center;flex-wrap:wrap;gap:0.49995rem;margin-top:1.87504rem;padding-top:1.37498rem;border-top:0.0625rem solid var(--line-soft)}
.tag-strip .ts-k{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.18em;color:var(--faint);margin-right:0.37496rem}
.tag-strip a{padding:0.31252rem 0.68749rem;border:1px solid var(--line-soft);border-radius:1.24999rem;font-size:0.77344rem;color:var(--muted);transition:.25s}
.tag-strip a:hover{color:var(--amber);border-color:rgba(233,184,124,.35);background:rgba(233,184,124,.05)}

/* column map */
.cat-map{margin-top:2.74995rem;padding-top:2.12501rem;border-top:0.0625rem solid var(--line)}
.cm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.49996rem;margin-bottom:1.125rem}
.cm-kicker{display:block;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.2em;color:var(--amber);margin-bottom:0.5625rem}
.cm-head h3{font-family:var(--serif);font-size:1.6875rem;font-weight:600;letter-spacing:.03em}
.cm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.125rem}
.cm-col{border:1px solid var(--line);background:linear-gradient(180deg,rgba(236,226,207,.022),transparent 70%)}
.cm-col h4{display:flex;align-items:center;gap:0.5625rem;padding:0.87503rem 1.00001rem;border-bottom:0.0625rem solid var(--line);font-family:var(--serif);font-size:1.19531rem;font-weight:600;letter-spacing:.04em}
.cm-col h4 a{color:var(--paper);transition:color .25s}
.cm-col h4 a:hover{color:var(--amber)}
.cm-col h4 i{width:0.31252rem;height:0.31252rem;border-radius:50%;background:var(--amber);box-shadow:0 0 8px rgba(233,184,124,.5)}
.cm-col h4 em{font-style:normal;margin-left:auto;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.1em;color:rgba(233,184,124,.82)}
.cm-links{display:grid;grid-template-columns:1fr 1fr;padding:0.37496rem 0.49995rem 0.62505rem}
.cm-links a{padding:0.43751rem 0.49995rem;font-size:0.84375rem;letter-spacing:.02em;color:var(--muted);transition:.25s}
.cm-links a:hover{color:var(--amber);background:rgba(233,184,124,.05)}

/* reader voices */
.voices{margin-top:2.74995rem;padding-top:2.12501rem;border-top:0.0625rem solid var(--line)}
.voice-tests{display:flex;align-items:center;flex-wrap:wrap;gap:0.62505rem 1.24999rem;margin-bottom:1.62495rem;padding:0.87503rem 1.125rem;border:1px solid var(--line);background:rgba(233,184,124,.04)}
.vt-k{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.18em;color:var(--amber)}
.vt-links{display:flex;align-items:center;flex-wrap:wrap;gap:0.49995rem}
.vt-links a{display:inline-flex;align-items:center;gap:0.37496rem;padding:0.37496rem 0.75004rem;border:1px solid rgba(236,226,207,.16);font-size:0.84375rem;color:var(--paper-2);transition:.3s}
.vt-links a:hover{border-color:rgba(233,184,124,.5);color:var(--amber);background:rgba(233,184,124,.08)}
.vt-links i{font-style:normal;font-family:var(--mono);font-size:0.70312rem;color:var(--faint)}
.vt-note{margin-left:auto;font-size:0.77344rem;letter-spacing:.04em;color:var(--faint)}
.voices-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.49996rem;margin-bottom:1.125rem}
.vh-kicker{display:block;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.2em;color:var(--amber);margin-bottom:0.5625rem}
.voices-head h3{font-family:var(--serif);font-size:1.6875rem;font-weight:600;letter-spacing:.03em}
.voices-note{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.12em;color:var(--faint);padding-bottom:0.24998rem}
.voices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.125rem}
.voice{position:relative;overflow:hidden;margin:0;padding:1.24999rem 1.24999rem 1.00001rem;border:1px solid var(--line);background:rgba(236,226,207,.015)}
.voice::before{content:"“";position:absolute;right:0.87503rem;top:0;font-family:var(--serif);font-size:4.07812rem;line-height:1;color:rgba(233,184,124,.16);pointer-events:none}
.voice blockquote{margin:0;font-family:var(--serif);font-size:0.98438rem;line-height:1.9;color:var(--paper-2);letter-spacing:.01em}
.voice figcaption{display:flex;align-items:center;justify-content:space-between;gap:0.75004rem;margin-top:1.00001rem;padding-top:0.75004rem;border-top:0.0625rem solid var(--line-soft);font-family:var(--mono);font-size:0.70312rem;letter-spacing:.08em;color:var(--faint)}
.voice figcaption b{font-weight:400;color:var(--amber);letter-spacing:.04em}

/* ============ JIANFAN ============ */
.jianfan{position:relative}
.strip{display:flex;gap:1.24999rem;overflow-x:auto;padding:0.12499rem 0.12499rem 1.125rem;scroll-snap-type:x mandatory;scrollbar-width:thin}
.strip::-webkit-scrollbar{height:4px}
.strip::-webkit-scrollbar-thumb{background:#2b323b;border:0}
.film{flex:0 0 15.75rem;scroll-snap-align:start;border:1px solid var(--line);background:var(--panel);transition:border-color .4s,transform .4s var(--ease)}
.film:hover{border-color:rgba(233,184,124,.4);transform:translateY(-0.24998rem)}
.film-link{display:block}
.poster{position:relative;aspect-ratio:3/4;overflow:hidden;background:#131a21}
.poster img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s}
.film:hover .poster img{transform:scale(1.045);filter:brightness(.94)}
.poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,8,11,.72))}
.p-rating{position:absolute;top:0.62505rem;left:0.62505rem;z-index:2;font-family:var(--mono);font-size:0.73823rem;letter-spacing:.1em;color:var(--paper);background:rgba(8,11,14,.7);border:1px solid rgba(236,226,207,.22);padding:0.18754rem 0.37496rem;backdrop-filter:blur(4px)}
.p-score{position:absolute;right:0.62505rem;bottom:0.62505rem;z-index:2;display:flex;align-items:baseline;gap:0.18754rem;font-family:var(--mono);font-size:0.73823rem;letter-spacing:.1em;color:var(--amber)}
.p-score b{font-family:var(--serif);font-size:1.6875rem;font-weight:600;line-height:1;color:var(--paper)}
.film-body{padding:0.93746rem 0.93746rem 1.06245rem}
.film-top{display:flex;align-items:baseline;justify-content:space-between;gap:0.49995rem}
.film-top h3{font-family:var(--serif);font-size:1.26562rem;font-weight:600;letter-spacing:.03em}
.film-top span{font-family:var(--mono);font-size:0.73823rem;letter-spacing:.08em;color:var(--faint);white-space:nowrap}
.bars{margin-top:0.81247rem;display:flex;flex-direction:column;gap:0.37496rem}
.bar-row{display:grid;grid-template-columns:1.125rem 1fr 1.24999rem;align-items:center;gap:0.49995rem}
.bar-row span{font-size:0.70312rem;color:var(--faint);letter-spacing:.04em}
.bar-row i{display:block;height:2px;background:rgba(236,226,207,.09);position:relative}
.bar-row i::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--v);background:var(--c,var(--amber));opacity:.8;transition:width 1s var(--ease)}
.bar-row b{font-family:var(--mono);font-size:0.73823rem;color:#6a6f76;font-weight:400;text-align:right}
.film:hover .bar-row b{color:var(--paper-2)}
.jianfan-foot{display:flex;align-items:center;justify-content:space-between;gap:1.24999rem;margin-top:1.49996rem;padding-top:1.24999rem;border-top:0.0625rem solid var(--line-soft)}
.jianfan-foot .btn{height:2.74995rem;font-size:0.84375rem}
.jianfan-foot p{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.14em;color:var(--faint)}

/* ============ BYLINES ============ */
.bylines{position:relative}
.by-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.24999rem}
.by-card{
  position:relative;display:flex;flex-direction:column;padding:1.62495rem 1.75005rem 1.49996rem;
  border:1px solid var(--line);overflow:hidden;
  background:
    radial-gradient(120% 90% at 100% 0%,rgba(233,184,124,.075),transparent 55%),
    linear-gradient(180deg,rgba(236,226,207,.026),rgba(10,14,19,.4));
  transition:border-color .4s,transform .4s var(--ease);
}
.by-card::before{
  content:"";position:absolute;left:0;top:0;width:2px;height:100%;pointer-events:none;
  background:linear-gradient(180deg,var(--amber),rgba(233,184,124,0));opacity:.55;
}
.by-card:hover{border-color:rgba(233,184,124,.38);transform:translateY(-3px)}
.by-top{display:flex;align-items:center;gap:1.125rem}
.by-avatar{
  position:relative;flex:none;width:5.25004rem;height:5.25004rem;border-radius:50%;padding:0.125rem;
  background:linear-gradient(145deg,rgba(233,184,124,.62),rgba(236,226,207,.1));
}
.by-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;filter:saturate(.92);transition:filter .4s}
.by-card:hover .by-avatar img{filter:saturate(1.05)}
.by-seal{
  position:absolute;right:-0.18754rem;bottom:-0.18754rem;width:1.62495rem;height:1.62495rem;border-radius:50%;
  background:var(--ink);border:1px solid rgba(233,184,124,.5);display:grid;place-items:center;
  font-family:var(--serif);font-size:0.84375rem;color:var(--amber);
}
.by-id{min-width:0}
.by-no{font-family:var(--mono);font-size:0.7rem;letter-spacing:.18em;color:var(--faint)}
.by-id h3{font-family:var(--serif);font-size:1.6875rem;font-weight:600;letter-spacing:.06em;line-height:1.2;margin-top:0.12499rem}
.by-role{display:block;margin-top:0.24998rem;font-family:var(--mono);font-size:0.73823rem;letter-spacing:.1em;color:var(--amber)}
.by-count{margin-left:auto;text-align:right;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.08em;color:var(--faint);white-space:nowrap}
.by-count b{display:block;font-family:var(--serif);font-size:2.10938rem;font-weight:600;line-height:1;color:var(--paper);font-variant-numeric:tabular-nums}
.by-quote{margin-top:1.24999rem;padding-left:1.00001rem;border-left:0.0625rem solid rgba(233,184,124,.35);font-family:var(--serif);font-size:0.98438rem;line-height:1.9;color:var(--paper-2);letter-spacing:.02em}
.by-tags{display:flex;flex-wrap:wrap;gap:0.37496rem;margin-top:1.06245rem}
.by-tags span{font-family:var(--mono);font-size:0.7rem;letter-spacing:.1em;color:var(--muted);border:1px solid var(--line-soft);padding:0.18754rem 0.49995rem;border-radius:1.125rem}
.by-works{margin-top:1.125rem;padding-top:0.93746rem;border-top:0.0625rem solid var(--line-soft);display:flex;flex-direction:column;gap:0.37496rem}
.by-k{font-family:var(--mono);font-size:0.7rem;letter-spacing:.18em;color:var(--faint);margin-bottom:0.12499rem}
.by-works a{font-size:0.87885rem;line-height:1.65;color:var(--paper-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s}
.by-works a::before{content:"—";color:rgba(233,184,124,.55);margin-right:0.49995rem}
.by-works a:hover{color:var(--amber)}
.by-foot{display:flex;align-items:center;justify-content:space-between;gap:1.125rem;margin-top:auto;padding-top:1.125rem}
.by-alias{font-family:var(--mono);font-size:0.7rem;letter-spacing:.06em;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.by-more{display:inline-flex;align-items:center;gap:0.37496rem;flex:none;font-size:0.80865rem;letter-spacing:.08em;color:var(--paper-2);transition:.25s}
.by-more:hover{color:var(--amber)}
.by-more .ic{width:0.75004rem;height:0.75004rem}

/* ============ AUTHOR PAGES ============ */
.author-index,.author-page{padding-top:9rem}
.author-crumb{display:flex;align-items:center;flex-wrap:wrap;gap:0.62505rem;margin-bottom:2.00002rem;font-family:var(--mono);font-size:0.73823rem;letter-spacing:.1em;color:var(--faint)}
.author-crumb a{color:var(--muted);transition:color .25s}
.author-crumb a:hover{color:var(--amber)}
.author-crumb strong{color:var(--paper-2);font-weight:400}
.author-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(23.625rem,100%),1fr));gap:1.24999rem}
.author-card .by-id h2{font-family:var(--serif);font-size:1.6875rem;font-weight:600;letter-spacing:.06em;line-height:1.2;margin-top:0.12499rem}
.author-card .by-id h2 a{transition:color .25s}
.author-card .by-id h2 a:hover{color:var(--amber)}
.by-avatar-fallback{
  width:100%;height:100%;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 34% 28%,rgba(233,184,124,.18),rgba(8,12,17,.94) 68%);
  font-family:var(--serif);font-size:2.12501rem;color:var(--amber);letter-spacing:.08em;
}
.author-intro{margin-top:1.00001rem;color:var(--muted);font-size:0.91406rem;line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.author-extra{
  display:flex;align-items:center;justify-content:space-between;gap:0.75004rem;margin-top:1.00001rem;padding-top:0.93746rem;
  border-top:0.0625rem solid var(--line-soft);font-size:0.84375rem;letter-spacing:.06em;color:var(--amber);transition:color .25s;
}
.author-extra .ic{width:0.81247rem;height:0.81247rem}
.author-extra:hover{color:var(--amber-2)}
.author-hero{display:flex;align-items:center;gap:2.49998rem;padding-bottom:3.00004rem;border-bottom:0.0625rem solid var(--line)}
.author-avatar{width:8.4375rem;height:8.4375rem;flex:none}
.author-avatar .by-avatar-fallback{font-size:3.375rem}
.author-head{flex:1;min-width:0}
.author-head .sec-title{margin-top:0.24998rem}
.author-quote{margin-top:0.75004rem;max-width:54rem;font-family:var(--serif);font-size:1.19531rem;line-height:1.9;color:var(--paper-2);letter-spacing:.02em}
.author-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:0.49995rem 1.49996rem;margin-top:1.125rem;font-family:var(--mono);font-size:0.73823rem;letter-spacing:.08em;color:var(--faint)}
.author-meta b{font-family:var(--serif);font-size:1.6875rem;font-weight:600;color:var(--paper);margin-right:0.24998rem}
/* 作者页互动：送花 / 扔蛋。两个按钮并列，票数跟在字后面，选中态给一档同色底 */
.author-react{display:flex;align-items:center;flex-wrap:wrap;gap:0.56254rem;margin-top:1.24999rem}
.author-react .ar-vote{display:inline-flex;align-items:center;gap:0.43751rem;padding:0.5rem 0.99995rem;border:1px solid var(--line);background:rgba(236,226,207,.03);color:var(--paper-2);font-family:var(--mono);font-size:0.8125rem;letter-spacing:.05em;cursor:pointer;transition:border-color .22s,color .22s,background .22s,transform .15s}
.author-react .ar-vote:hover{border-color:rgba(233,184,124,.5);color:var(--amber);background:rgba(233,184,124,.07);transform:translateY(-0.0625rem)}
.author-react .ar-vote:focus-visible{outline:0.125rem solid var(--amber);outline-offset:0.125rem}
.author-react .ar-vote-emoji{font-size:1rem;line-height:1}
.author-react .ar-vote-num{font-style:normal;font-size:0.75rem;color:var(--faint);padding-left:0.3125rem;border-left:1px solid var(--line-soft)}
.author-react .ar-vote[data-choice="pick"][aria-pressed="true"]{border-color:rgba(233,184,124,.65);background:rgba(233,184,124,.13);color:var(--amber)}
.author-react .ar-vote[data-choice="egg"][aria-pressed="true"]{border-color:rgba(216,137,159,.65);background:rgba(216,137,159,.13);color:#d8899f}
.author-react .ar-vote[aria-pressed="true"] .ar-vote-num{color:inherit}
.author-react .ar-vote.is-bump{animation:arVoteBump .42s ease}
.ar-vote-hint{flex:1 1 100%;font-family:var(--mono);font-size:0.70312rem;letter-spacing:.04em;color:var(--faint);margin-top:0.125rem}
@keyframes arVoteBump{0%{transform:scale(1)}45%{transform:scale(1.08)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.author-react .ar-vote{transition:none} .author-react .ar-vote.is-bump{animation:none}}
.author-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(22.5rem,.85fr);gap:3.74996rem;align-items:start;padding-top:3.25001rem}
.author-bio{padding:0.24998rem 0 0 1.49996rem;border-left:0.125rem solid rgba(233,184,124,.32);color:var(--paper-2);font-size:0.98438rem;line-height:2}
.author-bio p + p{margin-top:0.75em}
.author-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:1.125rem;margin:3.375rem 0 1.125rem;padding-bottom:0.75004rem;border-bottom:0.0625rem solid var(--line)}
.author-block-head .by-k{margin:0}
.author-block-head h2{font-family:var(--serif);font-size:1.6875rem;font-weight:600;letter-spacing:.04em}
.author-block-head h2 small{font-family:var(--mono);font-size:0.70312rem;font-weight:400;letter-spacing:.08em;color:var(--faint);margin-left:0.49995rem}
.author-notes{margin-top:0.37496rem}
.author-note{margin-bottom:0.75004rem;padding:1.18755rem 1.49996rem;border:1px solid var(--line-soft);background:rgba(236,226,207,.018);font-family:var(--serif);font-size:0.98438rem;line-height:1.95;color:var(--paper-2)}
.author-work-list{list-style:none;margin:0;padding:0}
.author-work-list li{display:grid;grid-template-columns:6.1875rem minmax(0,1fr);align-items:baseline;gap:1.125rem;padding:1.06245rem 0.12499rem;border-bottom:0.0625rem solid var(--line-soft)}
.aw-cat{font-family:var(--mono);font-size:0.70312rem;letter-spacing:.06em;color:var(--amber);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s}
.aw-cat:hover{color:var(--amber-2)}
.aw-title{font-size:1.05469rem;line-height:1.65;color:var(--paper-2);transition:color .25s}
.aw-title:hover{color:var(--amber)}
.aw-empty{display:block!important;color:var(--faint);font-size:0.91406rem}
.author-pager{display:flex;align-items:center;justify-content:center;gap:1.24999rem;margin-top:1.75005rem;font-family:var(--mono);font-size:0.73823rem;letter-spacing:.06em;color:var(--faint)}
.author-pager a{padding:0.43751rem 0.87503rem;border:1px solid var(--line);color:var(--paper-2);transition:.25s}
.author-pager a:hover{color:var(--amber);border-color:rgba(233,184,124,.45)}
.author-pager em{font-style:normal}
.author-aside{position:sticky;top:6.62501rem;display:flex;flex-direction:column;gap:1.24999rem}
.author-extra-lg{padding:1.125rem 1.37498rem;border:1px solid rgba(233,184,124,.35);background:rgba(233,184,124,.07);font-size:0.91406rem}
.letter-card{
  padding:1.6875rem 1.62495rem 1.56251rem;border:1px solid var(--line);
  background:radial-gradient(110% 80% at 100% 0%,rgba(233,184,124,.065),transparent 58%),rgba(10,14,19,.5);
}
.letter-card h2{margin-top:0.31252rem;font-family:var(--serif);font-size:1.6875rem;font-weight:600;letter-spacing:.04em}
.letter-note{margin:0.62505rem 0 1.24999rem;font-size:0.84375rem;line-height:1.85;color:var(--muted)}
.letter-card form{display:flex;flex-direction:column;gap:0.87503rem}
.letter-card label{display:block;font-size:0.84375rem;color:var(--paper-2)}
.letter-card label span{margin-left:0.37496rem;font-family:var(--mono);font-size:0.7rem;color:var(--faint)}
.letter-card input,.letter-card textarea{
  display:block;width:100%;margin-top:0.37496rem;padding:0.62505rem 0.75004rem;
  border:1px solid var(--line);background:rgba(236,226,207,.03);color:var(--paper);
  font-family:var(--sans);font-size:0.91406rem;line-height:1.7;outline:none;transition:border-color .25s,background .25s;
}
.letter-card input:focus,.letter-card textarea:focus{border-color:rgba(233,184,124,.45);background:rgba(233,184,124,.045)}
.letter-card textarea{resize:vertical;min-height:8.75003rem}
.letter-card button{
  display:inline-flex;align-items:center;justify-content:center;gap:0.49995rem;height:2.87505rem;margin-top:0.24998rem;
  background:var(--paper);color:#0b0e12;font-size:0.91406rem;letter-spacing:.08em;transition:.3s;
}
.letter-card button:hover{background:var(--amber)}
.letter-card button .ic{width:0.87503rem;height:0.87503rem}
.letter-hp{position:absolute!important;left:-624.9375rem!important;width:1px!important;height:1px!important;overflow:hidden!important}
.letter-ok,.letter-err{margin:0 0 1.00001rem;padding:0.62505rem 0.87503rem;font-size:0.84375rem;line-height:1.7;border:1px solid}
.letter-ok{color:var(--jade);border-color:rgba(121,210,192,.3);background:rgba(121,210,192,.06)}
.letter-err{color:var(--rose);border-color:rgba(216,137,159,.3);background:rgba(216,137,159,.06)}

@media (max-width:1180px){
  .author-layout{grid-template-columns:1fr;gap:2.49998rem}
  .author-aside{position:static}
}
@media (max-width:720px){
  .author-index,.author-page{padding-top:7.50004rem}
  .author-hero{flex-direction:column;align-items:flex-start;gap:1.49996rem}
  .author-avatar{width:5.99996rem;height:5.99996rem}
  .author-avatar .by-avatar-fallback{font-size:2.25rem}
  .author-card .by-id h2{font-size:1.40625rem}
  .author-grid{grid-template-columns:1fr}
  .author-work-list li{grid-template-columns:4.87496rem minmax(0,1fr);gap:0.75004rem}
  .author-quote{font-size:1.05469rem}
  .letter-card{padding:1.37498rem 1.24999rem}
}

/* ============ FOOTER 样式已统一到 over.css（首页也加载它），这里不再重复 ============ */
/* ============ JUMP NAV ============ */
.jump-nav{position:fixed;right:max(0.84375rem,calc((100vw - var(--maxw)) / 2 - 5.99996rem));bottom:2.49998rem;z-index:105;display:flex;flex-direction:column;align-items:flex-end;gap:0.62505rem;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(0.62505rem);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}
.jump-nav.is-on{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.jump-btn{width:3.74996rem;height:3.74996rem;border:1px solid rgba(236,226,207,.2);background:rgba(9,13,18,.82);backdrop-filter:blur(14px);color:var(--paper-2);display:grid;place-items:center;transition:.3s var(--ease);box-shadow:0 1.125rem 2.475rem rgba(0,0,0,.35),inset 0 0 0 1px rgba(236,226,207,.03)}
.jump-btn:hover{color:var(--amber);border-color:rgba(233,184,124,.5);background:rgba(233,184,124,.1);transform:translateY(-2px)}
.jump-btn:active{transform:translateY(0)}
.jump-btn .ic{width:1.49996rem;height:1.49996rem;stroke-width:1.4}
.jump-menu{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:0.62505rem}
.jump-list{position:absolute;right:0;bottom:calc(100% + 0.62505rem);display:flex;flex-direction:column;border:1px solid rgba(236,226,207,.2);background:rgba(9,13,18,.92);backdrop-filter:blur(14px);box-shadow:0 1.125rem 2.475rem rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(0.49995rem);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}
.jump-menu.is-open .jump-list{opacity:1;visibility:visible;transform:none}
.jump-list a{display:flex;align-items:center;gap:0.62505rem;padding:0.5625rem 0.81247rem 0.5625rem 1.00001rem;border-bottom:0.0625rem solid rgba(236,226,207,.08);font-size:0.84375rem;letter-spacing:.04em;color:var(--paper-2);white-space:nowrap;transition:.25s}
.jump-list a:last-child{border-bottom:0}
.jump-list a span{font-family:var(--mono);font-size:0.7rem;color:var(--amber)}
.jump-list a:hover{color:var(--amber);background:rgba(233,184,124,.08)}
.jump-toggle.is-active{color:var(--amber);border-color:rgba(233,184,124,.5);background:rgba(233,184,124,.1)}

/* ============ SVG ANIMATION HELPERS ============ */
.twinkle{animation:twinkle 4.5s ease-in-out infinite}
.flicker{animation:flicker 5.5s ease-in-out infinite}
.smoke{animation:smokeRise 9s ease-out infinite;transform-box:fill-box;transform-origin:center bottom}
.firefly{animation:firefly 13s ease-in-out infinite;transform-box:fill-box}
.float-y{animation:floatY 7s ease-in-out infinite;transform-box:fill-box}
.sway{animation:sway 9s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom center}
.spin-slow{animation:spinSlow 90s linear infinite;transform-box:fill-box;transform-origin:center}
.glow-pulse{animation:glowPulse 6s ease-in-out infinite}
.lantern-drift{animation:lanternDrift 26s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.shoot{animation:shoot 9s ease-in infinite;opacity:0}
@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:.95}}
@keyframes flicker{0%,100%{opacity:1}42%{opacity:.86}46%{opacity:.97}58%{opacity:.8}62%{opacity:1}}
@keyframes smokeRise{0%{opacity:0;transform:translateY(0) scale(.7)}18%{opacity:.35}70%{opacity:.16}100%{opacity:0;transform:translateY(-58px) scale(1.5)}}
@keyframes firefly{0%,100%{opacity:.12;transform:translate(0,0)}25%{opacity:.85;transform:translate(6px,-8px)}50%{opacity:.3;transform:translate(-4px,-15px)}75%{opacity:.75;transform:translate(-9px,-5px)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes sway{0%,100%{transform:rotate(-1.1deg)}50%{transform:rotate(1.1deg)}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes glowPulse{0%,100%{opacity:.55}50%{opacity:.95}}
@keyframes lanternDrift{0%,100%{transform:translate(0,0)}33%{transform:translate(7px,-16px)}66%{transform:translate(-6px,-28px)}}
@keyframes shoot{0%{opacity:0;transform:translate(0,0)}6%{opacity:0}10%{opacity:.85}22%{opacity:0;transform:translate(240px,110px)}100%{opacity:0;transform:translate(240px,110px)}}

/* ============ RESPONSIVE ============ */
@media (max-width:1180px){
  :root{--gutter:2.12501rem}
  .hero-grid{grid-template-columns:1fr .9fr;gap:1.87504rem}
  .hero-aside{display:none}
  .study-grid{grid-template-columns:minmax(0,1fr) 20.00003rem;gap:1.62495rem;--study-side:20.00003rem;--study-gap:1.62495rem}
  .archive-top{grid-template-columns:repeat(12,1fr)}
  .latest-grid{grid-template-columns:minmax(0,1fr) 20.62496rem;gap:2.49998rem}
  .test-grid{grid-template-columns:repeat(4,1fr)}
  .nav-search{display:none}
  .nav-search-btn{display:grid}
  .dispatch-inner{grid-template-columns:13.5rem minmax(0,1fr)}
  .dispatch-all{display:none}
}
@media (max-width:980px){
  .nav-links{display:none}
  .nav-menu-btn{display:grid}
  .nav-act{margin-left:auto}
  .hero{padding-top:7.50004rem}
  .hero-grid{grid-template-columns:1fr;gap:2.74995rem}
  .hero-visual{max-width:720px}
  .sec-head{grid-template-columns:1fr;gap:1.37498rem;align-items:start}
  .sec-side{padding-top:1.125rem}
  .sec-note{max-width:38.25rem}
  .sec-link{align-self:flex-start}
  .study-grid{grid-template-columns:1fr}
  .inspector{position:static;max-height:none}
  .insp-list{overflow:visible}
  .insp-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:0.0625rem;background:var(--line-soft);border-top:0.0625rem solid var(--line)}
  .insp-item{border:0;background:#0b1118}
  .archive-top{grid-template-columns:1fr}
  .lead{grid-column:span 12;aspect-ratio:4/5;max-height:720px}
  .routes-head{padding:1.49996rem 1.49996rem 1.24999rem}
  .routes-grid{grid-template-columns:1fr}
  .route{border-right:0;border-bottom:0.0625rem solid var(--line);padding:1.37498rem 1.49996rem 1.24999rem}
  .route:last-child{border-bottom:0}
  .side{grid-column:span 12}
  .latest-grid{grid-template-columns:1fr}
  .by-grid{grid-template-columns:1fr}
  .archive-aside{position:static;display:grid;grid-template-columns:1.1fr .9fr;gap:1.24999rem}
  .aa-note{display:none}
  .footer-top{grid-template-columns:1fr;gap:2.12501rem}
  .float-note{max-width:220px}
  .dispatch-inner{grid-template-columns:1fr}
  .dispatch-head{flex-direction:row;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;gap:0.37496rem 1.00001rem;padding:1.24999rem 0;border-right:0;border-bottom:0.0625rem solid var(--line-soft)}
  .dispatch-head b{font-size:1.125rem}
  .dispatch-date{margin-left:auto}
  .dispatch-item{padding:1.24999rem 1.125rem 1.37498rem}
  .dispatch-item:last-child{border-right:0}
}
@media (max-width:720px){
  :root{--gutter:0.75rem}
  html{scroll-padding-top:4.62499rem}
  body{font-size:0.98438rem}
  .nav{height:4.00005rem}
  .nav.is-scrolled{height:3.74996rem}
  .brand-txt b{font-size:1.26562rem}
  .brand-txt span{font-size:0.70312rem}
  .demo-badge{display:none}
  .nav-mobile{top:3.74996rem}
  .nav-search-panel{top:4.00005rem;padding:1.125rem var(--gutter) 1.37498rem}
  .search-big input{font-size:1.19531rem}
  .search-hints{font-size:0.7rem;gap:0.49995rem}
  .section{padding:5.12505rem 0}
  .hero{padding:6.50002rem 0 2.74995rem}
  .hero h1{font-size:clamp(2.39062rem,9vw,3.23438rem)}
  .lede{font-size:0.98438rem;line-height:1.9}
  .hero-actions{flex-wrap:wrap;margin:1.75005rem 0 2.12501rem}
  .hero-actions .btn{height:2.74995rem;padding:0 1.125rem;font-size:0.84375rem}
  .hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.125rem 0}
  .stat{padding:0 1.00001rem}
  .stat:nth-child(odd){padding-left:0;border-left:0}
  .stat b{font-size:1.54688rem}
  .float-note{position:relative;left:auto;bottom:auto;max-width:none;margin:0;padding:0.81247rem 3.74996rem 0.87503rem 0.93746rem;background:rgba(9,13,18,.92);border:0;border-top:0.0625rem solid rgba(236,226,207,.14);backdrop-filter:none;display:block;animation:none}
  .float-note::before{display:none}
  .float-note .fn-k{margin-bottom:0.43751rem}
  .float-note b{font-size:0.91406rem;display:block;line-height:1.55}
  .float-note > span:not(.fn-k):not(.fn-author):not(.fn-bar){display:none}
  .float-note .fn-author{margin-top:0.5625rem;padding-top:0.5625rem}
  .float-note .fn-by em{display:none}
  .float-note .fn-author>img,.float-note .fn-author>i{width:1.49996rem;height:1.49996rem;font-size:0.84375rem}
  .float-note .fn-bar{margin-top:0.62505rem;width:100%}
/* 手机端：两个 SVG 场景按整幅宽度完整显示，不再需要横向拖动；装饰动画和滤镜同时收掉，省手机性能 */
  .stage-scroll{margin:0 calc(var(--gutter) * -1);padding:0;overflow:visible}
  #roomStage,#townStage{width:100%;max-width:100%;aspect-ratio:1720/921}
  #roomStage{aspect-ratio:1400/875}
  .stage-swipe{display:none}
  .dust-layer,.scene-lantern,.stage-tool--tour,.firefly-layer{display:none}
  .town-haze{display:none}
  .scene-svg{will-change:auto}
  /* 手机端关掉 SVG 场景里的常驻装饰动画（月亮呼吸、灯笼、雾、萤火等），静止画面已经够看 */
  #roomStage .scene-svg *, #townStage .scene-svg *{animation:none!important}
  .hot{width:2.25rem;height:2.25rem;font-size:0.78125rem;background:rgba(8,12,16,.78);backdrop-filter:none}
  .hot::before{animation:none;opacity:.26}
  .hot .hot-label{display:none}
  .stage-tag{top:0.625rem;left:0.625rem;padding:0.31252rem 0.5rem;background:rgba(8,12,16,.74);backdrop-filter:none}
  .stage-tools{top:3.125rem;right:auto;bottom:auto;left:0.625rem}
  .stage-tool{height:1.75rem;padding:0 0.5rem;backdrop-filter:none}
  .scene-whisper{padding:0 0.75rem 0.625rem;width:100%;background:linear-gradient(180deg,transparent,rgba(4,9,13,.9) 38%)}
  .scene-whisper span{font-size:0.8125rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .scene-whisper span em{display:none}
  /* 第二个场景在手机首屏外，先跳过渲染，滚到附近再画，省掉一整块 SVG 的初始开销 */
  .mystic{content-visibility:auto;contain-intrinsic-size:auto 920px}
  .town-fog{-webkit-mask-image:none;mask-image:none;opacity:.62;animation:none}
  .town-stage.has-active .town-fog{opacity:.16}
  .scene-readout{left:0.75004rem;right:auto;bottom:0.75004rem;width:min(20.62496rem,calc(100vw - 2.74995rem));padding:0.75004rem 0.87503rem}
  .ro-name{font-size:1.33594rem}
  .ro-desc{font-size:0.80865rem;-webkit-line-clamp:2}
  .scene-whisper{padding:0 0.87503rem 0.87503rem;width:calc(100vw - 1.49996rem)}
  .scene-whisper span{font-size:0.91406rem;line-height:1.7;max-width:100%}
  .scene-whisper span em{display:block;margin:0.31252rem 0 0}
  .stage-swipe{display:flex;align-items:center;gap:0.49995rem}
  .art-caption{font-size:0.73823rem;flex-direction:column;align-items:flex-start;gap:0.31252rem;letter-spacing:.12em}
  .ticker-label{padding:0 0.87503rem;font-size:0.7rem;letter-spacing:.08em}
  .ticker-label span{display:none}
  .ticker-item{padding:0.75004rem 1.24999rem;font-size:0.73823rem;gap:0.62505rem}
  .dispatch-head{padding:1.06245rem 0}
  .dispatch-date{display:none}
  .dispatch-list{grid-template-columns:1fr}
  .dispatch-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0.12499rem 0.75004rem;padding:0.93746rem 0;border-right:0;border-bottom:0.0625rem solid var(--line-soft)}
  .dispatch-item:last-child{border-bottom:0}
  .dispatch-item .di-top{grid-column:1/-1}
  .dispatch-item b{grid-column:1;grid-row:2;font-size:0.98438rem;padding-right:0}
  .di-meta{display:none}
  .di-arrow{position:static;grid-column:2;grid-row:2;align-self:center;opacity:.5;transform:none}
  .sec-title{font-size:clamp(2.10938rem,8vw,2.67188rem)}
  .sec-head{margin-bottom:2.12501rem}
  .study-foot{flex-direction:column;align-items:flex-start;gap:0.75004rem}
  .insp-item{padding:0.62505rem 0.87503rem;grid-template-columns:1.37498rem 1fr 0.75004rem}
  .insp-item .ii-meta{display:none}
  .insp-body{padding:1.125rem 1.00001rem 1.24999rem}
  .insp-name{font-size:1.82812rem}
  .town-bar{flex-direction:column;align-items:flex-start;gap:1.00001rem}
  .town-list{grid-template-columns:1fr 1fr}
  .town-item{padding:1.00001rem 0.87503rem}
  .scene-readout.is-right{left:0.75004rem;right:auto}
  .lead{aspect-ratio:4/5}
  .lead-content{padding:1.37498rem 1.24999rem}
  .story{grid-template-columns:4.62499rem 1fr;gap:0.87503rem}
  .story h4{font-size:1.05469rem}
  .story p{display:none}
  .routes{margin-bottom:2.25rem}
  .routes-head{flex-direction:column;align-items:flex-start;gap:1.00001rem;padding:1.24999rem 1.125rem 1.125rem}
  .routes-head>p{max-width:none;padding-left:0;border-left:0;font-size:0.84375rem;line-height:1.85}
  .route{padding:1.24999rem 1.125rem 1.125rem}
  .route-main>b{font-size:1.125rem}
  .latest-head{flex-direction:column;align-items:flex-start;gap:1.00001rem}
  .filters{gap:1.00001rem}
  .line-item{grid-template-columns:1.62495rem minmax(0,1fr) 1.00001rem;grid-template-areas:"idx title go" "idx short go";align-items:center;gap:0.24998rem 0.75004rem;padding:0.81247rem 0.12499rem}
  .li-idx{grid-area:idx;align-self:start}
  .li-cat{display:none}
  .li-title{grid-area:title;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .li-short{display:block;grid-area:short;text-align:left;font-size:0.70312rem;line-height:1.5;color:#8f9089}
  .li-go{grid-area:go;display:grid}
  .line-item:hover{padding-left:0.24998rem}
  .archive-aside{grid-template-columns:1fr}
  .test-grid{grid-template-columns:1fr 1fr}
  .ti-head,.cm-head,.voices-head{flex-direction:column;align-items:flex-start;gap:0.75004rem}
  .cm-grid{grid-template-columns:1fr}
  .voices-grid{grid-template-columns:1fr}
  .voices-note{display:none}
  .voice-tests{flex-direction:column;align-items:flex-start;gap:0.75004rem;padding:1.00001rem}
  .vt-note{margin-left:0}
  .cm-links{padding:0.31252rem 0.37496rem 0.49995rem}
  .film{flex-basis:14.25004rem}
  .jianfan-foot{flex-direction:column;align-items:flex-start;gap:0.87503rem}
  .jump-nav{bottom:1.00001rem;gap:0.75004rem}
  .jump-btn{width:3.25001rem;height:3.25001rem}
  .jump-btn .ic{width:1.24999rem;height:1.24999rem}
  .by-card{padding:1.24999rem 1.24999rem 1.125rem}
  .by-avatar{width:4.5rem;height:4.5rem}
  .by-id h3{font-size:1.40625rem}
  .by-count b{font-size:1.6875rem}
  .by-quote{font-size:0.91406rem;line-height:1.85}
  .by-foot{flex-wrap:wrap;gap:0.49995rem}
  .by-alias{white-space:normal;line-height:1.6}
  .grain{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .reveal{opacity:1;transform:none}
}
