/* 品牌画册 book.html：一本可以左右翻页的 3D 书。页面尺寸由 book.js 按屏幕大小算出，书里所有尺寸都按 --u（页宽的 1%）缩放 */
:root{
  color-scheme:dark;
  --bg:#08080A;--bg-2:#0E0E12;--glass:rgba(16,16,19,.72);--solid:#121216;
  --line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.18);
  --fg:#F4F1EC;--fg-2:#ADA7A1;--fg-3:#8C8681;
  --accent:#E8182B;--accent-hi:#FF5262;--accent-soft:rgba(232,24,43,.14);--accent-glow:rgba(232,24,43,.45);
  --violet:#8F6BFF;--cyan:#24BDF9;--magenta:#FD27BA;--warm:#D9B77E;
  --display:"Noto Serif SC","Noto Serif CJK SC","Songti SC","STSong","SimSun",serif;
  --latin:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --body:"Noto Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --nav-h:72px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
main{position:relative;z-index:2;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px;border-radius:6px}
.wrap{max-width:1240px;margin-inline:auto;padding-inline:clamp(16px,5vw,64px)}
h1,h2,h3{text-wrap:balance}
.stats b,.price b,.chip small,.tl time,.gal-ctl span,.f-plate small,.steps li>span,.sec-h .no{font-variant-numeric:lining-nums}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- 背景舞台光 ---------- */
.sky{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  background:radial-gradient(ellipse 70% 50% at 50% -10%,rgba(143,107,255,.16),transparent 70%),radial-gradient(ellipse 60% 40% at 85% 110%,rgba(232,24,43,.12),transparent 70%),var(--bg)}
.sky i{position:absolute;top:-10vh;width:34vw;height:120vh;transform-origin:50% 0;filter:blur(18px);opacity:.42;mix-blend-mode:screen;animation:sway 14s ease-in-out infinite alternate}
.sky i:nth-child(1){left:2vw;background:linear-gradient(180deg,rgba(198,29,252,.55),rgba(198,29,252,0) 75%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);transform:rotate(-22deg)}
.sky i:nth-child(2){left:33vw;background:linear-gradient(180deg,rgba(253,39,186,.5),rgba(253,39,186,0) 70%);clip-path:polygon(47% 0,53% 0,90% 100%,10% 100%);animation-duration:18s;animation-delay:-6s}
.sky i:nth-child(3){right:2vw;background:linear-gradient(180deg,rgba(36,189,249,.5),rgba(36,189,249,0) 75%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);transform:rotate(22deg);animation-duration:16s;animation-delay:-3s}
@keyframes sway{from{rotate:-4deg}to{rotate:4deg}}
.sky::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 80% at 50% 40%,transparent 40%,rgba(8,8,10,.8) 100%)}

