/* 首页「织影入梦 · 国风版」（Claude, 2026-10-06）。
   第一版是杂志式排版（Raymond 要求：更有设计感、允许炫技）；第二、三轮把直播间和歌单做成首屏底部的直播条；
   第四轮按 Raymond 的意见换回自己形象的风格：配色取自影妹立绘，英文装饰换成中文题字和印章，各栏目多用美术（见文件末尾「国风版」）。
   只用于首页（index.html），选择器都以 .v2-home 开头；插画设置（动态 / 静态 / 关闭特效 × 桃花诺 / 千年之恋）、
   直播卡（live.js）、入站须知（welcome.js）沿用原来的结构，只换摆法。动效脚本在 home-v2.js。 */

.v2-home{
 --v2-ink:#f6eee6;--v2-dim:#d6c3b8;--v2-gold:#e7c899;--v2-gold-2:#b98e5a;--v2-pink:#f0c2c1;--v2-rose:#b97377;--v2-violet:#e1b486;
 --v2-bg:#1d1416;--v2-bg-2:#241416;--v2-line:#f6eee61f;
 --v2-latin:var(--serif);
 --v2-ease:cubic-bezier(.16,1,.3,1);
 position:relative;background:var(--v2-bg);color:var(--v2-ink);overflow-x:clip;
 --v2-silk:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'><g fill='none' stroke='%23e7c899' stroke-opacity='.075' stroke-width='1'><path d='M36 0L72 36L36 72L0 36Z'/></g><g fill='%23e7c899' fill-opacity='.08'><ellipse cx='36' cy='30.5' rx='2.2' ry='4'/><ellipse cx='36' cy='41.5' rx='2.2' ry='4'/><ellipse cx='30.5' cy='36' rx='4' ry='2.2'/><ellipse cx='41.5' cy='36' rx='4' ry='2.2'/><circle cx='0' cy='0' r='1.6'/><circle cx='72' cy='0' r='1.6'/><circle cx='0' cy='72' r='1.6'/><circle cx='72' cy='72' r='1.6'/></g></svg>")}
.v2-home a{color:inherit;text-decoration:none}
.v2-home em{font-style:italic}

/* ---------- 通用：段落标题 ---------- */
.v2-sec-head{display:grid;grid-template-columns:auto 1fr;margin:0 0 56px}
.v2-sec-head .v2-no{grid-row:span 2}
.v2-sec-head h2{margin:0;font:800 clamp(30px,3.4vw,52px)/1.1 var(--serif);display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 18px}
.v2-sec-head p{margin:0;font:400 15px/1.8 var(--sans);color:var(--v2-dim);letter-spacing:.08em}

/* ---------- 通用：按钮 ---------- */
.v2-btn{position:relative;display:inline-flex;align-items:center;gap:14px;height:58px;padding:0 30px;border-radius:999px;font:500 16px/1 var(--sans);letter-spacing:.14em;isolation:isolate;overflow:hidden;transition:transform .5s var(--v2-ease),color .4s,border-color .4s,box-shadow .4s}
.v2-btn b{font-weight:400;transition:transform .5s var(--v2-ease)}
.v2-btn:hover b{transform:translateX(5px)}
.v2-home .v2-btn-solid{color:#2d1719;background:linear-gradient(120deg,#f8dcb4,#e7c899 45%,#f0c2c1);box-shadow:0 10px 40px #f0c2c133,inset 0 1px 0 #fff8}
.v2-btn-solid:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,transparent 30%,#fff9 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--v2-ease)}
.v2-btn-solid:hover:before{transform:translateX(120%)}
.v2-home .v2-btn-ghost{color:var(--v2-ink);border:1px solid #f6eee655;background:#ffffff0a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.v2-home .v2-btn-ghost:hover{border-color:var(--v2-gold);color:var(--v2-gold)}
.v2-btn:focus-visible{outline:2px solid var(--v2-gold);outline-offset:4px}

/* ---------- 出场：滚到才显示 ---------- */
html.v2-js .v2-home [data-reveal]{opacity:0;transform:translateY(48px);filter:blur(6px);transition:opacity 1.1s var(--v2-ease),transform 1.3s var(--v2-ease),filter 1.1s var(--v2-ease)}
html.v2-js .v2-home [data-reveal].is-in{opacity:1;transform:none;filter:none}

/* =========================================================
   一、首屏
   ========================================================= */
.v2-home .v2-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(36px,6vh,64px);align-content:end;min-height:100svh;margin-top:calc(-1 * var(--island-space,0px));padding:calc(var(--island-space,0px) + 40px) 6.5% 9vh;overflow:hidden}
.v2-home .v2-hero .scene-art{z-index:-3;left:auto;right:0;top:0;bottom:0;width:74%;background:transparent;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,transparent 0,#000 30%)}
.v2-home .v2-hero .scene-art:after{background:linear-gradient(0deg,var(--v2-bg) 0%,#1d1416d0 14%,transparent 46%),linear-gradient(180deg,#1d141699,transparent 22%),radial-gradient(70% 60% at 60% 40%,transparent 40%,#1d141680 100%)}
.v2-home .v2-hero .scene-art:before{box-shadow:none}
.v2-home .v2-hero .scene-mist{z-index:-2}
/* 鼠标手电筒：光斑跟着指针走 */
.v2-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(520px circle at var(--mx,70%) var(--my,40%),#f0c2c126,#e1b48614 35%,transparent 65%);mix-blend-mode:screen;transition:opacity .6s}
/* 胶片颗粒 */
.v2-grain{position:absolute;inset:-50%;z-index:2;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:v2-grain 1.2s steps(6) infinite}
@keyframes v2-grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,-2%)}80%{transform:translate(5%,4%)}100%{transform:translate(0,0)}}

/* 背后的巨字「织影入梦」：描边、半透明，叠在画上 */
.v2-hero-title-bg{position:absolute;z-index:-1;top:calc(var(--island-space,0px) + 2vh);right:3.5%;display:flex;flex-direction:column;align-items:center;font:800 min(17vh,12vw)/1 var(--serif);pointer-events:none;mix-blend-mode:overlay;user-select:none}
.v2-hero-title-bg span{display:block;transform:translateY(calc(var(--sy,0) * var(--k,0) * 1px))}
.v2-hero-title-bg span:nth-child(1){--k:-.10}.v2-hero-title-bg span:nth-child(2){--k:-.18;color:#f0c2c166}.v2-hero-title-bg span:nth-child(3){--k:-.26}.v2-hero-title-bg span:nth-child(4){--k:-.34}

.v2-hero-rail{position:absolute;display:flex;align-items:center;transform-origin:50% 50%;white-space:nowrap}
.v2-hero-rail i{display:block}

.v2-hero-copy{position:relative;max-width:min(760px,62vw);grid-column:1}
.v2-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:0 0 26px;font:500 14px/1.4 var(--sans);color:var(--v2-gold)}
.v2-kicker em{font:italic 400 17px/1 var(--v2-latin);letter-spacing:.06em;color:var(--v2-dim)}

@keyframes v2-ping{0%{box-shadow:0 0 0 0 #f0c2c1aa}70%{box-shadow:0 0 0 14px #f0c2c100}100%{box-shadow:0 0 0 0 #f0c2c100}}
.v2-title{margin:0;font:800 clamp(52px,min(7.2vw,13.5vh),128px)/1.04 var(--serif);letter-spacing:.02em}
.v2-line{display:block;white-space:nowrap}
.v2-title .v2-ch{display:inline-block;will-change:transform}
html.v2-js .v2-title .v2-ch{opacity:0;transform:translateY(.55em) rotate(6deg);filter:blur(10px);transition:opacity .9s var(--v2-ease),transform 1.2s var(--v2-ease),filter 1s var(--v2-ease);transition-delay:calc(var(--c) * 70ms + 250ms)}
html.v2-js .v2-title.is-in .v2-ch{opacity:1;transform:none;filter:none}
.v2-ying{font-weight:inherit;background:linear-gradient(100deg,#f0c2c1 0%,#fff4ee 30%,#b97377 55%,#e1b486 80%,#f0c2c1 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:v2-sheen 6s ease-in-out infinite;text-shadow:none;filter:drop-shadow(0 0 30px #f0c2c199)}
@keyframes v2-sheen{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.v2-lede{margin:28px 0 0;font:400 clamp(16px,1.3vw,20px)/1.9 var(--sans);letter-spacing:.12em;color:var(--v2-dim)}
.v2-hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}

/* 旋转印章 */
.v2-seal{position:absolute;right:-30px;top:-74px;width:132px;height:132px;display:grid;place-items:center;border-radius:50%;z-index:3}
.v2-seal svg{position:absolute;inset:0;width:100%;height:100%;animation:v2-spin 22s linear infinite;overflow:visible}
.v2-seal text{font:500 15px var(--sans);fill:#e7c899}
.v2-seal-core{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;font:800 34px/1 var(--serif);transition:transform .6s var(--v2-ease)}
.v2-seal:hover .v2-seal-core{transform:scale(1.12) rotate(-8deg)}
.v2-seal:hover svg{animation-duration:6s}
.v2-seal:focus-visible{outline:2px solid var(--v2-gold);outline-offset:6px}
@keyframes v2-spin{to{transform:rotate(360deg)}}

/* 首屏的「直播条」：直播间 + 歌单（2026-10-06 第二轮：Raymond 说直播间和歌单要最显眼、最好找；
   第三轮：原来是标题右边两张卡，抢了标题和立绘的重心，改成标题下面一条横向的条，像首屏的落款）
   电脑上是一整条：左段直播（头像、状态、三个入口），细金线隔开，右段歌单（唱片探出上沿、今日一听、换一首）。
   手机（≤760px）还是两张卡上下排，见文件末尾。 */
.v2-console{position:relative;z-index:2;display:grid;gap:14px}
.v2-strip-tag{display:none}
@media (min-width:761px){
 .v2-home .v2-console{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0;width:min(100%,1180px,calc(93.5vw - 133px));padding:16px 10px;border:1px solid #e7c89955;-webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);box-shadow:0 30px 90px #000a,inset 0 1px 0 #ffffff26,inset 0 -1px 0 #0006}
 /* 开播时整条边框亮起一道粉色流光 */
 .v2-home .v2-console:after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity .6s;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
 .v2-home .v2-hero[data-live="live"] .v2-console{border-color:#f0c2c199;box-shadow:0 0 70px #b9737740,0 30px 90px #000a,inset 0 1px 0 #ffffff26}
 .v2-home .v2-hero[data-live="live"] .v2-console:after{opacity:1;animation:v2-flow 3.2s linear infinite}
 .v2-strip-tag{display:block;position:absolute;left:30px;pointer-events:none}
 
 /* 左段：直播 */
 .v2-home .v2-console .home-live{position:relative;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"face body links" "face status links";gap:4px 18px;
  padding:4px 28px 4px 14px;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none;overflow:visible;isolation:auto}
 .v2-home .v2-console .home-live:before,.v2-home .v2-console .home-live:after{display:none}
 .v2-home .v2-console .home-live[data-state]{box-shadow:none}
 .v2-home .v2-console .home-live-face{grid-area:face;width:64px;height:64px}
 .v2-home .v2-console .home-live-body{grid-area:body;align-self:end}
 .v2-home .v2-console .home-live-name{font-size:19px;line-height:1.35}
 .v2-home .v2-console .home-live-eyebrow{font-size:11.5px}
 .v2-home .v2-console .home-live-status{grid-area:status;grid-column:auto;align-self:start;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"tag sub arrow";gap:10px;padding:0;border:0;background:none}
 .v2-home .v2-console .home-live-status:hover{background:none}
 .v2-home .v2-console .home-live-status:hover .home-live-sub{color:var(--v2-gold)}
 .v2-home .v2-console .home-live-title{display:none}
 .v2-home .v2-console .home-live-arrow{font-size:16px}
 .v2-home .v2-console .home-live-links{grid-area:links;grid-column:auto;display:flex;gap:8px;align-self:center}
 .v2-home .v2-console .home-live-link{width:96px;padding:9px 4px 8px;background:#ffffff0a}
 .v2-home .v2-console .home-live-link strong{font-size:14.5px}
 .v2-home .v2-console .home-live-link small{font-size:11.5px}
 /* 右段：歌单，左边一道细金线隔开 */
 
 .v2-home .v2-console .v2-songcard:after{content:"✦";position:absolute;left:-6px;top:50%;margin-top:-8px;font-size:11px;line-height:16px;color:var(--v2-gold);text-shadow:0 0 10px #e7c899aa}
 .v2-home .v2-console .v2-songcard{position:relative;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"disc head actions" "disc now actions";gap:2px 16px;align-items:center;
  padding:4px 14px 4px 30px;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible;border-left:1px solid transparent;border-image:linear-gradient(180deg,transparent,#e7c89999 30%,#e7c89999 70%,transparent) 1}
 .v2-home .v2-console .v2-song-head{grid-area:head;gap:10px;align-self:end;min-width:0;overflow:hidden}
 .v2-home .v2-console .v2-song-label{font-size:15px;letter-spacing:.12em}
 .v2-home .v2-console .v2-song-label em{display:none}
 .v2-home .v2-console .v2-eq{height:11px}
 .v2-home .v2-console .v2-song-count{margin-left:0}
 .v2-home .v2-console .v2-song-count b{font-size:20px}
 
 .v2-home .v2-console .v2-song-status{display:none}
 .v2-home .v2-console .v2-song-pick{display:contents}
 .v2-home .v2-console .v2-disc{grid-area:disc;width:76px;height:76px;margin-top:-44px;box-shadow:0 14px 30px #000a,0 0 0 1px #e7c89955;transform:translateY(-14px)}
 .v2-home .v2-console .v2-song-now{grid-area:now;align-self:start}
 .v2-home .v2-console .v2-song-now small{display:none}
 .v2-home .v2-console .v2-song-now strong{font-size:18px;line-height:1.4}
 .v2-home .v2-console .v2-song-now strong.is-long{font-size:15px;line-height:calc(18px * 1.4)}
 .v2-home .v2-console .v2-song-now strong.is-longer{font-size:13px}
 .v2-home .v2-console .v2-song-now span{font-size:12px}
 .v2-home .v2-console .v2-song-actions{grid-area:actions;display:grid;gap:6px;flex-wrap:nowrap}
 .v2-home .v2-console .v2-song-actions>*{height:32px;padding:0 14px;font-size:13px;justify-content:center}
 .v2-home .v2-console .v2-song-all{margin-left:0}
 /* 影妹的歌单有歌时（出现「复制点歌指令」）：留「随机点她的歌」，收起「全部歌单」（「麒麟颂歌」四个字和上面的「翻歌单」都通歌单页）；这一条窄，按钮前的 ✦ 不放，免得挤掉「首 · 影妹会唱」 */
 .v2-home .v2-console .v2-song-copy:not([hidden])~.v2-song-all{display:none}
 .v2-home .v2-console .v2-song-shuffle span{display:none}
 /* 印章压在整条的右上角 */
 .v2-home .v2-console .v2-seal{right:-18px;top:-118px;width:118px;height:118px}
 .v2-home .v2-scroll-cue{display:none}
 .v2-home .v2-console .v2-seal-core{width:62px;height:62px;font-size:28px}
}
@keyframes v2-flow{to{background-position:-250% 0}}
@media (min-width:761px){
 .v2-home .v2-hero{padding-bottom:max(84px,8vh)}
}
/* 矮一点的屏幕（笔记本 768 高以下）把首屏收紧，保证直播条不用滚动就看得到 */
@media (min-width:761px) and (max-height:860px){
 .v2-home .v2-hero{gap:30px}
 .v2-kicker{margin-bottom:18px}
 .v2-lede{margin-top:18px;line-height:1.75}
 .v2-hero-cta{margin-top:26px}
}
@media (min-width:761px) and (max-width:1320px){
 .v2-home .v2-console .v2-song-count{display:none}
 /* 歌名那一格再让出二三十像素：按钮、两列之间收窄一点，唱片小一号（第三次体检 B1：1280 宽长歌名缩到最小一号还有 6 首放不下） */
 .v2-home .v2-console .v2-songcard{column-gap:12px}
 .v2-home .v2-console .v2-disc{width:64px;height:64px}
 .v2-home .v2-console .v2-song-actions>*{padding:0 10px}
 .v2-home .v2-console .home-live-link{width:auto;padding:9px 14px 8px}
 .v2-home .v2-console .home-live-link small{display:none}
 .v2-home .v2-console .home-live-eyebrow{display:none}
}
/* 901～1200 宽（原来到 1080；1081～1200 时直播的标题折成「影妹的直播 / 间」、歌名只剩 75～112 像素宽，第三次体检 B1）：收起直播间那三个小链接，两边差不多对半 */
@media (min-width:901px) and (max-width:1200px){
 .v2-home .v2-console .home-live-links{display:none}
 .v2-home .v2-console{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);width:100%}
}
@media (min-width:761px) and (max-width:900px){
 .v2-home .v2-console{grid-template-columns:minmax(0,1fr);width:100%;padding:18px 10px 14px}
 .v2-home .v2-console .v2-songcard:after{left:50%;top:-8px;margin:0 0 0 -6px}
 .v2-home .v2-console .v2-songcard{border-left:0;border-top:1px solid transparent;border-image:linear-gradient(90deg,transparent,#e7c89999 20%,#e7c89999 80%,transparent) 1;margin-top:14px;padding:18px 18px 4px 22px}
 .v2-home .v2-console .v2-songcard .v2-strip-tag{display:none}
 .v2-home .v2-console .v2-disc{margin-top:0;width:60px;height:60px}
 .v2-home .v2-console .v2-song-actions{grid-auto-flow:column}
}
.v2-btn-live{padding-left:24px}
.v2-live-dot{position:relative;width:10px;height:10px;border-radius:50%;background:#2d1719;opacity:.55}
.v2-hero[data-live="live"] .v2-live-dot{background:#c4544c;opacity:1;box-shadow:0 0 0 0 #c4544caa;animation:v2-ping 1.6s infinite}
.v2-hero-more{display:flex;flex-wrap:wrap;align-self:center;margin:0 0 0 18px;font:400 14px/1.6 var(--sans);letter-spacing:.14em}
.v2-hero-more a{position:relative;padding-bottom:3px;transition:color .3s}
.v2-hero-more a:after{content:"";position:absolute;height:1px;background:currentColor;transform:scaleX(.25);transform-origin:left;transition:transform .5s var(--v2-ease)}
.v2-hero-more a:hover{color:var(--v2-gold)}.v2-hero-more a:hover:after{transform:none}

.v2-songcard{position:relative;isolation:isolate;display:grid;gap:12px;padding:18px 18px 16px;border-radius:20px;border:1px solid #e7c89966;background:linear-gradient(150deg,#3a2a26e6,#241517e0 60%,#2e1a1ee0);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 30px 80px #0009,inset 0 1px 0 #fff2;overflow:hidden}
.v2-songcard:before{content:"";position:absolute;z-index:-1;right:-60px;top:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#e7c89938,transparent 70%)}
.v2-song-head{display:flex;align-items:center;gap:12px}
.v2-home .v2-song-label{white-space:nowrap;display:flex;align-items:baseline;gap:10px;font:800 20px/1.3 var(--serif);letter-spacing:.08em;color:var(--v2-ink)}
.v2-song-label em{font:italic 500 15px/1 var(--v2-latin);letter-spacing:.06em;color:var(--v2-gold)}
.v2-home .v2-song-label:hover{color:var(--v2-gold)}
.v2-eq{display:flex;align-items:flex-end;gap:2px;height:14px}
.v2-eq i{width:3px;height:100%;border-radius:2px;background:var(--v2-gold);transform-origin:bottom;animation:v2-eq 1.1s ease-in-out infinite}
.v2-eq i:nth-child(2){animation-delay:-.3s}.v2-eq i:nth-child(3){animation-delay:-.65s}.v2-eq i:nth-child(4){animation-delay:-.15s}
@keyframes v2-eq{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
.v2-song-count{margin-left:auto;display:flex;align-items:baseline;gap:4px;white-space:nowrap}
.v2-song-count b{color:var(--v2-gold)}
.v2-song-count small{font-size:12px;color:var(--v2-dim);letter-spacing:.08em}
.v2-song-status{margin:-4px 0 0;font:400 12.5px/1.7 var(--sans);color:#c4cdd4;letter-spacing:.04em}
.v2-song-pick{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:14px;padding:10px 14px 10px 10px;border:1px solid #ffffff1f;border-radius:12px;background:#2e1d1fa8}
.v2-disc{position:relative;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle,#e7c899 0 5px,#2d1719 6px 9px,#5d3a3d 10px 11px,transparent 12px),repeating-radial-gradient(circle,#1e1112 0 2px,#2d1d1f 3px 4px);box-shadow:0 0 0 1px #e7c89955,0 6px 18px #0008;animation:v2-spin 6s linear infinite}
.v2-disc:after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 20deg,transparent 0 20%,#ffffff22 25%,transparent 32% 70%,#ffffff18 75%,transparent 82%)}
.v2-songcard.is-spinning .v2-disc{animation-duration:.5s}
.v2-song-now{display:grid;min-width:0}
.v2-song-now small{font-size:11.5px;letter-spacing:.16em;color:var(--v2-gold)}
.v2-song-now strong{font:800 19px/1.45 var(--serif);letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 歌名一行放不下时 home-v2.js 的 fit() 先缩一号、再缩一号，行高照旧，卡片不跳（第三次体检 B1） */
.v2-song-now strong.is-long{font-size:16px;line-height:calc(19px * 1.45);letter-spacing:.02em}
.v2-song-now strong.is-longer{font-size:14px;letter-spacing:0}
.v2-song-now span{font-size:12.5px;color:#c4cdd4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-song-now.is-new strong,.v2-song-now.is-new span{animation:v2-pop .6s var(--v2-ease)}
@keyframes v2-pop{from{opacity:0;transform:translateY(8px);filter:blur(4px)}}
/* 设置里关了「动效」是暂停所有动画（motion.css），不是跳过：首页脚本抽第一首歌时 body 还没挂上 motion-paused，弹出动画起了头就被定在第一帧（透明），歌名、原唱看不见，所以关动效时不放这段（第四次体检 B1；check.py 查每个从透明开始的入场动画都有这样一条） */
.motion-paused .v2-song-now.is-new strong,.motion-paused .v2-song-now.is-new span{animation:none}
.v2-song-actions{display:flex;flex-wrap:wrap;gap:8px}
.v2-song-actions>*{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border:1px solid #ffffff26;border-radius:999px;background:#ffffff0d;color:var(--v2-ink);font:500 13.5px/1 var(--sans);letter-spacing:.08em;cursor:pointer;transition:border-color .25s,background-color .25s,color .25s,transform .4s var(--v2-ease)}
.v2-song-actions>*:hover{border-color:var(--v2-gold);color:var(--v2-gold);transform:translateY(-2px)}
.v2-song-actions>*:focus-visible{outline:2px solid var(--v2-gold);outline-offset:2px}
.v2-home .v2-song-all{margin-left:auto;border-color:transparent;background:linear-gradient(120deg,#f8dcb4,#e7c899);color:#2d1719}
.v2-home .v2-song-all:hover{color:#2d1719;border-color:transparent;box-shadow:0 8px 24px #e7c89944}
.v2-song-copy.is-done{border-color:var(--v2-gold);color:var(--v2-gold)}
.v2-song-actions [hidden]{display:none}

/* 滚过首屏以后，底部常驻一颗小胶囊：直播间 | 歌单 */
.v2-float{position:fixed;left:50%;bottom:20px;z-index:60;display:flex;align-items:center;padding:5px;border:1px solid #e7c89966;border-radius:999px;background:#221416cc;-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 14px 40px #000a,inset 0 1px 0 #fff2;transform:translate(-50%,160%);opacity:0;transition:transform .7s var(--v2-ease),opacity .5s;font:500 14px/1 var(--sans);letter-spacing:.12em}
.v2-float.is-on{transform:translate(-50%,0);opacity:1}
.v2-float a{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:999px;color:var(--v2-ink);text-decoration:none;transition:background-color .25s,color .25s}
.v2-float a:hover{background:#ffffff14;color:var(--v2-gold)}
.v2-float a:focus-visible{outline:2px solid var(--v2-gold);outline-offset:1px}
.v2-float .v2-float-live{background:linear-gradient(120deg,#f8dcb4,#f0c2c1);color:#2d1719}
.v2-float .v2-float-live:hover{color:#2d1719;background:linear-gradient(120deg,#fff0d8,#f3cdc6)}
.v2-float .v2-live-dot{width:8px;height:8px}
.v2-float[data-live="live"] .v2-live-dot{background:#c4544c;opacity:1;animation:v2-ping 1.6s infinite}
.v2-float i.v2-float-sep{width:1px;height:18px;margin:0 2px;background:#ffffff26}

.v2-scroll-cue{position:absolute;left:50%;bottom:22px;display:flex;flex-direction:column;align-items:center;gap:10px;transform:translateX(-50%);font:italic 500 12px/1 var(--v2-latin);letter-spacing:.36em;color:var(--v2-dim)}
.v2-scroll-cue i{position:relative;display:block;width:1px;height:46px;background:#f6eee62a;overflow:hidden}
.v2-scroll-cue i:after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--v2-gold);animation:v2-drop 2s var(--v2-ease) infinite}
@keyframes v2-drop{to{top:110%}}

/* =========================================================
   二、跑马灯
   ========================================================= */
.v2-marquee{position:relative;z-index:2;height:clamp(150px,17vw,260px);margin:-40px 0 0;overflow:hidden;pointer-events:none}
.v2-band{position:absolute;left:-5%;width:110%;display:flex;overflow:hidden;white-space:nowrap}
.v2-band-a{top:18%;transform:rotate(-3deg);padding:16px 0;background:linear-gradient(90deg,#b97377,#e1b486 50%,#b97377);box-shadow:0 20px 60px #0007}
.v2-band-b{top:56%;transform:rotate(2deg);padding:12px 0;box-shadow:0 20px 60px #0006}
.v2-track{display:flex;align-items:center;gap:0 .5em;flex:none;padding-right:.5em;animation:v2-marquee var(--dur,32s) linear infinite;will-change:transform}
.v2-band-a .v2-track{font:800 clamp(30px,4vw,62px)/1 var(--serif);letter-spacing:.14em;color:#fff7f0}
.v2-band-a .v2-track i{font-style:normal;font-size:.5em;color:#ffe6b8}

@keyframes v2-marquee{to{transform:translateX(-50%)}}

/* =========================================================
   近期（2026-10-07，Raymond 同意评估里的这一项）：跑马灯下面一条，下次直播、正在征稿的活动、纪念日倒计时、公告、最新投稿。
   内容由 home-v2.js 读 data/recent.json 填进来（来源是网站文件夹的「近期/近期.txt」，见 .local-work/site_data.py），
   一条都没有时整栏 hidden。左边漆底金边方印「近期」，旁边挂一只金线风铃（home-chime.svg，新画的，只用在这里）；
   卡片是深色漆面 + 细金线，活动卡右半边透出这一期的插画（原色，不压灰，只在字底下渐暗）。
   ========================================================= */
.v2-recent{position:relative;z-index:1;padding:76px 6.5% 0}
.v2-recent[hidden]{display:none}
.v2-recent-in{display:flex;align-items:flex-start;gap:30px}
.v2-recent-head{position:relative;flex:none;width:168px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:6px}
.v2-recent-seal{display:grid;place-items:center;width:68px;aspect-ratio:1;margin:0;font:400 25px/1 var(--sans);letter-spacing:.06em;color:#e7c899;background:radial-gradient(circle at 35% 30%,#4f3033,#2a191b 75%);border-radius:4px;box-shadow:0 0 0 1.5px #d9b07ccc,inset 0 0 0 5px #2a191b,inset 0 0 0 6px #d9b07c55,0 12px 30px #0007}
.v2-recent-head p{margin:0;font:400 13px/1.8 var(--sans);letter-spacing:.2em;color:var(--v2-dim)}
.v2-recent-head:after{content:"";position:absolute;left:84px;top:-46px;width:64px;height:94px;background:url(assets/art/home-chime.svg?v=054a724314) center top/contain no-repeat;transform-origin:50% 0;animation:v2-chime 7s ease-in-out infinite;pointer-events:none}
@keyframes v2-chime{0%,100%{rotate:-4deg}50%{rotate:5deg}}
.v2-recent-list{flex:1;min-width:0;display:grid;gap:18px;margin:0;padding:0;list-style:none}
.v2-rc{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:9px;height:100%;min-height:138px;padding:18px 46px 16px 20px;border-radius:3px;overflow:hidden;isolation:isolate;background:linear-gradient(160deg,#30201f,#221619 70%);box-shadow:0 0 0 1px #e1b48659,inset 0 0 0 4px #1d1416,inset 0 0 0 5px #e1b48624,0 18px 40px #0006;transition:transform .5s var(--v2-ease),box-shadow .4s}
.v2-rc:hover,.v2-rc:focus-visible{transform:translateY(-3px);box-shadow:0 0 0 1px #e1b486cc,inset 0 0 0 4px #1d1416,inset 0 0 0 5px #e1b48640,0 22px 50px #0008,0 0 30px #e1b48622}
.v2-rc:focus-visible{outline:2px solid var(--v2-gold);outline-offset:4px}
.v2-rc-tag{padding:3px 8px 4px;font:400 12px/1 var(--sans);letter-spacing:.22em;color:#5a3238;background:#f3e6d3;border-radius:2px;box-shadow:inset 0 0 0 1px #c9a173}
.v2-rc[data-now] .v2-rc-tag{color:#3d2226;background:linear-gradient(180deg,#fbe6c4,#e1b486);box-shadow:inset 0 0 0 1px #b98e5a,0 0 16px #e1b48699}
.v2-rc-title{word-break:keep-all;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:700 18px/1.45 var(--serif);letter-spacing:.04em;color:var(--v2-ink);text-shadow:0 1px 12px #1d1416}
.v2-rc-meta{margin-top:auto;font:400 13px/1.5 var(--sans);letter-spacing:.06em;color:var(--v2-gold);text-shadow:0 1px 8px #1d1416}
.v2-rc-seg{white-space:nowrap}   /* home-v2.js 把「10月9日 ·」「10 天后」这样的一段包起来，只在「·」后面换行（第三次体检 D4） */
.v2-rc-go{position:absolute;right:16px;bottom:14px;font:400 16px/1 var(--sans);font-style:normal;color:var(--v2-gold);transition:transform .5s var(--v2-ease)}
.v2-rc:hover .v2-rc-go{transform:translate(3px,-3px)}
.v2-rc[data-art]:before{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;width:62%;background:var(--rc-art) var(--rc-pos,center 30%)/cover no-repeat;-webkit-mask-image:linear-gradient(90deg,transparent,#000 58%);mask-image:linear-gradient(90deg,transparent,#000 58%);opacity:.9;transition:opacity .5s,transform 1.2s var(--v2-ease)}
.v2-rc[data-art]:hover:before{opacity:1;transform:scale(1.04)}
.v2-rc[data-art]:after{content:"";position:absolute;z-index:-1;inset:auto 0 0 0;height:62%;background:linear-gradient(0deg,#1d1416d9,transparent);pointer-events:none}
@media (max-width:760px){
 .v2-recent{padding:52px 0 0}
 .v2-recent-in{flex-direction:column;gap:16px}
 .v2-recent-head{width:auto;align-self:stretch;flex-direction:row;align-items:center;gap:14px;padding:0 16px}
 .v2-recent-seal{width:50px;font-size:19px}
 .v2-recent-head:after{left:auto;right:26px;top:-34px;width:44px;height:64px}
 .v2-recent-list{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,300px);gap:12px;width:100%;padding:4px 16px 10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none;overscroll-behavior-x:contain}
 .v2-recent-list::-webkit-scrollbar{display:none}
 .v2-recent-list>li{scroll-snap-align:start}
 .v2-rc{min-height:128px}
}

/* =========================================================
   三、影与光（两个人物入口）
   ========================================================= */
.v2-duo{padding:110px 6.5% 60px}
.v2-duo-stage{display:flex;gap:22px;height:min(78vh,720px);min-height:520px}
.v2-duo-card{position:relative;flex:1 1 0;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;transition:flex-grow .9s var(--v2-ease),filter .6s;transform-style:preserve-3d}
.v2-duo-stage:hover .v2-duo-card{flex-grow:.75;filter:saturate(.6) brightness(.75)}
.v2-duo-stage:hover .v2-duo-card:hover{flex-grow:1.45;filter:none}
.v2-shadow{background:radial-gradient(90% 70% at 30% 20%,#3e2a2e,#150b0c 70%);border:1px solid #f6eee61a}

.v2-duo-glyph{position:absolute;z-index:-1;left:50%;top:44%;transform:translate(-50%,-50%) translate3d(var(--tx,0),var(--ty,0),0);font:800 min(52vh,30vw)/1 var(--serif);color:transparent;background:linear-gradient(180deg,#f6eee617,#e1b4860a 70%,transparent);-webkit-background-clip:text;background-clip:text;transition:transform .8s var(--v2-ease)}
.v2-shadow:after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(115deg,#ffffff05 0 2px,transparent 2px 14px);mask-image:radial-gradient(60% 60% at 50% 40%,#000,transparent)}
.v2-duo-art{position:absolute;z-index:-1;right:-4%;top:0;bottom:-8%;width:62%;display:flex;justify-content:center;transform:translate3d(var(--tx,0),var(--ty,0),0);transition:transform .8s var(--v2-ease)}
.v2-duo-art img{height:112%;width:auto;max-width:none;object-fit:contain;transition:transform 1.1s var(--v2-ease)}
.v2-light:hover .v2-duo-art img{transform:scale(1.04) translateY(-2%)}
.v2-light:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 70% 30%,#fff 0 1px,transparent 2px) 0 0/34px 34px;opacity:.5}
.v2-duo-num{position:absolute;top:28px;left:32px;font:800 22px/1 var(--serif);letter-spacing:.2em;padding:10px 12px;border:1px solid currentColor;opacity:.7}
.v2-duo-body{position:relative;display:flex;flex-direction:column;gap:10px;padding:40px;max-width:520px}
.v2-duo-body small{font:500 13px/1 var(--sans);letter-spacing:.3em;opacity:.75}
.v2-duo-body strong{font:800 clamp(48px,5.4vw,92px)/1 var(--serif);letter-spacing:.06em}
.v2-duo-body>span{font:400 15px/1.9 var(--sans);letter-spacing:.06em;opacity:.85;max-width:30em}
.v2-duo-go{display:inline-flex;align-items:center;gap:10px;margin-top:14px;font:500 14px/1 var(--sans);letter-spacing:.3em}
.v2-duo-go i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid currentColor;font-style:normal;transition:transform .5s var(--v2-ease),background .4s,color .4s}
.v2-shadow:hover .v2-duo-go i{background:var(--v2-gold);color:#2d1719;border-color:var(--v2-gold);transform:rotate(-45deg)}
.v2-light:hover .v2-duo-go i{background:#2d1719;color:#fbe9e2;transform:rotate(-45deg)}
.v2-shadow .v2-duo-body strong{background:linear-gradient(180deg,#fff,#d6c3b8);-webkit-background-clip:text;background-clip:text;color:transparent}
.v2-light .v2-duo-body{text-shadow:0 1px 20px #fbe9e2}
.v2-duo-card:focus-visible{outline:2px solid var(--v2-gold);outline-offset:5px}

/* =========================================================
   四、直播间 ON AIR
   ========================================================= */
.v2-home .home-live{margin:0;border-radius:20px;padding:18px 18px 16px;gap:12px 16px;border-color:#f0c2c166;box-shadow:0 30px 80px #0009,inset 0 1px 0 #fff2;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}
.v2-home .home-live .home-live-face{width:58px;height:58px}
.v2-home .home-live .home-live-name{font-size:20px}
.v2-home .home-live[data-state="live"]{border-color:#f0c2c1;box-shadow:0 0 0 1px #f0c2c155,0 0 80px #b9737755,0 30px 80px #0009}
.v2-home .home-live[data-state="live"] .home-live-face{animation:v2-live 1.8s ease-in-out infinite}
@keyframes v2-live{50%{box-shadow:0 0 0 10px #b9737700,0 0 0 4px #b9737788}}

/* =========================================================
   五、目录（编号大字列表 + 跟随指针的预览图）
   ========================================================= */
.v2-index{position:relative;padding:110px 6.5% 60px}
.v2-index-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--v2-line);counter-reset:none}
.v2-index-list li{border-bottom:1px solid var(--v2-line)}
.v2-index-list a{position:relative;display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,.9fr) 60px;align-items:center;gap:20px;padding:30px 8px;overflow:hidden;isolation:isolate;min-height:128px}
.v2-index-list a:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#b9737733,#e1b48622 60%,transparent);transform:scaleY(0);transform-origin:50% 100%;transition:transform .6s var(--v2-ease)}
.v2-index-list a:hover:before,.v2-index-list a:focus-visible:before{transform:scaleY(1)}
.v2-ix-no{color:var(--v2-gold)}
.v2-ix-name{position:relative;font:800 clamp(30px,4.2vw,66px)/1.1 var(--serif);letter-spacing:.06em;transition:transform .6s var(--v2-ease)}
.v2-ix-name:after{content:attr(data-text);position:absolute;left:0;top:0;color:transparent;background:linear-gradient(100deg,#fff7f0,#f0c2c1 55%,#e7c899);-webkit-background-clip:text;background-clip:text;clip-path:inset(0 100% 0 0);transition:clip-path .7s var(--v2-ease)}
.v2-index-list a:hover .v2-ix-name,.v2-index-list a:focus-visible .v2-ix-name{transform:translateX(18px)}
.v2-index-list a:hover .v2-ix-name:after,.v2-index-list a:focus-visible .v2-ix-name:after{clip-path:inset(0 0 0 0)}
.v2-ix-desc{font:400 15px/1.7 var(--sans);letter-spacing:.08em}
.v2-ix-arrow{justify-self:end;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid #f6eee644;transition:transform .5s var(--v2-ease),background .4s,color .4s}
.v2-index-list a:hover .v2-ix-arrow{transform:rotate(45deg);background:var(--v2-gold);color:#2d1719;border-color:var(--v2-gold)}
.v2-index-list a:focus-visible{outline:2px solid var(--v2-gold);outline-offset:-2px}
.v2-ix-float{position:fixed;left:0;top:0;z-index:30;width:260px;aspect-ratio:3/4;border-radius:18px;overflow:hidden;pointer-events:none;opacity:0;transform:translate3d(var(--fx,0),var(--fy,0),0) translate(-50%,-50%) rotate(var(--fr,0deg)) scale(.6);transition:opacity .35s,transform .5s var(--v2-ease);box-shadow:0 30px 80px #000a}
.v2-ix-float.is-on{opacity:1;transform:translate3d(var(--fx,0),var(--fy,0),0) translate(-50%,-50%) rotate(var(--fr,0deg)) scale(1)}
.v2-ix-float img{width:100%;height:100%;object-fit:cover}

/* =========================================================
   六、人物志
   ========================================================= */
.v2-cast-row{display:flex;justify-content:center;align-items:flex-end;gap:0;height:min(64vh,600px);border-bottom:1px solid #e7c89955;position:relative}
.v2-cast-row:after{content:"";position:absolute;left:10%;right:10%;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--v2-gold),transparent);box-shadow:0 0 30px 4px #e7c89955}
.v2-cast-item{position:relative;flex:1 1 0;height:86%;display:flex;justify-content:center;align-items:flex-end;margin:0 -2.5%;transition:transform .7s var(--v2-ease),filter .5s,height .7s var(--v2-ease)}
.v2-cast-lead{height:100%;z-index:2}
.v2-cast-item img{height:100%;width:auto;max-width:none;object-fit:contain;object-position:bottom;filter:drop-shadow(0 20px 30px #000a);transition:filter .5s}
html.v2-js .v2-cast-item{opacity:0;transform:translateY(80px)}
html.v2-js .v2-cast.is-in .v2-cast-item{opacity:1;transform:none;transition:opacity 1s var(--v2-ease) calc(var(--i) * 110ms),transform 1.2s var(--v2-ease) calc(var(--i) * 110ms)}
.v2-cast-row:hover .v2-cast-item img{filter:brightness(.4) saturate(.4) drop-shadow(0 20px 30px #000a)}
.v2-cast-row .v2-cast-item:hover img{filter:drop-shadow(0 0 30px #f0c2c155) drop-shadow(0 20px 30px #000a)}
html.v2-js .v2-cast.is-in .v2-cast-item:hover,.v2-cast-item:hover{transform:translateY(-14px);z-index:3}
.v2-cast-item>span{position:absolute;bottom:-64px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;white-space:nowrap;opacity:.55;transition:opacity .4s,transform .5s var(--v2-ease)}
.v2-cast-item:hover>span,.v2-cast-item:focus-visible>span{opacity:1;transform:translate(-50%,-6px)}
.v2-cast-item strong{font:800 20px/1 var(--serif);letter-spacing:.2em}
.v2-cast-item small{font:400 12px/1 var(--sans);letter-spacing:.24em;color:var(--v2-gold)}
.v2-cast-item:focus-visible{outline:2px solid var(--v2-gold);outline-offset:4px}
.v2-cast{padding:120px 6.5% 80px;background:radial-gradient(80% 60% at 50% 100%,#5a3238aa,transparent 70%);padding-bottom:150px}

/* =========================================================
   七、画廊：竖着滚、横着走
   ========================================================= */
.v2-gallery{position:relative;height:var(--gal-h,300vh)}
.v2-gallery-pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:calc(var(--island-space,0px) * .6) 0 40px}
.v2-gallery .v2-sec-head{padding:0 6.5%;margin-bottom:40px}
.v2-gallery-track{display:flex;align-items:center;gap:28px;padding:0 6.5%;width:max-content;transform:translate3d(var(--gx,0px),0,0);will-change:transform}
.v2-shot{position:relative;flex:none;height:min(56vh,520px);aspect-ratio:3/4;overflow:hidden;background:#2d1a1d;transform:rotate(var(--rot,0deg));transition:transform .7s var(--v2-ease)}
.v2-shot-wide{aspect-ratio:16/10}
.v2-shot:nth-child(odd){--rot:-1.2deg}.v2-shot:nth-child(even){--rot:1.4deg}
.v2-shot img{width:100%;height:100%;object-fit:cover;transform:scale(1.15) translateX(var(--px,0px));transition:transform .9s var(--v2-ease)}
.v2-shot:hover{transform:rotate(0) scale(1.03)}
.v2-shot>span{position:absolute;left:18px;bottom:16px;padding:8px 14px;border-radius:999px;background:#1d1416b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:500 13px/1 var(--sans);letter-spacing:.24em}
.v2-shot-end{display:grid;place-items:center;aspect-ratio:3/4;--rot:0deg}
.v2-home .v2-shot-end .v2-shot-more{position:static;background:none;backdrop-filter:none;font:800 clamp(30px,3vw,46px)/1.3 var(--serif);letter-spacing:.12em;text-align:center;padding:0}
.v2-shot:focus-visible{outline:2px solid var(--v2-gold);outline-offset:5px}

/* =========================================================
   八、尾声
   ========================================================= */
.v2-finale{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:140px 6.5% 120px;overflow:hidden;background:radial-gradient(60% 50% at 50% 60%,#5d2a3077,transparent 70%)}
.v2-finale:before{content:"";position:absolute;left:50%;top:55%;width:min(900px,120vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:conic-gradient(from 0deg,#b9737700,#b9737744,#e1b48644,#e7c89944,#b9737700);filter:blur(60px);animation:v2-spin 30s linear infinite;z-index:-1}
.v2-finale-kicker{margin:0 0 30px;font:400 16px/1 var(--sans);letter-spacing:.4em;color:var(--v2-gold)}
.v2-finale-word{display:flex;flex-direction:column;font:800 clamp(64px,11vw,190px)/1.02 var(--serif);letter-spacing:.04em}
.v2-finale-word b{font-weight:inherit;background:linear-gradient(100deg,#f0c2c1,#fff,#e7c899,#f0c2c1);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:v2-sheen 5s ease-in-out infinite}
.v2-finale-word span:first-child{color:#f6eee666}
.v2-finale-btn{margin-top:56px}
.v2-finale-sign{display:flex;gap:16px;margin-top:70px;font:400 14px/1 var(--sans);letter-spacing:.4em;color:var(--v2-dim)}

/* 首页页脚贴着尾声 */
.home-page .site-footer{margin-top:0}

/* =========================================================
   中等屏幕
   ========================================================= */
@media (max-width:1150px){
 .v2-index-list a{grid-template-columns:64px minmax(0,1fr) 52px}
 .v2-ix-desc{grid-column:2;grid-row:2;margin-top:-6px}
 .v2-ix-arrow{grid-column:3;grid-row:1 / span 2}
 .v2-hero-copy{max-width:none}
 .v2-home .v2-hero{padding-left:5%;padding-right:5%}
 .v2-seal{width:110px;height:110px;top:-62px;right:-10px}
 .v2-seal-core{width:56px;height:56px;font-size:26px}
}

/* =========================================================
   手机
   ========================================================= */
@media (max-width:760px){
 .v2-home .v2-hero{min-height:100svh;padding:calc(var(--island-space,0px) + 30svh) 16px 64px;align-items:end;gap:30px}
 .v2-console{grid-template-columns:minmax(0,1fr);gap:12px}
 .v2-hero-more{flex-basis:100%;margin:8px 0 0;font-size:13px}
 .v2-float{bottom:14px;font-size:13px}
 .v2-float a{height:38px;padding:0 15px}
 .v2-home .v2-hero .scene-art{width:100%;height:78%;bottom:auto;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
 
 .v2-hero-copy{max-width:none}
 .v2-hero-rail,.v2-spot{display:none}
 .v2-kicker{font-size:12px;margin-bottom:18px}
 .v2-kicker em{display:none}
 .v2-title{font-size:clamp(44px,13.6vw,64px)}
 /* 2026-10-15（体验评估 M03，他选的）：手机上标题的字只淡入、上浮，不再从模糊变清楚（模糊滤镜手机上费电、慢的机器会卡一下）；先后和节奏不变 */
 html.v2-js .v2-title .v2-ch{filter:none;transition-property:opacity,transform}
 .v2-lede{font-size:15px;margin-top:18px}
 .v2-hero-cta{margin-top:28px;gap:12px}
 .v2-btn{height:50px;padding:0 22px;font-size:15px}
 .v2-hero-title-bg{display:none}
 .v2-seal text{font-size:16px}
 .v2-scroll-cue{display:none}
 .v2-marquee{height:150px;margin-top:-20px}
 .v2-sec-head{margin-bottom:34px;grid-template-columns:auto 1fr}
 
 .v2-duo,.v2-index,.v2-cast{padding:80px 22px}
 .v2-duo-stage{flex-direction:column;height:auto;min-height:0;gap:18px}
 .v2-duo-card{flex:none}
 .v2-duo-stage:hover .v2-duo-card{flex-grow:0;filter:none}
 .v2-duo-body{padding:26px}
 .v2-duo-art{width:62%;right:-16%}
 .v2-light .v2-duo-body{max-width:72%}
 .v2-light .v2-duo-body>span{text-shadow:0 0 12px #fbe9e2,0 0 24px #fbe9e2}
  .v2-home .home-live,.v2-songcard{padding:16px 14px 14px;border-radius:18px}
 .v2-song-actions>*{padding:0 13px}
 .v2-ix-no{font-size:18px}
 .v2-ix-name{font-size:28px}
 .v2-ix-desc{font-size:13px}
 .v2-ix-arrow{width:40px;height:40px}
 .v2-cast-row{height:auto;overflow-x:auto;justify-content:flex-start;scroll-snap-type:x mandatory;padding-bottom:70px;gap:6px;scrollbar-width:none}
 .v2-cast-row::-webkit-scrollbar{display:none}
 .v2-cast-item{flex:0 0 46%;height:330px;margin:0;scroll-snap-align:center}
 .v2-cast-lead{height:330px}
 .v2-cast-item>span{bottom:-56px;opacity:1}
 .v2-cast-row:hover .v2-cast-item img{filter:drop-shadow(0 20px 30px #000a)}
 .v2-gallery{height:auto}
 .v2-gallery-pin{position:relative;height:auto;padding:80px 0}
 .v2-gallery .v2-sec-head{padding:0 22px}
 .v2-gallery-track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 22px 20px;transform:none;scrollbar-width:none}
 .v2-gallery-track::-webkit-scrollbar{display:none}
 .v2-shot{height:auto;width:68vw;scroll-snap-align:center}
 .v2-shot-wide{width:84vw}
 .v2-finale{padding:110px 22px 140px}
}

/* =========================================================
   减少动态效果 / 设置里暂停动效：全部定格
   ========================================================= */
@media (prefers-reduced-motion:reduce){
 .v2-home *,.v2-home *:before,.v2-home *:after{animation:none!important;transition-duration:.01ms!important}
 html.v2-js .v2-home [data-reveal],html.v2-js .v2-title .v2-ch,html.v2-js .v2-cast-item{opacity:1!important;transform:none!important;filter:none!important}
}
.motion-paused .v2-home *,.motion-paused .v2-home *:before,.motion-paused .v2-home *:after{animation-play-state:paused!important}
.motion-paused .v2-grain{display:none}
/* 设置里「动效 暂停」也不做浮现（2026-10-08 修：原来只暂停 animation，标题逐字浮现和各块淡入是 transition，照样在动） */
html.v2-js .motion-paused .v2-home [data-reveal],html.v2-js .motion-paused .v2-title .v2-ch,html.v2-js .motion-paused .v2-cast-item{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}

/* =========================================================
   国风版（2026-10-06 第四轮，Raymond：要贴回自己形象的风格、多用美术）
   配色取自影妹立绘；英文斜体装饰换成中文题字与印章；直播条加金框回纹与祥云；胶片颗粒换成丝绸纹理。
   ========================================================= */
.v2-grain{display:none}
.v2-home .v2-hero{background:radial-gradient(110% 90% at 72% 28%,#5e3439 0%,#2c1b1e 50%,var(--v2-bg) 100%)}
.v2-home .v2-hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url(assets/art/silk-pattern.webp?v=ce71f709ec) 0 0/170px auto;opacity:.05;mix-blend-mode:overlay}
@media (min-width:761px){.v2-home .v2-hero .scene-art:after{background:linear-gradient(0deg,var(--v2-bg) 0%,#1d1416c4 12%,transparent 38%),linear-gradient(180deg,#1d141670,transparent 18%),radial-gradient(80% 70% at 60% 40%,transparent 55%,#1d141666 100%)}}
/* 左侧竖排题字（原来是英文 YNC SHADOW / Vol. 01） */
.v2-hero-rail{left:2.6%;top:50%;transform:translate(-50%,-50%);flex-direction:row;writing-mode:vertical-rl;gap:20px;font:400 15px/1 var(--sans);letter-spacing:.6em;color:#e7c899b8}
.v2-hero-rail i{width:1px;height:64px;background:linear-gradient(180deg,transparent,var(--v2-gold),transparent)}
/* 题头小字前面用麒麟纹章代替圆点 */
.v2-kicker-dot{width:24px;height:24px;border-radius:50%;background:url(assets/opt/art/qilin-medallion.webp?v=e658012a95) center/contain no-repeat;box-shadow:none;animation:none;filter:sepia(.3) saturate(1.4) brightness(1.25)}
.v2-kicker{letter-spacing:.3em}
.v2-title{text-shadow:0 6px 40px #0009}
/* 背后的「织影入梦」大字用楷体，像题在画上 */
.v2-hero-title-bg{font-family:var(--sans);font-weight:400;color:#f6eee636}
/* 印章：深色漆底、金字金边（朱红太扎眼，Raymond 10-06） */
.v2-seal-core{background:radial-gradient(circle at 35% 30%,#4f3033,#2a191b 75%);color:#e7c899;box-shadow:0 0 0 1.5px #d9b07ccc,0 0 0 5px #1d141699,0 10px 30px #0008;font-family:var(--sans);font-weight:400}
@media (min-width:761px){
 /* 直播条：直角带一点圆、金色回纹框、两端祥云 */
 .v2-home .v2-console{border-color:#e1b48688;background:linear-gradient(100deg,#2f1e20eb,#22171ae3 55%,#2f1d1fe8)}
 .v2-home .v2-console:before{content:"";position:absolute;inset:-9px;border:14px solid transparent;border-image:url(assets/ui/gilded-frame.webp?v=4277067976) 40 / 14px stretch;pointer-events:none;opacity:.95}
 /* 祥云贴在直播条里面的左下角和右上角，像卡片的角花 */
 .v2-home .v2-console .home-live:before{display:block;content:"";position:absolute;inset:auto auto -16px -10px;width:150px;height:60px;background:url(assets/art/cloud-corner.webp?v=c86f84deab) left top/contain no-repeat;transform:scaleY(-1);opacity:.5;pointer-events:none;z-index:-1;border-radius:0 0 0 2px}
 .v2-home .v2-console .v2-songcard:before{display:block;content:"";position:absolute;inset:-16px -10px auto auto;width:150px;height:60px;background:url(assets/art/cloud-corner.webp?v=c86f84deab) left top/contain no-repeat;transform:scaleX(-1);opacity:.5;pointer-events:none;z-index:-1;border-radius:0 2px 0 0}
 .v2-home .v2-console .v2-song-count small{font-size:11px;letter-spacing:0}
 .v2-home .v2-console .v2-eq{display:none}
 /* 小标签：宣纸色小签，直播 / 点歌；开播时直播签换成亮金 */
 .v2-strip-tag{top:-32px;padding:4px 7px 5px;font:400 13px/1 var(--sans);font-style:normal;letter-spacing:.24em;color:#5a3238;background:#f3e6d3;border-radius:2px;box-shadow:inset 0 0 0 1px #c9a173,0 4px 12px #0005;-webkit-mask-image:none;mask-image:none;transform:rotate(-2deg)}
 .v2-home .v2-hero[data-live="live"] .home-live .v2-strip-tag{color:#3d2226;background:linear-gradient(180deg,#fbe6c4,#e1b486);box-shadow:inset 0 0 0 1px #b98e5a,0 0 18px #e1b48699}
 .v2-home .v2-console .v2-songcard .v2-strip-tag{left:122px;transform:rotate(2deg)}
 .v2-home .v2-console:after{background:linear-gradient(90deg,transparent 0 30%,#f0c2c1 45%,#fff4e0 50%,#e1b486 55%,transparent 70% 100%) 0 0/250% 100%}
}
/* 手机：标题压在立绘的白衣上，底部加深一点保证看得清 */
@media (max-width:760px){
 .v2-home .v2-hero .scene-art:after{background:linear-gradient(0deg,var(--v2-bg) 0%,#1d1416ee 26%,#1d1416a8 46%,transparent 70%)}
 .v2-title{text-shadow:0 2px 24px #1d1416,0 0 2px #1d141699}
}
/* 跑马灯：第二条换成宣纸底的楷体中文 */
.v2-band-b{background:#f4e8da url(assets/ui/peony-paper.webp?v=b8e9df8532) center/cover;color:#5b2b27}
.v2-band-b .v2-track{animation-direction:reverse;--dur:40s;font:400 clamp(24px,2.8vw,44px)/1 var(--sans);letter-spacing:.32em}
.v2-band-b .v2-track i{font-style:normal;color:#a8605a}
/* 栏目编号换成中文数字，去掉英文副标题 */

.v2-sec-head h2 em{font:italic 400 clamp(18px,1.6vw,26px)/1 var(--v2-latin);letter-spacing:.02em;color:var(--v2-gold);display:none}
.v2-ix-no{font:700 24px/1 var(--serif)}
.v2-song-count b{font:700 26px/1 var(--serif)}
.v2-song-label em{display:none}

/* ---------- 首页下面几屏：多用美术 ---------- */
/* 栏目标题：中文数字放进深色漆底、金边的方印里 */
.v2-sec-head{align-items:center;gap:8px 26px}
.v2-sec-head .v2-no{display:grid;place-items:center;width:clamp(60px,5.4vw,78px);aspect-ratio:1;font:400 clamp(30px,2.7vw,40px)/1 var(--sans);color:#e7c899;-webkit-text-stroke:0;letter-spacing:0;background:radial-gradient(circle at 35% 30%,#4f3033,#2a191b 75%);box-shadow:0 0 0 1.5px #d9b07ccc,inset 0 0 0 5px #2a191b,inset 0 0 0 6px #d9b07c55,0 12px 30px #0007}
.v2-sec-head h2{letter-spacing:.12em}
/* 影与光：两张卡都换成画框；小影子用《千年之恋》夜色插画（他的人物页语录卡也用这张），影奶茶用牡丹宣纸 */
.v2-duo-card{border-radius:12px}
.v2-duo-num{border-radius:6px;font-family:var(--sans);font-weight:400}
.v2-home .v2-shadow{background:#1d1416;border-color:#e1b48633}
.v2-home .v2-shadow:before{content:"";position:absolute;inset:0;z-index:-2}
.v2-home .v2-shadow .v2-duo-glyph{display:none}
.v2-home .v2-shadow:after,.v2-home .v2-light:before{inset:10px;z-index:1;border:14px solid transparent;border-image:url(assets/ui/gilded-frame.webp?v=4277067976) 40 / 14px stretch;background:none;-webkit-mask-image:none;mask-image:none;opacity:.85;pointer-events:none}
.v2-home .v2-light{background:radial-gradient(60% 55% at 74% 34%,#fff8f2 0%,#fff8f200 70%),url(assets/ui/peony-paper.webp?v=b8e9df8532) center/cover;color:#3d2226}
.v2-home .v2-light .v2-duo-body{text-shadow:0 1px 16px #fff5ee}
.v2-duo-art img{filter:drop-shadow(-16px 24px 40px #5a323855)}
/* 目录：每一行右边铺上那个栏目自己的插画，鼠标移上去亮起来 */
.v2-index-list a:after{content:"";position:absolute;z-index:-2;top:0;bottom:0;right:0;width:58%;background:var(--ix-show,none) var(--ix-pos,center 30%)/cover no-repeat;opacity:.5;-webkit-mask-image:linear-gradient(90deg,transparent,#000 55%);mask-image:linear-gradient(90deg,transparent,#000 55%);transition:opacity .6s,transform 1.4s var(--v2-ease)}
.v2-index-list a:hover:after,.v2-index-list a:focus-visible:after{opacity:.92;transform:scale(1.03)}
/* 背景画等目录那一块快滚到时才下载（home-v2.js 给 .v2-index 加 ix-near；2026-10-09，第二次体检 4-5：原来电脑上一打开首页就去下这几张） */
.v2-index.ix-near .v2-index-list a{--ix-show:var(--ix-art)}
.v2-index-list a[href="library.html"]{--ix-art:url(assets/showcase/art-mousepad.webp?v=2ab65d62f6);--ix-pos:center 30%}
.v2-index-list a[href="qilin-songs.html"]{--ix-art:url(assets/opt/hero/voice-flower.webp?v=40247e33c5);--ix-pos:center 44%}
.v2-index-list a[href="stats.html"]{--ix-art:url(assets/opt/art/eternal-night-card.webp?v=0a7cf85b31);--ix-pos:center 38%}
.v2-index-list a[href="qilin-realm.html"]{--ix-art:url(assets/opt/hero/realm-brocade.webp?v=198248050e);--ix-pos:center 28%}
.v2-index-list a[href="voice-of-ying.html"]{--ix-art:url(assets/opt/art/ink-portrait-card.webp?v=fda4391c9c);--ix-pos:center 38%}
.v2-index-list a[href="design-showcase.html"]{--ix-art:url(assets/opt/archive/lotus-lake-card.webp?v=2d91621a18);--ix-pos:center 22%}
.v2-index-list a[href="guestbook.html"]{--ix-art:url(assets/opt/archive/peony-portrait-card.webp?v=4a0311a7c1);--ix-pos:center 46%}
.v2-index-list a[href="workshop.html"]{--ix-art:url(assets/opt/archive/mountain-sea-card.webp?v=344feea583);--ix-pos:center 40%}   /* 第二次体检 1-8：工坊这一行也配画（工坊页首那幅） */
.v2-ix-name{color:#f6eee6e6}
.v2-ix-desc{color:#efe2d8;text-shadow:0 1px 10px #1d1416,0 0 3px #1d1416}
.v2-ix-arrow{background:#1d141699;border-color:#e7c89966;color:#e7c899}
.v2-ix-float{display:none}
/* 目录下面：「我的」入口（2026-10-07，评估里的「『我的』页面露出来」；原来只在导航右上角有个小按钮，新访客很难发现）。
   左边三枚源泉之路的真勋章（初见、点歌、弹幕），宣纸色小签式的一条，和上面七行目录分开 */
.v2-home .v2-me{position:relative;display:flex;align-items:center;gap:22px;margin:30px 0 0;padding:18px 28px 18px 22px;border-radius:3px;background:linear-gradient(100deg,#f6ecdf,#f1dfcd 60%,#ecd3c4);color:#3d2226;box-shadow:0 0 0 1px #c9a173,inset 0 0 0 4px #f6ecdf,inset 0 0 0 5px #c9a17366,0 18px 40px #0006;transition:transform .5s var(--v2-ease),box-shadow .4s}
.v2-me:hover,.v2-me:focus-visible{transform:translateY(-2px);box-shadow:0 0 0 1px #b98e5a,inset 0 0 0 4px #f6ecdf,inset 0 0 0 5px #b98e5a88,0 22px 50px #0008,0 0 30px #e1b48633}
.v2-me:focus-visible{outline:2px solid var(--v2-gold);outline-offset:4px}
.v2-me-stamps{flex:none;display:flex}
.v2-me-stamps img{width:56px;height:56px;margin-left:-12px;filter:drop-shadow(0 4px 8px #5a323844);transition:transform .5s var(--v2-ease)}
.v2-me-stamps img:first-child{margin-left:0}
.v2-me:hover .v2-me-stamps img:nth-child(1){transform:rotate(-8deg) translateY(-2px)}
.v2-me:hover .v2-me-stamps img:nth-child(3){transform:rotate(8deg) translateY(-2px)}
.v2-me-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.v2-home .v2-me-text strong{font:700 20px/1.3 var(--serif);letter-spacing:.1em;color:#3d2226;text-shadow:none}
.v2-home .v2-me-text small{font:400 14px/1.6 var(--sans);letter-spacing:.04em;color:#6a4a45;text-shadow:none}
.v2-me-go{margin-left:auto;flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #b98e5a;font-weight:400;color:#7a5236;transition:transform .5s var(--v2-ease),background .4s,color .4s}
.v2-me:hover .v2-me-go{background:#3d2226;color:#f3e6d3;border-color:#3d2226;transform:rotate(-45deg)}
@media (max-width:760px){
 .v2-me{gap:14px;margin-top:22px;padding:14px 16px}
 .v2-me-stamps img{width:42px;height:42px;margin-left:-10px}
 .v2-home .v2-me-text strong{font-size:17px}
 .v2-home .v2-me-text small{font-size:13px}
 .v2-me-go{display:none}
}
/* 人物志：站在金色戏台上（麒麟云境人物页也是这张舞台） */
.v2-home .v2-cast{position:relative;isolation:isolate;background:none}
.v2-home .v2-cast:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--v2-bg) 0%,#1d1416c7 20%,#1d141680 52%,#1d1416b3 78%,var(--v2-bg) 100%),url(assets/opt/art/golden-stage.webp?v=0b41d1516b) center 72%/cover no-repeat;pointer-events:none}
/* 设计橱窗：细金边画框，作品名用宣纸色小签 */
.v2-shot{border-radius:10px;box-shadow:0 0 0 1px #e1b48666,0 24px 60px #0008}
.v2-home .v2-shot>span{border-radius:2px;background:#f3e6d3;color:#3d2226;box-shadow:inset 0 0 0 1px #c9a173;-webkit-backdrop-filter:none;backdrop-filter:none}
.v2-shot-end{background:url(assets/ui/peony-paper.webp?v=b8e9df8532) center/cover}
.v2-home .v2-shot-end .v2-shot-more{color:#5a3238}
/* 尾声：背后铺《山海》那张水榭插画，压暗后当底 */
.v2-home .v2-finale{isolation:isolate;background:none}
.v2-finale:after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(60% 70% at 50% 50%,#1d141666 0%,#1d1416a6 60%,#1d1416 100%),linear-gradient(180deg,var(--v2-bg) 0%,transparent 22%,transparent 78%,var(--v2-bg) 100%),url(assets/opt/archive/mountain-sea.webp?v=641e44fc06) center 40%/cover no-repeat;pointer-events:none}
/* 2026-10-18（前端设计顾问三 乙，他选的）：上面的遮罩减淡一档（原来 b3 / d9，画几乎只剩一团黑），「留下」字亮一点；电脑上字下加投影保住字的清楚。
   投影只能用 filter:drop-shadow：字是 background-clip:text 的渐变字，text-shadow 会把字填黑。手机上不加（字里有一直在走的光泽动画，filter 会让它每帧重画），靠暗色光晕 */
@media(min-width:761px){.v2-finale-word{filter:drop-shadow(0 4px 22px #1d1416e6) drop-shadow(0 1px 2px #1d1416)}}
.v2-finale-sign i{color:var(--v2-gold);font:400 18px/1 var(--sans)}
@media (max-width:760px){
 .v2-sec-head .v2-no{grid-row:span 2;font-size:28px;width:56px}
 .v2-index-list a{grid-template-columns:40px minmax(0,1fr) 40px;gap:12px;padding:22px 2px;min-height:0}
 .v2-index-list a:after{width:70%;opacity:.38}
 .v2-duo-card{min-height:460px}
 .v2-sec-head h2{font-size:clamp(24px,6.8vw,30px);letter-spacing:.04em}
}
/* ---------- 圆角：方角带一点点圆 ---------- */
/* 画框、卡片、直播条都用 3px 小圆角（像装裱的画心边，看着是方的、边不硬），栏目方印 4px；
   整圆只留给旋转印章、麒麟纹章、头像这类点缀；胶囊按钮和小标签照旧（Raymond 10-06：「那就整一点点圆好了」） */
.v2-home .v2-console{border-radius:3px}
.v2-home .v2-console .v2-song-pick,.v2-home .v2-console .home-live-status{border-radius:3px}
.v2-home .v2-console .home-live-link{border-radius:4px}   /* 直播条里的三个小方块（个人空间、粉丝群、入站须知）跟着收，和金框对齐 */
.v2-sec-head .v2-no{border-radius:4px}
.v2-home .v2-duo-card{border-radius:3px}
.v2-home .v2-shot{border-radius:3px}
.v2-cast-item:focus-visible{border-radius:3px}
@media (max-width:760px){
 .v2-home .v2-console .home-live,.v2-home .v2-console .v2-songcard{border-radius:3px}
}
/* ---------- 唱片：平时静止，鼠标移到歌单上才转 ---------- */
/* 原来电脑上的唱片其实一圈都没转，而是一直往下飘（Raymond 10-06）：首屏把唱片往上提了 14px（transform:translateY），
   转圈动画 v2-spin 也写在 transform 上，浏览器把「上提 14px → 转 360°」算成了「往下滑 14px，再跳回去」。
   现在转圈放在 :before（中间的金色标签，带一个小记号，看得出在转）上，和唱片本身的位置互不干扰；
   鼠标移到歌单上就转、移开就停，点「换一首」时快转一下。纹路是同心圆、转不转看起来一样，和反光（:after）一起不转，像真的唱片 */
.v2-home .v2-disc{animation:none;background:repeating-radial-gradient(circle,#1e1112 0 2px,#2d1d1f 3px 4px)}
.v2-home .v2-disc:before{content:"";position:absolute;inset:0;border-radius:50%;
 background:radial-gradient(circle at 50% 38%,#7d4a4d 0 2px,transparent 2.6px),
  radial-gradient(circle closest-side,#1d1416 0 7%,#e7c899 8% 30%,#b98e5a 31% 33%,#2d1719 34% 37%,transparent 38%);
 animation:v2-spin 2.4s linear infinite;animation-play-state:paused}
.v2-home .v2-songcard:hover .v2-disc:before,.v2-home .v2-songcard:focus-within .v2-disc:before,.v2-home .v2-songcard.is-spinning .v2-disc:before{animation-play-state:running}
.v2-home .v2-songcard.is-spinning .v2-disc:before{animation-duration:.6s}
/* 尾声背后的光晕也是同一个毛病：它靠 translate(-50%,-50%) 居中，转圈又写在 transform 上，结果一点不转，只往右下滑、每 30 秒跳回去一次。
   改成居中和转圈写在同一个动画里 */
@keyframes v2-spin-c{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
.v2-finale:before{animation-name:v2-spin-c}
/* ---------- 设计橱窗：电脑上改成一面画墙 ---------- */
/* 原来电脑上滚到这里会钉住，往下滚变成画往左走，想接着往下看会被卡住（Raymond 10-06）。
   现在六幅画加「看全部作品」排成两行五格（横幅和最后一格各占两格），一眼看全，上下滚动照常；
   手机上仍是左右滑的一排（本来就不钉住） */
@media (min-width:761px){
 .v2-gallery{height:auto}
 .v2-gallery-pin{position:relative;height:auto;display:block;overflow:visible;padding:110px 0 80px}
 .v2-gallery-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:normal;gap:24px;width:auto;max-width:1680px;margin:0 auto;transform:none;will-change:auto}
 .v2-shot{width:auto;height:auto;aspect-ratio:3/4}
 .v2-gallery-track>.v2-shot:nth-child(n){--rot:0deg}   /* 画墙上不再左右歪着摆 */
 .v2-shot-wide,.v2-shot-end{grid-column:span 2;aspect-ratio:auto}
 .v2-shot img{position:absolute;inset:0;transform:scale(1.02)}   /* 图片不撑高格子，一行的高度由竖幅定，横幅跟着铺满 */
 .v2-shot:hover{transform:translateY(-4px)}
 .v2-shot:hover img{transform:scale(1.07)}
}
/* 平板和窄一点的电脑：五格太小，改成三格（横幅占两格，「看全部作品」占一格），排成三行 */
@media (min-width:761px) and (max-width:1179px){
 .v2-gallery-track{grid-template-columns:repeat(3,minmax(0,1fr))}
 .v2-shot-end{grid-column:auto;aspect-ratio:3/4}
}

/* ---------- 首页下面几屏的底：夜色不变，加一层宋锦暗纹和画里透出来的光 ---------- */
/* 影与光、目录、设计橱窗三屏原来是一整片平的深色，夹在有画铺底的人物志和尾声中间像没做完（Raymond 10-07「一坨黑」）。
   底色不动，只加：很淡的宋锦菱格暗纹（凑近才看得清）、两张卡背后的光、设计橱窗的展板，和三样这一页专门画的金线点缀：
   影与光的如意祥云、目录的云气飘带、橱窗的回纹角花和桃花枝（不借旧日界面的祥云和牡丹，Raymond 10-07「素材复用会不会有点严重」） */
.v2-home .v2-duo,.v2-home .v2-index,.v2-home .v2-gallery{position:relative;isolation:isolate}
.v2-home .v2-duo:before,.v2-home .v2-duo:after,.v2-home .v2-index:before,.v2-home .v2-index:after,.v2-home .v2-gallery:before,.v2-home .v2-gallery:after{content:"";position:absolute;inset:0;pointer-events:none}
/* 影与光：小影子一侧透出《千年之恋》的紫色夜光，影奶茶一侧透出牡丹宣纸的粉金暖光；暗纹从跑马灯下面淡入，和目录接成一片 */
.v2-home .v2-duo:before{z-index:-3;background:radial-gradient(38% 52% at 20% 56%,#6a4a9e70,transparent 75%),radial-gradient(38% 52% at 80% 56%,#e8a69070,transparent 75%),var(--v2-silk) center bottom/72px 72px repeat;-webkit-mask-image:linear-gradient(180deg,transparent,#000 14%);mask-image:linear-gradient(180deg,transparent,#000 14%)}
/* 影与光右上：一朵金线如意祥云（home-cloud.svg：双勾边、三个云头卷、一条云尾） */
.v2-home .v2-duo:after{z-index:-2;opacity:.5;background:url(assets/art/home-cloud.svg?v=10603680dc) right 5.5% top 34px/400px auto no-repeat}
/* 目录：左边一团暖光，题目这一行的右边飘过一道云气（home-ribbon-cloud.svg） */
.v2-home .v2-index:before{z-index:-2;background:radial-gradient(40% 55% at 16% 50%,#6a384166,transparent 72%),radial-gradient(30% 30% at 10% 8%,#e1b4861f,transparent 70%),var(--v2-silk) center top/72px 72px repeat;-webkit-mask-image:linear-gradient(180deg,#000 80%,transparent);mask-image:linear-gradient(180deg,#000 80%,transparent)}
.v2-home .v2-index:after{z-index:-1;opacity:.5;background:url(assets/art/home-ribbon-cloud.svg?v=cc6ee86603) right 6.5% top 96px/520px auto no-repeat}
/* 设计橱窗：做成一扇真的「橱窗」——比底色亮一点的暖色展板、双金线框、四角回纹角花，标题右边从画后面探出一枝金线桃花（home-peach.svg）；标题和画墙对齐 */
.v2-home .v2-gallery{background:linear-gradient(180deg,var(--v2-bg),transparent 14%,transparent 86%,var(--v2-bg)),var(--v2-silk) center top/72px 72px repeat}
.v2-home .v2-gallery:before{z-index:-2;inset:50px max(24px,calc(50% - 840px + 6.5% - 56px)) 30px;border:1px solid #e7c89947;border-radius:3px;background:radial-gradient(90% 80% at 50% 30%,#3b2429,#271a1d 75%);box-shadow:inset 0 0 0 7px #21161a,inset 0 0 0 8px #e7c89929,0 40px 90px #00000080}
.v2-home .v2-gallery:after{z-index:-1;inset:50px max(24px,calc(50% - 840px + 6.5% - 56px)) 30px;opacity:.6;background:url(assets/art/home-peach.svg?v=c899532147) right 44px top 26px/220px auto no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'><g fill='none' stroke='%23e7c899' stroke-width='1.3'><path d='M1.5 46V1.5H46'/><path d='M7.5 34V7.5H34'/><path d='M13.5 27V13.5H27V21.5H19.5V17'/></g></svg>") left 14px top 14px/64px 64px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'><g fill='none' stroke='%23e7c899' stroke-width='1.3' transform='translate(64 0) scale(-1 1)'><path d='M1.5 46V1.5H46'/><path d='M7.5 34V7.5H34'/><path d='M13.5 27V13.5H27V21.5H19.5V17'/></g></svg>") right 14px top 14px/64px 64px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'><g fill='none' stroke='%23e7c899' stroke-width='1.3' transform='translate(0 64) scale(1 -1)'><path d='M1.5 46V1.5H46'/><path d='M7.5 34V7.5H34'/><path d='M13.5 27V13.5H27V21.5H19.5V17'/></g></svg>") left 14px bottom 14px/64px 64px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'><g fill='none' stroke='%23e7c899' stroke-width='1.3' transform='translate(64 64) scale(-1 -1)'><path d='M1.5 46V1.5H46'/><path d='M7.5 34V7.5H34'/><path d='M13.5 27V13.5H27V21.5H19.5V17'/></g></svg>") right 14px bottom 14px/64px 64px no-repeat}
@media (min-width:761px){
 .v2-gallery .v2-sec-head{max-width:1680px;margin:0 auto 40px;box-sizing:border-box}
}
@media (min-width:761px) and (max-width:1179px){
 .v2-home .v2-duo:after{background-size:300px auto}
 .v2-home .v2-index:after{background-size:400px auto}
}
@media (max-width:760px){
 .v2-home .v2-duo:before{background:radial-gradient(80% 26% at 30% 34%,#6a4a9e70,transparent 75%),radial-gradient(80% 26% at 70% 74%,#e8a69070,transparent 75%),var(--v2-silk) center bottom/56px 56px repeat}
 .v2-home .v2-duo:after{background-position:right 8px top 4px;background-size:190px auto}
 .v2-home .v2-index:before{background-size:auto,auto,56px 56px}
 .v2-home .v2-index:after{background-position:right -24px top 14px;background-size:250px auto}
 .v2-home .v2-gallery{background-size:auto,56px 56px}
 /* 手机上画是左右滑的一排：展板改成通栏的「画卷」，只留上下两道金线 */
 .v2-home .v2-gallery:before{inset:34px 0 20px;border:0;border-radius:0;box-shadow:none;background:linear-gradient(#e7c89947,#e7c89947) 0 0/100% 1px no-repeat,linear-gradient(#e7c89929,#e7c89929) 0 7px/100% 1px no-repeat,linear-gradient(#e7c89929,#e7c89929) 0 calc(100% - 7px)/100% 1px no-repeat,linear-gradient(#e7c89947,#e7c89947) 0 100%/100% 1px no-repeat,radial-gradient(90% 80% at 50% 30%,#3b2429,#271a1d 75%)}
 .v2-home .v2-gallery:after{display:none}
}

/* ---------- 小影子那张卡亮起来（第一百一十一次传回；Raymond：「小影子这一侧高亮程度不够啊，鼠标挪上去之后还是灰蒙蒙的」） ----------
   原来画上压着 sepia(.22) saturate(.9) 的灰褐滤镜，外加一层从下往上 100%→13% 的夜色；鼠标移上去只去掉了卡片外层的滤镜，画本身还是灰的。
   现在：画用原色；暗色改成遮罩，只留在字底下（上面四成完全不遮，手机上面三成多），露出来的是卡片本来的夜色底；鼠标移上去画再亮一档；
   字加一圈夜色投影，压在画的亮处也看得清。 */
.v2-home .v2-shadow:before{background:url(assets/opt/art/eternal-night-card.webp?v=0a7cf85b31) 58% 30%/cover no-repeat;-webkit-mask-image:linear-gradient(0deg,transparent 0%,#0000004d 22%,#000000b3 40%,#000 58%);mask-image:linear-gradient(0deg,transparent 0%,#0000004d 22%,#000000b3 40%,#000 58%);filter:none;transition:transform 1.4s var(--v2-ease),filter .6s}
.v2-home .v2-shadow:hover:before{transform:scale(1.04);filter:brightness(1.14) saturate(1.12)}
.v2-home .v2-shadow .v2-duo-body small,.v2-home .v2-shadow .v2-duo-body>span,.v2-home .v2-shadow .v2-duo-go{text-shadow:0 0 3px #1d1416,0 1px 12px #1d1416e6}
.v2-home .v2-shadow .v2-duo-body strong{filter:drop-shadow(0 2px 14px #1d1416b3)}
@media (max-width:760px){
  .v2-home .v2-shadow:before{-webkit-mask-image:linear-gradient(0deg,transparent 0%,#00000047 28%,#000000a6 48%,#000 66%);mask-image:linear-gradient(0deg,transparent 0%,#00000047 28%,#000000a6 48%,#000 66%)}
}

/* 设计橱窗下面通往「织梦人的画」的一行小字（Claude 2026-10-07，二创画墙） */
.v2-home .v2-gallery-fan{position:relative;z-index:2;margin:38px 0 0;text-align:center}
.v2-home .v2-gallery-fan a{display:inline-flex;align-items:center;gap:10px;padding:8px 4px;font:400 15px/1.6 var(--sans);letter-spacing:.12em;color:#e7c899;text-decoration:none;border-bottom:1px solid #e1b48655;transition:color .4s,border-color .4s}
.v2-home .v2-gallery-fan a:hover,.v2-home .v2-gallery-fan a:focus-visible{color:#f6e2b8;border-color:#e1b486}
.v2-home .v2-gallery-fan b{font-weight:400;transition:transform .5s var(--v2-ease)}
.v2-home .v2-gallery-fan a:hover b{transform:translateX(4px)}
@media(max-width:760px){.v2-home .v2-gallery-fan{margin-top:14px;padding:0 22px}.v2-home .v2-gallery-fan a{font-size:14px;letter-spacing:.06em}}
/* =========================================================
   手机首页提速（2026-10-08，体检性能 #1、#4）：第二屏以下各块离视口远时先不排版、不画，
   里面的卡片背景图也就等滚到附近才下载；开场动画盖着页面时也不和开场视频抢网速。样子不变。
   contain-intrinsic-size 是没画之前先占的高度（量过：手机 / 电脑），画过一次后浏览器记住真实高度。
   ========================================================= */
.v2-home>.v2-duo,.v2-home>.v2-index,.v2-home>.v2-cast,.v2-home>.v2-gallery,.v2-home>.v2-finale{content-visibility:auto}
.v2-home>.v2-duo{contain-intrinsic-size:auto 1000px}
.v2-home>.v2-index{contain-intrinsic-size:auto 1350px}
.v2-home>.v2-cast{contain-intrinsic-size:auto 990px}
.v2-home>.v2-gallery{contain-intrinsic-size:auto 1100px}
.v2-home>.v2-finale{contain-intrinsic-size:auto 800px}
@media(max-width:760px){
 .v2-home>.v2-duo{contain-intrinsic-size:auto 1220px}
 .v2-home>.v2-index{contain-intrinsic-size:auto 1190px}
 .v2-home>.v2-cast{contain-intrinsic-size:auto 690px}
 .v2-home>.v2-gallery{contain-intrinsic-size:auto 720px}
 .v2-home>.v2-finale{contain-intrinsic-size:auto 620px}
}
/* =========================================================
   2026-10-08 体检 4-5：首屏小字看得清、印章不压直播卡、人物志滑动提示
   ========================================================= */
/* 「认识我们 / 网站指南」压在画的亮处（电脑上正好在人物手上）：垫一层淡淡的暗色胶囊 */
.v2-hero-more a{padding:5px 14px 6px;border:1px solid #e7c89926;border-radius:999px;background:#1d1416a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#eadbc8;text-shadow:0 1px 6px #1d1416}
.v2-hero-more a:after{left:14px;right:14px;bottom:4px}
.v2-hero-more{gap:8px 12px}
@media (max-width:760px){
 /* 「花影入梦 · 铃音相逢」：字下垫一条往右淡出的暗底 */
 .v2-kicker{width:fit-content;max-width:100%;padding:4px 18px 4px 4px;border-radius:999px;background:linear-gradient(90deg,#1d1416c2,#1d1416a6 70%,#1d141600);text-shadow:0 1px 6px #1d1416}
 /* 右下角「影」印章缩小一点，挪到直播卡上方右边的空处，不再压住卡角，也不碰「翻歌单」 */
 .v2-seal{width:66px;height:66px;top:-74px;right:60px}   /* 2026-10-18（前端设计顾问二）：right:0 时右下角的设置齿轮正好压住半个印章，往左挪到齿轮旁边 */
 .v2-seal-core{width:38px;height:38px;font-size:18px}
 /* 2026-10-15 加了「更新日志」：小签右边空出印章的位置（印章在这一排右边），放不下就折到第二行，不被印章压住 */
 .v2-hero-more{gap:8px 10px;max-width:calc(100% - 78px)}
}
/* 2026-10-15（体验评估 U12，他选的）：矮的手机屏（高不到 720，比如 iPhone SE、开着地址栏的小屏安卓）首屏放不下两个按钮，右下角的「设置」还压着「翻歌单」：
   收起「花影入梦 · 铃音相逢」那一行，标题和按钮整体往上挪；画不动，高一点的手机和电脑都不变 */
@media (max-width:760px) and (max-height:720px){
 .v2-home .v2-hero{padding-top:calc(var(--island-space,0px) + 30svh - 96px)}
 .v2-home .v2-kicker{display:none}
 .v2-lede{margin-top:12px}
 .v2-hero-cta{margin-top:20px}
}
/* 人物志一次只露两位：手机上加一行「滑动看更多」 */
.v2-cast-hint{display:none}
@media (max-width:760px){
 .v2-cast-hint{display:flex;justify-content:center;align-items:center;gap:10px;margin:14px 0 0;font:400 13px/1 var(--sans);letter-spacing:.24em;color:var(--v2-gold);opacity:.85}
 .v2-cast-hint i{font-style:normal;animation:v2-hint-nudge 2.4s ease-in-out infinite}
 .v2-cast-hint i:last-child{animation-direction:reverse}
}
@keyframes v2-hint-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(-4px)}}
@media (prefers-reduced-motion:reduce){.v2-cast-hint i{animation:none}}
.motion-paused .v2-cast-hint i{animation:none}
/* 近期：卡片按实际张数平分整行（原来每张最宽 360px，两三张时右边空出一截） */
.v2-recent-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
