/* UI V3 — 金云蝶影·雏宫夜宴。仅增强展示层，不改变内容与权限合同。 */
.hero-stage{isolation:isolate;perspective:900px}
.hero-art{position:relative;z-index:1;filter:drop-shadow(0 24px 36px rgba(0,0,0,.36)) saturate(1.08)}
.hero-stage:before,.hero-stage:after{content:"";position:absolute;z-index:2;pointer-events:none}
.hero-stage:before{inset:16px;border:1px solid rgba(214,181,119,.34);border-radius:10px;box-shadow:inset 0 0 28px rgba(214,181,119,.08)}
.hero-stage:after{inset:28px;background:linear-gradient(90deg,transparent,rgba(255,240,191,.11),transparent);transform:translateX(-115%);opacity:0;mix-blend-mode:screen}
.name-ribbon{z-index:7;width:126px;min-height:292px;padding:24px 16px;border-radius:5px;box-shadow:0 22px 48px rgba(0,0,0,.32)}
.name-ribbon:before,.name-ribbon:after{content:"";position:absolute;left:9px;right:9px;height:18px;border:1px solid currentColor;opacity:.28}
.name-ribbon:before{top:9px;border-bottom:0;border-radius:12px 12px 0 0}.name-ribbon:after{bottom:9px;border-top:0;border-radius:0 0 12px 12px}
.name-ribbon strong{font-size:36px;text-shadow:0 2px 8px rgba(0,0,0,.15)}
.ribbon-reirin{left:20%;top:82px}.ribbon-keigetsu{right:15%;bottom:68px}
.v3-ambient{position:absolute;inset:0;z-index:5;pointer-events:none;transform:translate3d(var(--px,0),var(--py,0),0);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.v3-depth-far{z-index:3}.v3-depth-mid{z-index:6}.v3-depth-near{z-index:8;overflow:hidden;border-radius:12px}
.star-dust{position:absolute;width:4px;height:4px;border-radius:50%;background:#f8e6ac;box-shadow:0 0 12px 3px rgba(214,181,119,.54);animation:v3-twinkle 4.8s ease-in-out infinite}
.dust-1{left:12%;top:18%;animation-delay:-.7s}.dust-2{left:34%;top:9%;width:2px;height:2px;animation-delay:-2.1s}.dust-3{right:13%;top:26%;animation-delay:-3.4s}.dust-4{right:28%;bottom:14%;width:3px;height:3px;animation-delay:-1.5s}.dust-5{left:17%;bottom:24%;width:2px;height:2px;animation-delay:-4s}
.mini-butterfly{position:absolute;width:28px;height:34px;display:block;animation:v3-butterfly-float 6.4s ease-in-out infinite}
.mini-butterfly b{position:absolute;top:4px;width:15px;height:24px;border:1px solid currentColor;background:linear-gradient(135deg,currentColor,transparent 78%);transform-origin:100% 58%;border-radius:92% 18% 80% 22%;animation:v3-wing-left 1.7s ease-in-out infinite}
.mini-butterfly b+ b{left:13px;transform-origin:0 58%;transform:scaleX(-1);animation-name:v3-wing-right}
.mini-butterfly:after{content:"";position:absolute;left:13px;top:11px;width:2px;height:19px;border-radius:2px;background:currentColor;box-shadow:0 -7px 0 -1px currentColor}
.butterfly-gold{left:13%;top:30%;color:#f3d990;transform:rotate(-14deg)}
.butterfly-red{right:12%;top:19%;color:#ef97a3;transform:scale(.72) rotate(19deg);animation-delay:-2.2s}
.butterfly-pale{right:24%;bottom:13%;color:#fff3cf;transform:scale(.54) rotate(-8deg);animation-delay:-4s}
.silk-glint{position:absolute;top:-15%;left:-25%;width:25%;height:130%;background:linear-gradient(90deg,transparent,rgba(255,240,191,.2),transparent);transform:skewX(-17deg);animation:v3-glint 9s 2s ease-in-out infinite}
.light-orb{position:absolute;border-radius:50%;background:rgba(214,181,119,.16);filter:blur(10px);animation:v3-orb 7s ease-in-out infinite}.orb-a{width:80px;height:80px;left:43%;top:42%}.orb-b{width:44px;height:44px;right:18%;bottom:21%;animation-delay:-3.5s}
@keyframes v3-twinkle{0%,100%{opacity:.28;transform:scale(.75)}50%{opacity:1;transform:scale(1.18)}}
@keyframes v3-wing-left{0%,100%{transform:rotateY(8deg) rotate(-8deg)}50%{transform:rotateY(58deg) rotate(4deg)}}
@keyframes v3-wing-right{0%,100%{transform:scaleX(-1) rotateY(8deg) rotate(-8deg)}50%{transform:scaleX(-1) rotateY(58deg) rotate(4deg)}}
@keyframes v3-butterfly-float{0%,100%{margin:0}35%{margin:-7px 0 0 6px}70%{margin:3px 0 0 -3px}}
@keyframes v3-glint{0%,70%,100%{transform:translateX(0) skewX(-17deg);opacity:0}76%{opacity:.65}88%{transform:translateX(620%) skewX(-17deg);opacity:0}}
@keyframes v3-orb{0%,100%{opacity:.25;transform:scale(.9)}50%{opacity:.55;transform:scale(1.15)}}

/* 约 1.6 秒开场：纹样展开 → 双签入场 → 蝶影与流光亮起 → 文案安定。 */
.intro-running .hero-art{animation:v3-unfurl 1.05s cubic-bezier(.2,.75,.18,1) both}
.intro-running .ribbon-reirin{animation:v3-ribbon-left 1.15s .18s cubic-bezier(.16,.8,.2,1) both}
.intro-running .ribbon-keigetsu{animation:v3-ribbon-right 1.15s .3s cubic-bezier(.16,.8,.2,1) both}
.intro-running .mini-butterfly{animation:v3-butterfly-arrive .8s .7s ease-out both,v3-butterfly-float 6.4s 1.5s ease-in-out infinite}
.intro-running .hero-stage:after{animation:v3-opening-glint 1.2s .42s ease-out both}
.intro-running .hero-copy{animation:v3-copy-settle .86s .58s ease-out both}
@keyframes v3-unfurl{0%{opacity:.25;clip-path:inset(47% 46% round 12px);filter:brightness(.5) saturate(.7)}100%{opacity:1;clip-path:inset(0 round 12px);filter:brightness(1) saturate(1.08)}}
@keyframes v3-ribbon-left{0%{opacity:0;transform:translate(-54px,24px) rotate(-13deg)}100%{opacity:1;transform:translate(0) rotate(-6deg)}}
@keyframes v3-ribbon-right{0%{opacity:0;transform:translate(54px,-16px) rotate(14deg)}100%{opacity:1;transform:translate(0) rotate(7deg)}}
@keyframes v3-butterfly-arrive{0%{opacity:0;filter:brightness(.4);scale:.65}70%{opacity:1;filter:brightness(1.7);scale:1.08}100%{opacity:1;filter:brightness(1);scale:1}}
@keyframes v3-opening-glint{0%{transform:translateX(-115%);opacity:0}35%{opacity:.75}100%{transform:translateX(115%);opacity:0}}
@keyframes v3-copy-settle{0%{opacity:.28;transform:translateY(12px)}100%{opacity:1;transform:none}}

/* 同人刊式分类图标、章节金线与卡片柔光。 */
.category-ribbon a{position:relative}.category-mark{position:relative;flex:0 0 25px;width:25px;height:25px;border:1px solid rgba(169,52,73,.4);border-radius:50%}.category-mark:before,.category-mark:after{content:"";position:absolute}.mark-all:before{inset:5px;border:1px solid var(--red);transform:rotate(45deg)}.mark-all:after{left:11px;top:3px;width:1px;height:17px;background:var(--gold)}
.mark-story:before{left:6px;top:4px;width:11px;height:15px;border:1px solid var(--red);border-left:3px double var(--red);border-radius:1px}.mark-story:after{left:9px;top:8px;width:7px;height:1px;background:var(--gold);box-shadow:0 4px var(--gold)}
.mark-gallery:before{left:5px;top:6px;width:14px;height:12px;border:1px solid var(--red)}.mark-gallery:after{left:8px;top:11px;width:9px;height:6px;background:linear-gradient(135deg,transparent 45%,var(--gold) 46%)}
.mark-comic:before{left:5px;top:5px;width:6px;height:15px;border:1px solid var(--red);box-shadow:8px 0 0 -1px var(--paper),8px 0 0 0 var(--red)}.mark-comic:after{left:7px;top:8px;width:2px;height:2px;background:var(--gold);box-shadow:8px 5px var(--gold)}
.section-heading{position:relative}.section-heading:after{content:"◆";position:absolute;left:50%;bottom:-7px;padding:0 8px;background:inherit;color:var(--gold);font-size:10px;transform:translateX(-50%)}
.work-card:after{content:"";position:absolute;z-index:4;inset:-80% -25%;pointer-events:none;background:linear-gradient(105deg,transparent 44%,rgba(255,239,188,.22) 49%,transparent 54%);transform:translateX(-75%);opacity:0}.work-card:hover:after,.work-card:focus-within:after{animation:v3-card-glow .55s ease-out 1}
@keyframes v3-card-glow{0%{opacity:0;transform:translateX(-65%)}40%{opacity:1}100%{opacity:0;transform:translateX(65%)}}

/* 原创线描角色纹样；不替代人物立绘。 */
.character-emblem{overflow:visible;background:radial-gradient(circle,rgba(214,181,119,.15),transparent 70%),var(--paper)}
.character-line-icon{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);fill:none;stroke:var(--red);stroke-width:1.4;opacity:.55;transition:opacity .5s,color .5s,transform .5s;filter:drop-shadow(0 0 6px rgba(169,52,73,.12))}
.character-line-icon circle{fill:var(--red);stroke:none}.icon-mouse{opacity:0;transform:scale(.84) rotate(-6deg)}.character-symbol{font-size:36px;opacity:.9;text-shadow:0 0 18px var(--paper)}
.character-panel[data-character-theme="keigetsu"] .icon-butterfly{opacity:0;transform:scale(.84) rotate(7deg)}.character-panel[data-character-theme="keigetsu"] .icon-mouse{opacity:.58;transform:none}.character-panel.is-changing:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 33% 50%,rgba(214,181,119,.24),transparent 35%);animation:v3-character-halo .52s ease-out both}.character-panel{position:relative}
@keyframes v3-character-halo{0%{opacity:0}42%{opacity:1}100%{opacity:0}}

/* 渐进增强滚动揭示：JS 未运行或 IO 缺失时默认始终可见。 */
.reveal-ready .reveal-item:not(.is-revealed){opacity:0;transform:translateY(16px)}
.reveal-ready .reveal-item{transition:opacity .34s ease,transform .34s ease;transition-delay:var(--reveal-delay,0ms)}
.reveal-ready .reveal-item.is-revealed{opacity:1;transform:none}

body.motion-paused .hero-stage:before,body.motion-paused .hero-stage:after,body.motion-paused .hero-stage *,body.motion-paused .hero-stage *:before,body.motion-paused .hero-stage *:after{animation-play-state:paused!important}
.motion-simple .hero-stage:before,.motion-simple .hero-stage:after,.motion-simple .hero-stage *,.motion-simple .hero-stage *:before,.motion-simple .hero-stage *:after{animation:none!important;transition-duration:.01ms!important}.home-page.motion-simple .motion-layer,.motion-simple .motion-layer{display:none!important}.motion-simple .motion-layer,.motion-simple .motion-layer *,.motion-simple .motion-layer *:before,.motion-simple .motion-layer *:after{animation:none!important}.motion-simple .v3-ambient{transform:none!important}.motion-simple .star-dust,.motion-simple .silk-glint,.motion-simple .light-orb{display:none}.motion-simple .reveal-item{opacity:1!important;transform:none!important;transition:none!important}
.motion-simple .character-panel.is-changing,.motion-simple .character-panel.is-changing:after{animation:none!important;opacity:1!important;transform:none!important}.motion-simple .character-panel.is-changing:after{display:none}.motion-simple .work-card:hover,.motion-simple .work-card:focus-within{transform:none;box-shadow:none}.motion-simple .work-card:hover:after,.motion-simple .work-card:focus-within:after{animation:none;display:none}

@media(hover:hover) and (pointer:fine){.hero-stage.is-parallax-active .v3-ambient{transition-duration:.08s}}
@media(max-width:800px){.featured-section{padding-top:28px}.name-ribbon{width:104px;min-height:230px;padding:17px 12px}.name-ribbon strong{font-size:30px}.ribbon-reirin{left:22%;top:52px}.ribbon-keigetsu{right:17%;bottom:44px}.category-mark{width:21px;height:21px;flex-basis:21px}.hero-stage .v3-ambient{transform:none!important}}
@media(max-width:620px){.hero-stage:before{inset:9px}.hero-stage:after{inset:14px}.name-ribbon{width:72px;min-height:140px;padding:10px 7px}.name-ribbon strong{font-size:22px}.name-ribbon small,.name-ribbon span{font-size:5px}.ribbon-reirin{left:24%;top:31px}.ribbon-keigetsu{right:19%;bottom:25px}.mini-butterfly{transform:scale(.68)}.butterfly-red{right:8%}.butterfly-pale{display:none}.dust-4,.dust-5,.light-orb{display:none}.category-mark{display:none}.character-line-icon{inset:5px;width:calc(100% - 10px);height:calc(100% - 10px)}}