/* ---------- 导航 ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .4s var(--ease),border-color .4s;border-bottom:1px solid transparent}
.nav.solid{background:rgba(8,8,10,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.nav-in{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav-l{display:flex;align-items:center;gap:14px;min-width:0}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand img{width:40px;height:40px;object-fit:contain}
.brand-txt{display:flex;flex-direction:column;line-height:1.1}
.brand-txt b{font-size:19px;font-weight:700;letter-spacing:.08em}
.brand-txt small{font-size:10px;letter-spacing:.42em;color:var(--fg-3);margin-top:4px}
.nav-links{display:flex;gap:34px;font-size:15px}
.nav-links a{color:var(--fg-2);transition:color .25s;position:relative}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--fg)}
.nav-links a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;border-radius:2px;background:var(--accent)}
.nav-cta{display:flex;align-items:center;gap:10px}
.menu-btn{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--fg);align-items:center;justify-content:center;cursor:pointer;padding:0}
.menu-panel{border-top:1px solid var(--line);background:rgba(8,8,10,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.menu-panel nav{display:flex;flex-direction:column;padding-block:8px 16px}
.menu-panel a{display:flex;align-items:center;min-height:52px;border-bottom:1px solid var(--line);font-size:16px;color:var(--fg-2)}
.menu-panel a[aria-current="page"]{color:var(--fg)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;font-size:15px;font-weight:500;letter-spacing:.05em;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s,background .3s;border:1px solid transparent;white-space:nowrap;cursor:pointer}
.btn-red{background:var(--accent);color:#fff;box-shadow:0 18px 40px -14px var(--accent-glow)}
.btn-red:hover{transform:translateY(-2px);box-shadow:0 22px 48px -14px var(--accent-glow)}
.btn-line{border-color:var(--line-2);background:rgba(8,8,10,.35)}
.btn-line:hover{border-color:rgba(255,255,255,.45)}
.btn.sm{min-height:40px;padding:0 18px;font-size:14px}

/* ---------- 舞台 ---------- */
.bk-main{position:relative;z-index:2;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:calc(var(--nav-h) + env(safe-area-inset-top,0px) + 20px) max(16px,env(safe-area-inset-right,0px)) 28px max(16px,env(safe-area-inset-left,0px))}
.stage{--pw:480px;--ph:660px;--u:4.8px;position:relative;width:calc(var(--pw) * 2);height:var(--ph);max-width:100%;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.stage.single{width:var(--pw);overflow:hidden;border-radius:calc(var(--u) * 1.2)}
.book{position:absolute;left:50%;top:0;width:calc(var(--pw) * 2);height:100%;margin-left:calc(var(--pw) * -1);perspective:calc(var(--pw) * 5);transform:translateX(var(--shift,0px));transition:transform .9s cubic-bezier(.3,.1,.2,1)}
.book::after{content:"";position:absolute;left:4%;right:4%;bottom:calc(var(--u) * -5);height:calc(var(--u) * 6);border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.75),transparent 70%);filter:blur(8px);z-index:-1;pointer-events:none}
.stage.single .book::after{display:none}

/* 书页叠起来的厚度 */
.edge{position:absolute;top:calc(var(--u) * .4);bottom:calc(var(--u) * .4);z-index:0;transition:width .9s;
  background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(0,0,0,0) 20%,rgba(0,0,0,0) 80%,rgba(60,40,20,.25)),repeating-linear-gradient(90deg,#EFE9DE 0 1px,#D9D0C1 1px 2px,#E8E1D4 2px 3px,#C7BCA9 3px 4px);
  box-shadow:0 14px 34px -8px rgba(0,0,0,.75),0 3px 6px rgba(0,0,0,.35)}
