/* 合并样式（build-performance.py 生成，不要手改）：section-ui.css navigation-label.css content-hubs.css era-ui.css live.css me.css site-v2.css */
/* ===== section-ui.css ===== */
/* Only the five collection titles and their optional edge directory. */

.collection-heading.floral-heading{position:relative;isolation:isolate;overflow:hidden;min-height:118px;padding:24px 42px;gap:25px;border:4px solid transparent;border-image:url('assets/ui/gilded-frame.webp?v=4277067976') 90 / 23px / 0 stretch;background:linear-gradient(105deg,#fff9ecb8,#fff4ed66 48%,#efc3d01a),url('assets/ui/peony-paper.webp?v=b8e9df8532') right 52% / auto 410px no-repeat,#f3c9c6;background-clip:padding-box;box-shadow:0 8px 26px #59372a2e,0 0 30px #ffd4e338,inset 0 0 24px #fffcf394;margin-bottom:28px}
.collection-heading.floral-heading:before{content:"";position:absolute;inset:14px;z-index:-1;width:auto;height:auto;opacity:.58;background:radial-gradient(ellipse at 20% 50%,#fffdf4c9,transparent 60%),linear-gradient(115deg,transparent 28%,#fffdf8a1 43%,transparent 58%);mask-image:none;pointer-events:none}
.collection-heading.floral-heading:after{content:"";position:absolute;inset:auto 14px 14px auto;z-index:-1;width:57%;height:38px;opacity:.66;background:url('assets/ui/cloud-sill.webp?v=2f1664d4fd') right bottom / auto 45px no-repeat;mask-image:linear-gradient(90deg,transparent,#000 35%);pointer-events:none}
.floral-heading h2{font-family:var(--serif);font-size:clamp(32px,3.2vw,46px);font-weight:400;line-height:1.3;letter-spacing:.14em;color:#813952;text-shadow:0 1px #fff9ee,0 2px 0 #efbba5,0 0 17px #fffaf5;position:relative}
.floral-heading small{font-family:var(--serif);font-size:21px;line-height:1.25;letter-spacing:.08em;color:#904c3d;min-width:34px;padding:8px 3px;text-align:center;border-block:1px solid #b07849a3;transform:rotate(-3deg)}
.edge-directory{position:fixed;inset:145px auto 80px 0;width:20px;z-index:64;pointer-events:auto}
.edge-directory-toggle{position:absolute;left:0;top:50%;transform:translateY(-50%);width:39px;min-height:106px;padding:12px 9px;border:1px solid #f9ddb5a6;border-left:0;border-radius:0 18px 18px 0;color:#fff7e8;background:linear-gradient(100deg,#6e4c40de,#9e5a74a3 70%,#eac7be61);backdrop-filter:blur(10px);box-shadow:0 0 18px #f4b3c73b;cursor:pointer;font:20px/1.3 var(--serif);writing-mode:vertical-rl;letter-spacing:.2em;transition:opacity .25s,transform .35s}
.edge-directory-toggle:focus-visible{outline:2px solid #fff0c9;outline-offset:3px}
.edge-directory-panel{position:absolute;top:50%;left:14px;width:296px;max-width:calc(100vw - 32px);max-height:calc(100svh - 200px);overflow-y:auto;overscroll-behavior:contain;padding:41px 39px 49px;border:3px solid transparent;border-image:url('assets/ui/gilded-frame.webp?v=4277067976') 90 / 17px / 0 stretch;isolation:isolate;color:#51352b;transform:translate(-115%,-50%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s,transform .4s cubic-bezier(.2,.75,.25,1),visibility .4s;background:linear-gradient(100deg,#fff8eceb,#fff1e6c9 62%,#fbdce55c);background-clip:padding-box;box-shadow:12px 12px 40px #24171238;backdrop-filter:blur(16px)}
.edge-directory-panel:before{content:"";position:absolute;inset:14px;z-index:-1;background:url('assets/ui/peony-paper.webp?v=b8e9df8532') 85% 60% / auto 100%;opacity:.5;mask-image:linear-gradient(100deg,#000 8%,#0008 65%,transparent);pointer-events:none}
.edge-directory-panel:after{content:"";position:absolute;inset:auto 14px 14px;height:34px;z-index:-1;background:url('assets/ui/cloud-sill.webp?v=2f1664d4fd') right bottom / auto 34px;opacity:.55;mask-image:linear-gradient(90deg,#000,transparent);pointer-events:none}
.edge-directory[data-open="true"] .edge-directory-panel{transform:translate(0,-50%);opacity:1;visibility:visible;pointer-events:auto}
.edge-directory[data-open="true"] .edge-directory-toggle{opacity:0;pointer-events:none;transform:translate(-110%,-50%)}
.edge-directory .directory-caption{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;border-bottom:1px solid #9d5a6559;padding-bottom:13px}
.edge-directory .directory-caption strong{font:29px/1.3 var(--serif);letter-spacing:.2em;color:#813952}
.edge-directory .directory-close{display:grid;place-items:center;width:36px;height:36px;border:1px solid #9451645c;border-radius:50%;background:#fff8ee8f;color:#6e483a;font:24px/1 sans-serif;cursor:pointer}
.edge-directory .directory-links{display:grid;gap:8px}
.edge-directory .directory-links a{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 11px;border:1px solid transparent;border-radius:3px;font-size:15px;line-height:1.6;transition:background .2s,border-color .2s,transform .2s}
.edge-directory .directory-links a span{font:18px var(--serif);color:#a2663c}
.edge-directory .directory-links a:hover,.edge-directory .directory-links a:focus-visible,.edge-directory .directory-links a[aria-current="location"]{background:linear-gradient(95deg,#f4acc061,#fff6e34d);border-color:#ac6d6663;box-shadow:inset 3px 0 #ad5875;color:#6a4030}
.edge-directory a:focus-visible,.edge-directory button:focus-visible{outline:2px solid #a5496c;outline-offset:2px}
.edge-directory .directory-top{display:block;margin-top:20px;padding:10px 12px 0;border-top:1px solid #9d5a653b;font-size:14px;color:#83524b}
@media(max-width:760px){
 .collection-heading.floral-heading{min-height:101px;padding:28px 28px;gap:13px;border-width:3px;border-image-width:17px;background-size:auto,auto 310px}
 .floral-heading h2{font-size:32px;letter-spacing:.06em;line-height:1.4}
 .floral-heading small{font-size:17px;min-width:27px;padding-block:6px}
 .collection-heading.floral-heading:before{inset:10px}
 .collection-heading.floral-heading:after{right:10px;bottom:10px;width:65%;height:27px;background-size:auto 32px}
 .edge-directory{top:155px;bottom:110px;width:13px}
 .edge-directory-toggle{width:30px;min-height:88px;padding:11px 5px;font-size:18px}
 .edge-directory-panel{left:8px;padding:36px 32px 44px;max-height:calc(100svh - 195px)}
}
@media(max-width:370px){.collection-heading.floral-heading{padding-inline:20px;gap:9px}.floral-heading h2{font-size:29px;letter-spacing:0}}
@media(prefers-reduced-motion:reduce){.edge-directory-panel,.edge-directory-toggle,.edge-directory .directory-links a{transition:none}}
/* 2026-09-28 左侧「目录」抽屉：滑出时带一点回弹，收回更快（曲线定义在 motion.css） */
.edge-directory-panel{transition:opacity .22s ease,transform .28s var(--ync-glide),visibility 0s linear .28s}
.edge-directory[data-open="true"] .edge-directory-panel{transition:opacity .26s ease,transform .56s var(--ync-pop),visibility 0s}
@media(prefers-reduced-motion:reduce){.edge-directory-panel,.edge-directory[data-open="true"] .edge-directory-panel{transition:none}}
/* Phones (2026-10-03): the 目录 handle slides out with the corner buttons while scrolling down (body.tools-tucked, motion.js) */
@media(max-width:760px){.tools-tucked .edge-directory:not([data-open="true"]) .edge-directory-toggle:not(:focus-visible){opacity:0;pointer-events:none;transform:translate(-110%,-50%)}}
/* 2026-10-03 优化：第 22 项 栏目标题折行更匀称；第 13 项 手机「目录」把手的点击区加宽到 44px（外观不变） */
.floral-heading h2{text-wrap:balance}
@media (pointer:coarse),(max-width:760px){.edge-directory-toggle::after{content:"";position:absolute;top:0;bottom:0;left:0;width:44px}}
/* ===== navigation-label.css ===== */
/* Preserve the navigation typography while fitting the longer home label. */
/* The five approved destinations retain the existing glass island. */
.site-header{width:min(1400px,calc(100% - 40px));gap:16px;padding-inline:22px}
.site-header nav{gap:3px}
.site-header nav a{padding-inline:12px;white-space:nowrap}
@media(max-width:1200px) and (min-width:761px){
 :root{--island-space:156px}
 .site-header{display:grid;grid-template-columns:1fr auto;border-radius:35px;padding:10px 24px;gap:2px 16px}
 .site-header .brand{grid-column:1;grid-row:1}
 .site-header .header-note{grid-column:2;grid-row:1;display:block}
 .site-header nav{grid-column:1 / -1;grid-row:2;justify-content:center}
}
@media(max-width:760px){
 :root{--island-space:180px}
 .site-header{width:calc(100% - 24px);padding:8px 12px 11px;gap:3px}
 .site-header nav{flex-wrap:wrap;gap:2px 4px;justify-content:center}
 .site-header nav a{padding:6px 8px}
}
@media(max-width:420px){.site-header nav a{padding-inline:4px}}
.breadcrumb{flex-wrap:wrap;row-gap:6px}
/* Six destinations since 2026-09-29 (麒麟颂歌): tighter link padding on narrow tablets so the row stays inside the island. */
@media(max-width:860px) and (min-width:761px){.site-header nav a{padding-inline:7px}}
/* 2026-10-07 八个去处（Raymond：导航最后加「织梦人的创意工坊」）：一排放不下八项时，跟平板一样把导航放到第二行
   （原来 1200 以下才换行；1280 宽时七项就已经把「我的」挤到边上）。平板再窄一点时字小一号、留白收一点，最窄时导航自己折成两行。 */
@media(max-width:1439px) and (min-width:761px){
 :root{--island-space:156px}
 .site-header{display:grid;grid-template-columns:1fr auto;border-radius:35px;padding:10px 24px;gap:2px 16px}
 .site-header .brand{grid-column:1;grid-row:1}
 .site-header .header-end{grid-column:2;grid-row:1;justify-self:end}
 .site-header nav{grid-column:1 / -1;grid-row:2;justify-content:center}
}
@media(max-width:1000px) and (min-width:761px){.site-header nav{font-size:13px}.site-header nav a{padding-inline:7px}.site-header .nav-chevron{margin-left:3px}}
@media(max-width:860px) and (min-width:761px){.site-header nav{flex-wrap:wrap;row-gap:2px}}
/* ===== content-hubs.css ===== */
/* Only the three restructured content hubs and their homepage entries. */
.hub-page .hub-intro{padding:56px 48px 48px;position:relative;isolation:isolate;overflow:hidden;border:1px solid #f8d4b67a;background:linear-gradient(90deg,#342722ed,#34272283 58%,#34272230),url('assets/opt/art/eternal-night.webp?v=a9324cb1b4') center 44%/cover;box-shadow:0 18px 48px #29191331;margin-bottom:30px;background-origin:border-box}

.hub-page .hub-intro:after{content:"";position:absolute;inset:auto 0 0;height:30px;background:url('assets/ui/cloud-sill.webp?v=2f1664d4fd') center/cover;opacity:.75;z-index:-1}

.hub-page .hub-intro h1{font-family:var(--serif);font-size:clamp(36px,4.4vw,64px);line-height:1.4;letter-spacing:.14em;margin:12px 0 16px;font-weight:400}

.hub-page .hub-intro p{max-width:680px;line-height:1.9}
.hub-page .hub-intro .eyebrow{color:var(--gold);font-size:13px;letter-spacing:.22em}

.hub-page .hub-shortcuts{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 0}

.hub-page .hub-shortcuts a,.hub-page .category-jumps a{border:1px solid #ecd3b877;background:#ffffff0c;padding:10px 16px;line-height:1.6;border-radius:5px;transition:background .2s,transform .2s}

.hub-page .hub-shortcuts a:hover,.hub-page .hub-shortcuts a:focus-visible,.hub-page .category-jumps a:hover{background:#f0bece2e;transform:translateY(-2px)}

.hub-page section[id],.hub-page .video-group{scroll-margin-top:145px}

.catalog-page .catalog-filter{display:flex;flex-wrap:wrap;align-items:end;gap:14px;padding:24px;background:linear-gradient(110deg,#41302ae8,#3c2c26cc),url('assets/art/silk-pattern.webp?v=ce71f709ec') center/cover;border:1px solid #f3ceae5c}

/* 2026-10-01：脚本运行后才出现的控件先占好位置（看不见），页面画出来后不再往下跳；没有脚本时照旧完全隐藏（有脚本的页面 <html> 上有 data-daypart）*/:root:not([data-daypart]) .catalog-page .catalog-filter[hidden]{display:none}.catalog-page .catalog-filter[hidden]{visibility:hidden}

.catalog-page .catalog-filter label{display:grid;gap:8px;font-size:13px;flex:1;min-width:150px}
.catalog-page .catalog-filter label:first-child{flex:2}

.catalog-page input,.catalog-page select,.catalog-page .catalog-filter button{font:inherit;min-height:46px;padding:10px 13px;border:1px solid #ddc0a975;border-radius:5px;background:#382e2a;color:var(--ink);width:100%}

.catalog-page .catalog-filter button{width:auto;cursor:pointer}
.catalog-page .catalog-count{font-size:13px;color:var(--gold);margin:14px 0 28px}

.catalog-page .era-section{margin-top:42px}
.catalog-page .era-summary{line-height:1.9;color:var(--muted);margin:0 0 22px}

.catalog-page .category-jumps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}
.catalog-page .category-jumps a{font-size:13px;padding:7px 12px}

.catalog-page .video-group{margin:26px 0}
.catalog-page .video-group h3{font:25px/1.5 var(--serif);letter-spacing:.08em;border-bottom:1px solid #efd0ad58;padding-bottom:12px;margin:0 0 12px}

.catalog-page .video-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}

.catalog-page .video-record{position:relative;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:18px;padding:20px 24px;background:linear-gradient(115deg,#534039e8,#392c28d9);border:1px solid #cba59555;box-shadow:inset 3px 0 #d4ad8238;transition:background .2s,transform .2s}

.catalog-page .video-record:hover{transform:translateX(4px);background:linear-gradient(110deg,#6f584fed,#45352fe8)}

.catalog-page .video-number{font:26px var(--serif);color:#e6ba91a1}
.catalog-page .video-record h4{font:400 17px/1.8 var(--serif);margin:0 0 6px;overflow-wrap:anywhere}
.catalog-page .video-record h4 a:after{content:"";position:absolute;inset:0}

.catalog-page .video-record h4 a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.catalog-page .video-record p{margin:0;font-size:12px;line-height:1.8;color:#ecd4cfbf}
.catalog-page .video-play{font-size:13px;color:var(--gold);white-space:nowrap}

.catalog-page .video-record[hidden],.catalog-page .video-group[hidden],.catalog-page .era-empty[hidden]{display:none}

.catalog-page .era-empty{padding:28px;border:1px dashed #e1c4af6e;color:var(--muted)}

/* 麒麟云境顶图：《中国四大名锦》去字版，人物在左、星河在右，文字放右侧。 */
.realm-page .hub-intro{text-align:right;background-image:linear-gradient(270deg,#161a33f0,#161a33b8 36%,#161a3322 64%,#161a3300),url('assets/opt/hero/realm-brocade.webp?v=198248050e');background-position:center,left 12%;background-size:cover,cover}
.realm-page .hub-intro p,.realm-page .hub-intro .eyebrow{margin-left:auto;text-align:right;justify-content:flex-end}
.realm-page .hub-intro .hub-shortcuts{justify-content:flex-end}

.hub-dialog{width:min(1080px,calc(100% - 40px));max-height:88svh;padding:0;border:1px solid #edc7a7;border-radius:12px;background:#352824;color:#fff0e9;box-shadow:0 30px 120px #1e100b90;overscroll-behavior:contain}

.hub-dialog::backdrop{background:#261915be;backdrop-filter:blur(12px)}

.hub-dialog[open]{animation:hub-dialog-in .32s ease-out}
.hub-dialog-open{overflow:hidden}

.hub-dialog .hub-dialog-close{position:sticky;float:right;top:12px;right:12px;margin:12px 12px -56px 0;z-index:5;min-width:44px;min-height:44px;border:1px solid #ffe0bc99;border-radius:50%;background:#382b26f0;color:#ffeddf;font:26px/1 sans-serif;cursor:pointer}

.hub-dialog h2{font:38px/1.5 var(--serif);letter-spacing:.12em;margin:0 55px 12px 0}
.hub-dialog h3{font:25px/1.6 var(--serif);color:#f4d1b0;margin:24px 0 14px}

.hub-dialog h4,.hub-dialog h3.dialog-sub{font:20px/1.6 var(--serif);color:#f3c2d1;margin:24px 0 8px}
.hub-dialog p{line-height:2;margin:10px 0}
.hub-dialog summary{cursor:pointer;font:21px/1.7 var(--serif);color:#f9d8b9}
.hub-dialog .source-note{font-size:12px;color:#d2bfba}

.realm-page .realm-stories{display:grid;gap:24px}
.realm-page .story-gateway p{line-height:1.9;max-width:680px}

.realm-page .chapter-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}

.showcase-page .hub-intro{background-image:linear-gradient(90deg,#3f2e28ed,#3f2e2880 58%,#3f2e2822),url('assets/opt/archive/lotus-lake.webp?v=b7ce79990e');background-position:center,center 10%}

.showcase-page .design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:25px 0 45px}
.showcase-page .design-piece{margin:0;min-width:0;box-shadow:0 10px 30px #30211c3a}
.showcase-page .design-piece>a:hover img{transform:scale(1.025)}

.showcase-page .design-piece h3{font:24px/1.6 var(--serif);margin:20px 20px 7px}
.showcase-page .design-grid--wide{grid-template-columns:repeat(2,minmax(0,1fr))}
.showcase-page .design-grid--wide img{height:250px}

.hub-dialog.design-viewer{width:min(1160px,calc(100% - 32px));padding:25px}
.design-viewer img{display:block;max-width:100%;height:66svh;object-fit:contain;margin:auto}
.design-viewer img.is-loading{visibility:hidden}
.design-viewer h2{font-size:26px;margin:15px 55px 0 0}
.design-viewer .design-caption{font-size:13px;color:#d9c8c4}

.home-hub-entries{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px auto 40px}
.home-hub-entries a{position:relative;isolation:isolate;padding:30px;min-height:175px;display:flex;flex-direction:column;justify-content:end;border:1px solid #f1cdad66;background-size:cover;background-repeat:no-repeat}
/* 主页两个入口与对应页面顶图一致：麒麟云境用《中国四大名锦》去字版（人物在左，文字靠右）；设计橱窗用莲花湖畔并露出人物头部。 */
.home-hub-entries a[href="qilin-realm.html"]{align-items:flex-end;text-align:right;background-image:linear-gradient(270deg,#161a33f0,#161a33a8 45%,#161a3310 75%),url('assets/opt/hero/realm-brocade.webp?v=198248050e');background-position:center,left 16%}
.home-hub-entries a[href="design-showcase.html"]{background-image:linear-gradient(90deg,#432b3cee,#432b3c40),url('assets/opt/archive/lotus-lake.webp?v=b7ce79990e');background-position:center,center 12%}
.home-hub-entries strong{font:29px/1.5 var(--serif);font-weight:400}
.home-hub-entries span{font-size:13px;line-height:1.8;color:#f4d2bf;margin-top:10px}
@keyframes hub-dialog-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:900px){.showcase-page .design-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.hub-page .hub-intro{padding:30px 24px 40px}.hub-page .hub-intro h1{font-size:36px;letter-spacing:.06em}.hub-page .hub-shortcuts{gap:8px}.hub-page .hub-shortcuts a{padding:8px 12px;font-size:13px}.catalog-page .catalog-filter{padding:18px}.catalog-page .video-record{grid-template-columns:26px 1fr;gap:12px;padding:16px 14px}.catalog-page .video-play{grid-column:2;font-size:12px}.catalog-page .video-record h4{font-size:16px}.catalog-page .video-number{font-size:20px}.hub-page section[id],.hub-page .video-group{scroll-margin-top:190px}.hub-dialog h2{font-size:30px;margin-right:0}.hub-dialog p{font-size:15px}.showcase-page .design-grid{gap:14px}.showcase-page .design-piece h3{font-size:21px;margin:14px 15px 5px}.home-hub-entries{grid-template-columns:1fr}.design-viewer img{height:60svh}.showcase-page .design-grid--wide{grid-template-columns:1fr}}
@media(max-width:760px){.realm-page .hub-intro{text-align:left;padding-top:220px;background-image:linear-gradient(0deg,#161a33f5,#161a33d0 42%,#161a3300 70%),url('assets/opt/hero/realm-brocade.webp?v=198248050e');background-position:center,22% top;background-size:cover,auto 330px;background-repeat:no-repeat;background-color:#161a33}.realm-page .hub-intro p,.realm-page .hub-intro .eyebrow{margin-left:0;text-align:left;justify-content:flex-start}.realm-page .hub-intro .hub-shortcuts{justify-content:flex-start}}
@media(max-width:420px){.showcase-page .design-grid{grid-template-columns:1fr}.showcase-page .design-grid--wide img{height:210px}}
@media(prefers-reduced-motion:reduce){.hub-page *, .home-hub-entries *{transition:none!important;animation:none!important}.hub-dialog[open]{animation:none}}

.motion-paused .hub-dialog[open],.motion-paused.hub-page *{animation:none;transition:none}

/* ===== 麒麟云境人物志、故事卡片与设计橱窗的结构（Claude, 2026-09-27）=====
   人物三列等宽、互不重叠：每位角色只占自己那一列的点击区域，立绘放大只是视觉效果，不再挡住旁边的人。
   影妹居中。配色皮肤见 era-ui.css。 */
.realm-page .character-stage{position:relative;isolation:isolate;padding:30px 20px 34px;margin:24px 0 42px;border:5px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1;background:radial-gradient(ellipse at 50% 40%,#ffe2b04d,transparent 60%),linear-gradient(#2a1c1614,#2a1c1680),url('assets/opt/art/golden-stage.webp?v=0b41d1516b') center 30%/cover;overflow:hidden}
.realm-page .character-stage:before{content:"";position:absolute;inset:6px;border:22px solid transparent;border-image:url('assets/ui/gilded-frame.webp?v=4277067976') 90 / 22px stretch;pointer-events:none;z-index:6}
.realm-page .character-stage:after{content:"";position:absolute;inset:auto 0 0;height:44px;z-index:5;pointer-events:none;background:url('assets/ui/cloud-sill.webp?v=2f1664d4fd') center bottom/auto 52px}
/* 人物数量不固定：每位角色自动占一列（现为五位），宽屏并排，窄屏改为左右滑动。 */
.realm-page .character-deck{position:relative;z-index:2;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:stretch;max-width:1080px;height:600px;margin:0 auto}
.realm-page .character-entry{position:relative;display:block;min-width:0;height:100%;padding:0;margin:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}
/* 立绘高度按最大放大倍数 1.14 预留头顶空间，悬停放大后也不会超出舞台上沿。 */
/* 2026-09-28 起「悬停」由 content-hubs.js 按人物轮廓判断，给指针下的人物加 .is-active（原来是整列 :hover）；键盘仍用 :focus-visible。 */
.realm-page .character-entry img{position:absolute;left:50%;bottom:66px;height:calc((100% - 76px) / 1.14);width:auto;max-width:none;transform:translateX(calc(var(--figure-axis,50%) * -1)) scale(var(--figure-scale,1));transform-origin:var(--figure-axis,50%) 100%;filter:drop-shadow(0 8px 14px #1d0f0a99);transition:transform .45s cubic-bezier(.2,.7,.25,1),filter .45s ease,opacity .45s ease;pointer-events:none}
.realm-page .character-entry.is-lead{z-index:2}
.realm-page .character-entry.is-lead img{--figure-scale:1.05}
.realm-page .character-entry.is-active,.realm-page .character-entry:focus-visible{z-index:4}
.realm-page .character-entry.is-active img,.realm-page .character-entry:focus-visible img{--figure-scale:1.1;filter:drop-shadow(0 0 20px #ffd9a8d9) drop-shadow(0 8px 14px #1d0f0a99) brightness(1.05)}
.realm-page .character-entry.is-lead.is-active img,.realm-page .character-entry.is-lead:focus-visible img{--figure-scale:1.14}
.realm-page .character-deck:has(.character-entry.is-active) .character-entry:not(.is-active) img,.realm-page .character-deck:has(.character-entry:focus-visible) .character-entry:not(:focus-visible) img{opacity:.62;filter:drop-shadow(0 8px 14px #1d0f0a99) saturate(.7) brightness(.78)}
.realm-page .character-label{position:absolute;left:50%;bottom:8px;z-index:3;transform:translateX(-50%);width:min(190px,96%);height:58px;box-sizing:border-box;border-style:solid;border-width:0 34px;border-image:url('assets/era/o-pill.webp?v=bd16950fd8') 0 72 fill / 0 34px;display:grid;align-content:center;justify-items:center;gap:0;color:#7c2c1b;transition:transform .35s ease,filter .35s ease;pointer-events:none}
.realm-page .character-label strong{font:800 21px/1.25 var(--serif);letter-spacing:.14em;color:#7c2c1b}
.realm-page .character-label small{font:12px/1.4 var(--sans);color:#8a6450;white-space:nowrap}
.realm-page .character-entry.is-active .character-label,.realm-page .character-entry:focus-visible .character-label{transform:translateX(-50%) translateY(-4px);filter:drop-shadow(0 0 10px #ffd9a8)}
.realm-page .character-entry:focus-visible .character-label{outline:2px solid #ffe3b5;outline-offset:4px}
.realm-page .character-hint{position:relative;z-index:6;text-align:center;font-size:13px;color:#fbe7cf;margin:18px 0 0;text-shadow:0 1px 6px #1d0f0a}
.realm-page .character-hint .hint-touch{display:none}
@media(hover:none){.realm-page .character-hint .hint-pointer{display:none}.realm-page .character-hint .hint-touch{display:inline}}

.realm-page .story-gateway{padding:32px;overflow:hidden}
.realm-page .story-gateway h3{font-size:29px;line-height:1.5;margin:0 0 12px}
.realm-page .chapter-links a{display:inline-block;padding:9px 18px;line-height:1.6}

.showcase-page .design-piece>a{display:block;height:100%;overflow:hidden}
.showcase-page .design-piece img{width:100%;height:340px;display:block;object-fit:contain;padding:12px;transition:transform .5s}
.showcase-page .design-piece p{font-size:13px;line-height:1.8;margin:0 20px 22px}

/* 人物设定弹窗：26 年新衣人设卡风格，左侧立绘常驻，右侧阅读 */
.hub-dialog.character-dialog{width:min(1120px,calc(100% - 32px));max-height:90svh;border:3px solid #e1b1ac;border-radius:20px;color:#4a3836;background:url('assets/era/p-scallop-top.webp?v=d4cb595145') 0 0/auto 46px repeat-x local,url('assets/era/p-peony-clear.webp?v=ab850e89ad') right -6px bottom -6px/240px auto no-repeat local,#f8f5f1;box-shadow:0 30px 120px #1d0f0acc}
.hub-dialog.character-dialog::backdrop{background:#20150fcc;backdrop-filter:blur(10px)}
.hub-dialog.character-dialog .hub-dialog-close{background:#604f4e;border:2px solid #f8f5f1;color:#fbf1ea;box-shadow:0 0 0 1.5px #604f4e;top:10px;margin:10px 12px -54px 0}
.hub-dialog.character-dialog .hub-dialog-close:hover,.hub-dialog.character-dialog .hub-dialog-close:focus-visible{background:#a8323f;box-shadow:0 0 0 1.5px #a8323f}
.character-dialog .character-detail{display:grid;grid-template-columns:minmax(240px,40%) minmax(0,1fr);padding:0}
.character-dialog .character-portrait{position:sticky;top:0;align-self:start;height:min(calc(90svh - 6px),860px);margin:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;border-right:1.5px dotted #d7bba9;background:url('assets/era/p-emblem.webp?v=25321bc102') 22px 0/44px auto no-repeat,url('assets/era/p-checker-clear.webp?v=bae28358ac') 22px calc(100% - 18px)/80px auto no-repeat,linear-gradient(#e2b0aa,#f1d8d2 52%,#f8f5f1)}
.character-dialog .character-full{display:block;width:100%;height:calc(100% - 56px);margin:0;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 18px #6b3a3a40)}
.character-dialog .character-sheet{padding:70px clamp(22px,4vw,48px) 34px;min-width:0}
.character-dialog .character-sheet header{margin:0 0 22px;padding:0 0 22px;border:0;background:url('assets/era/p-bowline.webp?v=d293da4d9b') left bottom/auto 22px no-repeat}
.hub-dialog.character-dialog .eyebrow{display:inline-block;margin:0 0 10px;padding:3px 14px;background:#604f4e;color:#fbf1ea;font:800 13px/1.6 var(--serif);letter-spacing:.2em}
.hub-dialog.character-dialog h2{font:800 44px/1.3 var(--serif);letter-spacing:.14em;color:#453b37;margin:0 50px 6px 0}
.hub-dialog.character-dialog header p{color:#7c6561;margin:0}
.hub-dialog.character-dialog p{color:#4a3836}
.hub-dialog.character-dialog h3{font:800 24px/1.6 var(--serif);color:#453b37}
.hub-dialog.character-dialog h4,.hub-dialog.character-dialog h3.dialog-sub{display:flex;align-items:center;gap:8px;font:800 18px/1.6 var(--serif);color:#a8323f;margin:22px 0 6px}
.hub-dialog.character-dialog h4:before,.hub-dialog.character-dialog h3.dialog-sub:before{content:"";width:18px;height:15px;flex:none;background:url('assets/era/p-flower.webp?v=2b866a00e0') center/contain no-repeat}
.character-dialog .character-copy details{margin:14px 0;padding:0 20px 10px;background:#fffdfbcc;border:1.5px solid #e2cfc2;border-radius:16px}
.hub-dialog.character-dialog summary{list-style:none;display:flex;align-items:center;justify-content:space-between;height:44px;margin:12px -8px 4px;border-style:solid;border-width:0 42px 0 58px;border-image:url('assets/era/p-brown-plain.webp?v=94b2631b71') 0 65 0 90 fill / 0 42px 0 58px;font:800 18px/1 var(--serif);letter-spacing:.12em;color:#fff8f2}
.hub-dialog.character-dialog summary::-webkit-details-marker{display:none}
.hub-dialog.character-dialog summary:after{content:"＋";font:400 18px/1 var(--sans);transition:transform .25s}
.hub-dialog.character-dialog details[open] summary:after{transform:rotate(45deg)}
.hub-dialog.character-dialog summary:focus-visible{outline:2px solid #a8323f;outline-offset:3px}
.hub-dialog.character-dialog .character-motto{font:800 17px/1.8 var(--serif);color:#a8323f;text-align:center;letter-spacing:.12em;margin:16px 0 6px}
.hub-dialog.character-dialog .source-note{color:#6f5551!important;font-size:12px;margin-top:20px}   /* 2026-10-03：styles.css 的 .source-note 带 !important（浅蓝灰），人物弹窗的纸面上看不清，这里也加 !important 改回棕色 */
.character-dialog .character-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:26px;padding-top:18px;border-top:1.5px dotted #d7bba9}
.character-dialog .character-switch button{font:inherit;font-size:14px;padding:8px 18px;border:1px solid #604f4e;border-radius:999px;background:#604f4e;color:#fbf1ea;cursor:pointer;transition:background .2s,transform .2s}
.character-dialog .character-switch button:hover,.character-dialog .character-switch button:focus-visible{background:#a8323f;border-color:#a8323f;transform:translateY(-2px)}
.character-dialog .character-switch span{font-size:13px;color:#7c6561}

@media(max-width:900px){
 .realm-page .character-deck{height:500px;max-width:none;grid-auto-columns:minmax(170px,30%);padding-inline:6%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
 .realm-page .character-deck::-webkit-scrollbar{display:none}
 .realm-page .character-entry{scroll-snap-align:center}
}
@media(max-width:760px){
 .realm-page .character-stage{padding:18px 6px 26px;border-width:4px}
 .realm-page .character-stage:before{border-width:14px;border-image-width:14px}
 .realm-page .character-deck{height:400px;grid-auto-columns:40%}
 .realm-page .character-entry img{bottom:48px;height:calc((100% - 58px) / 1.14)}
 .realm-page .character-label{height:44px;width:min(128px,98%);border-width:0 24px;border-image-width:0 24px;bottom:4px}
 .realm-page .character-label strong{font-size:16px;letter-spacing:.06em}
 .realm-page .character-label small{display:none}
 .realm-page .character-hint{font-size:12px;padding-inline:14px}
 .realm-page .story-gateway{padding:25px 20px}
 .realm-page .story-gateway h3{font-size:24px}
 .showcase-page .design-piece img{height:260px;padding:8px}
 .showcase-page .design-piece p{margin:0 15px 18px}
 .hub-dialog.character-dialog{width:calc(100% - 20px);max-height:92svh;background-size:auto 38px,160px auto,auto}
 .character-dialog .character-detail{grid-template-columns:1fr}
 .character-dialog .character-portrait{position:relative;height:46svh;border-right:0;border-bottom:1.5px dotted #d7bba9}
 .character-dialog .character-sheet{padding:28px 18px 26px}
 .hub-dialog.character-dialog h2{font-size:32px;margin-right:0}
 .hub-dialog.character-dialog summary{font-size:16px;letter-spacing:.06em;border-width:0 36px 0 48px;border-image-width:0 36px 0 48px;height:40px}
 .character-dialog .character-copy details{padding:0 12px 8px}
}
@media(max-width:420px){
 .realm-page .character-deck{height:350px}
 .showcase-page .design-piece img{height:350px}
}
@media(prefers-reduced-motion:reduce){.realm-page .character-entry img,.realm-page .character-label{transition:none}}
.motion-paused.realm-page .character-entry img,.motion-paused.realm-page .character-label{transition:none}

/* 设计橱窗（Claude, 2026-09-27）：天工手作两列大图；图片禁拖拽、禁长按菜单（配合 content-hubs.js 禁右键）。
   截图挡不住，所以橱窗图本身已压缩并加艺术签水印。 */
.showcase-page .design-grid--craft{grid-template-columns:repeat(2,minmax(0,1fr))}
.showcase-page .design-grid--craft img{height:460px}
.showcase-page .design-piece img,.design-viewer img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.showcase-page .showcase-rights{margin:0 0 34px;padding:14px 18px;text-align:center;font-size:13px;line-height:1.8;color:#f3dcc1;border-block:1px solid #e2c39840;background:#2a1d1a8c}
@media(max-width:760px){.showcase-page .design-grid--craft{grid-template-columns:1fr}.showcase-page .design-grid--craft img{height:380px}}
/* 2026-09-28 立绘与服饰变成四张（Raymond 选「一行四张」）：宽屏一行四张；901–1100 像素 2×2；900 以下沿用原来的排法（手机不变）。 */
@media(min-width:1101px){.showcase-page .design-grid--four{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}}
@media(max-width:1100px) and (min-width:901px){.showcase-page .design-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 2026-09-28 雾光在人物志舞台上显得矮：她的图顶是一对长耳朵，五人按同样图高排时她的头和眼睛比别人低一截，成了最矮的（设定身高 181cm，仅次于影妹 190）。
   只对她等比放大 1.03 倍，眼睛高度略高于遥星、低于影妹，脚仍踩在同一条线上。悬停放大到 1.11；900 像素以下舞台会裁掉超出顶部的部分，悬停只到 1.08。
   2026-09-30: re-fitted for the new main art (乘黄1, taller crown and ears): 1.11 put her eyes above 影妹's, so the scale follows the eye line again. */
.realm-page .character-entry[data-character="character-wuguang"] img{--figure-scale:1.03}
.realm-page .character-entry[data-character="character-wuguang"].is-active img,.realm-page .character-entry[data-character="character-wuguang"]:focus-visible img{--figure-scale:1.11}
@media(max-width:900px){.realm-page .character-entry[data-character="character-wuguang"].is-active img,.realm-page .character-entry[data-character="character-wuguang"]:focus-visible img{--figure-scale:1.08}}
/* 2026-10-04 赛蒂娅换成新立绘「雾中灯塔」：头顶多了一对猫耳、脚下是厚底靴，同样图高排时她的眼睛和影妹（190cm）一样高，比遥星、貔小貅高出一截，
   不像设定里的 163cm。照雾光那条按眼睛高度调：只对她等比缩小到 0.97，眼睛和遥星、貔小貅差不多高；悬停照常加 0.1。脚仍踩在同一条线上。 */
.realm-page .character-entry[data-character="character-saidiya"] img{--figure-scale:.97}
.realm-page .character-entry[data-character="character-saidiya"].is-active img,.realm-page .character-entry[data-character="character-saidiya"]:focus-visible img{--figure-scale:1.07}
/* 2026-09-28 人物身后的黑影（其他形象）：平时收在人物身后看不见；电脑上指针移到这位人物身上时（content-hubs.js 按人物轮廓判断，人物加 .is-active、黑影组加 .is-open），
   黑影从她身后往两边展开，一半藏在她身后，带一圈暖光描边；指到黑影露出来的部分（.is-hot）显出原色，其他人物变暗，浮出名字；点一下打开她的人物设定并换成这张立绘。
   触屏没有悬停，不显示黑影，改用弹窗立绘上方的切换按钮。位置、大小按立绘高度（--h）的比例写（--dx 左右、--ds 大小），只等比缩放。
   影妹：王族·现世之影 / 幽灵族·鬼魅之影 / 现世·新中式；貔小貅：云纹金芒。 */
/* 2026-10-01 Raymond: shadows stay behind the characters; the highlighted one comes above all of them.
   Each character's shadows are drawn as one layer (the group is faded as a whole, not each shadow), so where two
   overlap the front one simply covers the back one with its warm outline, instead of the two darkening into one blot.
   The highlighted shadow is shown by a copy of the group placed above the characters (.is-top, made by content-hubs.js),
   because a faded group is its own layer and nothing inside it can rise above the characters. */
.realm-page .character-deck{container-type:size}
.realm-page .character-shades,.realm-page .character-shade-captions{position:absolute;grid-row:1;inset:0;pointer-events:none;--h:calc((100cqh - 76px) / 1.14);--floor:66px}
.realm-page .character-shades{z-index:-1;opacity:.55}
.realm-page .character-shades.is-top{z-index:4;opacity:1}
.realm-page .character-shade-captions{z-index:5}
.realm-page .character-shade{position:absolute;inset:0;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;pointer-events:none;outline:none;-webkit-tap-highlight-color:transparent}
.realm-page .shade-royal{--dx:-.235;--ds:1;z-index:1}
.realm-page .shade-ghost{--dx:-.135;--ds:.8;z-index:2}
.realm-page .shade-modern{--dx:.222;--ds:.97;z-index:1}
.realm-page .shade-adult{--dx:-.24;--ds:1.12;z-index:1}
.realm-page .shade-starsong{--dx:.25;--ds:1;z-index:1}
.realm-page .shade-shoutian{--dx:.3;--ds:1;z-index:1}
.realm-page .shade-buwen{--dx:-.25;--ds:1;z-index:1}/* 2026-10-04 赛蒂娅·不问归期：她在最右边，黑影往左展开 *//* 成年体 187cm，比本体 154cm 高，放大一些 */
.realm-page .character-shade img{position:absolute;left:50%;bottom:var(--floor);height:var(--h);width:auto;max-width:none;transform:translateX(-50%) scale(calc(var(--ds) * .94));transform-origin:50% 100%;filter:brightness(0) drop-shadow(0 0 1px #ffe2b8) drop-shadow(0 0 3px #ffd9a866);opacity:0;visibility:hidden;transition:transform .5s cubic-bezier(.2,.7,.25,1),filter .45s ease,opacity .3s ease,visibility 0s linear .5s}
.realm-page .character-shades.is-open .character-shade img{transform:translateX(calc(-50% + var(--dx) * var(--h))) scale(var(--ds));opacity:1;visibility:visible;transition-delay:calc(var(--i,0) * 60ms),0s,calc(var(--i,0) * 60ms),0s}
.realm-page .character-shades.is-top .character-shade img{transform:translateX(calc(-50% + var(--dx) * var(--h))) scale(var(--ds));opacity:0;visibility:hidden;filter:brightness(1.04) drop-shadow(0 0 1px #ffd9a8) drop-shadow(0 0 16px #ffd9a8d9);transition:opacity .3s ease,visibility 0s linear .3s}
.realm-page .character-shades.is-top .character-shade.is-hot img{opacity:1;visibility:visible;transition:opacity .3s ease,visibility 0s}
.realm-page .character-shades.is-open:not(.is-top) .character-shade.is-hot img{opacity:0}   /* its silhouette steps aside for the lit copy above */
/* 黑影亮起时：前面的人物都变暗；黑影的主人只稍微压暗，亮起的黑影看起来仍在她身后。 */
.realm-page .character-deck.shade-hot .character-entry img{opacity:.62;filter:drop-shadow(0 8px 14px #1d0f0a99) saturate(.7) brightness(.78)}
.realm-page .character-deck.shade-hot .character-entry.is-owner img{opacity:.93;filter:drop-shadow(0 8px 14px #1d0f0a99) saturate(.75) brightness(.72)}
.realm-page .shade-caption{position:absolute;left:50%;bottom:calc(var(--floor) + var(--h) * var(--ds) * var(--cy,1) + 8px);transform:translate(calc(-50% + var(--cx) * var(--h)),6px);padding:4px 14px;border:1px solid #ffd9a88c;border-radius:999px;background:#2a1d18e6;color:#ffe8c8;font:13px/1.5 var(--sans);letter-spacing:.12em;white-space:nowrap;box-shadow:0 4px 14px #1d0f0a66;opacity:0;transition:opacity .3s ease,transform .3s ease}
.realm-page .shade-caption.shade-royal{--cx:-.33}
.realm-page .shade-caption.shade-ghost{--cx:-.36;--cy:.72}
.realm-page .shade-caption.shade-modern{--cx:.3}
.realm-page .shade-caption.shade-adult{--cx:-.34}
.realm-page .shade-caption.shade-starsong{--cx:.34}
.realm-page .shade-caption.shade-shoutian{--cx:.34}
.realm-page .shade-caption.shade-buwen{--cx:-.34}
.realm-page .shade-caption.is-hot{opacity:1;transform:translate(calc(-50% + var(--cx) * var(--h)),0)}
@media(max-width:760px){.realm-page .character-shades,.realm-page .character-shade-captions{--h:calc((100cqh - 58px) / 1.14);--floor:48px}.realm-page .shade-caption{font-size:12px;padding:3px 10px;letter-spacing:.06em}}
@media(hover:none){.realm-page .character-shades,.realm-page .character-shade-captions{display:none}}
@supports not (height:1cqh){.realm-page .character-shades,.realm-page .character-shade-captions{display:none}}
@media(prefers-reduced-motion:reduce){.realm-page .character-shade img,.realm-page .shade-caption{transition:none}}
.motion-paused.realm-page .character-shade img,.motion-paused.realm-page .shade-caption{transition:none}
/* 弹窗立绘上方的形象切换（影妹、貔小貅）：手机、平板靠这里切换；当前形象深色。 */
.character-dialog .form-switch{position:absolute;top:12px;left:74px;right:64px;z-index:2;display:flex;flex-wrap:wrap;gap:6px}
.character-dialog .form-switch button{margin:0;padding:3px 12px;border:1.5px solid #e2cfc2;border-radius:999px;background:#fffdfbd9;color:#7c2c1b;font:13px/1.5 var(--sans);letter-spacing:.08em;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}
.character-dialog .form-switch button:hover{border-color:#a8323f}
.character-dialog .form-switch button[aria-pressed="true"]{background:#604f4e;border-color:#604f4e;color:#fbf1ea}
.character-dialog .form-switch button:focus-visible{outline:2px solid #a8323f;outline-offset:2px}
@media(max-width:760px){.character-dialog .form-switch{gap:5px}.character-dialog .form-switch button{padding:2px 9px;font-size:12px;letter-spacing:.04em}}
/* 2026-09-28 弹窗（人物设定、设计橱窗大图）：弹出时带一点回弹、背后的虚化淡入；关闭时先收回再消失（曲线定义在 motion.css）。
   系统「减少动态效果」和「暂停动效」时照原来直接出现、直接关闭。 */
.hub-dialog[open]{animation:hub-pop-in .5s var(--ync-pop) both}
.hub-dialog[open]::backdrop{animation:hub-fade-in .3s ease both}
.hub-dialog.is-closing{animation:hub-pop-out .2s cubic-bezier(.4,0,1,1) both}
.hub-dialog.is-closing::backdrop{animation:hub-fade-out .22s ease both}
@keyframes hub-pop-in{from{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:none}}
@keyframes hub-pop-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(12px) scale(.96)}}
@keyframes hub-fade-in{from{opacity:0}}
@keyframes hub-fade-out{to{opacity:0}}
.motion-paused .hub-dialog[open],.motion-paused .hub-dialog.is-closing,.motion-paused .hub-dialog[open]::backdrop,.motion-paused .hub-dialog.is-closing::backdrop{animation:none}

/* 首页的留言簿入口（2026-09-29）：占满一整行，用 Raymond 选的牡丹那张影妹插图（只等比缩放）。
   Raymond 要求从左到右有画面过渡：底层是同一张图放大、模糊、压暗后铺满整张卡，左边也有暗红的花影；
   上层是清晰的原图贴右露出脸，左边缘用 mask 慢慢淡进底层。两层都等卡片快进入画面时才加载（bg-in）。 */
.home-hub-entries a[href="guestbook.html"]{grid-column:1/-1;min-height:140px;overflow:hidden;background:#120c0e}
.home-hub-entries a[href="guestbook.html"]:before,.home-hub-entries a[href="guestbook.html"]:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-repeat:no-repeat}
.home-hub-entries a[href="guestbook.html"]:before{background-size:cover;background-position:center 46%;filter:blur(14px) brightness(.42) saturate(1.15);transform:scale(1.12)}
.home-hub-entries a[href="guestbook.html"]:after{background-size:auto 350px;background-position:right 0 top -95px;-webkit-mask-image:linear-gradient(90deg,transparent calc(100% - 440px),#000 calc(100% - 230px));mask-image:linear-gradient(90deg,transparent calc(100% - 440px),#000 calc(100% - 230px))}
html:not(.bg-wait) .home-hub-entries a[href="guestbook.html"]:before,html:not(.bg-wait) .home-hub-entries a[href="guestbook.html"]:after,
.home-hub-entries a[href="guestbook.html"].bg-in:before,.home-hub-entries a[href="guestbook.html"].bg-in:after{background-image:url('assets/opt/archive/peony-portrait.webp?v=55c72463ae')}
@media(max-width:760px){.home-hub-entries a[href="guestbook.html"]:after{background-size:auto 196px;background-position:right 0 top -44px;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 72%);mask-image:linear-gradient(90deg,transparent 30%,#000 72%)}}
/* Home page: 麒麟颂歌 entry (2026-09-29). Same card as the about entry beside it: side by side when there is room, stacked otherwise. */
.home-page .home-entry-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:22px 0 0}
.home-page .home-entry-pair .home-about-entry{margin:0;padding-inline:20px;gap:12px}
.home-page .home-about-entry.home-song-entry{background:linear-gradient(100deg,#503841f0,#503841c4 48%,#38273252),url('assets/opt/hero/voice-flower.webp?v=40247e33c5') right 28%/cover}

/* Sliding selection bubble for the form switch in character dialogs (2026-09-29, Raymond). Each pill's own look moves
   to a ::before under the thumb, so the dark thumb glides over the pills and the labels stay on top. */
.character-dialog .form-switch .glide-thumb{background:#604f4e}
.character-dialog .form-switch.has-glide button,.character-dialog .form-switch.has-glide button:hover,.character-dialog .form-switch.has-glide button[aria-pressed="true"]{background:transparent;border-color:transparent}
.character-dialog .form-switch.has-glide button:before{content:"";position:absolute;inset:-1.5px;z-index:-1;border:1.5px solid #e2cfc2;border-radius:inherit;background:#fffdfbd9;transition:border-color .2s,opacity .2s}
.character-dialog .form-switch.has-glide button:hover:before{border-color:#a8323f}
.character-dialog .form-switch.has-glide button[aria-pressed="true"]:before{opacity:0}
.character-dialog .form-switch.has-glide button[aria-pressed="true"]{transition:color .28s ease .12s}
@media(prefers-reduced-motion:reduce){.character-dialog .form-switch.has-glide button:before{transition:none}}
.motion-paused .character-dialog .form-switch.has-glide button:before{transition:none}

/* Deck arrows (2026-09-30, Raymond): shown only where the character deck scrolls sideways (content-hubs.js adds .deck-scrolls). */
.realm-page .deck-nudge{display:none}
.realm-page .character-stage.deck-scrolls .deck-nudge{position:absolute;z-index:7;display:grid;place-items:center;width:32px;height:48px;margin-top:-24px;padding:0;border:0;border-radius:999px;background:radial-gradient(closest-side,#1d0f0a73,#1d0f0a33 60%,transparent);color:#fff;cursor:pointer;opacity:.95;filter:drop-shadow(0 1px 2px #1d0f0ae6);transition:opacity .3s,scale .2s;-webkit-tap-highlight-color:transparent}
.realm-page .character-stage.deck-scrolls .deck-prev{left:14px}
.realm-page .character-stage.deck-scrolls .deck-next{right:14px}
.realm-page .character-stage.deck-scrolls .deck-nudge.is-off{opacity:0;pointer-events:none}
.realm-page .character-stage.deck-scrolls .deck-nudge:active{scale:.88}
.realm-page .character-stage.deck-scrolls .deck-nudge:focus-visible{outline:2px solid #fff;outline-offset:1px;border-radius:8px}
@media(prefers-reduced-motion:reduce){.realm-page .deck-nudge{transition:none}}
.motion-paused.realm-page .deck-nudge{transition:none}
/* ===== 2026-10-03 优化 ===== */
/* 第 22 项：标题和人物名牌折行时更匀称 */
.hub-intro h1{text-wrap:balance}
.realm-page .character-label strong{text-wrap:balance}
@media(max-width:360px){.realm-page .character-label{border-width:0 19px;border-image-width:0 19px}}   /* 320 宽时三个字的名字（貔小貅、赛蒂娅）放得下一行：两端花饰等比缩小一点 */
/* 第 12 项：手机上筛选框 16px，iPhone 点进去不会整页放大 */
@media (pointer:coarse),(max-width:760px){.catalog-page .catalog-filter input,.catalog-page .catalog-filter select{font-size:16px}}
/* 第 13 项：人物弹窗「切换形象」按钮的点击区 */
@media (pointer:coarse),(max-width:760px){.character-dialog .form-switch button{position:relative}.character-dialog .form-switch button::after{content:"";position:absolute;inset:-10px -2px}}
/* 第 17 项：麒麟云境手机顶图——画的下缘淡进底色，不再有一道接缝 */
@media(max-width:760px){.realm-page .hub-intro{background-image:linear-gradient(0deg,#161a33f5,#161a33d0 42%,#161a3300 70%),linear-gradient(0deg,#161a33,#161a3300 120px),url('assets/opt/hero/realm-brocade.webp?v=198248050e');background-position:center,center top,22% top;background-size:cover,100% 330px,auto 330px}}
/* 第 26 项：404 页脚贴底 */
body.notfound-page{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
body.notfound-page>main{flex:1 0 auto;margin:0 auto}
body.notfound-page>.site-footer{flex-shrink:0}
/* 第 26 项：人物弹窗右边留出关闭按钮的位置，往下滚时 × 不压字 */
.character-dialog .character-sheet{padding-right:max(clamp(22px,4vw,48px),64px)}
@media(max-width:760px){.character-dialog .character-sheet{padding-right:58px}}
/* 第 26 项：手机单栏时横图不再上下留一大片空白（按图片本身比例，最高 350px） */
@media(max-width:420px){.showcase-page .design-piece img{height:auto;max-height:350px}}
/* 第 23 项：只给读屏念的提示（经世书阁作品链接：B 站、新标签页打开），看不见 */
.sr-note{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* ===== era-ui.css ===== */
/* 时期 UI（Claude, 2026-09-27）
   现世 [data-era="present"]：26 年新衣 UI —— 奶白纸面、玫瑰波浪花边、深棕标题条、四瓣花、蝴蝶结。
   旧日 [data-era="past"] 及未标时期的默认卡片：国风歌杂直播间 UI —— 米黄宣纸、铜红描金框、祥云。
   只作用于带 data-era 的容器和下列组件；图片素材来源见 assets/era/manifest.json。本文件须最后加载。 */
:root{
 --p-paper:#f8f5f1;--p-blush:#f4e6e1;--p-rose:#e1b1ac;--p-rose-deep:#c47a77;--p-brown:#604f4e;--p-brown-deep:#453b37;--p-ink:#4a3836;--p-muted:#7c6561;--p-crimson:#a8323f;--p-line:#dcc8b8;
 --o-paper:#fdf6e4;--o-paper-2:#f6e2c6;--o-copper:#d58450;--o-red:#b8472d;--o-deep:#7c2c1b;--o-gold:#e7b66d;--o-ink:#51301f;--o-muted:#8a6450;
 --p-sheet:url('assets/era/p-scallop-top.webp?v=d4cb595145') 0 0/auto 46px repeat-x,url('assets/era/p-peony-clear.webp?v=ab850e89ad') right -6px bottom -6px/220px auto no-repeat,var(--p-paper);
 --p-checker:url('assets/era/p-checker-clear.webp?v=bae28358ac') 24px calc(100% - 18px)/78px auto no-repeat;
 --o-sheet:url('assets/era/o-clouds-clear.webp?v=b367c7149d') right bottom/min(520px,78%) auto no-repeat,linear-gradient(175deg,var(--o-paper) 30%,var(--o-paper-2));
}

/* ---------- 纸面卡片（整块区域） ---------- */
.catalog-page .era-section[data-era],.realm-page .story-gateway,.activity-archive[data-era] .archive-document,.activity-archive[data-era] .archive-rules,.activity-archive[data-era] .archive-schedule{position:relative;isolation:isolate}
.catalog-page .era-section[data-era="present"],.realm-page .story-gateway[data-era="present"],.activity-archive[data-era="present"] .archive-document,.activity-archive[data-era="present"] .archive-rules,.activity-archive[data-era="present"] .archive-schedule{
 background:var(--p-sheet);color:var(--p-ink);border:3px solid var(--p-rose);border-radius:18px;box-shadow:0 14px 34px #1d100c55}
.catalog-page .era-section[data-era="present"]:before,.realm-page .story-gateway[data-era="present"]:before,.activity-archive[data-era="present"] .archive-document:before,.activity-archive[data-era="present"] .archive-rules:before,.activity-archive[data-era="present"] .archive-schedule:before{
 content:"";position:absolute;inset:52px 9px 9px;border:1.5px dotted #d7bba9;border-top:0;border-radius:0 0 11px 11px;pointer-events:none;z-index:-1}
.catalog-page .era-section[data-era="present"]:after,.realm-page .story-gateway[data-era="present"]:after{content:"";position:absolute;top:-3px;right:18px;width:66px;height:42px;background:url('assets/era/p-bow.webp?v=9dbe635354') center/contain no-repeat;pointer-events:none}

.catalog-page .era-section[data-era="past"],.realm-page .story-gateway[data-era="past"],.realm-page .story-gateway:not([data-era]),.activity-archive[data-era="past"] .archive-document,.activity-archive[data-era="past"] .archive-rules,.activity-archive[data-era="past"] .archive-schedule{
 background:var(--o-sheet);color:var(--o-ink);border:6px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1;border-radius:0;box-shadow:0 14px 34px #1d100c66}
.catalog-page .era-section[data-era="past"]:before,.realm-page .story-gateway[data-era="past"]:before,.realm-page .story-gateway:not([data-era]):before,.activity-archive[data-era="past"] .archive-document:before,.activity-archive[data-era="past"] .archive-rules:before,.activity-archive[data-era="past"] .archive-schedule:before{
 content:"";position:absolute;inset:6px;border:22px solid transparent;border-image:url('assets/ui/gilded-frame.webp?v=4277067976') 90 / 22px stretch;pointer-events:none;z-index:-1;opacity:.9}

/* ---------- 区块标题条 ---------- */
.era-heading{position:relative;display:flex;align-items:center;gap:14px;margin:0 0 24px;min-height:0;padding:0;background:none;border:0;isolation:isolate}
.era-heading:before,.era-heading:after{content:none}
.era-heading h2{font-family:var(--serif);font-weight:800;letter-spacing:.14em;margin:0;line-height:1.2}
.era-heading small{font-family:var(--serif);letter-spacing:.08em}
.era-heading--present{height:48px;border-style:solid;border-width:0 57px 0 78px;border-image:url('assets/era/p-brown-plain.webp?v=94b2631b71') 0 65 0 90 fill / 0 57px 0 78px;color:#fbf2ec;margin-inline:-6px}
.era-heading--present h2{font-size:22px;color:#fff8f2}
.era-heading--present small{color:#f1cfc6;font-size:13px}
.era-heading--present:after{content:"";position:absolute;left:auto;right:4px;bottom:auto;top:0;opacity:1;width:160px;height:48px;background:url('assets/era/p-brown-bow.webp?v=fc54aa049e') center/auto 48px no-repeat}
.era-heading--past{height:62px;border-style:solid;border-width:0 39px;border-image:url('assets/era/o-pill.webp?v=bd16950fd8') 0 72 fill / 0 39px;padding-inline:14px;color:var(--o-deep);margin-inline:-4px}
.era-heading--past h2{font-size:24px;color:var(--o-deep)}
.era-heading--past small{color:var(--o-red);font-size:13px}

/* ---------- 经世书阁：检索栏（默认国风 UI） ---------- */
.catalog-page .catalog-filter{position:relative;isolation:isolate;background:var(--o-sheet);color:var(--o-ink);border:5px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1;box-shadow:0 12px 28px #1d100c66}
.catalog-page .catalog-filter:before{content:"";position:absolute;inset:5px;border:18px solid transparent;border-image:url('assets/ui/gilded-frame.webp?v=4277067976') 90 / 18px stretch;pointer-events:none;z-index:-1;opacity:.9}
.catalog-page .catalog-filter label{color:var(--o-deep);font-family:var(--serif);font-weight:800;letter-spacing:.08em}
.catalog-page .catalog-filter input,.catalog-page .catalog-filter select{background:#fffdf6;color:var(--o-ink);border:1.5px solid #d69260;border-radius:999px;font-family:var(--sans);font-weight:400;letter-spacing:0;padding-inline:18px}
.catalog-page .catalog-filter input::placeholder{color:#b08a72}
.catalog-page .catalog-filter input:focus-visible,.catalog-page .catalog-filter select:focus-visible{outline:2px solid var(--o-red);outline-offset:2px;border-color:var(--o-red)}
.catalog-page .catalog-filter button{background:linear-gradient(#fffdf6e6,#f9e2c2f0),url('assets/art/silk-pattern.webp?v=ce71f709ec') center/cover;color:var(--o-deep);border:1.5px solid #d69260;box-shadow:inset 0 0 0 2px #fffaf0,inset 0 0 0 3px #efc98f,0 4px 12px #8a5a3a26;border-radius:999px;font-family:var(--serif);font-weight:800;padding-inline:22px;transition:transform .2s,background .2s}
.catalog-page .catalog-filter button:hover,.catalog-page .catalog-filter button:focus-visible{background:linear-gradient(#fff8eae0,#f6d6aeeb),url('assets/art/silk-pattern.webp?v=ce71f709ec') center/cover;color:var(--o-deep);border-color:#c98546;box-shadow:inset 0 0 0 2px #fffaf0,inset 0 0 0 3px #f3c98d,0 0 0 3px #f3c98d40,0 8px 18px #8a5a3a33;transform:translateY(-2px)}
.catalog-page .catalog-count{color:#fbe3c4}

/* ---------- 经世书阁：时期区块内部 ---------- */
.catalog-page .era-section[data-era]{padding:66px clamp(18px,3.4vw,40px) 44px;margin-top:40px;scroll-margin-top:130px}
.catalog-page .era-section[data-era="present"],.realm-page .story-gateway[data-era="present"]{background:var(--p-checker),var(--p-sheet)}
.catalog-page .era-section[data-era="past"]{padding-top:40px}
.catalog-page .era-section[data-era="present"] .era-summary{color:var(--p-muted)}
.catalog-page .era-section[data-era="past"] .era-summary{color:var(--o-muted)}
.catalog-page .era-section[data-era] .category-jumps a{border-radius:999px;font-family:var(--serif);font-weight:800;letter-spacing:.04em;transition:transform .2s,background .2s,color .2s}
.catalog-page .era-section[data-era="present"] .category-jumps a{background:var(--p-brown);color:#fbf1ea;border:1px solid var(--p-brown)}
.catalog-page .era-section[data-era="present"] .category-jumps a:before{content:"✦ ";color:#f2c6bd}
.catalog-page .era-section[data-era="present"] .category-jumps a:hover,.catalog-page .era-section[data-era="present"] .category-jumps a:focus-visible{background:var(--p-crimson);border-color:var(--p-crimson);transform:translateY(-2px)}
.catalog-page .era-section[data-era="past"] .category-jumps a{background:#fffaf0;color:var(--o-deep);border:1.5px solid var(--o-copper)}
.catalog-page .era-section[data-era="past"] .category-jumps a:hover,.catalog-page .era-section[data-era="past"] .category-jumps a:focus-visible{background:linear-gradient(#fff6e4,#f6d9b0);color:var(--o-deep);border-color:#c98546;box-shadow:0 0 0 3px #f3c98d40,0 6px 14px #8a5a3a26;transform:translateY(-2px)}

.catalog-page .era-section[data-era] .video-group h3{font-family:var(--serif);font-weight:800;font-size:22px;border-bottom:0;padding:0 0 10px;display:flex;align-items:center;gap:14px}
.catalog-page .era-section[data-era] .video-group h3:after{content:"";flex:1;height:24px}
.catalog-page .era-section[data-era="present"] .video-group h3{color:var(--p-ink)}
.catalog-page .era-section[data-era="present"] .video-group h3:after{background:url('assets/era/p-bowline.webp?v=d293da4d9b') right center/auto 24px no-repeat,linear-gradient(#d9aaa4,#d9aaa4) left 50%/calc(100% - 196px) 1.5px no-repeat}
.catalog-page .era-section[data-era="past"] .video-group h3{color:var(--o-deep)}
.catalog-page .era-section[data-era="past"] .video-group h3:after{height:2px;background:linear-gradient(90deg,var(--o-copper),#e7b66d 60%,transparent)}

.catalog-page .era-section[data-era] .video-record{border-radius:0;box-shadow:none;transition:transform .22s ease,background-color .22s,border-color .22s,box-shadow .22s}
.catalog-page .era-section[data-era="present"] .video-record{background:#fffdfb;border:1.5px solid #7c6462;border-radius:30px;padding:16px 58px 16px 22px}
.catalog-page .era-section[data-era="present"] .video-record:after{content:"";position:absolute;right:20px;top:50%;width:22px;height:18px;margin-top:-9px;background:url('assets/era/p-flower.webp?v=2b866a00e0') center/contain no-repeat;transition:transform .35s ease}
.catalog-page .era-section[data-era="present"] .video-record:hover,.catalog-page .era-section[data-era="present"] .video-record:focus-within{background:var(--p-blush);border-color:var(--p-crimson);transform:translateX(4px);box-shadow:0 6px 16px #c47a7733}
.catalog-page .era-section[data-era="present"] .video-record:hover:after,.catalog-page .era-section[data-era="present"] .video-record:focus-within:after{transform:rotate(45deg) scale(1.15)}
.catalog-page .era-section[data-era="present"] .video-number{font-family:var(--serif);font-weight:800;font-size:15px;color:#fbf1ea;background:var(--p-brown);border-radius:6px;width:38px;height:30px;display:grid;place-items:center}
.catalog-page .era-section[data-era="present"] .video-record h4{color:var(--p-ink)}
.catalog-page .era-section[data-era="present"] .video-record p{color:var(--p-muted)}
.catalog-page .era-section[data-era="present"] .video-play{color:var(--p-crimson)}

.catalog-page .era-section[data-era="past"] .video-record{background:linear-gradient(#fffdf6,#fbecd6);border:1.5px solid #d69260;box-shadow:inset 0 0 0 3px #fffaf0,inset 0 0 0 4px #efc98f;border-radius:4px;padding:16px 22px}
.catalog-page .era-section[data-era="past"] .video-record:hover,.catalog-page .era-section[data-era="past"] .video-record:focus-within{border-color:var(--o-red);background:linear-gradient(#fff8ea,#f8dfbf);transform:translateX(4px);box-shadow:inset 0 0 0 3px #fffaf0,inset 0 0 0 4px #e9a86a,0 6px 16px #b8472d33}
.catalog-page .era-section[data-era="past"] .video-number{font-family:var(--serif);font-weight:800;font-size:14px;color:var(--o-deep);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fffaf0,#f8e2bb 55%,#ebc58a);box-shadow:0 0 0 1.5px #c98546,0 0 0 3px #fffaf0,0 0 0 4px #efc98f,0 2px 6px #8a5a3a33}
.catalog-page .era-section[data-era="past"] .video-record h4{color:var(--o-ink)}
.catalog-page .era-section[data-era="past"] .video-record p{color:var(--o-muted)}
.catalog-page .era-section[data-era="past"] .video-play{color:var(--o-red)}
.catalog-page .era-section[data-era] .video-record h4 a:focus-visible{outline-color:currentColor}
.catalog-page .era-section[data-era="present"] .era-empty{border-color:#d7bba9;color:var(--p-muted)}
.catalog-page .era-section[data-era="past"] .era-empty{border-color:#d69260;color:var(--o-muted)}

/* ---------- 麒麟云境：故事篇章卡片 ---------- */
.realm-page .story-gateway[data-era="present"]{padding:70px clamp(22px,3.6vw,40px) 36px}
.realm-page .story-gateway[data-era="past"],.realm-page .story-gateway:not([data-era]){padding:38px clamp(24px,3.6vw,44px) 38px}
.realm-page .story-gateway[data-era] .eyebrow,.realm-page .story-gateway:not([data-era]) .eyebrow{display:inline-block;font:800 13px/1.6 var(--serif);letter-spacing:.2em;padding:3px 12px;margin:0 0 12px}
.realm-page .story-gateway[data-era="present"] .eyebrow{background:var(--p-brown);color:#fbf1ea}
.realm-page .story-gateway[data-era="past"] .eyebrow{background:linear-gradient(#fdf0d2,#f1d29c);color:var(--o-deep);box-shadow:inset 0 0 0 1px #d69260,inset 0 0 0 2px #fffaf0}
.realm-page .story-gateway h3{font-family:var(--serif);font-weight:800}
.realm-page .story-gateway[data-era="present"] h3{color:var(--p-ink)}
.realm-page .story-gateway[data-era="past"] h3,.realm-page .story-gateway:not([data-era]) h3{color:var(--o-deep)}
.realm-page .story-gateway[data-era="present"] p{color:var(--p-muted)}
.realm-page .story-gateway[data-era="past"] p,.realm-page .story-gateway:not([data-era]) p{color:var(--o-muted)}

/* 按钮：现世深棕签条，旧日铜红描边签 */
[data-era="present"] .chapter-links a,[data-era="present"] .archive-jumps a,[data-era="present"] .archive-source-bottom .button{background:var(--p-brown);color:#fbf1ea;border:1px solid var(--p-brown);border-radius:999px;text-decoration:none;transition:background .2s,transform .2s}
[data-era="present"] .chapter-links a:hover,[data-era="present"] .chapter-links a:focus-visible,[data-era="present"] .archive-source-bottom .button:hover{background:var(--p-crimson);border-color:var(--p-crimson);transform:translateY(-2px)}
.story-gateway[data-era="past"] .chapter-links a,.story-gateway:not([data-era]) .chapter-links a,.activity-archive[data-era="past"] .archive-source-bottom .button{background:#fffaf0;color:var(--o-deep);border:1.5px solid var(--o-copper);border-radius:999px;text-decoration:none;transition:background .2s,color .2s,transform .2s}
.story-gateway[data-era="past"] .chapter-links a:hover,.story-gateway[data-era="past"] .chapter-links a:focus-visible,.story-gateway:not([data-era]) .chapter-links a:hover,.story-gateway:not([data-era]) .chapter-links a:focus-visible,.activity-archive[data-era="past"] .archive-source-bottom .button:hover{background:linear-gradient(#fff6e4,#f6d9b0);color:var(--o-deep);border-color:#c98546;box-shadow:0 0 0 3px #f3c98d40,0 6px 14px #8a5a3a26;transform:translateY(-2px)}

/* ---------- 影之声：活动总览卡片边框（按办理状态，不分时期） ----------
   已揭晓 data-state="done"：描金框；未办完 data-state="open"：浅色玫瑰边框。卡片其余样式一致。 */
.episode-card[data-state="done"]{border:5px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1}
.episode-card[data-state="done"]:before{inset:6px;border:16px solid transparent;border-image:url('assets/ui/gilded-frame.webp?v=4277067976') 90 / 16px stretch;opacity:.85}
.episode-card[data-state="open"]{border:3px solid var(--p-rose);border-radius:16px}
.episode-card[data-state="open"]:before{inset:7px;border:1.5px dotted #f3d5cf;border-radius:10px}
.episode-card[data-state]:hover:before,.episode-card[data-state]:focus-visible:before{opacity:1}

/* ---------- 影之声活动详情与空间介绍 ---------- */
.activity-archive[data-era] .archive-detail-head{border:0;position:relative}
.activity-archive[data-era="present"] .archive-detail-head{border:3px solid var(--p-rose);border-radius:18px}
.activity-archive[data-era="past"] .archive-detail-head{border:5px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1}
.activity-archive[data-era] .activity-facts>span{border-radius:999px;padding:4px 12px}
.activity-archive[data-era="present"] .activity-facts>span{background:#604f4ecc;border-color:#f3d5cf66;color:#fbf1ea}
.activity-archive[data-era="past"] .activity-facts>span{background:linear-gradient(#4a3325cc,#2e2019cc);border-color:#e7b66d66;color:#fff0dc}
.activity-archive[data-era="past"] .archive-jumps a{background:#fffaf0;color:var(--o-deep);border:1.5px solid var(--o-copper);border-radius:999px}
.activity-archive[data-era="past"] .archive-jumps a:hover,.activity-archive[data-era="past"] .archive-jumps a:focus-visible{background:linear-gradient(#fff6e4,#f6d9b0);color:var(--o-deep);border-color:#c98546;box-shadow:0 0 0 3px #f3c98d40,0 6px 14px #8a5a3a26}
.activity-archive[data-era="present"] .archive-jumps a:hover,.activity-archive[data-era="present"] .archive-jumps a:focus-visible{background:var(--p-crimson);border-color:var(--p-crimson)}

/* 活动详情中的普通区块标题（名次奖、遗珠奖、本期公告） */
.activity-archive[data-era] .collection-heading:not(.floral-heading){background:none;border:0;min-height:0;padding:0;margin:0 0 22px;box-shadow:none}
.activity-archive[data-era] .collection-heading:not(.floral-heading):before{content:none}
.activity-archive[data-era="present"] .collection-heading:not(.floral-heading){height:48px;border-style:solid;border-width:0 57px 0 78px;border-image:url('assets/era/p-brown-plain.webp?v=94b2631b71') 0 65 0 90 fill / 0 57px 0 78px}
.activity-archive[data-era="present"] .collection-heading:not(.floral-heading):after{content:"";position:absolute;inset:0 4px 0 auto;left:auto;width:160px;height:48px;background:url('assets/era/p-brown-bow.webp?v=fc54aa049e') center/auto 48px no-repeat;opacity:1}
.activity-archive[data-era="present"] .collection-heading:not(.floral-heading) h2{color:#fff8f2;font-size:22px}
.activity-archive[data-era="present"] .collection-heading:not(.floral-heading) small{color:#f1cfc6}
.activity-archive[data-era="past"] .collection-heading:not(.floral-heading){height:62px;border-style:solid;border-width:0 39px;border-image:url('assets/era/o-pill.webp?v=bd16950fd8') 0 72 fill / 0 39px;padding-inline:14px}
.activity-archive[data-era="past"] .collection-heading:not(.floral-heading):after{content:none}
.activity-archive[data-era="past"] .collection-heading:not(.floral-heading) h2{color:var(--o-deep);font-size:24px}
.activity-archive[data-era="past"] .collection-heading:not(.floral-heading) small{color:#ad3f27}
.activity-archive[data-era] .collection-heading:not(.floral-heading) h2{font-family:var(--serif);font-weight:800;letter-spacing:.12em;line-height:1.2}

/* 获奖行 */
.activity-archive[data-era] .award-row{background-image:none;box-shadow:none;transition:transform .22s,background-color .22s,border-color .22s}
.activity-archive[data-era] .award-row:after{content:none}
.activity-archive[data-era="present"] .award-row{background:#fffdfb;border:1.5px solid #7c6462;border-radius:26px;color:var(--p-ink)}
.activity-archive[data-era="present"] .award-row:before{inset:5px;border:1.2px dotted #dcbdb0;border-radius:21px}
.activity-archive[data-era="present"] .award-row.first-prize{background:var(--p-sheet);border-color:var(--p-crimson)}
.activity-archive[data-era="present"] .award-row:hover{background-color:var(--p-blush);border-color:var(--p-crimson)}
.activity-archive[data-era="present"] .award-rank{color:var(--p-crimson);font-weight:800}
.activity-archive[data-era="present"] .award-work p{color:var(--p-muted)}
.activity-archive[data-era="present"] .award-listen{color:#fbf1ea;background:var(--p-brown);padding:8px 16px;border-radius:999px}
.activity-archive[data-era="present"] .award-listen:hover{background:var(--p-crimson);color:#fff}
.activity-archive[data-era="past"] .award-row{background:linear-gradient(#fffdf6,#fbecd6);border:1.5px solid #d69260;border-radius:4px;color:var(--o-ink)}
.activity-archive[data-era="past"] .award-row:before{inset:4px;border:1px solid #efc98f}
.activity-archive[data-era="past"] .award-row.first-prize{background:var(--o-sheet);border:3px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1}
.activity-archive[data-era="past"] .award-row:hover{border-color:var(--o-red);background:linear-gradient(#fff8ea,#f8dfbf)}
.activity-archive[data-era="past"] .award-rank{color:var(--o-red);font-weight:800}
.activity-archive[data-era="past"] .award-work p{color:var(--o-muted)}
.activity-archive[data-era="past"] .award-listen{background:linear-gradient(#fffdf6e6,#f9e2c2f0),url('assets/art/silk-pattern.webp?v=ce71f709ec') center/cover;color:var(--o-deep);border:1.5px solid #d69260;box-shadow:inset 0 0 0 2px #fffaf0,inset 0 0 0 3px #efc98f,0 4px 12px #8a5a3a26;padding:8px 16px;border-radius:999px}
.activity-archive[data-era="past"] .award-listen:hover{background:linear-gradient(#fff8eae0,#f6d6aeeb),url('assets/art/silk-pattern.webp?v=ce71f709ec') center/cover;color:var(--o-deep);border-color:#c98546;box-shadow:inset 0 0 0 2px #fffaf0,inset 0 0 0 3px #f3c98d,0 0 0 3px #f3c98d40,0 8px 18px #8a5a3a33}
.activity-archive[data-era] .award-work h3{font-family:var(--serif);font-weight:800}

/* 公告原文（可展开） */
.activity-archive[data-era] .archive-document summary{background:none}
.activity-archive[data-era="present"] .archive-document summary{padding-top:62px}
.activity-archive[data-era="present"] .archive-document summary:hover{background:#f4e6e180}
.activity-archive[data-era="past"] .archive-document summary:hover{background:#f3d3a855}
.activity-archive[data-era] .archive-document summary strong{font-family:var(--serif);font-weight:800}
.activity-archive[data-era="present"] .archive-document summary strong{color:var(--p-ink)}
.activity-archive[data-era="past"] .archive-document summary strong{color:var(--o-deep)}
.activity-archive[data-era="present"] .archive-toggle{color:var(--p-crimson)}
.activity-archive[data-era="past"] .archive-toggle{color:var(--o-red)}
.activity-archive[data-era="present"] .archive-document-body a:not(.button),.activity-archive[data-era="present"] .archive-rules a:not(.button){color:var(--p-crimson)}
.activity-archive[data-era="past"] .archive-document-body a:not(.button),.activity-archive[data-era="past"] .archive-rules a:not(.button){color:var(--o-red)}
.activity-archive[data-era="present"] .archive-source-bottom,.activity-archive[data-era="present"] .archive-rule{border-color:#dcc8b8}
.activity-archive[data-era="past"] .archive-source-bottom,.activity-archive[data-era="past"] .archive-rule{border-color:#e6c092}
.activity-archive[data-era="present"] .archive-rules{padding-top:66px}
.activity-archive[data-era="present"] .archive-schedule{padding-top:66px}
.activity-archive[data-era] .archive-rules h2,.activity-archive[data-era] .archive-schedule h2,.activity-archive[data-era] .archive-rule h3{font-family:var(--serif);font-weight:800}
.activity-archive[data-era="present"] .archive-rules h2,.activity-archive[data-era="present"] .archive-schedule h2,.activity-archive[data-era="present"] .archive-rule h3{color:var(--p-ink)}
.activity-archive[data-era="past"] .archive-rules h2,.activity-archive[data-era="past"] .archive-schedule h2,.activity-archive[data-era="past"] .archive-rule h3{color:var(--o-deep)}
.activity-archive[data-era="present"] .eyebrow{color:var(--p-crimson)}.activity-archive[data-era="present"] .about-archive-heading .eyebrow{color:#efc9c4}
.activity-archive[data-era="present"] .archive-detail-head .eyebrow{color:var(--gold)}
.activity-archive[data-era] .activity-section-note{opacity:1}   /* 2026-10-03：原来 .85 是让说明淡一点；现在说明垫了暖棕底（art-direction.css 末尾），不再整体调淡，免得底和字一起变浅看不清 */

/* ---------- 设计橱窗 ---------- */
.showcase-page .design-piece>a{transition:transform .3s,box-shadow .3s,border-color .3s}
.showcase-page .design-piece:not([data-era])>a{background:var(--o-sheet);border:5px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1;color:var(--o-ink)}
.showcase-page .design-piece:not([data-era]) img{background:radial-gradient(ellipse,#fffaf0,#f3dcbc);box-shadow:inset 0 0 0 1px #e7b66d}
.showcase-page .design-piece:not([data-era]) h3{color:var(--o-deep);font-weight:800}
.showcase-page .design-piece:not([data-era]) p{color:#775240}
.showcase-page .design-piece[data-era="present"]>a{background:var(--p-sheet);border:3px solid var(--p-rose);border-radius:16px;color:var(--p-ink);padding-top:40px}
.showcase-page .design-piece[data-era="present"] img{background:#fffdfb;border-radius:8px;box-shadow:inset 0 0 0 1px #e8d2c6}
.showcase-page .design-piece[data-era="present"] h3{color:var(--p-ink);font-weight:800}
.showcase-page .design-piece[data-era="present"] p{color:var(--p-muted)}
.showcase-page .design-piece>a:hover,.showcase-page .design-piece>a:focus-visible{transform:translateY(-6px);box-shadow:0 18px 36px #1d100c80}
.hub-dialog.design-viewer[data-era="present"]{border:3px solid var(--p-rose);border-radius:18px}
.hub-dialog.design-viewer:not([data-era]){border:5px solid #d9ab70;border-image:linear-gradient(135deg,#fbe9c4,#e6be85 30%,#c99562 55%,#e9c48e 80%,#fbe6bf) 1;border-radius:0}

/* ---------- 窄屏 ---------- */
@media(max-width:760px){
 :root{--p-sheet:url('assets/era/p-scallop-top.webp?v=d4cb595145') 0 0/auto 38px repeat-x,url('assets/era/p-peony-clear.webp?v=ab850e89ad') right -6px bottom -6px/150px auto no-repeat,var(--p-paper)}
 .era-heading--present,.activity-archive[data-era="present"] .collection-heading:not(.floral-heading){height:40px;border-width:0 47px 0 65px;border-image-width:0 47px 0 65px}
 .era-heading--present:after,.activity-archive[data-era="present"] .collection-heading:not(.floral-heading):after{display:none}
 .era-heading--present h2,.activity-archive[data-era="present"] .collection-heading:not(.floral-heading) h2{font-size:18px;letter-spacing:.08em}
 .era-heading--past,.activity-archive[data-era="past"] .collection-heading:not(.floral-heading){height:52px;border-width:0 33px;border-image-width:0 33px}
 .era-heading--past h2,.activity-archive[data-era="past"] .collection-heading:not(.floral-heading) h2{font-size:20px;letter-spacing:.08em}
 .catalog-page .era-section[data-era]{padding:56px 14px 30px;margin-inline:-6px}
 .catalog-page .era-section[data-era="past"]{padding-top:30px}
 .catalog-page .era-section[data-era="present"]:before{inset:44px 6px 6px}
 .catalog-page .era-section[data-era="present"] .video-record{padding:14px 44px 14px 14px;border-radius:22px}
 .catalog-page .era-section[data-era="present"] .video-record:after{right:14px}
 .catalog-page .era-section[data-era] .video-record{grid-template-columns:38px minmax(0,1fr);gap:12px}
 .catalog-page .era-section[data-era] .video-group h3{font-size:19px}
 .realm-page .story-gateway[data-era="present"]{padding-top:58px}
 .activity-archive[data-era="present"] .archive-document summary{padding-top:52px}
 .activity-archive[data-era="present"] .award-row{border-radius:20px}
}
@media(prefers-reduced-motion:reduce){.catalog-page .era-section[data-era] .video-record,.catalog-page .era-section[data-era] .video-record:after,.showcase-page .design-piece>a{transition:none}}
.motion-paused.catalog-page .era-section[data-era] .video-record,.motion-paused.showcase-page .design-piece>a{transition:none}
/* 加载速度（Claude, 2026-09-28）：屏幕外的大背景图延后到滚动接近时才加载。
   html.bg-wait 由每页头部的小脚本加上（浏览器不支持时不加，背景照常直接加载）；元素进入可视区域 600 像素内时加 .bg-in。 */
.bg-wait .home-hub-entries a:not(.bg-in),.bg-wait .site-footer:not(.bg-in),.bg-wait .library-bottom:not(.bg-in),.bg-wait .profile-end:not(.bg-in),.bg-wait .episode-card:not(.bg-in){background-image:none!important}
/* 2026-09-28 文字对比度修正（Raymond 同意）：几处小字和底色太接近，按原来的色系调深或调浅到看得清（对比度 4.5 以上）。
   改了：来认识影哥与影妹页深色底上的小标题、小影子/影奶茶页左侧目录和兴趣标签的底色、影之声活动卡的状态字、首页顶部「致每一位织梦人」、
   现世纸面上的浅色说明字（--p-muted）、设计橱窗卡片说明、旧日活动页标题前的小字。 */
/* 经世书阁 on phones (2026-09-29): compact rows like the songlist. Title up to two lines; date, length and "B 站播放" share one line.
   The BV number is no longer printed (search still finds it through data-bvid). */
@media(max-width:760px){
 .catalog-page .era-section[data-era] .video-list{gap:8px}
 .catalog-page .era-section[data-era] .video-record{grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:"num title title" "num meta play";column-gap:10px;row-gap:2px;align-items:center}
 .catalog-page .era-section[data-era="present"] .video-record{padding:9px 38px 9px 11px;border-radius:18px}
 .catalog-page .era-section[data-era="present"] .video-record:after{right:12px;width:18px;height:15px;margin-top:-7px}
 .catalog-page .era-section[data-era="past"] .video-record{padding:9px 12px}
 .catalog-page .era-section[data-era] .video-record>div{display:contents}
 .catalog-page .era-section[data-era] .video-number{grid-area:num;align-self:center}
 .catalog-page .era-section[data-era="present"] .video-number{width:30px;height:24px;font-size:13px}
 .catalog-page .era-section[data-era="past"] .video-number{width:28px;height:28px;font-size:12px}
 .catalog-page .era-section[data-era] .video-record h4{grid-area:title;margin:0;font-size:15px;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
 .catalog-page .era-section[data-era] .video-record p{grid-area:meta;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .catalog-page .era-section[data-era] .video-play{grid-area:play;grid-column:auto;font-size:12px;line-height:1.6}
}
/* 2026-10-03 优化 第 17 项：手机上往昔金框（经世书阁「旧日影妹」、麒麟颂歌「影哥想听」）里的字离金框远一点 */
@media(max-width:760px){.catalog-page .era-section[data-era="past"]{padding-inline:26px}}
/* ===== live.css ===== */
/* Live room in the site (2026-10-01, Raymond): the 我的 chip in the header island, the flying danmaku, the home live
   card and the edge bubble on the other pages. Glass and gold follow the island, the corner buttons and the home
   entry cards; red is only used for 直播中. */

/* ---------- 我的 chip (sits where the old tagline was) ---------- */
.site-header .header-me{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;min-height:40px;padding:4px 14px 4px 5px;border:1px solid #ffefd42e;border-radius:999px;background:linear-gradient(135deg,#ffffff1f,#ffffff08);box-shadow:inset 0 1px 0 #ffffff1c;color:#cbd3d9;font:14px/1.6 var(--sans);text-decoration:none;white-space:nowrap;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}
.site-header .header-me:hover,.site-header .header-me:focus-visible,.site-header .header-me[aria-current]{color:var(--gold);border-color:#e2c39866;background:linear-gradient(135deg,#ffffff29,#ffffff0c);box-shadow:inset 0 1px 0 #fff2,0 3px 12px #1e120e14}
.site-header .header-me:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
/* 全站搜索按钮（2026-10-01，Raymond 要求：导航栏「我的」左边，样式同「我的」；面板样式在 search.css，搜索功能在 search.js） */
.site-header .header-search{position:relative;display:inline-grid;place-items:center;flex-shrink:0;width:40px;height:40px;padding:0;border:1px solid #ffefd42e;border-radius:50%;background:linear-gradient(135deg,#ffffff1f,#ffffff08);box-shadow:inset 0 1px 0 #ffffff1c;color:#cbd3d9;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}
.site-header .header-search svg{display:block}
.site-header .header-search:hover,.site-header .header-search:focus-visible,.site-header .header-search[aria-expanded="true"]{color:var(--gold);border-color:#e2c39866;background:linear-gradient(135deg,#ffffff29,#ffffff0c);box-shadow:inset 0 1px 0 #fff2,0 3px 12px #1e120e14}
.site-header .header-search:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.site-header .header-search::after{content:attr(data-tip);position:absolute;top:calc(100% + 10px);left:50%;padding:5px 11px;border:1px solid #ffffff2e;border-radius:10px;background:linear-gradient(160deg,#ffffff1c,#ffffff06 55%),#2a2320f2;box-shadow:inset 0 1px 0 #fff2,0 8px 22px #1e120e4d;color:var(--ink);font:12px/1.5 var(--sans);white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,-3px);transition:opacity .15s,transform .15s}
@media(hover:hover) and (pointer:fine){.site-header .header-search:hover::after,.site-header .header-search:focus-visible::after{opacity:1;transform:translate(-50%,0)}}
.site-header .header-search[aria-expanded="true"]::after{opacity:0}
:root:not([data-daypart]) .site-header .header-search{display:none}   /* 没有脚本时搜不了，不显示 */
.header-me-face{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;overflow:hidden;border-radius:50%;border:1px solid #e2c39880;background:#2a2320b3;color:var(--gold)}
.header-me-face img{width:100%;height:100%;object-fit:cover;display:block}
.site-header .header-end{display:flex;align-items:center;gap:16px;flex-shrink:0}
@media(max-width:1200px) and (min-width:761px){.site-header .header-end{grid-column:2;grid-row:1;justify-self:end}}
@media(max-width:760px){
 .site-header .header-end{display:contents}
 .site-header .header-me{position:absolute;top:13px;right:13px;min-height:0;padding:3px;gap:0}
 .site-header .header-search{position:absolute;top:13px;left:13px;width:40px;height:40px}
 .site-header .header-search::after{content:none}
 .site-header .header-me-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .header-me-face{width:32px;height:32px}
}

/* ---------- flying danmaku ---------- */
.dm-layer{position:fixed;inset:0;z-index:58;pointer-events:none;overflow:hidden}
.dm-layer[hidden]{display:none}
.dm{position:absolute;left:0;top:0;display:flex;gap:7px;white-space:nowrap;padding:4px 14px;border:1px solid #ffffff38;border-radius:999px;background:#2a232085;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 14px #1e120e26;color:#f4efe8;font:14px/1.55 var(--sans);opacity:.86;transform:translateX(var(--dm-from,100vw));animation:dm-fly var(--dm-dur,9s) linear forwards;will-change:transform}
.dm.is-measuring{visibility:hidden;animation:none}
.dm-who{color:var(--gold)}
.dm-guard{border-color:#e2c398b0;box-shadow:inset 0 0 0 1px #e2c39833,0 4px 14px #1e120e26}
.dm-layer.is-dense .dm{-webkit-backdrop-filter:none;backdrop-filter:none;background:#2a2320e0}
/* Phones and touch screens (2026-10-03): no frosted glass behind flying lines at all — the blur under moving boxes is what drops frames there; same look as the many-lines fallback above */
@media(max-width:760px),(pointer:coarse){.dm{-webkit-backdrop-filter:none;backdrop-filter:none;background:#2a2320e0}}
@keyframes dm-fly{from{transform:translateX(var(--dm-from,100vw))}to{transform:translateX(-100%)}}
@media(max-width:375px){.dm{font-size:12px;padding:3px 10px}}
/* 弹幕开关在右下角「设置」菜单里（2026-10-01），样式跟日夜那一栏相同，见 motion.css 的 .ambience-row。 */

/* ---------- 「登录后可以看到大家的 B 站昵称」（织梦星图、留言簿，2026-10-01）---------- */
.who-hint{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 14px;margin:0 0 18px;padding:10px 16px;border-radius:14px;background:#efe2dc;color:var(--p-brown-deep);font-size:14px;line-height:1.7;text-align:center}
.who-hint[hidden]{display:none}
.who-hint a{color:inherit;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;white-space:nowrap}
.who-hint a:hover{text-decoration-thickness:2px}
.who-hint a:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:4px}

/* ---------- home live card (left column, under 你好，织梦人) ---------- */
.home-page .home-live{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 18px;align-items:center;margin:22px 0 0;padding:18px 22px 16px;border:1px solid #d4b38db0;border-radius:12px;background:linear-gradient(100deg,#503841eb,#382732d6);box-shadow:inset 0 0 24px #efc49615,0 8px 28px #130d1933;color:inherit;text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s}
.home-page .home-live:focus-visible{transform:translateY(-3px);border-color:#e2c398;box-shadow:inset 0 0 24px #efc49626,0 10px 30px #c78d5933}
@media(hover:hover){.home-page .home-live:hover{transform:translateY(-3px);border-color:#e2c398;box-shadow:inset 0 0 24px #efc49626,0 10px 30px #c78d5933}}   /* 2026-10-03：悬停效果只给有鼠标的设备，手机点过后不会一直浮着 */
.home-page .home-live:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.home-live-face{position:relative;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;border:2px solid #d4b38d;background:radial-gradient(circle at 35% 30%,#7a5560,#3a2830);box-shadow:0 0 0 4px #2a232099}
.home-live-face img{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover}
.home-live-face i{font-style:normal;font-family:var(--serif);font-weight:800;font-size:26px;color:var(--gold)}
.home-live-face:before,.home-live-face:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #f0647a;opacity:0;pointer-events:none}
.home-live[data-state="live"] .home-live-face{border-color:#f0647a}
.home-live[data-state="live"] .home-live-face:before{animation:live-ring 2.4s ease-out infinite}
.home-live[data-state="live"] .home-live-face:after{animation:live-ring 2.4s ease-out 1.2s infinite}
@keyframes live-ring{0%{opacity:.8;transform:scale(.92)}100%{opacity:0;transform:scale(1.35)}}
.home-live-body{display:grid;gap:1px;min-width:0}
.home-live-eyebrow{color:#d2bcab;font-size:12px;letter-spacing:.12em}
.home-live-name{color:#f4efe8;font-family:var(--serif);font-weight:800;font-size:21px;line-height:1.5;letter-spacing:.08em}
.home-live-meta{color:#c4cdd4;font-size:13px;line-height:1.7}
.home-live-meta[hidden]{display:none}
.home-live-status{grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"tag title arrow" "sub sub arrow";gap:3px 10px;align-items:center;padding:9px 12px 9px 10px;border:1px solid #ffffff1f;border-radius:10px;background:#ffffff0d}
.home-live-tag{grid-area:tag;display:inline-flex;align-items:center;gap:5px;padding:1px 9px;border-radius:999px;background:#ffffff1f;color:#d2bcab;font:12px/1.7 var(--sans);font-weight:400}
.home-live[data-state="live"] .home-live-tag{background:#d63b53;color:#fff}/* 2026-10-01 略加深，白字对比度到 4.5:1（原 #d9485e） */
.home-live[data-state="live"] .home-live-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:live-blink 1.4s ease-in-out infinite}
@keyframes live-blink{50%{opacity:.35}}
.home-live-title{grid-area:title;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f4efe8;font-size:15px}
.home-live-sub{grid-area:sub;color:#c4cdd4;font-size:12.5px;line-height:1.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-live-arrow{grid-area:arrow;color:var(--gold);font-size:22px;line-height:1;transition:transform .3s cubic-bezier(.22,1,.36,1)}
@media(hover:hover){.home-page .home-live:hover .home-live-arrow{transform:translateX(4px)}}
/* 2026-10-01 第二版（Raymond）：卡片不再整张是链接——状态栏单独打开直播间，下面三个按钮：个人空间 / 直播间 / 粉丝群（复制 QQ 群号）。 */
a.home-live-status{color:inherit;text-decoration:none;transition:border-color .2s,background-color .2s}
a.home-live-status:hover{border-color:#e2c39866;background:#ffffff14}
a.home-live-status:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.home-live-links{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.home-live-link{display:grid;justify-items:center;align-content:center;gap:1px;min-width:0;padding:8px 6px 7px;border:1px solid #ffffff1f;border-radius:10px;background:#ffffff0d;color:#f4efe8;font:inherit;text-align:center;text-decoration:none;cursor:pointer;transition:border-color .2s,background-color .2s,transform .3s cubic-bezier(.22,1,.36,1)}
.home-live-link strong{font-family:var(--serif);font-weight:800;font-size:15px;line-height:1.5;letter-spacing:.06em}
.home-live-link small{display:inline-flex;align-items:center;gap:4px;max-width:100%;color:#c4cdd4;font-size:12px;line-height:1.6;white-space:nowrap;overflow:hidden}
.home-live-link small svg{flex:none}
.home-live-link:hover{border-color:#e2c398;background:#ffffff17;transform:translateY(-2px)}
.home-live-link:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.home-live-group.is-copied{border-color:#e2c398}
.home-live-group.is-copied small{color:var(--gold)}
@media(max-width:420px){.home-live-links{gap:6px}.home-live-link{padding-left:3px;padding-right:3px}.home-live-qq{display:none}}
@media(max-width:760px){.home-page .home-live{padding:15px 16px 14px;gap:10px 14px}.home-live-face{width:56px;height:56px}.home-live-name{font-size:19px}}
/* 首页直播间卡片的美术（2026-10-02，Raymond：纯紫不好看，像旁边的卡片那样加美术和滤镜）：
   右上角是比心的影妹（往左、往下渐隐，不挡字）；底色从左边原来的暖紫，过渡到右边和她身后同一路的玫瑰红
   （同日 Raymond 嫌原先垫的模糊「金色舞台」那片黄太抽象，改成这种匹配的过渡色）；
   状态条和三个按钮垫一层暗色毛玻璃，字照旧看得清。字体、字色都没改。 */
.home-page .home-live{isolation:isolate;overflow:hidden;background:linear-gradient(100deg,#4a3240f5 0%,#4a3040f2 38%,#5e3044ee 66%,#7d3a4cea 100%)}
.home-page .home-live:before,.home-page .home-live:after{content:"";position:absolute;inset:0;pointer-events:none;background-repeat:no-repeat}
.home-page .home-live:before{z-index:-2;background-image:radial-gradient(70% 120% at 100% 0%,#9b435080,#86485233 45%,transparent 75%),radial-gradient(60% 90% at 0% 100%,#2f2130b3,transparent 70%);transition:opacity .6s}
.home-page .home-live:after{z-index:-1;background-image:url('assets/opt/archive/heart-qilin-card.webp?v=eecc9436e6');background-size:auto 225%;background-position:right -8px top -150px;opacity:.92;
 -webkit-mask-image:linear-gradient(90deg,transparent calc(100% - 270px),#000 calc(100% - 120px)),linear-gradient(180deg,#000 38%,transparent 68%);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(90deg,transparent calc(100% - 270px),#000 calc(100% - 120px)),linear-gradient(180deg,#000 38%,transparent 68%);mask-composite:intersect}
.home-page .home-live[data-state="live"]:before{background-image:radial-gradient(70% 120% at 100% 0%,#b04a5c99,#86485240 45%,transparent 75%),radial-gradient(60% 90% at 0% 100%,#2f2130b3,transparent 70%)}
.home-page .home-live .home-live-status,.home-page .home-live .home-live-link{background:#2b1d28a8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.home-page .home-live a.home-live-status:hover,.home-page .home-live .home-live-link:hover{background:#3a2834b8}
@media(max-width:760px){
 .home-page .home-live:after{background-size:auto 200%;background-position:right -14px top -112px;
  -webkit-mask-image:linear-gradient(90deg,transparent calc(100% - 170px),#000 calc(100% - 60px)),linear-gradient(180deg,#000 34%,transparent 62%);
  mask-image:linear-gradient(90deg,transparent calc(100% - 170px),#000 calc(100% - 60px)),linear-gradient(180deg,#000 34%,transparent 62%)}
}

/* ---------- edge bubble ---------- */
.live-dock{position:fixed;left:0;top:0;z-index:65;opacity:0;touch-action:none;will-change:transform}
.live-dock.is-ready{opacity:1;transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1),translate .45s cubic-bezier(.22,1,.36,1)}
.live-dock.is-placing{transition:none}
.live-dock.is-dragging{transition:none}
.live-dock-bubble{position:relative;display:block;width:56px;height:56px;margin:0;padding:0;border:0;border-radius:50%;background:none;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;transition:transform .25s cubic-bezier(.22,1,.36,1)}
.live-dock.is-dragging .live-dock-bubble{cursor:grabbing;transform:scale(1.08)}
.live-dock-bubble:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.live-dock-face{position:relative;display:grid;place-items:center;box-sizing:border-box;width:100%;height:100%;padding:4px;border-radius:50%;background:conic-gradient(from 210deg,#fbe9c4,#e6be85 16%,#c99562 32%,#e9c48e 50%,#fbe6bf 62%,#c99562 80%,#fbe9c4);box-shadow:0 6px 16px #1e120e66,0 0 0 1px #7c4f2e55}
.live-dock-face:after{content:"";position:absolute;inset:3px;border-radius:50%;box-shadow:inset 0 0 0 1px #7c4f2e99,inset 0 0 8px #1e120e40;pointer-events:none}
.live-dock-face:before{content:"";position:absolute;inset:4px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#7a5560,#3a2830)}
.live-dock-face img{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);border-radius:50%;object-fit:cover;z-index:1;pointer-events:none;-webkit-user-drag:none;user-select:none}
.live-dock-face i{position:relative;font-style:normal;font-family:var(--serif);font-weight:800;font-size:21px;color:var(--gold)}
.live-dock-face.is-small{width:40px;height:40px;flex:none;padding:3px;box-shadow:0 2px 6px #1e120e59}
.live-dock-face.is-small img{inset:3px;width:calc(100% - 6px);height:calc(100% - 6px)}
.live-dock-face.is-small:before{inset:3px}
.live-dock-face.is-small:after{inset:2px}
.live-dock-face.is-small i{font-size:16px}
/* 2026-10-01 Raymond chose 描金圆璧: the champagne-gold ring of the site's gilded frames; while live a warm light runs round it. */
@property --sweep{syntax:'<angle>';inherits:false;initial-value:210deg}
.live-dock[data-state="live"] .live-dock-bubble .live-dock-face{background:conic-gradient(from var(--sweep),#fff4dc,#f0c98a 12%,#d9805f 26%,#e9c48e 44%,#fff1d2 56%,#d9805f 74%,#fff4dc);animation:ball-sweep 4s linear infinite}
@keyframes ball-sweep{to{--sweep:570deg}}
.live-dock.will-snap .live-dock-face{box-shadow:0 6px 16px #1e120e66,0 0 0 4px #f3d7a066,0 0 18px #f3d7a0aa}
.live-dock-tag{position:absolute;left:50%;bottom:-9px;z-index:2;transform:translateX(-50%);display:none;align-items:center;gap:4px;padding:0 8px 0 7px;border:1px solid #e2c398c0;border-radius:999px;background:linear-gradient(#8a5256,#45342e);color:#f7e2b8;font:10.5px/16px var(--sans);font-weight:400;letter-spacing:.08em;box-shadow:0 2px 6px #1e120e59;white-space:nowrap}
.live-dock[data-state="live"] .live-dock-tag{display:inline-flex}
.live-dock-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:#ffb3c1;box-shadow:0 0 6px #ff8fa5;animation:live-blink 1.4s ease-in-out infinite}
.live-dock.is-tucked{opacity:.82}
.live-dock.is-tucked[data-edge="right"]{transform:translateX(calc(50% + 12px))}
.live-dock.is-tucked[data-edge="left"]{transform:translateX(calc(-50% - 12px))}
.live-dock.is-tucked[data-edge="top"]{transform:translateY(calc(-50% - 12px))}
.live-dock.is-tucked[data-edge="bottom"]{transform:translateY(calc(50% + 12px))}
.live-dock-card{position:absolute;width:min(272px,calc(100vw - 32px));padding:14px 14px 12px;border:1px solid #ffffff33;border-radius:18px;background:linear-gradient(160deg,#ffffff1c,#ffffff06 55%,#ffffff0d),#2a2320d9;-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%);box-shadow:inset 0 1px 0 #fff2,0 16px 38px #1e120e59;color:#f4efe8;cursor:auto}
.live-dock-card[hidden]{display:none}
.live-dock[data-edge="free"][data-side="left"] .live-dock-card{right:calc(100% + 12px);top:calc(50% - 86px);transform-origin:right center}
.live-dock[data-edge="free"][data-side="right"] .live-dock-card{left:calc(100% + 12px);top:calc(50% - 86px);transform-origin:left center}
.live-dock[data-edge="right"] .live-dock-card{right:calc(100% + 12px);top:calc(50% - 86px);transform-origin:right center}
.live-dock[data-edge="left"] .live-dock-card{left:calc(100% + 12px);top:calc(50% - 86px);transform-origin:left center}
.live-dock[data-edge="top"] .live-dock-card{top:calc(100% + 14px);left:calc(50% - 136px);transform-origin:center top}
.live-dock[data-edge="bottom"] .live-dock-card{bottom:calc(100% + 14px);left:calc(50% - 136px);transform-origin:center bottom}
.live-dock-head{display:flex;align-items:center;gap:10px}
.live-dock-names{display:grid;flex:1;min-width:0}
.live-dock-names small{color:#d2bcab;font-size:11.5px;letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-dock-names strong{font-family:var(--serif);font-weight:800;font-size:16px;letter-spacing:.06em}
.live-dock-state{flex:none;padding:1px 9px;border-radius:999px;background:#ffffff1f;color:#d2bcab;font:12px/1.7 var(--sans);font-weight:400}
.live-dock[data-state="live"] .live-dock-state{background:#d63b53;color:#fff}
.live-dock-title{margin:10px 0 0;font-size:14.5px;line-height:1.6;overflow-wrap:anywhere}
.live-dock-sub,.live-dock-meta{margin:3px 0 0;color:#c4cdd4;font-size:12.5px;line-height:1.7}
.live-dock-meta[hidden]{display:none}
.live-dock-go{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:12px;min-height:38px;border:1px solid #e2c398a8;border-radius:999px;background:linear-gradient(#7b474ba8,#45342eb8),url('assets/art/silk-pattern.webp?v=ce71f709ec') center/cover;color:var(--gold);font-size:14px;text-decoration:none;transition:background-color .2s,border-color .2s}
.live-dock-go:hover,.live-dock-go:focus-visible{border-color:var(--gold);background-color:#a56956}
.live-dock-go:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(max-width:760px){
 .live-dock-bubble{width:48px;height:48px}
 .live-dock-face i{font-size:18px}
}
@media print{.live-dock,.dm-layer{display:none}}

/* calm: no rings, no glide (the danmaku also stop, in danmaku.js) */
@media(prefers-reduced-motion:reduce){.site-header .header-me,.home-page .home-live,.home-page .home-live:before,.home-live-arrow,.home-live-link,.live-dock,.live-dock.is-ready,.live-dock-bubble,.live-dock-go{transition:none}
 .home-live-face:before,.home-live-face:after,.live-dock-tag:before,.home-live-tag:before,.live-dock[data-state="live"] .live-dock-bubble .live-dock-face{animation:none}}
.motion-paused .site-header .header-me,.motion-paused .home-live,.motion-paused .home-live-arrow,.motion-paused .home-live-link,.motion-paused .live-dock,.motion-paused .live-dock-bubble{transition:none}
.motion-paused .home-live-face:before,.motion-paused .home-live-face:after,.motion-paused .live-dock-tag:before,.motion-paused .home-live-tag:before,.motion-paused .live-dock[data-state="live"] .live-dock-bubble .live-dock-face{animation:none}
/* Phones (2026-10-03, optimization round): while scrolling down the live ball slides out with the corner buttons
   (body.tools-tucked, motion.js) and comes back on scrolling up; not while its card is open, it is held or has focus. */
@media(max-width:760px){
 body.tools-tucked .live-dock.is-ready:not(.is-open):not(.is-dragging):not(:focus-within){opacity:0;pointer-events:none}
 body.tools-tucked .live-dock.is-ready[data-edge="right"]:not(.is-open):not(.is-dragging):not(:focus-within){transform:translateX(calc(100% + 24px))}
 body.tools-tucked .live-dock.is-ready[data-edge="left"]:not(.is-open):not(.is-dragging):not(:focus-within){transform:translateX(calc(-100% - 24px))}
 body.tools-tucked .live-dock.is-ready[data-edge="top"]:not(.is-open):not(.is-dragging):not(:focus-within){transform:translateY(calc(-100% - 24px))}
 body.tools-tucked .live-dock.is-ready[data-edge="bottom"]:not(.is-open):not(.is-dragging):not(:focus-within){transform:translateY(calc(100% + 24px))}
 body.tools-tucked .live-dock.is-ready[data-edge="free"]:not(.is-open):not(.is-dragging):not(:focus-within){transform:scale(.6)}
}
/* ===== 2026-10-03 优化 ===== */
html.ss-open{overflow:hidden}   /* 第 18 项：搜索面板打开时后面的页面不跟着滚（search.css 要第一次打开才下载，这条放在每页都有的 live.css） */
.live-dock-tag{font-size:12px}   /* 第 24 项：小字不小于 12px */
@media (pointer:coarse),(max-width:760px){.who-hint a{position:relative}.who-hint a::after{content:"";position:absolute;inset:-10px -6px}}   /* 第 13 项 */
/* 2026-10-03 优化 第 21 项：缩在左右边上的直播球不挡手指上下滑页面；横着拖才拖出来（live.js） */
.live-dock.is-tucked:is([data-edge="left"],[data-edge="right"]),.live-dock.is-tucked:is([data-edge="left"],[data-edge="right"]) .live-dock-bubble{touch-action:pan-y}
.live-dock-card:focus{outline:none}
/* ===== me.css ===== */
/* 我的 page (2026-10-01, Raymond): present paper like the guide, guestbook and library pages. Cards follow the
   video list (white card, dark brown line), numbers and chips follow the video numbers and category chips. */
.catalog-page .me-section.era-section[data-era]{margin-top:22px;scroll-margin-top:130px}
.me-state{min-height:240px}
.me-state[data-state="loading"]{background:none}

/* login */
.me-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px;padding:0}
.me-steps li{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fffdfb;border:1.5px solid #7c6462;border-radius:22px;color:var(--p-ink);font-size:14.5px;line-height:1.7}
.me-steps b{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:var(--p-brown);color:#fbf1ea;font-family:var(--serif);font-weight:800;font-size:15px}
.me-code-card{display:grid;justify-items:center;gap:12px;padding:26px 24px 22px;background:var(--p-blush);border:1.5px dashed var(--p-rose-deep);border-radius:26px;text-align:center}
.me-code-label{margin:0;color:var(--p-muted);font-size:13px;letter-spacing:.12em}
.me-code{margin:0;color:var(--p-brown-deep);font-family:var(--serif);font-weight:800;font-size:clamp(34px,6vw,48px);line-height:1.2;letter-spacing:.14em;user-select:all;-webkit-user-select:all;font-variant-numeric:tabular-nums}
.me-code-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px}
.me-copy{min-width:140px;cursor:pointer;font:15px var(--sans)}
.me-copy:disabled{opacity:.6;cursor:default}
.me-renew,.me-retry,.me-logout{padding:8px 20px;border:1.5px solid var(--p-brown);border-radius:999px;background:transparent;color:var(--p-brown);font:14px var(--sans);cursor:pointer;transition:background-color .2s,color .2s}
.me-renew:focus-visible,.me-retry:focus-visible,.me-logout:focus-visible{background-color:var(--p-brown);color:#fbf1ea}
@media(hover:hover){.me-renew:hover,.me-retry:hover,.me-logout:hover{background-color:var(--p-brown);color:#fbf1ea}}   /* 2026-10-03：手机点过后不会一直是深色 */
.me-room{padding:8px 18px;border:1.5px solid var(--p-rose-deep);border-radius:999px;color:var(--p-crimson);font-size:14px;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s}
.me-room:hover,.me-room:focus-visible{background:var(--p-crimson);border-color:var(--p-crimson);color:#fbf1ea}
.me-renew:focus-visible,.me-retry:focus-visible,.me-logout:focus-visible,.me-room:focus-visible{outline:2px solid var(--p-crimson);outline-offset:2px}
.me-wait{display:flex;align-items:center;gap:8px;margin:2px 0 0;min-height:1.7em;color:var(--p-muted);font-size:14px;font-variant-numeric:tabular-nums}
.me-wait i{width:8px;height:8px;border-radius:50%;background:var(--p-rose-deep);animation:me-breathe 1.4s ease-in-out infinite}
.me-wait[data-kind="ok"]{color:#46704a}.me-wait[data-kind="ok"] i{background:#46704a;animation:none}
.me-wait[data-kind="warn"]{color:var(--p-crimson)}.me-wait[data-kind="warn"] i{background:var(--p-crimson);animation:none}
@keyframes me-breathe{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}
.me-back{margin:0 0 14px;padding:10px 16px;border-radius:14px;background:#efe2dc;color:var(--p-brown-deep);font-size:14px;text-align:center}
.me-note{margin:16px 0 0;color:var(--p-muted);font-size:13px;line-height:1.9;text-align:center}

/* profile */
.me-card{display:flex;align-items:center;gap:18px;padding:18px 22px;background:#fffdfb;border:1.5px solid #7c6462;border-radius:26px}
.me-face{position:relative;display:grid;place-items:center;flex:none;width:72px;height:72px;overflow:hidden;border-radius:50%;border:2px solid #e2c398;background:var(--p-blush);box-shadow:0 0 0 3px #fffdfb,0 0 0 4.5px #d7bba9}
.me-avatar{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.me-avatar[hidden]{display:none}
.me-initial{color:var(--p-brown);font-family:var(--serif);font-weight:800;font-size:28px}
.me-who{flex:1;min-width:0}
.me-name{margin:0;color:var(--p-ink);font-family:var(--serif);font-weight:800;font-size:22px;line-height:1.4;overflow-wrap:anywhere}
.me-badges{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0}
.me-medal,.me-guard{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 4px 0 12px;border-radius:999px;font-family:var(--serif);font-weight:800;font-size:13px;letter-spacing:.04em}
.me-medal{background:var(--p-brown);color:#fbf1ea}
.me-medal b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#fbf1ea;color:var(--p-brown-deep);font-size:12px}
.me-guard{padding:0 12px;background:linear-gradient(#fdf0d2,#f1d29c);color:#7c2c1b;box-shadow:inset 0 0 0 1.5px #d69260}
.me-medal[hidden],.me-guard[hidden]{display:none}
.me-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.me-stat{display:grid;gap:2px;align-content:start;padding:14px 18px 16px;background:#fffdfb;border:1.5px solid #7c6462;border-radius:22px}
.me-stat small{color:var(--p-muted);font-size:13px;letter-spacing:.06em}
.me-stat strong{color:var(--p-crimson);font-family:var(--serif);font-weight:800;font-size:30px;line-height:1.3;font-variant-numeric:tabular-nums}
.me-stat em{margin-left:4px;color:var(--p-muted);font-family:var(--sans);font-style:normal;font-weight:400;font-size:14px}
.me-rank{color:var(--p-brown);font-size:13px}
.me-summary{margin:14px 0 0;color:var(--p-ink);font-size:15px;line-height:1.8;text-align:center}
.me-summary[hidden]{display:none}
.me-trail{margin-top:26px}
.me-recent{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.me-recent li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:baseline;padding:10px 18px;background:#fffdfb;border:1.5px solid #7c6462;border-radius:18px;color:var(--p-ink);font-size:15px;line-height:1.7}
.me-recent time{color:var(--p-muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.me-recent span{overflow-wrap:anywhere}
.me-empty{margin:0;padding:18px;text-align:center;color:var(--p-muted);border:1.5px dashed #d7bba9;border-radius:18px}
.me-empty[hidden]{display:none}
.me-since{margin:18px 0 0;color:var(--p-muted);font-size:13px;text-align:center}
.me-privacy{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:18px 0 0;padding:12px 18px;border:1.5px dashed #d7bba9;border-radius:18px}
.me-hide{display:inline-flex;align-items:center;gap:10px;padding:4px 2px;border:0;background:none;color:var(--p-ink);font:15px var(--sans);cursor:pointer}
.me-hide:disabled{opacity:.6;cursor:default}
.me-hide:focus-visible{outline:2px solid var(--p-crimson);outline-offset:3px;border-radius:8px}
.me-hide-track{position:relative;width:42px;height:24px;border-radius:999px;background:#e5d4cd;box-shadow:inset 0 0 0 1.5px #cdb3aa;transition:background-color .25s,box-shadow .25s}
.me-hide-track i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #45342e40;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.me-hide[aria-checked="true"] .me-hide-track{background:var(--p-brown);box-shadow:inset 0 0 0 1.5px var(--p-brown)}
.me-hide[aria-checked="true"] .me-hide-track i{transform:translateX(18px)}
.me-hide-note{flex:1 1 260px;margin:0;color:var(--p-muted);font-size:13px;line-height:1.8}
.me-hide-note a{color:var(--p-crimson)}
.me-offline{display:grid;justify-items:center;gap:12px;padding:36px 16px;color:var(--p-muted);text-align:center}
.me-offline p{margin:0}
.me-login[hidden],.me-profile[hidden],.me-offline[hidden]{display:none}

@media(max-width:900px){.me-steps{grid-template-columns:minmax(0,1fr)}.me-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .me-steps li{padding:10px 14px;border-radius:18px;font-size:14px}
 .me-code-card{padding:22px 16px 18px;border-radius:20px}
 .me-card{flex-wrap:wrap;padding:16px;border-radius:20px;gap:14px}
 .me-face{width:60px;height:60px}
 .me-name{font-size:19px}
 .me-who{flex:1 1 calc(100% - 80px)}
 .me-logout{margin-left:auto;padding:6px 16px;font-size:13px}
 .me-stat{padding:12px 14px 14px;border-radius:18px}
 .me-stat strong{font-size:24px}
 .me-recent li{grid-template-columns:minmax(0,1fr);gap:0;padding:9px 14px;border-radius:16px;font-size:14.5px}
}
@media(prefers-reduced-motion:reduce){.me-hide-track,.me-hide-track i{transition:none}.me-wait i{animation:none}.me-renew,.me-retry,.me-logout,.me-room{transition:none}}
.motion-paused .me-wait i{animation:none}

/* ---------- 2026-10-01 (Raymond): 送出的电池、活跃足迹（每天一格）、集章本 ---------- */
.me-stats{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.me-stat[hidden],.me-recent[hidden],.me-heat[hidden],.me-stamps[hidden]{display:none}

/* 活跃足迹 */
.me-heat{--c:13px;--g:3px;--l0:#f1e5e0;--l1:#eec3bd;--l2:#dc928e;--l3:#c25b60;--l4:#9b2d3b;position:relative;padding:16px 20px 16px;background:#fffdfb;border:1.5px solid #7c6462;border-radius:22px}
.me-heat-sum{margin:0 0 12px;color:var(--p-ink);font-size:14.5px;line-height:1.8}
.me-heat-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#d7bba9 transparent;padding:2px 2px 6px}
.me-heat-inner{display:grid;grid-template-columns:auto max-content;column-gap:7px;row-gap:5px;width:max-content;margin:0 auto}
.me-heat-months{grid-column:2;display:grid;grid-template-columns:repeat(var(--cols),var(--c));column-gap:var(--g);height:14px;color:var(--p-muted);font-size:11.5px;line-height:14px}
.me-heat-months span{grid-row:1;white-space:nowrap}
.me-heat-week{grid-column:1;grid-row:2;display:grid;grid-template-rows:repeat(7,var(--c));row-gap:var(--g);color:var(--p-muted);font-size:12px;line-height:var(--c)}
.me-heat-grid{grid-column:2;grid-row:2;display:grid;grid-template-rows:repeat(7,var(--c));grid-auto-flow:column;grid-auto-columns:var(--c);gap:var(--g)}
.me-cell{position:relative;display:block;width:var(--c);height:var(--c);margin:0;padding:0;border:0;border-radius:3px;background:var(--l0);cursor:pointer;transition:transform .15s,box-shadow .15s}
.me-cell[data-l="1"]{background:var(--l1)}.me-cell[data-l="2"]{background:var(--l2)}.me-cell[data-l="3"]{background:var(--l3)}.me-cell[data-l="4"]{background:var(--l4)}
.me-cell[aria-disabled="true"]{cursor:default}
.me-cell[data-g]::after{content:"";position:absolute;top:1px;right:1px;width:4px;height:4px;border-radius:50%;background:#e9b94f;box-shadow:0 0 0 1px #fffdfb}
.me-cell[data-today]{box-shadow:inset 0 0 0 1.5px #7c6462}
@media(hover:hover){.me-cell:not([aria-disabled="true"]):hover{transform:scale(1.25);z-index:1}}
.me-cell[aria-pressed="true"]{z-index:1;box-shadow:0 0 0 2px #fffdfb,0 0 0 3.5px var(--p-brown-deep)}
.me-cell:focus-visible{outline:2px solid var(--p-crimson);outline-offset:2px;z-index:2}
.me-heat-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:8px;color:var(--p-muted);font-size:12.5px}
.me-heat-legend{display:inline-flex;align-items:center;gap:3px}
.me-heat-legend i{width:11px;height:11px;border-radius:3px;background:var(--l0)}
.me-heat-legend i:first-child{margin-left:4px}.me-heat-legend i:last-child{margin-right:4px}
.me-heat-legend i[data-l="1"]{background:var(--l1)}.me-heat-legend i[data-l="2"]{background:var(--l2)}.me-heat-legend i[data-l="3"]{background:var(--l3)}.me-heat-legend i[data-l="4"]{background:var(--l4)}
.me-heat-gift{display:inline-flex;align-items:center;gap:6px}
.me-heat-gift i{width:6px;height:6px;border-radius:50%;background:#e9b94f}
.me-heat-tz{margin-left:auto}
.me-heat-tip{position:absolute;top:0;left:0;z-index:3;padding:5px 10px;border-radius:9px;background:var(--p-brown-deep);color:#fbf1ea;font-size:12.5px;line-height:1.5;white-space:nowrap;pointer-events:none;box-shadow:0 6px 16px #45342e40}
.me-heat-tip[hidden]{display:none}

/* 那一天 */
.me-day{margin-top:14px;padding-top:16px;border-top:1.5px dashed #d7bba9}
.me-day:empty{display:none}
.me-day[data-state="loading"]{opacity:.55;transition:opacity .2s}
.me-day-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.catalog-page .me-day-head h4{margin:0;color:var(--p-ink);font-family:var(--serif);font-weight:800;font-size:18px;line-height:1.5}
.me-day-head h4 small{margin-left:8px;color:var(--p-muted);font-family:var(--sans);font-weight:400;font-size:13px}
.me-day-medal{padding:1px 10px;border-radius:999px;background:var(--p-brown);color:#fbf1ea;font-size:12px;line-height:1.7}
.me-day-span{color:var(--p-muted);font-size:13px;font-variant-numeric:tabular-nums}
.me-day-nums{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0}
.me-day-nums li{display:inline-flex;align-items:baseline;gap:4px;padding:4px 12px;border-radius:12px;background:var(--p-blush);color:var(--p-muted);font-size:13px}
.me-day-nums b{color:var(--p-crimson);font-family:var(--serif);font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}
.me-day-note,.me-day-wait{margin:10px 0 0;color:var(--p-muted);font-size:14px}
.me-day-wait:first-child{margin-top:0}
.me-day-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px 26px;margin-top:16px}
.catalog-page .me-day-part h5{margin:0 0 6px;color:var(--p-brown);font-family:var(--sans);font-weight:400;font-size:13px;letter-spacing:.08em}
.me-day-talk{grid-column:1/-1}
.me-day-list{list-style:none;display:grid;gap:3px;margin:0;padding:0}
.me-day-list li{display:flex;align-items:baseline;gap:8px;color:var(--p-ink);font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.me-day-list b{color:var(--p-crimson);font-weight:400;white-space:nowrap}
.me-day-t{flex:none;margin-left:auto;color:var(--p-muted);font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.me-day-sc b{color:#a5622a}
.me-day-chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.me-day-chips li{padding:1px 11px;border:1.5px solid var(--p-rose);border-radius:999px;color:var(--p-crimson);font-size:13px;line-height:1.7}
.me-day-msgs{list-style:none;display:grid;gap:2px;max-height:290px;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d7bba9 transparent}
.me-day-msgs li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:3px 12px;border-radius:10px;color:var(--p-ink);font-size:14px;line-height:1.75}
.me-day-msgs li:nth-child(odd){background:#f8efea}
.me-day-msgs time{color:var(--p-muted);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.me-day-msgs span{overflow-wrap:anywhere}
.me-day-emoji{display:block;width:auto;height:28px}

/* 源泉之路（2026-10-02 起，原来的集章本）：页面上的卡片 */
.me-stamps{margin-top:26px}
.me-stamp-card{display:flex;align-items:center;gap:26px;padding:18px 24px;background:radial-gradient(120% 140% at 0 0,#fbf3e8,#fffdfb 60%);border:1.5px solid #7c6462;border-radius:22px}
.me-stamp-strip{display:flex;flex:none;padding:4px 0}
.me-stamp-slot{display:grid;place-items:center;width:62px;height:62px;margin-left:-6px;border:1.5px dashed #d7bba9;border-radius:50%}
.me-stamp-slot:first-child{margin-left:0}
.me-stamp-slot[data-got]{border-color:transparent}
.me-stamp-slot img{display:block;width:74px;height:74px;max-width:none;transform:rotate(var(--tilt,0deg));mix-blend-mode:multiply}
.me-stamp-text{display:grid;flex:1;justify-items:start;gap:6px;min-width:0}
.me-stamp-count{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;margin:0;color:var(--p-ink);font-size:15px}
.me-stamp-count b{color:var(--p-crimson);font-family:var(--serif);font-weight:800;font-size:26px;line-height:1.2}
.me-stamp-new{margin-left:6px;padding:1px 10px;border-radius:999px;background:var(--p-crimson);color:#fbf1ea;font-size:12px;line-height:1.7}
.me-stamp-new[hidden]{display:none}
.me-stamp-next{margin:0;color:var(--p-muted);font-size:13.5px;line-height:1.8}
.me-stamp-open{margin-top:2px;cursor:pointer;font:15px var(--sans)}

/* 源泉之路：翻开的册子（经折装；电脑上四折一排、两排，手机上一折一页） */
html.me-book-open{overflow:hidden}
dialog.me-book{width:min(1120px,calc(100% - 32px));max-width:none;max-height:none;height:fit-content;margin:auto;padding:0;border:0;border-radius:20px;background:transparent;color:var(--p-ink);box-shadow:none;overflow:visible}
dialog.me-book[open]{animation:none}
dialog.me-book::backdrop{background:#1d120ec4;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.me-book-paper{display:flex;flex-direction:column;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:hidden;border-radius:20px;color:var(--p-ink);font:15px/1.6 var(--sans);
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .3 0 0 0 0 .17 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(130% 90% at 50% 0,#fbf5ea,#f3e7d3);
 box-shadow:0 30px 90px #0a050399,inset 0 0 0 1px #fff8,inset 0 0 70px #a07a4a2e}
.me-book-head{display:flex;align-items:center;gap:16px;padding:14px 26px 12px;border-bottom:1px solid #dcc9ab}
.me-book-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px}
dialog.me-book h2{margin:0;color:var(--p-brown-deep);font:800 25px/1.4 var(--serif);letter-spacing:.2em}
.me-book-count{margin:0;color:var(--p-muted);font-size:14px;line-height:1.6}
.me-book-close{flex:none;margin-left:auto;padding:6px 18px;border:1.5px solid var(--p-brown);border-radius:999px;background:transparent;color:var(--p-brown);font:14px var(--sans);cursor:pointer;transition:background-color .2s,color .2s}
.me-book-close:hover,.me-book-close:focus-visible{background:var(--p-brown);color:#fbf1ea}
.me-book-close:focus-visible,.me-seal:focus-visible,.me-book-tabs button:focus-visible{outline:2px solid var(--p-crimson);outline-offset:2px}
.me-book-tabs{display:none}
.me-book-folds{display:grid;flex:1;grid-template-columns:repeat(4,minmax(0,1fr));min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cdb89a transparent}
.me-fold{--ink:#a8342a;position:relative;padding:14px 14px 16px;border-left:1px solid #d8c3a3}
.me-fold:first-child{border-left:0}
.me-fold:nth-child(odd){background:linear-gradient(90deg,#fff0 62%,#7a573214)}
.me-fold:nth-child(even){background:linear-gradient(90deg,#ffffff4d,#fff0 34%)}
.me-fold[data-cat="到访"]{--ink:#2f5a86}.me-fold[data-cat="支持"]{--ink:#94621f}.me-fold[data-cat="节日"]{--ink:#a52d4a}
.me-fold[data-cat="网站"]{--ink:#356b51}.me-fold[data-cat="特殊"]{--ink:#604183}.me-fold[data-cat="隐藏"]{--ink:#3b3431}
.me-fold:nth-child(4n+1){border-left:0}
.me-fold:nth-child(n+5){border-top:1px solid #d8c3a3}
.me-fold-end{--ink:#7a5a3c}
.me-fold-notes{display:grid;gap:8px;margin:12px 0 0;padding:0 0 0 18px;color:var(--p-muted);font-size:13px;line-height:1.75}
.me-fold-notes li::marker{color:#c4a27c}
dialog.me-book .me-fold-label{display:inline-block;margin:0;padding:8px 4px;border:1.5px solid var(--ink);outline:1px solid var(--ink);outline-offset:2px;background:#fdf9f1;color:var(--ink);font:800 16px/1 var(--serif);letter-spacing:.35em;writing-mode:vertical-rl;vertical-align:top}
.me-fold-sub{display:inline-block;margin:0 0 0 12px;color:var(--p-muted);font-size:12.5px;line-height:1.6;vertical-align:bottom}
.me-fold-grid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 4px;margin:8px 0 0;padding:0}
.me-seal{display:grid;justify-items:center;gap:0;width:100%;margin:0;padding:6px 2px 7px;border:0;border-radius:14px;background:transparent;color:var(--p-ink);font:inherit;cursor:pointer;transition:background-color .2s,box-shadow .2s}
@media(hover:hover){.me-seal:hover{background:#fffdf766}}
.me-seal[aria-pressed="true"]{background:#fffcf5b3;box-shadow:inset 0 0 0 1.5px #d8c2a2}
.me-seal-ink{display:block;width:74px;height:74px;transform:rotate(var(--tilt,0deg))}
.me-seal-ink img{display:block;width:100%;height:100%;mix-blend-mode:multiply}
.me-seal:not(.is-got) .me-seal-ink,.me-seal-ink.is-ghost{transform:none}
.me-seal:not(.is-got) .me-seal-ink img,.me-seal-ink.is-ghost img{filter:grayscale(1) sepia(.4);opacity:.2}
.me-seal b{margin-top:4px;font:800 15px/1.5 var(--serif);letter-spacing:.14em}
.me-seal:not(.is-got) b{color:var(--p-muted)}
.me-seal small{color:var(--p-muted);font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums}
.me-pips{display:flex;gap:4px;height:9px;margin:1px 0 1px}
.me-pips[hidden]{display:none}
.me-pips i{width:6px;height:6px;margin-top:1.5px;border:1px solid var(--ink);border-radius:50%;opacity:.55}
.me-pips i.is-on{background:var(--ink);opacity:1}
.me-seal.is-got small{color:var(--ink)}
.me-book-detail{--ink:#a8342a;display:flex;flex:none;align-items:center;gap:22px;min-height:120px;padding:10px 28px 12px;border-top:1px solid #dcc9ab;background:#fffaf080}
.me-book-detail>.me-seal-ink{flex:none;width:96px;height:96px}
.me-book-detail-text{flex:1;min-width:0}
dialog.me-book .me-book-detail-text h3{margin:0;color:var(--p-brown-deep);font:800 22px/1.5 var(--serif);letter-spacing:.16em}
.me-book-detail-text h3 small{margin-left:10px;padding:1px 9px;border:1px solid #cdb89a;border-radius:999px;color:var(--p-muted);font:13px/1.6 var(--sans);letter-spacing:.06em;vertical-align:3px}
dialog.me-book .me-book-detail-text p{margin:4px 0 0;font-size:15px;line-height:1.8}
dialog.me-book .me-book-detail-state{color:var(--p-muted);font-size:14px}
dialog.me-book .me-book-detail-state.is-got{color:#a8342a}
dialog.me-book .me-book-detail-text p.me-book-detail-sub{margin-top:2px;color:var(--p-muted);font-size:13.5px;line-height:1.7}
/* 一枚勋章的各级，排成一条路 */
.me-tiers{position:relative;list-style:none;display:flex;flex:none;gap:4px;max-width:46%;margin:0;padding:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#cdb89a transparent}
.me-tiers li{position:relative;flex:none}
.me-tiers li+li::before{content:"";position:absolute;top:24px;left:-14px;width:24px;border-top:1.5px dashed #d2bb9b}
.me-tier{display:grid;justify-items:center;width:78px;padding:4px 2px 5px;border:0;border-radius:12px;background:transparent;color:var(--p-muted);font:inherit;cursor:pointer;transition:background-color .2s,box-shadow .2s}
@media(hover:hover){.me-tier:hover{background:#fffdf766}}
.me-tier[aria-current="true"]{background:#fffcf5b3;box-shadow:inset 0 0 0 1.5px #d8c2a2}
.me-tier:focus-visible{outline:2px solid var(--p-crimson);outline-offset:2px}
.me-tier .me-seal-ink{width:42px;height:42px;transform:none}
.me-tier:not(.is-got) .me-seal-ink img{filter:grayscale(1) sepia(.4);opacity:.25}
.me-tier b{margin-top:2px;color:var(--p-muted);font:800 13px/1.4 var(--serif);letter-spacing:.06em;white-space:nowrap}
.me-tier.is-got b{color:var(--ink)}
.me-tier small{max-width:100%;overflow:hidden;font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.me-seal-bar{position:relative;display:block;width:min(280px,100%);height:6px;margin-top:8px;overflow:hidden;border-radius:999px;background:#e8dbc6}
.me-seal-bar::after{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--p,0) * 100%);border-radius:inherit;background:linear-gradient(90deg,#d58b80,var(--p-crimson))}

@media(max-width:900px){
 .me-stats{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}
 .me-stat:last-child:nth-child(odd){grid-column:1/-1}
}
@media(max-width:760px){
 .me-heat{--c:14px;padding:14px 12px 14px;border-radius:18px}
 .me-heat-sum{font-size:14px}
 .me-heat-inner{margin:0}
 .me-heat-tz{margin-left:0}
 .me-day-cols{grid-template-columns:minmax(0,1fr)}
 .me-day-msgs li{gap:10px;padding:3px 10px;font-size:14px}
 .me-stamp-card{flex-direction:column;align-items:stretch;gap:12px;padding:16px;border-radius:18px}
 .me-stamp-strip{justify-content:center}
 .me-stamp-slot{width:54px;height:54px}
 .me-stamp-slot img{width:64px;height:64px}
 .me-stamp-text{justify-items:center;text-align:center}
 .me-stamp-count{justify-content:center}
 dialog.me-book{width:calc(100% - 16px)}
 .me-book-paper{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);border-radius:18px}
 .me-book-head{padding:14px 16px 10px}
 dialog.me-book h2{font-size:21px}
 .me-book-tabs{display:flex;gap:6px;padding:10px 14px 0}
 .me-book-tabs button{flex:1;min-height:34px;padding:4px 0;border:1.5px solid #d4bf9f;border-radius:999px;background:transparent;color:var(--p-muted);font:14px var(--sans);letter-spacing:.1em;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
 .me-book-tabs button[aria-current="true"]{background:var(--p-brown);border-color:var(--p-brown);color:#fbf1ea}
 .me-book-folds{display:flex;overflow-x:auto;overflow-y:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
 .me-book-folds::-webkit-scrollbar{display:none}
 .me-fold{flex:0 0 100%;padding:14px 12px 16px;border-top:0;scroll-snap-align:start;scroll-snap-stop:always}
 .me-fold-end{display:none}
 .me-book-tabs{gap:4px;padding:10px 10px 0}
 .me-book-tabs button{letter-spacing:0}
 .me-fold-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .me-seal-ink{width:74px;height:74px}
 .me-book-detail{flex-wrap:wrap;align-items:flex-start;gap:8px 14px;min-height:118px;max-height:48vh;max-height:48dvh;padding:12px 16px 14px;overflow-y:auto}
 .me-tiers{max-width:100%;flex-basis:100%}
 .me-tier{width:68px}
 .me-book-detail>.me-seal-ink{width:84px;height:84px}
 dialog.me-book .me-book-detail-text h3{font-size:19px}
 dialog.me-book .me-book-detail-text p{font-size:14px;line-height:1.7}
}
@media(prefers-reduced-motion:reduce){.me-cell,.me-seal,.me-tier,.me-book-close,.me-book-tabs button{transition:none}}
@media(max-width:760px){.me-heat-week{position:sticky;left:0;z-index:2;background:#fffdfb;box-shadow:5px 0 0 #fffdfb}}
/* 2026-10-03 优化 第 13 项：触屏上格子之间的缝也算点到最近的那一天（::before 是看不见的点击区；::after 已用作金点） */
@media (pointer:coarse){.me-cell::before{content:"";position:absolute;inset:calc(var(--g) / -2)}}
.me-sr{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}   /* 读屏用的状态行，看不见（2026-10-03） */
.me-day:focus{outline:none}.me-day:focus-visible{outline:2px solid var(--p-crimson);outline-offset:4px;border-radius:12px}
/* ===== site-v2.css ===== */
/* 内页的排版小改进（Claude, 2026-10-06）。
   第二轮给内页换的「杂志版」深色皮肤已经撤掉（第四轮，Raymond：要贴回自己形象的风格、多用美术），
   内页回到原来的花边纸页、金框花牌、窗棂祥云舞台。这里只留不改外观的部分：
   经世书阁两列、人物页资料卡、设计橱窗插画按原比例排行，加上页头标题逐字浮现、栏目滚到才浮现（动效在 site-v2.js）。
   选择器都以 body.inner-page 开头（首页没有这个 class，不受影响），并且放在所有样式的最后加载。 */
body.inner-page{--v2-ease:cubic-bezier(.16,1,.3,1)}

/* 页头标题逐字浮现（site-v2.js 拆字，读屏软件仍读整句） */
html body.inner-page .hub-intro h1 .v2-ch{display:inline-block}
html.v2p-js body.inner-page .hub-intro h1 .v2-ch{opacity:0;transform:translateY(.45em);filter:blur(6px);transition:opacity .8s var(--v2-ease),transform 1s var(--v2-ease),filter .8s var(--v2-ease);transition-delay:calc(var(--c) * 60ms + 120ms)}
html.v2p-js body.inner-page .hub-intro h1.is-in .v2-ch{opacity:1;transform:none;filter:none}

/* 栏目滚到才浮现（site-v2.js 加 .v2p-reveal；没有脚本时内容照常显示） */
html.v2p-js body.inner-page .v2p-reveal{opacity:0;transform:translateY(36px);transition:opacity 1s var(--v2-ease),transform 1.2s var(--v2-ease)}
html.v2p-js body.inner-page .v2p-reveal.is-in{opacity:1;transform:none}

/* 经世书阁：电脑上作品排成两列（按行读：01 02 / 03 04），一屏能看到的作品多一倍 */
@media (min-width:1100px){
 html body.inner-page.catalog-page .era-section[data-era] .video-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
}

/* 人物页（小影子、影奶茶）：基本资料排成一排金边小卡片，性格与信念编号成卡，看直播的几条用金色小星作项目符号；
   影奶茶页底部两段做成两张卡，和下面的按钮之间不再空一大截 */
html body.inner-page .facts{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
html body.inner-page .facts>div{position:relative;padding:15px 18px 14px;border:1px solid #e7c89933;border-left:2px solid #e7c899aa;border-radius:4px;background:linear-gradient(160deg,#2c1b1ecc,#2c1b1e59);transition:border-color .4s,transform .5s var(--v2-ease)}
html body.inner-page .facts>div:hover{border-color:#e7c89977;transform:translateY(-3px)}
html body.inner-page .facts dt{font-size:12px;letter-spacing:.14em;color:#e7c899}
html body.inner-page .facts dd{margin:7px 0 0;font:800 16px/1.5 var(--serif);letter-spacing:.03em}
html body.inner-page .facts dd small{margin-top:4px;font:400 12px/1.6 var(--sans);letter-spacing:.04em}
html body.inner-page .values-grid{counter-reset:v2v;gap:14px}
html body.inner-page .values-grid>div{counter-increment:v2v;position:relative;padding:22px 24px 20px;border:1px solid #e7c89930;border-radius:4px;background:linear-gradient(160deg,#2c1b1ec4,#2c1b1e4d);overflow:hidden}
html body.inner-page .values-grid>div:before{content:counter(v2v,simp-chinese-formal);position:absolute;right:16px;top:10px;font:800 40px/1 var(--serif);color:#e7c89924;pointer-events:none}
html body.inner-page .values-grid h3{margin:0 0 8px;letter-spacing:.08em}
html body.inner-page .values-grid p{margin:0;line-height:1.95}
html body.inner-page .reading-list{padding-left:0;list-style:none}
html body.inner-page .reading-list li{position:relative;padding-left:26px}
html body.inner-page .reading-list li:before{content:"✦";position:absolute;left:2px;top:0;font-size:12px;line-height:32px;color:#e7c899}
html body.inner-page .performer-intro{gap:18px;padding:48px 0 34px}
html body.inner-page .performer-intro>section{padding:30px 32px 32px;border:1px solid #e7c89933;border-radius:4px;background:linear-gradient(160deg,#2c1b1ed1,#2c1b1e66);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
html body.inner-page .performer-intro h2{margin-top:0}
html body.inner-page .performer-intro+.about-entry-wrap{margin-top:0}

/* 设计橱窗「插画与画卷」：按每张图的原比例排成等高的行（像画册），每一行刚好铺满，不留空洞；
   每张卡的宽度由 site-v2.js 按图的长宽比算好（.v2p-rows），金框和米色衬底照旧；没有脚本时还是原来的三列网格 */
html body.inner-page.showcase-page #illustrations .design-grid.v2p-rows{display:flex;flex-wrap:wrap;gap:24px}
html body.inner-page.showcase-page #illustrations .design-grid.v2p-rows .design-piece{flex:none}
html body.inner-page.showcase-page #illustrations .design-grid.v2p-rows .design-piece img{height:auto;max-height:none;object-fit:cover}
html body.inner-page.showcase-page .design-piece p{text-wrap:pretty}

@media (max-width:760px){
 html body.inner-page .facts{grid-template-columns:1fr 1fr;gap:10px}
 html body.inner-page .facts>div{padding:13px 14px 12px}
 html body.inner-page .facts dd{font-size:15.5px}
 html body.inner-page .performer-intro>section{padding:24px 20px 26px}
 html body.inner-page .values-grid>div{padding:18px 18px 16px}
}

/* 减少动态效果：不做浮现 */
@media (prefers-reduced-motion:reduce){
 html.v2p-js body.inner-page .v2p-reveal,html.v2p-js body.inner-page .hub-intro h1 .v2-ch{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
}
