:root{
  color-scheme:dark;
  --bg:#07090d;
  --bg2:#0e1419;
  --ink:#f7f6ef;
  --text:#d8ddd7;
  --muted:#9aa7a1;
  --faint:#66736e;
  --line:rgba(255,255,255,.15);
  --glass:rgba(15,20,24,.62);
  --glass2:rgba(255,255,255,.07);
  --panel:rgba(12,17,21,.72);
  --panel-strong:rgba(7,11,14,.86);
  --card-fill:linear-gradient(135deg,rgba(255,255,255,.105),rgba(255,255,255,.028));
  --accent:#f3be62;
  --aqua:#86e2d1;
  --rose:#e98d7f;
  --shadow:rgba(0,0,0,.38);
  --max:1240px;
  --mx:50vw;
  --my:40vh;
  --nav-h:86px;
}
html[data-theme="light"]{
  color-scheme:light;
  --bg:#f7f8f7;
  --bg2:#e9eeec;
  --ink:#111514;
  --text:#29312e;
  --muted:#54625d;
  --faint:#76817d;
  --line:rgba(12,18,16,.14);
  --glass:rgba(255,255,255,.72);
  --glass2:rgba(255,255,255,.42);
  --panel:rgba(255,255,255,.88);
  --panel-strong:rgba(255,255,255,.96);
  --card-fill:linear-gradient(135deg,rgba(255,255,255,.95),rgba(242,247,245,.78));
  --accent:#b56916;
  --aqua:#19746d;
  --rose:#9d4c42;
  --shadow:rgba(56,68,62,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
html,body{max-width:100%}
body{
  margin:0;
  min-width:320px;
  background:
    radial-gradient(circle at var(--mx) var(--my), color-mix(in srgb,var(--accent) 18%,transparent), transparent 26rem),
    radial-gradient(circle at 74% 20%, color-mix(in srgb,var(--aqua) 16%,transparent), transparent 24rem),
    linear-gradient(130deg,var(--bg),var(--bg2) 55%,var(--bg));
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-4;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:96px 96px;
  mask-image:radial-gradient(circle at var(--mx) var(--my),#000,transparent 72%);
  opacity:.42;
}
a{color:inherit}
button,.btn{
  min-height:44px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:11px 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--ink);
  background:rgba(255,255,255,.07);
  font:inherit;
  font-weight:760;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
  transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s,border-color .2s,color .2s;
}
button:hover,.btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.12);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
button:active,.btn:active{transform:translateY(0) scale(.985)}
button:focus-visible,.btn:focus-visible{outline:2px solid var(--aqua);outline-offset:3px}
.primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 64%,#fff));color:#15100a;border-color:transparent}
.ghost{background:rgba(255,255,255,.055)}
html[data-theme="light"] button,
html[data-theme="light"] .btn{background:rgba(255,255,255,.78);color:var(--ink);border-color:rgba(12,18,16,.16)}
html[data-theme="light"] button:hover,
html[data-theme="light"] .btn:hover{background:#fff;border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}
html[data-theme="light"] .primary{background:linear-gradient(135deg,#c8791f,#f2c46c);color:#180f05;border-color:transparent}
html[data-theme="light"] .ghost{background:rgba(255,255,255,.72)}
#starfield{position:fixed;inset:0;z-index:-2;width:100vw;height:100vh;pointer-events:none;opacity:.7}
.section-wrap{width:min(var(--max),calc(100% - 44px));margin-inline:auto}
.nav-shell{
  position:fixed;
  z-index:80;
  left:50%;
  top:16px;
  transform:translateX(-50%);
  width:min(1320px,calc(100% - 28px));
  min-height:70px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:16px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:24px;
  background:color-mix(in srgb,var(--glass) 94%,transparent);
  backdrop-filter:blur(24px) saturate(170%);
  box-shadow:0 18px 60px var(--shadow);
}
html[data-theme="light"] .nav-shell{background:rgba(255,255,255,.86);box-shadow:0 18px 60px rgba(42,55,49,.14)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:850;letter-spacing:-.02em}
.brand-mark{width:38px;height:38px;border-radius:15px;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 76%,#fff),color-mix(in srgb,var(--aqua) 72%,#000))}
.brand-mark::before{content:"";width:20px;height:20px;border:2px solid rgba(255,255,255,.88);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.14)}
.brand-mark::after{content:"";position:absolute;width:62%;height:1px;background:rgba(255,255,255,.86);transform:rotate(-28deg)}
nav{justify-self:center;display:flex;gap:4px;padding:4px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.05)}
nav a{padding:9px 13px;border-radius:999px;text-decoration:none;color:var(--muted);font-size:13px;font-weight:760}
nav a:hover{color:var(--ink);background:rgba(255,255,255,.08)}
.nav-tools{display:flex;align-items:center;gap:10px}
.langbar{display:flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.045)}
.langbar button{min-width:40px;min-height:36px;padding:7px 9px;font-size:12px;color:var(--muted);background:transparent;border-color:transparent}
.langbar button.active{color:var(--ink);background:rgba(255,255,255,.13);border-color:var(--line)}
html[data-theme="light"] .langbar button.active{background:rgba(17,21,20,.08)}
.theme-toggle{min-width:104px}
.hero{
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.86fr);
  gap:clamp(36px,6vw,86px);
  align-items:center;
  padding-top:112px;
  padding-bottom:64px;
}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:820;letter-spacing:.03em;margin:0 0 20px}
.eyebrow::before{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--accent),transparent)}
h1,h2,h3,p{margin-top:0}
h1{
  margin:0;
  color:var(--ink);
  font-size:clamp(4rem,9.2vw,7.2rem);
  line-height:.88;
  letter-spacing:-.045em;
  text-wrap:balance;
  max-width:9ch;
}
h1 .subline{display:block;margin-top:18px;font-size:.24em;line-height:1.16;letter-spacing:.01em;color:color-mix(in srgb,var(--ink) 78%,var(--aqua));font-weight:650;max-width:30ch}
.hero-lead{font-size:clamp(1.12rem,2vw,1.42rem);line-height:1.68;color:var(--text);max-width:62ch;margin:28px 0 0}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.hero-actions.center{justify-content:center}
.hero-orbit{perspective:1200px;min-height:560px;display:grid;place-items:center}
.desk-plane{
  width:min(520px,100%);
  aspect-ratio:1;
  position:relative;
  border:1px solid var(--line);
  border-radius:38px;
  overflow:hidden;
  background:
    radial-gradient(circle at 48% 44%,rgba(255,255,255,.2),transparent 22%),
    linear-gradient(130deg,rgba(255,255,255,.14),rgba(255,255,255,.025)),
    color-mix(in srgb,var(--glass) 80%,transparent);
  backdrop-filter:blur(22px) saturate(160%);
  box-shadow:0 44px 120px var(--shadow),inset 0 1px 0 rgba(255,255,255,.18);
  transform:rotateX(calc((var(--my-num,50) - 50)*-.045deg)) rotateY(calc((var(--mx-num,50) - 50)*.055deg));
}
.desk-plane::before{content:"";position:absolute;inset:9%;border:1px solid var(--line);border-radius:30px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0 1px,transparent 1px 28px)}
.desk-plane::after{content:"";position:absolute;width:140%;height:1px;left:-20%;top:48%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);filter:blur(.5px)}
.sunline{position:absolute;inset:18%;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);border-radius:50%;animation:spin 28s linear infinite}
.ginkgo{position:absolute;left:57%;top:20%;width:92px;height:92px;background:linear-gradient(135deg,var(--accent),var(--aqua));clip-path:polygon(50% 0,62% 34%,100% 38%,68% 58%,82% 100%,50% 72%,18% 100%,32% 58%,0 38%,38% 34%);opacity:.78;filter:blur(.2px)}
.gate-slice{position:absolute;left:50%;top:0;width:2px;height:100%;background:linear-gradient(transparent,rgba(255,255,255,.85),transparent);box-shadow:0 0 30px rgba(255,255,255,.38)}
.orbit-label{position:absolute;left:34px;right:34px;bottom:30px;display:grid;gap:9px;color:var(--muted)}
.orbit-label strong{font-size:clamp(2rem,4vw,3.2rem);line-height:1;color:var(--ink);letter-spacing:-.04em}
.portal{
  min-height:100svh;
  padding:clamp(64px,8vw,112px) 0;
  display:grid;
  grid-template-columns:minmax(280px,.46fr) minmax(0,1fr);
  gap:clamp(22px,3vw,44px);
  align-items:center;
  scroll-margin-top:96px;
}
.portal-header{max-width:540px;margin-bottom:0}
.portal-header h2,.section-head h2,.corridor-sticky h2,.download-panel h2,.author-panel h2,.footer h2{
  margin:0;
  color:var(--ink);
  font-size:clamp(2.6rem,6.4vw,5.8rem);
  line-height:.96;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.portal-header p,.section-head p,.corridor-sticky p,.download-panel p,.author-panel p,.footer p{color:var(--muted);font-size:1.08rem;line-height:1.8;max-width:70ch;margin:20px 0 0}
.shan-stage{
  position:relative;
  min-height:min(760px,78svh);
  border:1px solid var(--line);
  border-radius:34px;
  overflow:hidden;
  background:#05070a;
  box-shadow:0 60px 140px var(--shadow),inset 0 1px 0 rgba(255,255,255,.12);
  isolation:isolate;
  --stage-x:50%;
  --stage-y:50%;
  --stage-depth:.5;
}
.shan-stage::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.16),transparent 13%,transparent 72%,rgba(0,0,0,.36)),
    radial-gradient(900px circle at var(--mx) var(--my),rgba(255,255,255,.13),transparent 58%);
  mix-blend-mode:screen;
}
.shan-stage::after{
  content:"";
  position:absolute;
  inset:1px;
  z-index:2;
  pointer-events:none;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.11);
}
#shanCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab}
#shanCanvas:active{cursor:grabbing}
.stage-hud{
  position:absolute;
  z-index:4;
  left:24px;
  top:24px;
  width:min(390px,calc(100% - 48px));
  padding:18px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  background:rgba(4,7,10,.48);
  color:#f7f6ef;
  backdrop-filter:blur(18px) saturate(150%);
}
.stage-hud small{display:block;color:rgba(255,255,255,.56);font-weight:800;margin-bottom:6px}
.stage-hud strong{font-size:1.55rem;letter-spacing:-.03em}
.stage-hud p{margin:10px 0 0;color:rgba(255,255,255,.72);line-height:1.65}
.stage-readout{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:16px;
}
.stage-readout span{
  min-width:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:13px;
  padding:9px 10px;
  background:rgba(255,255,255,.07);
}
.stage-readout b{
  display:block;
  color:#fff;
  font-size:1.05rem;
  letter-spacing:-.02em;
}
.stage-readout small{
  margin:2px 0 0;
  color:rgba(255,255,255,.5);
  font-size:.66rem;
}
.stage-nodebar{display:flex;gap:6px;margin-top:12px}
.stage-nodebar i{
  flex:1;
  height:4px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  overflow:hidden;
}
.stage-nodebar i::before{
  content:"";
  display:block;
  width:var(--fill,44%);
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,rgba(243,190,98,.92),rgba(134,226,209,.9));
}
.stage-cursor{
  position:absolute;
  z-index:3;
  left:var(--stage-x);
  top:var(--stage-y);
  width:92px;
  height:92px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  transform:translate(-50%,-50%) scale(calc(.82 + var(--stage-depth) * .22));
  pointer-events:none;
  opacity:.58;
  mix-blend-mode:screen;
}
.stage-cursor::before,
.stage-cursor::after{
  content:"";
  position:absolute;
  inset:50% auto auto 50%;
  width:128px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(134,226,209,.7),transparent);
  transform:translate(-50%,-50%);
}
.stage-cursor::after{
  width:1px;
  height:128px;
}
.stage-controls{position:absolute;z-index:4;left:24px;right:24px;bottom:22px;display:flex;gap:10px;flex-wrap:wrap}
.stage-controls button{background:rgba(8,12,16,.58);color:#f7f6ef;backdrop-filter:blur(14px)}
.stage-controls button.active{background:rgba(243,190,98,.9);color:#11100b;border-color:transparent}
.portal-notes{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:0}
.portal-note{border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--panel);backdrop-filter:blur(14px)}
.portal-note h3{margin:0 0 8px;color:var(--ink)}
.portal-note p{margin:0;color:var(--muted);line-height:1.65}
.guixu-cinema{
  position:relative;
  min-height:300svh;
  isolation:isolate;
  background:#020306;
  --guixu-progress:0;
}
.guixu-stage{
  position:sticky;
  top:0;
  height:100svh;
  width:100%;
  overflow:hidden;
  z-index:0;
  pointer-events:none;
}
#guixuCanvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  touch-action:none;
}
.guixu-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.26;
  background:
    linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.038) 1px,transparent 1px);
  background-size:124px 124px;
  mask-image:radial-gradient(circle at 64% 46%,#000,transparent 72%);
}
.guixu-copy{
  position:absolute;
  z-index:4;
  left:50%;
  top:13svh;
  transform:translateX(-50%);
  display:grid;
  justify-items:start;
  text-align:left;
  pointer-events:none;
}
.guixu-copy .eyebrow{justify-self:start;color:rgba(247,246,239,.72)}
.guixu-copy h2{
  width:min(540px,43vw);
  margin:0;
  color:#f7f6ef;
  font-size:clamp(2.9rem,5.2vw,5.4rem);
  line-height:.96;
  letter-spacing:-.032em;
  text-wrap:balance;
  text-shadow:0 20px 90px rgba(0,0,0,.62);
}
.guixu-copy p{
  width:min(520px,40vw);
  margin:24px 0 0;
  color:rgba(247,246,239,.74);
  font-size:clamp(1rem,1.5vw,1.28rem);
  line-height:1.78;
}
.guixu-hud{
  position:absolute;
  z-index:4;
  left:50%;
  top:108svh;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,2vw,24px);
}
.guixu-beat{
  min-height:158px;
  border:1px solid rgba(255,255,255,.14);
  border-width:1px 0 0;
  border-radius:0;
  padding:18px 18px 8px 0;
  color:#f7f6ef;
  background:
    linear-gradient(90deg,rgba(134,226,209,.16),rgba(134,226,209,.035) 42%,transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.035),transparent 36%);
  backdrop-filter:none;
  box-shadow:none;
}
.guixu-beat h3{margin:0 0 8px;font-size:1.18rem;color:#fff;letter-spacing:-.02em}
.guixu-beat p{margin:0;color:rgba(247,246,239,.68);line-height:1.64}
.guixu-expedition{
  position:absolute;
  z-index:4;
  left:50%;
  top:182svh;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:minmax(260px,.42fr) minmax(0,1fr);
  gap:clamp(20px,4vw,56px);
  align-items:start;
}
.guixu-expedition-head{
  position:sticky;
  top:118px;
  color:#f7f6ef;
}
.guixu-expedition-head h2{
  margin:0;
  color:#f7f6ef;
  font-size:clamp(2.5rem,5.8vw,5.6rem);
  line-height:.95;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.guixu-expedition-head p{
  margin:18px 0 0;
  color:rgba(247,246,239,.7);
  line-height:1.78;
  max-width:56ch;
}
.guixu-roster{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.guixu-person{
  min-height:184px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:14px;
  padding:18px;
  color:#f7f6ef;
  background:
    radial-gradient(260px circle at calc(18% + var(--i) * 9%) 0,rgba(134,226,209,.16),transparent 62%),
    rgba(7,10,13,.54);
  backdrop-filter:blur(18px) saturate(145%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.guixu-person span{
  display:inline-flex;
  color:rgba(243,190,98,.82);
  font-weight:860;
  font-size:.82rem;
}
.guixu-person h3{
  margin:36px 0 6px;
  color:#fff;
  font-size:1.34rem;
  letter-spacing:-.025em;
}
.guixu-person b{
  display:block;
  color:rgba(134,226,209,.82);
  font-size:.9rem;
  margin-bottom:10px;
}
.guixu-person p{
  margin:0;
  color:rgba(247,246,239,.66);
  line-height:1.62;
}
html[data-theme="light"] .guixu-cinema{
  background:linear-gradient(180deg,#edf6f2,#dcebe6 48%,#f5f8f6);
}
html[data-theme="light"] .guixu-stage::after{
  opacity:.18;
  background:
    linear-gradient(rgba(20,55,50,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(20,55,50,.065) 1px,transparent 1px);
}

html[data-theme="light"] .guixu-copy .eyebrow{color:rgba(20,35,32,.68)}
html[data-theme="light"] .guixu-copy h2{
  color:#111716;
  text-shadow:0 18px 72px rgba(255,255,255,.82),0 4px 28px rgba(29,75,68,.16);
}
html[data-theme="light"] .guixu-copy p{
  color:rgba(23,38,35,.78);
  text-shadow:0 12px 34px rgba(255,255,255,.8);
}
html[data-theme="light"] .guixu-beat{
  border-color:rgba(22,62,56,.22);
  color:#111716;
  padding:20px 18px 16px;
  border-width:1px;
  border-radius:14px;
  background:
    radial-gradient(360px circle at 16% -10%,rgba(255,255,255,.76),transparent 58%),
    linear-gradient(110deg,rgba(255,255,255,.7),rgba(235,248,244,.44) 48%,rgba(190,224,216,.24));
  box-shadow:0 1px 0 rgba(255,255,255,.78) inset,0 16px 36px rgba(47,76,70,.08);
  backdrop-filter:blur(10px) saturate(128%);
}
html[data-theme="light"] .guixu-beat h3{color:#111716}
html[data-theme="light"] .guixu-beat p{color:rgba(34,53,49,.72)}
html[data-theme="light"] .guixu-expedition-head,
html[data-theme="light"] .guixu-expedition-head h2{color:#111716}
html[data-theme="light"] .guixu-expedition-head p{color:rgba(34,53,49,.74)}
html[data-theme="light"] .guixu-expedition-head{
  text-shadow:0 18px 44px rgba(255,255,255,.88),0 2px 18px rgba(232,246,242,.72);
}
html[data-theme="light"] .guixu-person{
  border-color:rgba(22,62,56,.18);
  color:#111716;
  background:
    radial-gradient(260px circle at calc(18% + var(--i) * 9%) 0,rgba(32,124,113,.15),transparent 62%),
    rgba(255,255,255,.66);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 18px 48px rgba(44,72,66,.1);
}
html[data-theme="light"] .guixu-person span{color:rgba(173,103,23,.86)}
html[data-theme="light"] .guixu-person h3{color:#111716}
html[data-theme="light"] .guixu-person b{color:rgba(20,105,96,.86)}
html[data-theme="light"] .guixu-person p{color:rgba(35,54,50,.72)}
.corridor{padding:clamp(80px,10vw,150px) 0;display:grid;grid-template-columns:.82fr 1.18fr;gap:44px;align-items:start}
.corridor-sticky{position:sticky;top:116px}
.corridor-rail{display:grid;gap:16px}
.world-card{min-height:260px;border:1px solid var(--line);border-radius:24px;padding:26px;background:var(--card-fill);position:relative;overflow:hidden}
.world-card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,255,255,.14),transparent 62%)}
.world-card>*{position:relative}
.world-card small,.book small,.log-entry small{color:var(--faint);font-weight:850}
.world-card h3{color:var(--ink);font-size:1.72rem;margin:42px 0 10px;letter-spacing:-.03em}
.world-card p{color:var(--muted);line-height:1.75}
.library,.cast,.download,.updates,.author{padding:clamp(80px,10vw,150px) 0}
.section-head{max-width:840px;margin-bottom:30px}
.book-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.book{grid-column:span 4;min-height:410px;border:1px solid var(--line);border-radius:26px;padding:26px;background:var(--panel);position:relative;overflow:hidden;transition:transform .18s ease,border-color .2s}
.book:nth-child(3){min-height:500px}
.book:nth-child(4),.book:nth-child(5){grid-column:span 6;min-height:340px}
.book::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--card-x,50%) var(--card-y,20%),var(--tone),transparent 62%);opacity:.75}
.book>*{position:relative}
.book:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.book h3{font-size:clamp(1.55rem,2.3vw,2.18rem);color:var(--ink);margin:82px 0 12px;letter-spacing:-.035em}
.book p{color:var(--muted);line-height:1.75}
.pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.pill{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:7px 11px;color:var(--muted);background:rgba(255,255,255,.05);font-size:12px;font-weight:740}
.cast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.cast-card,.download-card,.log-entry,.author-card,.series-block{border:1px solid var(--line);border-radius:22px;background:var(--panel);padding:22px;position:relative;overflow:hidden;transition:transform .18s,border-color .2s}
.cast-card{cursor:pointer}
.cast-card:hover,.download-card:hover,.author-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}
.avatar{width:64px;height:64px;border:1px solid var(--line);border-radius:18px;display:grid;place-items:center;margin-bottom:18px;color:var(--ink);font-size:24px;font-weight:900;background:rgba(255,255,255,.08)}
.cast-card h3,.download-card h3,.author-card h3{color:var(--ink);font-size:1.34rem;margin:0 0 8px}
.cast-card b{display:block;color:var(--aqua);font-size:13px;margin-bottom:10px}
.cast-card p,.download-card p,.author-card p{color:var(--muted);line-height:1.7}
.section-cta{margin-top:24px}
.download-panel,.author-panel{
  border:1px solid var(--line);
  border-radius:34px;
  padding:clamp(24px,4vw,44px);
  background:var(--card-fill);
  backdrop-filter:blur(18px);
}
.download-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:28px}
.download-card{min-height:230px;display:flex;flex-direction:column;justify-content:space-between}
.download-card .btn{width:max-content;max-width:100%}
.timeline{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative}
.log-entry h3{color:var(--ink);margin:10px 0 8px}
.log-entry p{color:var(--muted);line-height:1.68;margin-bottom:0}
html[data-theme="light"] .world-card,
html[data-theme="light"] .book,
html[data-theme="light"] .cast-card,
html[data-theme="light"] .download-card,
html[data-theme="light"] .log-entry,
html[data-theme="light"] .author-card,
html[data-theme="light"] .series-block,
html[data-theme="light"] .portal-note{
  background:rgba(255,255,255,.9);
  box-shadow:0 1px 0 rgba(255,255,255,.88) inset;
}
html[data-theme="light"] .download-panel,
html[data-theme="light"] .author-panel{background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(244,248,246,.84))}
html[data-theme="light"] .pill{background:rgba(17,21,20,.045);color:#47544f}
html[data-theme="light"] .shan-stage{
  background:#e9f2ee;
  box-shadow:0 30px 90px rgba(47,68,62,.16),inset 0 1px 0 rgba(255,255,255,.78);
}
html[data-theme="light"] .shan-stage::before{
  background:
    linear-gradient(180deg,rgba(255,255,255,.52),transparent 15%,transparent 70%,rgba(31,53,49,.14)),
    radial-gradient(900px circle at var(--mx) var(--my),rgba(255,255,255,.42),transparent 58%);
  mix-blend-mode:normal;
}
html[data-theme="light"] .stage-hud{
  border-color:rgba(20,45,42,.16);
  background:rgba(255,255,255,.56);
  color:#111716;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78);
}
html[data-theme="light"] .stage-hud small{color:rgba(22,43,39,.58)}
html[data-theme="light"] .stage-hud p{color:rgba(31,50,46,.72)}
html[data-theme="light"] .stage-readout span{
  border-color:rgba(20,45,42,.12);
  background:rgba(255,255,255,.5);
}
html[data-theme="light"] .stage-readout b{color:#111716}
html[data-theme="light"] .stage-readout small{color:rgba(31,50,46,.54)}
html[data-theme="light"] .stage-nodebar i{background:rgba(17,21,20,.1)}
html[data-theme="light"] .stage-cursor{
  border-color:rgba(20,105,96,.22);
  mix-blend-mode:multiply;
}
html[data-theme="light"] .stage-cursor::before,
html[data-theme="light"] .stage-cursor::after{
  background:linear-gradient(90deg,transparent,rgba(20,105,96,.42),transparent);
}
html[data-theme="light"] .stage-controls button{
  background:rgba(255,255,255,.72);
  color:#111716;
}
html[data-theme="light"] .stage-controls button.active{
  background:linear-gradient(135deg,#f0bd66,#d79635);
  color:#11100b;
}
.author-panel{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}
.author-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.footer{text-align:center;padding:clamp(70px,9vw,130px) 0}
.footer h2{margin-inline:auto}
.footer p{margin-inline:auto}
.modal-shell{position:fixed;inset:0;z-index:120;display:none;place-items:center;padding:20px;background:rgba(0,0,0,.48);backdrop-filter:blur(18px)}
.modal-shell.open{display:grid;animation:fade .18s ease both}
.modal-shell.open .modal{animation:modalIn .26s cubic-bezier(.16,1,.3,1) both}
.modal{width:min(1040px,100%);max-height:min(88vh,860px);overflow:hidden;border:1px solid var(--line);border-radius:24px;background:color-mix(in srgb,var(--bg2) 90%,transparent);box-shadow:0 44px 120px rgba(0,0,0,.5)}
html[data-theme="light"] .modal{background:rgba(250,252,250,.96)}
.modal-top{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--line)}
.modal-lights{display:flex;gap:8px}.modal-lights i{width:11px;height:11px;border-radius:50%;background:var(--accent)}.modal-lights i:nth-child(2){background:var(--aqua)}.modal-lights i:nth-child(3){background:var(--rose)}
.modal-content{padding:clamp(22px,4vw,38px);overflow:auto;max-height:calc(88vh - 58px)}
.modal-content h2{font-size:clamp(2.2rem,5vw,4.6rem);color:var(--ink);letter-spacing:-.045em;line-height:.98}
.modal-content>p{color:var(--muted);line-height:1.75;max-width:72ch}
.series-block{margin-top:16px}
.series-block h3{margin:0 0 8px;color:var(--ink)}
.series-block p{color:var(--muted);line-height:1.65}
.series-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:14px}
.series-person{border:1px solid var(--line);border-radius:16px;padding:14px;background:rgba(255,255,255,.045)}
.series-person h4{margin:0 0 6px;color:var(--ink)}
.series-person b{color:var(--aqua);font-size:12px}
.series-person p{margin:8px 0 0;color:var(--muted);line-height:1.58}
.notice{position:fixed;z-index:150;left:50%;bottom:24px;max-width:min(560px,calc(100% - 32px));padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--glass) 94%,transparent);backdrop-filter:blur(18px);color:var(--ink);box-shadow:0 24px 70px var(--shadow);opacity:0;transform:translate(-50%,18px);pointer-events:none;transition:.22s ease}
.notice.show{opacity:1;transform:translate(-50%,0)}
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .58s cubic-bezier(.16,1,.3,1),transform .58s cubic-bezier(.16,1,.3,1)}
[data-reveal].visible{opacity:1;transform:none}
[data-reveal].guixu-copy,
[data-reveal].guixu-expedition{
  transform:translateX(-50%) translateY(18px);
}
[data-reveal].guixu-copy.visible{
  opacity:var(--guixu-copy-opacity,1);
  transform:translateX(-50%) translateY(var(--guixu-copy-y,0px));
}
[data-reveal].guixu-expedition.visible{opacity:1;transform:translateX(-50%)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:1040px){
  .nav-shell{grid-template-columns:1fr auto}
  nav{display:none}
  .nav-tools{grid-column:1/-1;justify-content:space-between}
  .hero,.portal,.corridor,.author-panel{grid-template-columns:1fr}
  .portal{align-items:start}
  .portal-header{max-width:860px}
  .guixu-hud{grid-template-columns:1fr;top:108svh}
  .guixu-copy{justify-items:start;text-align:left}
  .guixu-copy .eyebrow{justify-self:start}
  .guixu-copy h2{width:min(620px,100%)}
  .guixu-copy p{width:min(620px,100%)}
  .guixu-expedition{grid-template-columns:1fr;top:178svh}
  .guixu-expedition-head{position:relative;top:auto}
  .corridor-sticky{position:relative;top:auto}
  .book,.book:nth-child(3),.book:nth-child(4),.book:nth-child(5){grid-column:span 6}
  .portal-notes{grid-template-columns:1fr}
}
@media(max-width:680px){
  html{scroll-padding-top:112px}
  .section-wrap{width:calc(100% - 24px)}
  .nav-shell{top:8px;width:calc(100% - 16px);min-height:0;border-radius:20px;gap:8px;padding:8px;grid-template-columns:1fr}
  .brand-mark{width:34px;height:34px;border-radius:13px}
  .brand span:last-child{max-width:72vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .nav-tools{grid-column:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;justify-self:stretch}
  .langbar{padding:3px}
  .langbar button{min-width:34px;min-height:30px;padding:5px 7px}
  .theme-toggle{width:auto;min-width:112px;min-height:34px;padding:7px 12px}
  .langbar{width:100%;justify-content:center}
  .hero{display:block;padding-top:112px;padding-bottom:42px}
  h1{font-size:clamp(2.85rem,15vw,4.05rem);line-height:.95;letter-spacing:-.034em;max-width:100%}
  h1 .subline{font-size:.3em}
  .hero-lead{font-size:1rem;line-height:1.72}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .hero-actions .btn,.hero-actions button{width:100%}
  .hero-orbit{min-height:390px;margin-top:34px}
  .portal{min-height:auto;padding:52px 0 74px;gap:18px;scroll-margin-top:176px}
  .portal-header{margin-bottom:0}
  .portal-header p,.section-head p,.corridor-sticky p,.download-panel p,.author-panel p,.footer p{font-size:1rem;line-height:1.72;margin-top:14px}
  .shan-stage{min-height:72svh;border-radius:24px}
  .stage-hud{left:12px;right:12px;top:clamp(190px,28svh,236px);width:auto;padding:14px}
  .stage-hud strong{font-size:1.25rem}
  .stage-hud p{font-size:.94rem;line-height:1.55}
  .stage-readout{gap:6px;margin-top:12px}
  .stage-readout span{padding:7px 8px;border-radius:11px}
  .stage-readout b{font-size:.94rem}
  .stage-nodebar{margin-top:9px}
  .stage-cursor{width:70px;height:70px}
  .stage-controls{left:12px;right:12px;bottom:12px}
  .stage-controls button{flex:1 1 46%;padding-inline:10px;font-size:.86rem;min-height:38px}
  .stage-controls button.active{flex-basis:100%}
  .portal-header h2,.section-head h2,.corridor-sticky h2,.download-panel h2,.author-panel h2,.footer h2{font-size:clamp(2rem,10.5vw,3.15rem);letter-spacing:-.038em}
  .guixu-cinema{min-height:324svh}
  .guixu-copy{top:18svh;width:calc(100% - 28px)}
  .guixu-copy h2{width:100%;font-size:clamp(2.05rem,10.8vw,3.35rem);line-height:1.02;letter-spacing:-.028em;max-width:9.8ch}
  .guixu-copy p{width:min(100%,32ch);font-size:.9rem;line-height:1.56;margin-top:12px}
  .guixu-copy .eyebrow{font-size:.72rem}
  html[data-theme="light"] .guixu-copy{
    padding:12px 12px 14px;
    border:1px solid rgba(22,62,56,.12);
    border-radius:18px;
    background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(236,247,243,.38));
    backdrop-filter:blur(10px) saturate(140%);
  }
  .guixu-hud{top:96svh;gap:10px}
  .guixu-beat{min-height:auto;padding:14px 0 8px;border-radius:0;backdrop-filter:none}
  .guixu-expedition{top:210svh;gap:20px}
  html[data-theme="light"] .guixu-expedition-head{
    padding:12px 0 10px;
    background:linear-gradient(90deg,rgba(242,250,247,.86),rgba(242,250,247,.56) 58%,transparent);
    box-decoration-break:clone;
  }
  .guixu-expedition-head h2{font-size:clamp(2.1rem,11vw,3.25rem)}
  .guixu-expedition-head p{font-size:1rem;line-height:1.68}
  .guixu-roster{grid-template-columns:1fr;gap:10px}
  .guixu-person{min-height:150px;padding:16px;border-radius:16px;backdrop-filter:blur(10px)}
  .guixu-person h3{margin-top:24px}
  .book-grid{grid-template-columns:1fr}
  .book,.book:nth-child(3),.book:nth-child(4),.book:nth-child(5){grid-column:1;min-height:330px}
  .book h3{margin-top:58px}
  .timeline{grid-template-columns:1fr}
  .download-card .btn{width:100%}
  .author-actions{justify-content:stretch}
  .author-actions .btn,.author-actions button{width:100%}
  .modal-shell{padding:10px}
  .modal{border-radius:18px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  [data-reveal].guixu-copy,
  [data-reveal].guixu-expedition{transform:translateX(-50%)!important}
  .desk-plane,.book{transform:none!important}
}