.edge-l{right:100%;margin-right:-1px;width:var(--tl,0px);border-radius:5px 0 0 5px}
.edge-r{left:100%;margin-left:-1px;width:var(--tr,0px);border-radius:0 5px 5px 0}
/* 硬壳封皮：在书页外面露出一圈 */
.board{position:absolute;top:calc(var(--u) * -1);bottom:calc(var(--u) * -1.8);z-index:-1;opacity:0;transition:opacity .4s,width .9s;pointer-events:none;
  background:radial-gradient(ellipse 80% 60% at 50% 30%,rgba(255,255,255,.05),rgba(0,0,0,0)),linear-gradient(160deg,#45303A,#1E151B 70%);
  box-shadow:0 calc(var(--u) * 4) calc(var(--u) * 8) calc(var(--u) * -2) rgba(0,0,0,.85),inset 0 0 0 1px rgba(217,183,126,.32)}
.board-l{right:50%;width:calc(var(--pw) + var(--tl,0px) + var(--u) * 1.4);border-radius:calc(var(--u) * 1.4) 0 0 calc(var(--u) * 1.4)}
.board-r{left:50%;width:calc(var(--pw) + var(--tr,0px) + var(--u) * 1.4);border-radius:0 calc(var(--u) * 1.4) calc(var(--u) * 1.4) 0}
.book.has-l .board-l,.book.has-r .board-r{opacity:1}
.stage.single .board{display:none}
/* 书页侧边最外一圈的暗边，越往外越暗，看起来更厚 */
.edge::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.edge-l::after{background:linear-gradient(90deg,rgba(40,25,10,.45),rgba(40,25,10,0) 60%,rgba(0,0,0,.18))}
.edge-r::after{background:linear-gradient(270deg,rgba(40,25,10,.45),rgba(40,25,10,0) 60%,rgba(0,0,0,.18))}
/* 中间书缝：两页之间压下去的深槽 */
.crease{position:absolute;left:50%;top:0;bottom:0;width:calc(var(--u) * 9);margin-left:calc(var(--u) * -4.5);z-index:99999;pointer-events:none;opacity:0;transition:opacity .5s;
  background:linear-gradient(90deg,rgba(0,0,0,0),rgba(30,15,5,.16) 28%,rgba(15,6,0,.55) 47%,rgba(5,2,0,.72) 50%,rgba(15,6,0,.55) 53%,rgba(30,15,5,.16) 72%,rgba(0,0,0,0))}
.book.spread .crease{opacity:1}
.stage.single .crease{display:none}

.leaf{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:0 50%;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.3,.1,.2,1)}
.leaf.flip{transform:rotateY(-180deg)}
.face{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;font-size:max(12.5px,calc(var(--u) * 3.3));line-height:1.75}
.face.back{transform:rotateY(180deg)}
/* 翻页时的明暗 */
.face::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.05))}
.face.back::after{background:linear-gradient(270deg,rgba(0,0,0,.45),rgba(0,0,0,.05))}
.leaf.go .front::after{animation:shadeA 1.1s ease-in}
.leaf.go .back::after{animation:shadeB 1.1s ease-out}
.leaf.ret .back::after{animation:shadeA 1.1s ease-in}
.leaf.ret .front::after{animation:shadeB 1.1s ease-out}
@keyframes shadeA{0%{opacity:0}50%{opacity:1}100%{opacity:1}}
@keyframes shadeB{0%{opacity:1}50%{opacity:1}100%{opacity:0}}

/* ---------- 纸面 ---------- */
.pg{--paper:#F4EFE7;--ink:#1C1814;--ink-2:#5E554C;--ink-3:#8A8076;--red:#C8102E;--rule:rgba(28,24,20,.14);
  background:linear-gradient(90deg,rgba(25,12,4,.5) 0,rgba(25,12,4,.26) 2.5%,rgba(25,12,4,.1) 6%,rgba(255,255,255,.45) 9.5%,rgba(255,255,255,0) 15%),radial-gradient(ellipse 120% 90% at 70% 30%,#FBF8F2,var(--paper) 70%);color:var(--ink);
  padding:calc(var(--u) * 10) calc(var(--u) * 9) calc(var(--u) * 11) calc(var(--u) * 11);display:flex;flex-direction:column;gap:calc(var(--u) * 3.2)}
.pg.back{background:linear-gradient(270deg,rgba(25,12,4,.5) 0,rgba(25,12,4,.26) 2.5%,rgba(25,12,4,.1) 6%,rgba(255,255,255,.45) 9.5%,rgba(255,255,255,0) 15%),radial-gradient(ellipse 120% 90% at 30% 30%,#FBF8F2,var(--paper) 70%);padding-left:calc(var(--u) * 9);padding-right:calc(var(--u) * 11)}
.pg>*{flex-shrink:0}
.pg p,.pg h2,.pg ul,.pg ol,.pg dl,.pg figure,.pg blockquote{margin:0}
.pg>p{color:var(--ink-2)}
.rh{position:absolute;left:calc(var(--u) * 11);right:calc(var(--u) * 9);top:calc(var(--u) * 4.5);display:flex;justify-content:space-between;font-size:calc(var(--u) * 2.2);letter-spacing:.24em;color:var(--ink-3) !important;border-bottom:1px solid var(--rule);padding-bottom:calc(var(--u) * 1.4)}
.pg.back .rh{left:calc(var(--u) * 9);right:calc(var(--u) * 11)}
.folio{position:absolute;bottom:calc(var(--u) * 4.5);left:0;right:0;text-align:center;font-family:var(--latin);font-size:max(12px,calc(var(--u) * 3));letter-spacing:.2em;color:var(--ink-3) !important;font-variant-numeric:lining-nums}
.pg-no{font-family:var(--latin);font-style:italic;font-size:calc(var(--u) * 13);line-height:.8;color:var(--red) !important;font-variant-numeric:lining-nums;margin-top:calc(var(--u) * 1) !important}
.pg-h{font-family:var(--display);font-weight:900;font-size:calc(var(--u) * 6.6);line-height:1.3;letter-spacing:.04em;text-wrap:balance}
.pg-big{font-family:var(--display);font-weight:900;font-size:calc(var(--u) * 9);line-height:1.22;letter-spacing:.04em}
.pg-big em{font-style:normal;color:var(--red)}
.pg-lead{font-family:var(--display);font-weight:600;font-size:calc(var(--u) * 4.2);line-height:1.6;color:var(--ink) !important}
.pg-tag{align-self:flex-start;padding:calc(var(--u) * .4) calc(var(--u) * 2.4);border-radius:999px;border:1px solid var(--red);color:var(--red) !important;font-size:max(11px,calc(var(--u) * 2.6));letter-spacing:.14em}
.pg-note{font-size:max(11px,calc(var(--u) * 2.6));color:var(--ink-3) !important}
.pg-img{border-radius:calc(var(--u) * 1.6);overflow:hidden;box-shadow:0 calc(var(--u) * 2) calc(var(--u) * 5) calc(var(--u) * -2) rgba(40,20,10,.45);border:1px solid rgba(0,0,0,.08);background:#111}
.pg-img{aspect-ratio:16/9;max-width:100%}
.pg-img img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}
.pg-img.wide{margin-top:auto;aspect-ratio:16/10}
.pg-img.low{aspect-ratio:2/1}
.pg-phone{border-radius:calc(var(--u) * 2.4);overflow:hidden;border:calc(var(--u) * .7) solid #16141A;box-shadow:0 calc(var(--u) * 2) calc(var(--u) * 5) calc(var(--u) * -2) rgba(40,20,10,.55);background:#000}
.pg-phone img{width:100%;display:block}
.devs{position:relative;margin-top:auto;padding:0 calc(var(--u) * 12) calc(var(--u) * 4) 0}
.devs .pg-img{aspect-ratio:1920/1520}
.devs .pg-phone{position:absolute;right:0;bottom:0;width:26%;aspect-ratio:780/1688;transform:rotate(4deg)}
.devs .pg-phone img{height:100%;object-fit:cover}
.phones{flex:1 1 0;min-height:calc(var(--u) * 24);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u) * 3);padding-top:calc(var(--u) * 4)}
.phones .pg-phone{height:100%;min-height:0}
.phones .pg-phone img{height:100%;object-fit:cover;object-position:50% 0}
.phones .pg-phone:nth-child(2){transform:translateY(calc(var(--u) * -4))}
.pg-go{align-self:flex-start;display:inline-flex;align-items:center;gap:calc(var(--u) * 1.4);margin-top:auto;padding:calc(var(--u) * 1.4) calc(var(--u) * 3.6);border-radius:999px;background:var(--ink);color:#F4EFE7;font-size:max(11px,calc(var(--u) * 2.9));letter-spacing:.08em;transition:background .3s}
.pg-go::after{content:"→"}
.pg-go:hover{background:var(--red)}
.phones+.pg-go,.pg-img+.pg-go,.pg-artist+.pg-go{margin-top:0}
.pts{list-style:none;padding:0;display:flex;flex-direction:column;gap:calc(var(--u) * 1)}
.pts li{padding-left:calc(var(--u) * 3.4);position:relative;color:var(--ink-2)}
.pts li::before{content:"";position:absolute;left:0;top:.75em;width:calc(var(--u) * 1.6);height:1px;background:var(--red)}

.toc{list-style:none;padding:0;display:flex;flex-direction:column;margin-top:calc(var(--u) * 1) !important}
.toc a{display:flex;align-items:baseline;gap:calc(var(--u) * 2);padding:calc(var(--u) * 1.5) 0;border-bottom:1px solid var(--rule);color:var(--ink);transition:color .25s,padding .25s}
.toc a:hover{color:var(--red);padding-left:calc(var(--u) * 1.4)}
.toc span{flex:1;min-width:0}
.toc i{font-style:normal;font-family:var(--latin);font-size:calc(var(--u) * 3.6);color:var(--red);font-variant-numeric:lining-nums}

.nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--rule);margin-top:calc(var(--u) * 2)}
.nums div{padding:calc(var(--u) * 2.4) 0;border-bottom:1px solid var(--rule)}
.nums div:nth-child(odd){border-right:1px solid var(--rule);padding-right:calc(var(--u) * 3)}
.nums div:nth-child(even){padding-left:calc(var(--u) * 4)}
.nums b{display:block;font-family:var(--latin);font-weight:600;font-size:calc(var(--u) * 11);line-height:1;color:var(--red);font-variant-numeric:lining-nums}
.nums span{font-size:max(11px,calc(var(--u) * 2.8));color:var(--ink-2)}
.pg-quote{font-family:var(--display);font-weight:700;font-size:calc(var(--u) * 4.6);line-height:1.6;padding-left:calc(var(--u) * 3);border-left:calc(var(--u) * .6) solid var(--red)}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--u) * 4)}
.cols small,.vip small,.mods small{display:block;font-size:calc(var(--u) * 2.3);letter-spacing:.24em;color:var(--red)}
.cols b{display:block;font-family:var(--display);font-size:calc(var(--u) * 3.5);line-height:1.5;margin:calc(var(--u) * .6) 0}
.cols p{font-size:max(11px,calc(var(--u) * 2.8));color:var(--ink-2);margin:0}

.pg-artist{position:relative;flex:1 1 0;min-height:calc(var(--u) * 30);width:58%;align-self:center;border-radius:calc(var(--u) * 2);overflow:hidden;box-shadow:0 calc(var(--u) * 3) calc(var(--u) * 6) calc(var(--u) * -2) rgba(40,20,10,.55);transform:rotate(-2.5deg)}
.pg-artist img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.pg-artist figcaption{position:absolute;left:0;right:0;bottom:0;padding:calc(var(--u) * 8) calc(var(--u) * 3.4) calc(var(--u) * 3);background:linear-gradient(transparent,rgba(8,8,10,.85));color:#fff;display:flex;flex-direction:column}
.pg-artist b{font-family:var(--display);font-size:calc(var(--u) * 5.4);letter-spacing:.12em;line-height:1.2}
.pg-artist small{font-size:max(11px,calc(var(--u) * 2.5));color:rgba(255,255,255,.75)}

.vip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--u) * 4);border-top:1px solid var(--rule);padding-top:calc(var(--u) * 3)}
.vip ul{list-style:none;padding:0;margin:calc(var(--u) * 1.4) 0 0;display:flex;flex-direction:column;gap:calc(var(--u) * 1.2)}
.vip li{font-size:max(12px,calc(var(--u) * 3));padding-left:calc(var(--u) * 3);position:relative}
.vip li::before{content:"✦";position:absolute;left:0;color:var(--red);font-size:.8em}

.hl6{list-style:none;padding:0;counter-reset:h;display:flex;flex-direction:column;gap:calc(var(--u) * 2.2)}
.hl6 li{counter-increment:h;display:grid;grid-template-columns:calc(var(--u) * 9) minmax(0,1fr);row-gap:calc(var(--u) * .2);padding-bottom:calc(var(--u) * 2);border-bottom:1px solid var(--rule)}
.hl6 li::before{content:"0" counter(h);grid-row:span 2;font-family:var(--latin);font-size:calc(var(--u) * 6);line-height:1;color:var(--red);font-variant-numeric:lining-nums}
.hl6 b{font-family:var(--display);font-size:calc(var(--u) * 3.5)}
.hl6 span{font-size:max(11px,calc(var(--u) * 2.75));color:var(--ink-2);line-height:1.6}

.mods{display:flex;flex-direction:column;gap:calc(var(--u) * 3.4)}
.mods div{padding-top:calc(var(--u) * 2.4);border-top:1px solid var(--rule)}
.mods p{margin-top:calc(var(--u) * 1) !important;font-size:max(12px,calc(var(--u) * 3.1));line-height:1.9}

.scenes{display:flex;flex-direction:column;gap:calc(var(--u) * 2.2)}
.scenes div{display:grid;grid-template-columns:calc(var(--u) * 9) minmax(0,1fr);row-gap:calc(var(--u) * .2)}
.scenes i{grid-row:span 2;font-style:normal;font-family:var(--latin);font-size:calc(var(--u) * 6);line-height:1;color:var(--red);font-variant-numeric:lining-nums}
.scenes b{font-family:var(--display);font-size:calc(var(--u) * 3.6)}
.scenes p{font-size:max(11px,calc(var(--u) * 2.8));color:var(--ink-2);margin:0}
.scenes+.pg-img{margin-top:auto}

.roles{display:flex;flex-direction:column}
.roles div{display:grid;grid-template-columns:calc(var(--u) * 16) minmax(0,1fr);gap:calc(var(--u) * 2);padding:calc(var(--u) * 2.2) 0;border-bottom:1px solid var(--rule)}
.roles dt{font-family:var(--display);font-weight:700;font-size:calc(var(--u) * 3.8)}
.roles dd{margin:0;font-size:max(11px,calc(var(--u) * 2.9));color:var(--ink-2)}

.zero{display:flex;align-items:flex-end;gap:calc(var(--u) * 2)}
.zero b{font-family:var(--latin);font-weight:600;font-size:calc(var(--u) * 26);line-height:.8;color:var(--red)}
.zero span{font-family:var(--display);font-weight:900;font-size:calc(var(--u) * 7);letter-spacing:.2em}
.contact{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.contact div{display:flex;justify-content:space-between;align-items:baseline;gap:calc(var(--u) * 2);padding:calc(var(--u) * 1.8) 0;border-bottom:1px solid var(--rule)}
.contact dt{font-size:max(11px,calc(var(--u) * 2.6));letter-spacing:.2em;color:var(--ink-3)}
.contact dd{margin:0;font-size:calc(var(--u) * 3.3);font-weight:500;overflow-wrap:anywhere;text-align:right}

/* ---------- 封面、封底 ---------- */
.cover{background:radial-gradient(ellipse 90% 60% at 50% 100%,rgba(232,24,43,.35),transparent 70%),linear-gradient(160deg,#1A1620,#0B0A0E 60%);color:#F4F1EC;border-radius:0 calc(var(--u) * 1.4) calc(var(--u) * 1.4) 0;box-shadow:inset calc(var(--u) * 1.6) 0 calc(var(--u) * 2) calc(var(--u) * -1) rgba(0,0,0,.6),inset 0 0 0 1px rgba(217,183,126,.25)}
.cover-back{border-radius:calc(var(--u) * 1.4) 0 0 calc(var(--u) * 1.4);box-shadow:inset calc(var(--u) * -1.6) 0 calc(var(--u) * 2) calc(var(--u) * -1) rgba(0,0,0,.6),inset 0 0 0 1px rgba(217,183,126,.25)}
.cv-bg{position:absolute;left:0;right:0;bottom:0;width:100%;height:58%;object-fit:cover;object-position:50% 100%;opacity:.55;mask-image:linear-gradient(transparent,#000 50%);-webkit-mask-image:linear-gradient(transparent,#000 50%)}
.cv-in{position:absolute;inset:calc(var(--u) * 7);border:1px solid rgba(217,183,126,.35);border-radius:calc(var(--u) * 1);display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(var(--u) * 12) calc(var(--u) * 5) calc(var(--u) * 6)}
.cv-in p{margin:0}
.cv-logo{width:calc(var(--u) * 16);height:auto;filter:drop-shadow(0 0 calc(var(--u) * 4) rgba(232,24,43,.5))}
.cv-eb{margin-top:calc(var(--u) * 6) !important;font-family:var(--latin);font-size:max(11px,calc(var(--u) * 2.8));letter-spacing:.42em;color:#D9B77E}
.cv-t{margin:calc(var(--u) * 3) 0 0;font-family:var(--display);font-weight:900;font-size:calc(var(--u) * 14);line-height:1.1;letter-spacing:.14em;text-indent:.14em;background:linear-gradient(180deg,#FFFFFF,#D9B77E);-webkit-background-clip:text;background-clip:text;color:transparent}
.cv-t.sm{font-size:calc(var(--u) * 10);margin-top:calc(var(--u) * 6)}
.cv-sub{margin-top:calc(var(--u) * 2) !important;font-family:var(--display);font-size:calc(var(--u) * 5);letter-spacing:.6em;text-indent:.6em}
.cv-line{margin-top:calc(var(--u) * 5) !important;font-size:calc(var(--u) * 3.2);letter-spacing:.2em;color:rgba(244,241,236,.8)}
.cv-foot{margin-top:auto !important;width:100%;display:flex;justify-content:space-between;font-size:calc(var(--u) * 2.4);letter-spacing:.24em;color:rgba(244,241,236,.6)}

/* 翻页提示：鼠标停在书页上时，那一页轻轻掀起 */
.leaf.peek{transform:rotateY(-7deg)}
.leaf.flip.peek{transform:rotateY(-173deg)}
.stage:not(.single){cursor:pointer}

/* ---------- 控制条 ---------- */
.ctl{display:flex;align-items:center;gap:14px;position:relative;z-index:3}
.ctl-b{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-2);background:rgba(8,8,10,.5);color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .3s,opacity .3s}
.ctl-b:hover{border-color:var(--accent-hi)}
.ctl-b:disabled{opacity:.35;cursor:default}
.ctl-n{min-width:96px;text-align:center;font-family:var(--latin);font-size:18px;letter-spacing:.16em;color:var(--fg-2);font-variant-numeric:lining-nums}
.ctl-toc{height:40px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--fg-2);font-size:14px;cursor:pointer;margin-left:6px}
.ctl-toc:hover{color:var(--fg);border-color:rgba(255,255,255,.4)}
.hint{margin:0;max-width:34em;text-align:center;font-size:13px;color:var(--fg-3);position:relative;z-index:3}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (max-width:1000px){
  .nav-links{display:none}
  .menu-btn{display:inline-flex}
}
@media (max-width:560px){
  .nav .btn{min-height:40px;padding:0 14px;font-size:13.5px}
  .brand-txt small{display:none}
  .bk-main{justify-content:flex-start;gap:14px}
  .hint{font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  .sky i{animation:none!important}
  .leaf,.book,.edge{transition:none}
  .face::after{animation:none!important}
}
/* 手机上一次看一页，留出一点余量 */
.stage.single .toc a{padding:calc(var(--u) * 1.1) 0}
.stage.single .pg-img.low{aspect-ratio:12/5}

/* 「建设中」牌子（艺人管理、商业演出两页暂用） */
.pg-bld{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u) * 1.6);aspect-ratio:16/9;max-width:100%;border-radius:calc(var(--u) * 1.6);border:1px dashed rgba(200,16,46,.45);
  background:repeating-linear-gradient(-45deg,rgba(200,16,46,.05) 0 calc(var(--u) * 2),rgba(200,16,46,0) calc(var(--u) * 2) calc(var(--u) * 4)),rgba(255,255,255,.35);text-align:center}
.pg-bld.tall{flex:1;aspect-ratio:auto;min-height:calc(var(--u) * 40);margin-bottom:calc(var(--u) * 6)}
.pg-bld b{font-family:var(--display);font-weight:900;font-size:calc(var(--u) * 9);line-height:1.1;letter-spacing:.2em;padding-left:.2em;color:var(--red)}
.pg-bld small{font-size:max(11px,calc(var(--u) * 2.6));letter-spacing:.12em;color:var(--ink-3)}
