@keyframes landing-diagonal-glimmer{0%,to{background-position:145% 120%;opacity:.05}24%,44%{opacity:1}62%{background-position:-45% -28%;opacity:.08}}.landing-portal-button{position:relative;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;padding:1.1rem 1.4rem;cursor:pointer;transform:translateZ(0);transition:transform .26s ease,filter .26s ease}.landing-portal-button:hover{transform:translateY(-2px) scale(1.025);filter:brightness(1.12)}.landing-portal-button:focus-visible{outline:2px solid hsl(var(--gold));outline-offset:.4rem}.landing-portal-text{display:inline-flex;position:relative;color:#ecb73c7a;font-family:var(--font-landing);font-size:clamp(2.8rem,7vw,5.2rem);font-weight:400;line-height:1;letter-spacing:0;text-shadow:0 0 8px hsl(42 82% 56% / .22),0 0 24px hsl(38 86% 48% / .16),0 2px 12px hsl(18 80% 8% / .85);white-space:nowrap}.landing-portal-text:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;color:transparent;background:linear-gradient(32deg,transparent 0%,transparent 35%,hsl(42 88% 62% / .18) 43%,hsl(49 100% 86% / 1) 49%,hsl(43 96% 64% / .9) 55%,transparent 66%,transparent 100%);background-size:240% 240%;background-position:145% 120%;background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 8px hsl(48 100% 72% / .72)) drop-shadow(0 0 24px hsl(42 94% 56% / .42));animation:landing-diagonal-glimmer 2.9s ease-in-out infinite;pointer-events:none}@media (prefers-reduced-motion: reduce){.landing-portal-button,.landing-portal-text:after{animation:none;transition:none}.landing-portal-text{color:#f5cf66;opacity:.78;text-shadow:0 0 10px hsl(43 92% 62% / .56),0 0 26px hsl(40 90% 54% / .34)}.landing-portal-text:after{opacity:0}}@media (max-width: 640px){.landing-portal-button{padding:.9rem 1rem}.landing-portal-text{font-size:clamp(2.45rem,13vw,3.5rem)}}.entry-shell{--font-landing:"Ma Shan Zheng","ZCOOL XiaoWei",serif;--gold:42 82% 58%;position:fixed;top:0;right:0;bottom:0;left:0;background:#050403;color:#dcd5c4;overflow:auto;font-family:"Noto Serif SC",serif}.entry-background,.entry-background>div,.entry-starfield,.entry-star-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.entry-background img{width:100%;height:100%;object-fit:cover;opacity:.18}.entry-background>div{background:radial-gradient(circle at center,#18120c29,#070605b8 52%,#030303f5),linear-gradient(180deg,#04040580,#0404051f 40%,#040405b8)}.entry-starfield{overflow:hidden;opacity:.95}.entry-star-canvas{width:100%;height:100%}.entry-star-vignette{background:radial-gradient(circle at center,transparent 0%,rgba(10,8,6,.1) 50%,rgba(5,4,3,.68) 100%)}.entry-center{position:relative;z-index:1;min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px 20px;box-sizing:border-box}.entry-card{width:min(100%,400px);padding:28px;background:#111318e8;border:1px solid #49402f;border-radius:10px;box-sizing:border-box;box-shadow:0 18px 70px #0008}.entry-card h1{font-size:30px;color:#dab16b;text-align:center;margin:0 0 20px}.entry-card h2{font-size:22px;text-align:center;margin:0 0 20px}.entry-card p{line-height:1.8;font-size:15px}.entry-card form{display:flex;flex-direction:column;gap:10px}.entry-card label{text-align:left;margin-top:6px}.entry-card input{box-sizing:border-box;width:100%;padding:12px;background:#171e27;color:#ede6d9;border:1px solid #394351;border-radius:5px;font:inherit}.entry-card button,.entry-video button{font:inherit;font-size:15px;padding:10px 16px;color:#e2c288;background:#181f27d9;border:1px solid #5b513e;border-radius:5px;cursor:pointer;min-height:42px}.entry-card button{margin-top:10px;width:100%}.entry-card button:disabled{opacity:.55;cursor:wait}.entry-card .entry-text-button{background:none;border-color:transparent;font-size:14px}.entry-error{color:#edb7a5}.entry-video{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:100}.entry-video video{width:100%;height:100%;object-fit:cover}.entry-video-controls{position:absolute;right:24px;top:24px;display:flex;gap:12px}.entry-video-message{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);padding:20px;background:#10151bea;color:#eee;text-align:center;border-radius:6px;width:min(80vw,400px)}.entry-prologue-tools{position:absolute;top:16px;right:20px;display:flex;align-items:center;gap:10px}.entry-prologue-tools .start-continue-actions{display:flex;gap:10px;margin:0}.entry-prologue-tools button{font-size:14px;padding:8px 14px;min-width:0}.entry-prologue-panel{z-index:5!important}@media (max-width:600px){.entry-card{padding:22px}.entry-video-controls{right:12px;top:12px}.entry-prologue-tools{right:12px;left:12px;flex-wrap:wrap;justify-content:flex-end}.entry-prologue-tools button{font-size:12px;padding:7px 10px}}.entry-loading{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0b1016;color:#d8b775}.entry-admin{min-height:100vh;padding:30px;background:#0d141a;color:#ded6c6;font-family:serif}.entry-admin a{color:#dfbb77}.entry-admin ul{padding:0;list-style:none;max-width:1000px}.entry-admin li{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:18px 0;border-bottom:1px solid #3b4550}.entry-admin button{padding:8px 14px;cursor:pointer}*{margin:0;padding:0;box-sizing:border-box}:root{color-scheme:dark;--bg: #0d1117;--panel: #161b22;--panel-2: #1c2430;--border: #2d3a4d;--text: #d8e1ec;--text-dim: #8a99ac;--accent: #6ee7b7;--accent-dim: #34506019;--gold: #e3c088;--narrative-jade: #58b28b}body{background:var(--bg);color:var(--text);font-family:var(--brush);line-height:1.7}button{font-family:inherit;cursor:pointer}.game-root{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.hud-top-right{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:min(420px,44vw);z-index:30;pointer-events:none}.hud-top-right>*{pointer-events:auto}.status-bar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 14px;background:#161b22d1;border:1px solid var(--border);border-radius:10px;padding:8px 14px;font-size:13px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.status-bar .stat b{color:var(--gold);font-weight:600}.status-bar .stat span{color:var(--text-dim);margin-right:4px}.story-dock{position:absolute;top:12px;left:12px;width:min(400px,38vw);height:clamp(116px,18vh,174px);display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:9px 12px 11px;background:#161b22d6;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px #00000038;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:30;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease}.story-dock.compact:hover,.story-dock.compact:focus-visible{border-color:var(--accent);box-shadow:0 12px 34px #00000052;outline:none}.story-dock-title{flex:0 0 auto;display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--gold);font-size:13px;letter-spacing:2px;line-height:1.4}.story-dock-title small{color:var(--text-dim);font-size:10.5px;letter-spacing:0;white-space:nowrap}.story-dock-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;border:0;background:#04070bad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:default;animation:story-dock-backdrop-in .18s ease both}@keyframes story-dock-backdrop-in{0%{opacity:0}to{opacity:1}}.story-dock.expanded{position:fixed;top:50%;left:50%;width:min(820px,86vw);height:min(70vh,680px);padding:18px 22px 22px;transform:translate(-50%,-50%);z-index:71;cursor:default;background:#11161df7;border-color:color-mix(in srgb,var(--gold) 46%,var(--border));box-shadow:0 24px 80px #00000094}.story-dock.expanded .story-dock-title{font-size:16px}.choice-shell-toggle{align-self:flex-start;display:flex;align-items:center;gap:6px;background:#161b22d1;border:1px solid var(--border);color:var(--gold);border-radius:8px;padding:5px 12px;font-size:13px;letter-spacing:2px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.choice-shell-toggle:hover{border-color:var(--accent)}.choice-shell-toggle .dock-caret{color:var(--text-dim)}.choice-shell-toggle .dock-unread{background:var(--accent);color:#0d1117;border-radius:10px;padding:0 7px;font-size:11.5px;font-weight:700;animation:dockPulse 1.6s ease-in-out infinite}@keyframes dockPulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.story-log{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:0 5px 2px 0;display:flex;flex-direction:column;gap:12px;min-height:0}.story-dock.compact .story-log:before{content:"";margin-top:auto}.story-dock.expanded .story-log{padding:14px 18px;background:#080c1180;border:1px solid var(--border);border-radius:9px}:root[data-fate-dock=expanded] .story-dock.compact{height:clamp(108px,15vh,144px)}.story-entry{font-size:15.5px}.story-entry.narration{color:var(--gold)}.story-entry.monologue{color:var(--narrative-jade)}.story-entry.dialogue{color:#a8d8ff}.story-entry.action{color:var(--text-dim);font-size:14px}.story-entry.diary{color:var(--gold);border-left:3px solid var(--gold);padding-left:12px;font-style:italic}.story-entry.system{color:var(--text-dim);font-size:13px}.voice-inner{color:var(--narrative-jade)}.monologue-ticker{position:absolute;left:50%;bottom:54px;z-index:46;width:min(680px,82vw);transform:translate(-50%);padding:9px 18px;color:var(--narrative-jade);background:linear-gradient(90deg,transparent,rgba(10,22,19,.82) 16%,rgba(10,22,19,.82) 84%,transparent);text-align:center;font-size:16px;letter-spacing:.08em;line-height:1.7;text-shadow:0 0 18px rgba(88,178,139,.28),0 2px 12px rgba(0,0,0,.9);pointer-events:none;animation:monologue-ticker-in .25s ease both}.monologue-ticker.fading{animation:monologue-ticker-out .4s ease both}@keyframes monologue-ticker-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes monologue-ticker-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.terminal-receipts{margin:14px 0;padding:12px 14px;border-left:3px solid var(--gold);background:#b8860b14;text-align:left}.terminal-receipts h3{margin:0 0 8px;color:var(--gold)}.terminal-receipts p{margin:6px 0}.story-pending{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:14px;font-style:italic;animation:story-pending-breathe 2.4s ease-in-out infinite}.story-pending .pending-rune{color:var(--accent);font-style:normal;animation:story-pending-spin 5s linear infinite}@keyframes story-pending-breathe{0%,to{opacity:.45}50%{opacity:.95}}@keyframes story-pending-spin{to{transform:rotate(360deg)}}.story-entry[data-typefx=typing]:after{content:"▍";margin-left:2px;color:var(--accent);animation:typefx-caret .8s steps(1) infinite}@keyframes typefx-caret{50%{opacity:0}}.choice-shell{position:absolute;left:12px;bottom:16px;width:min(460px,42vw);display:flex;flex-direction:column;align-items:stretch;gap:6px;z-index:40}.choices{max-height:min(34vh,calc(48vh - 120px));overflow-y:auto;display:flex;flex-direction:column;gap:8px;background:#0d1117c7;border:1px solid var(--border);border-radius:12px;padding:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 10px 40px #00000073}.choice-dock{max-height:min(30vh,calc(48vh - 120px));overflow-y:auto;display:flex;flex-direction:column;gap:6px;background:#0d111799;border:1px solid var(--border);border-radius:10px;padding:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.choice-dock .choice-btn{padding:8px 12px;font-size:14px;background:#1c2430b8}.choice-dock .choice-num{display:inline-block;min-width:18px;margin-right:8px;text-align:center;font-size:12px;color:var(--text-dim);border:1px solid var(--border);border-radius:4px}.choice-dock .free-act-row{margin-top:2px;padding-top:8px;border-top:1px solid rgba(148,163,184,.22)}.choice-dock .free-act-row input{min-width:0;background:#1c2430b8}.choice-btn{text-align:left;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:12px 16px;font-size:15px;transition:border-color .15s,background .15s}.choice-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-dim)}.choice-btn:disabled{opacity:.45;cursor:default}.choice-btn .choice-label{color:var(--accent);margin-right:10px;font-weight:600}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.game-root>.toolbar{position:absolute;right:12px;bottom:16px;flex-direction:column;gap:6px;align-items:stretch;flex-wrap:nowrap;z-index:30}.toolbar button,.start-btn{background:#1c2430d9;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 14px;font-size:13px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.toolbar button:hover,.start-btn:hover{border-color:var(--accent)}.ai-mode{font-size:11px;color:var(--text-dim);text-align:right}.save-list{position:absolute;right:118px;bottom:16px;width:min(360px,70vw);background:#161b22f0;border:1px solid var(--border);border-radius:10px;padding:12px 16px;font-size:13.5px;display:flex;flex-direction:column;gap:6px;max-height:42vh;overflow-y:auto;z-index:35;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.save-item{display:flex;gap:10px;align-items:center;justify-content:space-between}.save-item .save-info{color:var(--text-dim)}.save-item .save-info b{color:var(--text)}.save-item .branch-tag{color:var(--accent);font-size:12px}.toolbar button.active{border-color:var(--accent);color:var(--gold)}.guide-panel{position:absolute;right:118px;bottom:16px;width:min(340px,72vw);background:#161b22f0;border:1px solid var(--border);border-radius:10px;padding:14px 18px 16px;font-size:13.5px;max-height:72vh;overflow-y:auto;z-index:35;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.guide-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.guide-head h2{font-size:16px;color:var(--gold);letter-spacing:2px}.guide-close{background:none;border:none;color:var(--text-dim);font-size:20px;line-height:1;cursor:pointer;padding:0 4px}.guide-close:hover{color:var(--text)}.guide-section{margin-top:12px}.guide-section h3{font-size:13px;color:var(--accent);letter-spacing:1px;margin-bottom:6px}.guide-note{color:var(--text-dim);font-size:11.5px;letter-spacing:0}.guide-section ul{list-style:none;display:flex;flex-direction:column;gap:5px;color:var(--text-dim);line-height:1.5}.guide-section kbd{display:inline-block;min-width:18px;text-align:center;padding:1px 6px;margin:0 1px;font-size:12px;color:var(--text);background:#2d3748e6;border:1px solid var(--border);border-radius:5px;box-shadow:0 1px #0006}.start-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;padding:24px}.start-screen h1{font-size:34px;color:var(--gold);letter-spacing:6px}.start-screen p{color:var(--text-dim);max-width:480px}.start-btn{font-size:17px;padding:12px 40px}.error-banner{position:absolute;top:44px;left:50%;transform:translate(-50%);z-index:250;max-width:min(560px,86vw);background:#3d1d24;border:1px solid #7a3a48;color:#f0b6c2;border-radius:8px;padding:8px 14px;font-size:13.5px}.busy-hint{color:var(--text-dim);font-size:14px;padding:4px 2px}.battle-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#05080ce0;display:flex;align-items:center;justify-content:center;z-index:100}.battle-panel{width:min(820px,94vw);max-height:92vh;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px;position:relative}.battle-side{display:flex;gap:10px;flex-wrap:wrap}.actor-card{flex:1;min-width:150px;max-width:220px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);text-align:left;display:flex;flex-direction:column;gap:6px;cursor:default}.actor-card.enemy{border-top:2px solid #8a4a4a}.actor-card.player{border-top:2px solid #4a7a5f}.actor-card.dead{opacity:.4}.actor-card.targetable{cursor:pointer;border-color:var(--accent);box-shadow:0 0 8px #6ee7b740}.actor-name{font-size:14.5px;font-weight:600}.actor-school{margin-left:6px;font-size:10.5px;font-weight:400;color:var(--text-dim);border:1px solid var(--border);border-radius:4px;padding:0 5px;vertical-align:1px}.actor-intel{font-size:11.5px}.actor-intel.unknown{color:var(--text-dim)}.actor-intel.el-metal{color:#e8e2c8}.actor-intel.el-wood{color:#8fe8a8}.actor-intel.el-water{color:#7db8e8}.actor-intel.el-fire{color:#e89a7d}.actor-intel.el-earth{color:#d8b878}.actor-concealed{font-size:11px;color:var(--gold);border:1px dashed var(--gold);border-radius:4px;padding:1px 6px;align-self:flex-start;opacity:.85}.strike-fx{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;border-radius:12px;animation:strikeFlash .6s ease-out forwards}.strike-fx.el-metal{background:radial-gradient(ellipse at center,rgba(240,235,205,.5),transparent 62%)}.strike-fx.el-wood{background:radial-gradient(ellipse at center,rgba(110,231,150,.45),transparent 62%)}.strike-fx.el-water{background:radial-gradient(ellipse at center,rgba(95,160,230,.5),transparent 62%)}.strike-fx.el-fire{background:radial-gradient(ellipse at center,rgba(240,120,70,.5),transparent 62%)}.strike-fx.el-earth{background:radial-gradient(ellipse at center,rgba(215,175,100,.5),transparent 62%)}.strike-fx.heavy{animation-duration:.7s;filter:saturate(1.5) brightness(1.15)}@keyframes strikeFlash{0%{opacity:0;transform:scale(.92)}18%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}.battle-panel.shake{animation:panelShake .4s ease-out}@keyframes panelShake{0%,to{transform:none}20%{transform:translate(-7px,3px)}40%{transform:translate(6px,-4px)}60%{transform:translate(-4px,2px)}80%{transform:translate(3px,-1px)}}.actor-card.struck{animation:cardStruck .5s ease-out}@keyframes cardStruck{0%{transform:none;filter:none}25%{transform:translate(-5px);filter:brightness(1.6) saturate(1.4)}50%{transform:translate(4px)}75%{transform:translate(-2px)}to{transform:none;filter:none}}.actor-cult{color:var(--text-dim);font-size:12px;font-weight:400;margin-left:4px}.actor-dead{color:var(--text-dim);font-size:13px}.actor-guard{color:var(--gold);font-size:12px}.target-hint{color:var(--accent);font-size:12px}.bar{height:7px;background:#10151c;border-radius:4px;overflow:hidden}.bar-fill{height:100%;transition:width .3s}.battle-log{background:#10151c;border:1px solid var(--border);border-radius:8px;padding:10px 14px;height:180px;overflow-y:auto;font-size:14px;display:flex;flex-direction:column;gap:5px}.battle-log-entry.system{color:var(--gold)}.battle-log-entry.action{color:var(--text)}.technique-bar{display:flex;gap:8px;flex-wrap:wrap}.technique-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:13.5px}.technique-btn span{color:var(--text-dim);font-size:11.5px}.technique-btn:hover:not(:disabled){border-color:var(--accent)}.technique-btn:disabled{opacity:.4;cursor:default}.technique-btn.pending{border-color:var(--accent);background:var(--accent-dim)}.battle-outcome{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--border);padding:14px 6px 6px;text-align:center;display:flex;flex-direction:column;gap:10px}.battle-outcome h2{color:var(--gold);letter-spacing:4px}.battle-outcome p{color:var(--text-dim);font-size:14px}.market-header{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--border);padding-bottom:10px}.market-header h2{color:var(--gold);font-size:20px;letter-spacing:2px}.market-section h3{color:var(--accent);font-size:14px;margin-bottom:6px;letter-spacing:2px}.market-section{display:flex;flex-direction:column;gap:6px}.market-actions{display:flex;gap:6px}.market-panel .save-item,.rumor-offer{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.market-panel button,.talk-panel button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;font-size:13px;white-space:nowrap}.market-panel button:hover:not(:disabled),.talk-panel button:hover:not(:disabled){border-color:var(--accent)}.market-panel button:disabled,.talk-panel button:disabled{opacity:.4;cursor:default}@keyframes talk-fade-in{0%{opacity:0}to{opacity:1}}.talk-panel{animation:talk-fade-in .25s ease-in both}.talk-log{background:#10151c;border:1px solid var(--border);border-radius:8px;padding:12px 14px;height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;font-size:14.5px}.talk-past{display:flex;flex-direction:column;gap:6px;opacity:.42;padding-bottom:8px;border-bottom:1px dashed var(--border);margin-bottom:2px}.talk-past-label{color:var(--gold);font-size:12px;letter-spacing:2px}.talk-offer-card{border:1px solid var(--gold);border-radius:8px;background:#3a2e1859;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.talk-offer-title{color:var(--gold)}.talk-offer-terms{font-size:13px;opacity:.9}.talk-offer-fatal{color:#e06c5a;font-weight:700}.talk-offer-actions{display:flex;gap:10px}.talk-offer-actions button{min-width:84px}.interact-confirm-panel{width:min(440px,92vw);min-height:0;padding:18px}.interact-confirm-card{background:#3a2e188c}.interact-confirm-ask{font-size:15px;line-height:1.8;opacity:1}.interact-confirm-card .talk-offer-actions{justify-content:flex-end}.talk-bubble{line-height:1.6}.talk-bubble .talk-speaker{color:var(--gold);margin-right:8px;font-weight:600}.talk-bubble.player{color:#a8d8ff}.talk-bubble.player .talk-speaker{color:#7db8e8}.talk-input-row{display:flex;gap:8px}.talk-input-row input{flex:1;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 12px;font-size:14px;font-family:inherit}.talk-input-row input:focus{outline:none;border-color:var(--accent)}.encounter-overlay{z-index:110}.encounter-panel{width:min(760px,92vw);min-height:min(560px,84vh);cursor:default}.encounter-log{height:min(340px,48vh);font-family:var(--brush);font-size:16px}.encounter-choices{display:grid;gap:8px}.encounter-choices button{display:flex;align-items:center;gap:10px;padding:10px 14px;text-align:left}.encounter-choices button span{color:var(--gold);font-variant-numeric:tabular-nums}.encounter-dismiss{align-self:flex-end}.encounter-continue{color:var(--text-dim);font-size:12px;letter-spacing:.16em;text-align:right}.rumor-offer{border-color:var(--gold);display:flex;justify-content:space-between;align-items:center;gap:10px}.scene-stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.scene-stage canvas{display:block}.scene-stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to top,rgba(13,17,23,.55),transparent 22%),linear-gradient(to bottom,rgba(13,17,23,.35),transparent 18%),radial-gradient(ellipse at center,transparent 60%,rgba(13,17,23,.28))}.scene-title{position:absolute;left:50%;transform:translate(-50%);top:12px;color:var(--gold);font-size:14px;letter-spacing:4px;text-shadow:0 1px 8px rgba(0,0,0,.9);pointer-events:none}.scene-node{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;background:#0d1117b8;border:1px solid var(--border);color:var(--text);border-radius:20px;padding:4px 12px;font-size:12.5px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:background .15s,box-shadow .15s,border-color .15s}.scene-node.interactive{border-color:var(--accent)}.scene-node:hover:not(:disabled){background:#142822e6;box-shadow:0 0 14px #6ee7b759}.scene-node:disabled{opacity:.45}.scene-node.current{border-color:var(--gold)}.scene-node.callout{border-color:var(--gold);box-shadow:0 0 16px #e6be6480;animation:callout-glow 1.6s ease-in-out infinite}@keyframes callout-glow{0%,to{box-shadow:0 0 10px #e6be6459}50%{box-shadow:0 0 20px #e6be64b3}}.node-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 1.8s ease-in-out infinite}.scene-node.callout .node-dot{background:var(--gold)}.scene-avatar{position:absolute;transform:translate(-50%,-130%);width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#2f5d4a,#14261f);border:2px solid var(--accent);color:var(--accent);font-size:14px;font-weight:700;box-shadow:0 0 12px #6ee7b773;pointer-events:none;transition:left .3s ease-in-out,top .3s ease-in-out;animation:avatar-bob 2.4s ease-in-out infinite}@keyframes avatar-bob{0%,to{margin-top:0}50%{margin-top:-3px}}.explore-hint{position:absolute;left:50%;transform:translate(-50%);bottom:16px;max-width:88vw;color:var(--muted);font-size:12.5px;letter-spacing:1px;text-shadow:0 1px 6px rgba(0,0,0,.8);background:#0d11178c;border-radius:8px;padding:5px 14px;pointer-events:none}@keyframes pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}.scene-stage.stage3d{touch-action:none;cursor:grab}.scene-stage.stage3d:active{cursor:grabbing}.scene-stage.stage3d .scene-node{transition:border-color .15s,box-shadow .15s}.scene-stage.stage3d .scene-avatar.stage3d-avatar{opacity:0;transition:none;animation:none}.portrait-img{border-radius:8px;object-fit:cover;border:1px solid var(--border);flex-shrink:0}.portrait-fallback{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--gold);font-weight:600;flex-shrink:0}.start-screen.prologue{background-size:cover;background-position:center}.goal-strip{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.goal-chip{display:flex;align-items:center;gap:8px;background:#161b22d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);border-radius:8px;padding:5px 12px;font-size:12.5px;cursor:help}.goal-kind{font-size:11px;padding:1px 6px;border-radius:4px;color:#0d1117;font-weight:600;flex-shrink:0}.goal-chip.survival .goal-kind{background:#d98a8a}.goal-chip.mainline .goal-kind{background:var(--gold)}.goal-chip.quest .goal-kind{background:var(--accent)}.goal-title{color:var(--text)}.goal-progress{width:56px;height:5px;background:#10151c;border-radius:3px;overflow:hidden;flex-shrink:0}.goal-progress-fill{display:block;height:100%;background:var(--accent);transition:width .4s}.stat.lifespan-warning{color:#e8c06a}.stat.lifespan-critical{color:#e87a7a}.realm-list{display:flex;flex-direction:column;gap:10px}.realm-row{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:6px;opacity:.75}.realm-row.active{border-color:var(--gold);opacity:1;box-shadow:0 0 12px #e3c0881f}.realm-row.passed{opacity:.45}.realm-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.realm-head b{color:var(--gold);font-size:16px;letter-spacing:3px}.realm-note{color:var(--text-dim);font-size:12.5px}.realm-sublevels{display:flex;gap:6px;flex-wrap:wrap}.sub-pill{border:1px solid var(--border);border-radius:20px;padding:2px 12px;font-size:12.5px;color:var(--text-dim)}.sub-pill.passed{color:var(--text-dim);text-decoration:line-through;opacity:.6}.sub-pill.current{border-color:var(--accent);color:var(--accent);font-weight:600}.next-realm{border:1px solid var(--gold);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.readiness-box{border:1px solid var(--accent);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.readiness-box .realm-head b{color:var(--accent);font-size:15px;letter-spacing:1px}.factor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}.factor-cell{border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:12.5px;color:var(--text-dim);cursor:help}.factor-cell.done{border-color:var(--accent);color:var(--text)}.factor-cell .factor-mark{margin-right:6px;color:var(--accent)}.next-realm h3{color:var(--gold);font-size:15px}.char-tabs{display:flex;gap:6px}.char-tabs button{background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:6px 16px;font-size:13.5px}.char-tabs button.active{border-color:var(--accent);color:var(--accent)}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.char-grid>div{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:14px}.char-grid span{color:var(--text-dim);margin-right:10px;font-size:12.5px}.train-hint{color:var(--text-dim);font-size:12px;margin-top:2px}.codex-title{color:var(--gold);font-size:14px;letter-spacing:2px;margin-top:10px}.codex-item{opacity:.72}.codex-item-unlockable{opacity:1;border-color:var(--gold)!important;box-shadow:inset 0 0 0 1px #c9a84c29}.codex-tags{margin-left:8px;font-size:11.5px;color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:0 6px}.char-panel .save-item,.path-panel .save-item{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.char-panel button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;font-size:13px;white-space:nowrap}.char-panel button:hover:not(:disabled){border-color:var(--accent)}.char-panel button:disabled{opacity:.4;cursor:default}.start-screen.prologue h1{font-size:26px;letter-spacing:3px;animation:fadeIn .6s ease}.start-screen.prologue p{animation:fadeIn .9s ease;line-height:1.9;text-align:left}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.prologue-dots{display:flex;gap:8px}.prologue-dots span{width:8px;height:8px;border-radius:50%;background:var(--border)}.prologue-dots span.on{background:var(--gold)}.free-act-row input{font-size:13.5px}.free-act-row button{background:var(--panel-2);border:1px solid var(--border);color:var(--accent);border-radius:6px;padding:6px 14px;font-size:13.5px;white-space:nowrap}.free-act-row button:hover:not(:disabled){border-color:var(--accent)}.free-act-row button:disabled{opacity:.4;cursor:default}.fate-step3-panel{position:absolute;left:12px;bottom:16px;z-index:42;width:min(560px,48vw);max-height:min(52vh,560px);overflow-y:auto;padding:10px;border:1px solid rgba(201,168,91,.48);border-radius:10px;background:#0f141ce6;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.fate-step3-panel.collapsed{width:auto;max-height:none;overflow:visible;padding:0;border:none;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}.fate-step3-toggle{margin:0 0 8px}.fate-step3-panel.collapsed .fate-step3-toggle{margin:0}.fate-step3-heading{display:flex;flex-direction:column;gap:3px;margin:2px 2px 9px;color:var(--text-dim)}.fate-step3-heading b{color:var(--gold);font-size:16px}.fate-step3-list{display:flex;flex-direction:column;gap:7px}.fate-step3-choice{display:flex;flex-direction:column;gap:4px}.fate-step3-choice .choice-label{margin-right:0}.fate-location-copy{color:#b9d7cf;font-size:12.5px}.fate-balance-copy{color:var(--accent);font-size:12.5px}.fate-missing-keys{color:#e6a1a1;font-size:12px}.fate-step3-input{margin-top:9px;padding-top:9px;border-top:1px solid var(--border)}.segment-balance{color:var(--gold);white-space:nowrap;font-size:12.5px}@media (max-width: 900px){.fate-step3-panel{width:calc(100vw - 24px);max-height:58vh}}.battle-log-entry.strike-trace summary{cursor:pointer;list-style:none}.battle-log-entry.strike-trace summary::-webkit-details-marker{display:none}.trace-hint{margin-left:6px;font-size:11px;color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:0 4px;opacity:.75}.battle-log-entry.strike-trace[open] .trace-hint{opacity:1}.trace-rows{margin:4px 0 2px;padding-left:18px;font-size:12px;color:var(--muted, #9aa4b2);line-height:1.7}.trace-rows li{list-style:"· "}.exposure-cost{color:var(--gold);font-size:12px}.scene-transition{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#05070c;cursor:pointer;animation:st-fade-in .42s ease both}.scene-transition[data-phase=leave]{animation:st-fade-out .9s ease both}.scene-transition[data-phase=leave][data-skip="1"]{animation-duration:.32s}@keyframes st-fade-in{0%{opacity:0}to{opacity:1}}@keyframes st-fade-out{0%{opacity:1}to{opacity:0}}.transition-vista{position:absolute;top:0;right:0;bottom:0;left:0;animation:st-fade-in .9s ease .25s both}.transition-vista canvas{width:100%!important;height:100%!important}.transition-title{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;pointer-events:none;text-shadow:0 2px 22px rgba(0,0,0,.65);animation:st-title-in .7s ease .3s both}.transition-title h2{font-size:clamp(30px,5vw,52px);font-weight:600;letter-spacing:.42em;margin-left:.42em;color:#f2ead8}.transition-title p{font-size:14px;letter-spacing:.3em;margin-left:.3em;color:#e2ded0b8}@keyframes st-title-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.transition-skip{position:absolute;right:22px;bottom:18px;font-size:12px;letter-spacing:.18em;color:#d8e1ec73;pointer-events:none;animation:st-fade-in .8s ease 1.2s both}@font-face{font-family:Ma Shan Zheng;src:url(/fonts/ma-shan-zheng-interlude.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}.fate-interlude{position:fixed;top:0;right:0;bottom:0;left:0;z-index:205;overflow:hidden;cursor:pointer;background:#0a0806;animation:st-fade-in .42s ease both;--fi-brush: "Ma Shan Zheng", "Kaiti SC", "STKaiti", "Songti SC", "Noto Serif CJK SC", serif}.fate-interlude[data-phase=leave]{pointer-events:none;animation:st-fade-out .32s ease both}.fate-interlude-starfield{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.fate-interlude-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at center,transparent 0%,rgba(10,8,6,.1) 50%,rgba(5,4,3,.68) 100%)}.fate-interlude-titlecard{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 6vw;text-align:center}.fate-interlude-brush-title{position:relative;display:grid;place-items:center;margin:0;font-family:var(--fi-brush);font-weight:400;font-size:clamp(44px,8vw,96px);line-height:1.25;letter-spacing:.08em}.fate-interlude-title-layer{grid-area:1 / 1;display:block;white-space:pre}.fate-interlude-title-base{color:#ecb73ccc;text-shadow:0 0 8px hsl(42 82% 56% / .22),0 0 24px hsl(38 86% 48% / .16),0 2px 12px hsl(18 80% 8% / .85)}.fate-interlude-title-glimmer{color:#fff2b8;mask-image:linear-gradient(32deg,transparent 0%,transparent 35%,rgb(0 0 0 / .18) 43%,#000 49%,rgb(0 0 0 / .9) 55%,transparent 66%,transparent 100%);mask-size:240% 240%;mask-position:145% 120%;mask-repeat:no-repeat;-webkit-mask-image:linear-gradient(32deg,transparent 0%,transparent 35%,rgb(0 0 0 / .18) 43%,#000 49%,rgb(0 0 0 / .9) 55%,transparent 66%,transparent 100%);-webkit-mask-size:240% 240%;-webkit-mask-position:145% 120%;-webkit-mask-repeat:no-repeat;filter:drop-shadow(0 0 8px hsl(48 100% 72% / .72)) drop-shadow(0 0 24px hsl(42 94% 56% / .42));animation:fi-diagonal-glimmer 2.9s ease-in-out 1.7s infinite;pointer-events:none}.fate-interlude-sentences{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:0 8vw;text-align:center}.fate-interlude-sentences>*{grid-area:1 / 1}.fate-interlude-sentences p{position:relative;margin:0;max-width:min(920px,84vw);font-family:var(--fi-brush);font-size:clamp(26px,3.2vw,42px);font-weight:400;line-height:1.85;letter-spacing:.06em;color:var(--gold);text-shadow:0 0 22px rgba(227,192,136,.22),0 2px 18px rgba(0,0,0,.9)}.fate-interlude-sentences .voice-inner{color:var(--narrative-jade)}.fate-interlude-ink-run{white-space:pre-wrap}.fate-interlude-ink-char{display:inline-block;animation-name:fi-ink-seep;animation-duration:var(--ink-duration);animation-delay:calc(var(--char-i) * var(--ink-stagger));animation-timing-function:cubic-bezier(.2,.7,.25,1);animation-fill-mode:both}.fate-interlude-stage-done .fate-interlude-ink-char,.fate-interlude[data-phase=title][data-ink=done] .fate-interlude-ink-char{animation:none;opacity:1;filter:blur(0)}.fate-interlude-departing{max-width:min(920px,84vw);font-family:var(--fi-brush);font-size:clamp(26px,3.2vw,42px);line-height:1.85;letter-spacing:.06em;pointer-events:none;color:#debe6a}.fate-interlude-departing span{display:inline-block;animation:fi-depart .62s ease-out both;animation-delay:var(--dd)}.fate-interlude-ripple{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;pointer-events:none;border:1.5px solid rgba(222,190,106,.65);box-shadow:0 0 18px #debe6a59,inset 0 0 12px #debe6a40;animation:fi-ripple .3s ease-out both}.fate-interlude-next{animation-delay:.35s;z-index:1}@keyframes fi-ink-seep{0%{opacity:0;filter:blur(var(--ink-blur))}24%{opacity:.16;filter:blur(3px)}68%{opacity:.78;filter:blur(1px)}to{opacity:1;filter:blur(0)}}@keyframes fi-diagonal-glimmer{0%,to{mask-position:145% 120%;-webkit-mask-position:145% 120%;opacity:.05}24%,44%{opacity:1}62%{mask-position:-45% -28%;-webkit-mask-position:-45% -28%;opacity:.08}}@keyframes fi-depart{0%{opacity:.92;transform:none;filter:blur(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(6deg);filter:blur(5px)}}@keyframes fi-ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(26)}}@media (prefers-reduced-motion: reduce){.fate-interlude,.fate-interlude[data-phase=leave],.fate-interlude-ink-char,.fate-interlude-title-glimmer,.fate-interlude-departing span,.fate-interlude-ripple{animation:none}.fate-interlude-title-base{color:#f5cf66}}@media (max-width: 700px){.fate-interlude-sentences p,.fate-interlude-departing{max-width:92vw;line-height:1.75}}.opening-video{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000;cursor:pointer}.opening-video-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s ease}.opening-video-frame[data-active="1"]{opacity:1}.opening-video-skip{position:absolute;right:22px;bottom:18px;font-size:12px;letter-spacing:.18em;color:#d8e1ec73;pointer-events:none;animation:st-fade-in .8s ease 1.2s both}.compass-hud{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.compass-head{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-bottom:2px;padding:0 3px 4px;border-bottom:1px solid var(--hair);white-space:nowrap}.compass-title{font-family:var(--brush);color:var(--gold);font-size:13.5px;letter-spacing:3px;font-weight:400;opacity:.9}.compass-range{color:var(--ash);font-size:10.5px}.compass-fold{background:none;border:none;color:var(--ash);font-size:12px;padding:0 2px;line-height:1}.compass-fold:hover,.compass-fold:focus-visible{color:var(--gold);outline:none}.compass-svg{display:block}.compass-svg text,.compass-svg .compass-ring{filter:drop-shadow(0 1px 2px rgba(0,0,0,.9))}.compass-knob{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--hair);background:transparent;box-shadow:none;padding:2px}.compass-knob:hover,.compass-knob:focus-visible{border-color:var(--hair-lit);outline:none}.compass-ring-outer{fill:none;stroke:var(--hair);stroke-width:.8}.compass-ring,.compass-ring-inner{fill:none;stroke:#e3c08821;stroke-width:.8}.compass-disc{fill:none;stroke:none}.compass-tick,.compass-tick-major{stroke:#e3c08821;stroke-width:.8}.compass-cardinal{fill:#a08e6ebf;font-size:12.5px;font-family:var(--brush);font-weight:400;letter-spacing:0}.compass-north{fill:var(--gold);font-size:13.5px}.compass-needle{fill:var(--narrative-jade)}.compass-here{fill:none;stroke:var(--narrative-jade);stroke-width:1.2}.compass-here-center,.compass-dot-visited{fill:var(--narrative-jade)}.compass-dot-halo{fill:#58b28b24}.compass-dot-dim{fill:#b4a88e6b}@keyframes compassDim{0%,to{opacity:.25}50%{opacity:.85}}.compass-loc-name{fill:#b9b1a0;font-size:8.5px;font-family:var(--brush)}.compass-here-name{fill:var(--gold);font-size:9px}.compass-suppressed{fill:#8a99acbf;font-size:10.5px;letter-spacing:2px;font-family:var(--brush)}.journey-montage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:190;pointer-events:none;background:radial-gradient(120% 90% at 18% 82%,#d8e5eff5,#d8e5ef00 62%),radial-gradient(135% 100% at 82% 26%,#f0f6faf7,#e8f0f600 64%),linear-gradient(158deg,#c3d3e0,#eef4f8 46%,#b6c9d8);animation:journey-clouds-in .38s ease-out both}.journey-montage[data-out="1"]{animation:journey-clouds-out .42s ease-in both}@keyframes journey-clouds-in{0%{opacity:0;transform:scale(1.14)}to{opacity:1;transform:scale(1)}}@keyframes journey-clouds-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.97)}}.game-root[data-journey-phase=depart] .scene-node,.game-root[data-journey-phase=montage] .scene-node,.game-root[data-journey-phase=depart] .explore-hint,.game-root[data-journey-phase=montage] .explore-hint{display:none}.duel-stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:105;display:flex;flex-direction:column;gap:10px;padding:18px clamp(12px,3vw,48px);overflow-y:auto;background:radial-gradient(120% 80% at 50% 0%,#26303cf0,#06090df7),#06090df7;color:#d9e2ec;font-size:13px;line-height:1.7}.duel-head{display:flex;flex-direction:column;gap:2px;border-bottom:1px solid rgba(180,200,220,.18);padding-bottom:8px}.duel-head b{font-size:17px;letter-spacing:2px;color:#f0e3c2}.duel-head span{color:#93a3b4}.duel-host{border-left:3px solid #a88b4a;padding:6px 12px;background:#a88b4a17}.duel-host b{color:#e2c98a;margin-right:8px}.duel-host ul{margin:4px 0 0;padding-left:18px;color:#b9c6d3}.duel-host li{list-style:"— "}.duel-body{display:grid;grid-template-columns:minmax(200px,1fr) minmax(280px,1.7fr) minmax(200px,1fr);gap:12px;align-items:start}@media (max-width: 900px){.duel-body{grid-template-columns:1fr}}.duel-side{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid rgba(180,200,220,.16);background:#0e141bb3}.duel-side>b{font-size:15px;color:#f0e3c2}.duel-side>em{font-style:normal;color:#8d9db0;font-size:12px}.duel-foe-origin,.duel-foe-look{margin:0;color:#a4b3c2}.duel-foe-state{display:flex;gap:14px;color:#cbb98a}.duel-foe-intel{color:#8fb8d8}.duel-foe-balance[data-seize-open=true]{color:#e6a45c;font-weight:600}.duel-foe-balance[data-seize-open=false]{color:#6f7f8f}.duel-bar{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:6px}.duel-bar-name{color:#8d9db0}.duel-bar-track{height:6px;background:#a0b4c829;overflow:hidden}.duel-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#6fae7f,#cbd68a)}.duel-bar-cheng{text-align:right;color:#cfd9e3}.duel-appraisal{margin-top:4px;padding:6px 8px;border:1px dashed rgba(226,201,138,.45)}.duel-appraisal b{color:#8d9db0;font-weight:400;margin-right:8px}.duel-appraisal span{color:#e2c98a;font-size:15px}.duel-appraisal small{display:block;color:#7f8f9f}.duel-talisman{color:#7f8f9f}.duel-center{display:flex;flex-direction:column;gap:8px}.duel-log{margin:0;padding:10px 12px 10px 28px;min-height:190px;max-height:42vh;overflow-y:auto;border:1px solid rgba(180,200,220,.16);background:#0a0e13bf}.duel-log li[data-log-kind=system]{color:#cbb98a}.duel-log summary{cursor:pointer}.duel-trace{margin:4px 0 8px;padding-left:18px;color:#8fa2b4}.duel-crowd{padding:6px 10px;border-left:3px solid rgba(143,184,216,.5);background:#8fb8d812;color:#9fb4c7}.duel-actions{display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(180,200,220,.18);padding-top:10px}.duel-technique-row,.duel-verb-row{display:flex;flex-wrap:wrap;gap:8px}.duel-technique,.duel-verb{display:flex;flex-direction:column;gap:2px;min-width:150px;padding:8px 12px;text-align:left;border:1px solid rgba(180,200,220,.28);background:#18202ad9;color:#d9e2ec;cursor:pointer;font:inherit}.duel-technique:hover:not(:disabled),.duel-verb:hover:not(:disabled){border-color:#e2c98a}.duel-technique:disabled,.duel-verb:disabled{opacity:.4;cursor:not-allowed}.duel-technique-name{color:#f0e3c2}.duel-technique-meta,.duel-technique-reveal{font-size:12px;color:#8d9db0}.duel-verb em{font-style:normal;font-size:12px;color:#8d9db0}.duel-verb-seize:not(:disabled){border-color:#e6a45c;background:#e6a45c29}.duel-verb-quit{margin-left:auto}.duel-verdict{display:flex;flex-direction:column;gap:6px;align-items:flex-start;border-top:1px solid rgba(226,201,138,.4);padding-top:12px}.duel-verdict b{font-size:20px;letter-spacing:3px;color:#f0e3c2}.duel-verdict p{margin:0;color:#b0bfcd}.duel-verdict-note{color:#8d9db0!important}.duel-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.duel-roster-card{display:flex;flex-direction:column;gap:4px;padding:10px 12px;text-align:left;border:1px solid rgba(180,200,220,.24);background:#121921d9;color:#d9e2ec;cursor:pointer;font:inherit}.duel-roster-card:hover:not(:disabled){border-color:#e2c98a}.duel-roster-name{color:#f0e3c2;font-size:15px}.duel-roster-name em{display:block;font-style:normal;font-size:12px;color:#8d9db0}.duel-roster-origin,.duel-roster-look{color:#a4b3c2;font-size:12px}.duel-roster-known{color:#cbb98a;font-size:12px}.duel-foot-note{color:#7f8f9f}:root{--ink: #0a0806;--ink-deep: #060504;--ash: #8d8678;--hair: color-mix(in srgb, var(--gold) 22%, transparent);--hair-lit: color-mix(in srgb, var(--gold) 52%, transparent);--panel-glass: linear-gradient(180deg, rgba(24, 19, 14, .58), rgba(10, 8, 6, .7));--panel-lift: 0 20px 44px -26px rgba(0, 0, 0, .95);--brush: "Kaiti SC", "STKaiti", "KaiTi", "DFKai-SB", serif}.ui-seal{display:inline-grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border:1px solid rgba(184,56,44,.58);border-radius:2px;color:#f2ded0b8;background:linear-gradient(155deg,#93291fb8,#661711ad);box-shadow:inset 0 0 0 1px #ffd0ba24,0 2px 5px #0000006b;font-family:var(--brush);font-size:14px;font-weight:400;line-height:1;text-shadow:0 0 1px rgba(0,0,0,.28);opacity:.42;transform:rotate(-8deg) scale(.92);transition:opacity .2s ease,transform .22s cubic-bezier(.2,1.5,.4,1),border-color .18s ease,box-shadow .18s ease;pointer-events:none}.story-dock{background:var(--panel-glass);border-color:var(--hair);border-radius:16px;box-shadow:var(--panel-lift),inset 0 1px color-mix(in srgb,var(--gold) 7%,transparent);-webkit-backdrop-filter:blur(10px) saturate(1.06);backdrop-filter:blur(10px) saturate(1.06)}.story-dock:before,.story-dock:after{content:"";position:absolute;width:13px;height:13px;border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);pointer-events:none}.story-dock:before{top:-1px;left:-1px;border-right:0;border-bottom:0;border-top-left-radius:16px}.story-dock:after{right:-1px;bottom:-1px;border-top:0;border-left:0;border-bottom-right-radius:16px}.story-dock.compact:hover,.story-dock.compact:focus-visible{border-color:var(--hair-lit);box-shadow:var(--panel-lift),0 0 30px -14px color-mix(in srgb,var(--gold) 60%,transparent)}.story-dock-title{position:relative;justify-content:flex-start;gap:8px;padding-bottom:7px}.story-dock-title:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:linear-gradient(90deg,transparent,var(--hair-lit) 34%,var(--hair) 76%,transparent);pointer-events:none}.story-dock-title>span:not(.ui-seal){color:var(--gold);font-family:var(--brush);font-size:19px;font-weight:400;letter-spacing:.09em;line-height:1.25;text-shadow:0 0 8px color-mix(in srgb,var(--gold) 22%,transparent),0 2px 12px rgba(29,10,4,.85)}.story-dock-title small{margin-left:auto;color:color-mix(in srgb,var(--gold) 54%,var(--text-dim));letter-spacing:.08em}.story-dock:hover .story-dock-seal,.story-dock:focus-visible .story-dock-seal,.story-dock:active .story-dock-seal,.story-dock.expanded .story-dock-seal{opacity:1;transform:rotate(-8deg) scale(1);border-color:#c8493ad1;box-shadow:inset 0 0 0 1px #ffdecc38,0 2px 7px #00000080}.story-dock-backdrop{background:radial-gradient(circle at center,#060504ad,#040302db);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.story-dock.expanded{background:linear-gradient(180deg,#1a150fcc,#090705e6);border-color:var(--hair-lit);box-shadow:0 40px 90px -40px #000,0 0 60px -34px color-mix(in srgb,var(--gold) 55%,transparent),inset 0 1px color-mix(in srgb,var(--gold) 9%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.08);backdrop-filter:blur(16px) saturate(1.08)}.story-dock.expanded .story-dock-title>span:not(.ui-seal){font-size:27px}.story-dock.expanded .story-log{background:linear-gradient(180deg,#0a08068a,#060504a3);border-color:var(--hair)}.game-root>.toolbar{width:150px}.game-root>.toolbar button{position:relative;display:flex;align-items:center;width:100%;gap:8px;padding:7px 11px 8px;color:#cdc4b1;background:linear-gradient(180deg,#18130e8f,#0a0806a8);border-color:var(--hair);border-radius:10px;box-shadow:0 10px 22px -18px #000000f2;text-align:left;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .12s ease,border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease}.game-root>.toolbar button:hover:not(:disabled),.game-root>.toolbar button:focus-visible,.game-root>.toolbar button.active{color:#f0e6cd;background:linear-gradient(180deg,#2c22159e,#0c0a07ad);border-color:var(--hair-lit);box-shadow:0 10px 22px -16px #000000f2,0 0 22px -10px color-mix(in srgb,var(--gold) 62%,transparent);outline:none}.game-root>.toolbar button:active:not(:disabled){transform:translateY(1.5px) scale(.985);background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 14%,transparent),#0a0806b8);box-shadow:inset 0 3px 9px #0009}.game-root>.toolbar button:disabled{color:#857e70;border-color:color-mix(in srgb,var(--gold) 14%,transparent);opacity:.46}.game-root>.toolbar button:hover:not(:disabled) .toolbar-seal,.game-root>.toolbar button:focus-visible .toolbar-seal,.game-root>.toolbar button:active:not(:disabled) .toolbar-seal,.game-root>.toolbar button.active .toolbar-seal{opacity:1;transform:rotate(-8deg) scale(1);border-color:#c8493ad1}.hud-top-right>.status-bar{position:relative;color:var(--gold);background:linear-gradient(180deg,#18130e99,#0a0806b3);border-color:var(--hair);border-radius:12px;box-shadow:var(--panel-lift),inset 0 1px color-mix(in srgb,var(--gold) 7%,transparent);-webkit-backdrop-filter:blur(8px) saturate(1.04);backdrop-filter:blur(8px) saturate(1.04)}.hud-top-right>.status-bar .stat{color:color-mix(in srgb,var(--gold) 88%,#f3ead7);font-weight:500;letter-spacing:.02em}.hud-top-right>.status-bar .stat span{color:#8d8678;font-weight:300}.hud-top-right>.status-bar>.stat:first-child b{color:color-mix(in srgb,var(--gold) 82%,white);font-family:var(--brush);font-size:17px;font-weight:400;letter-spacing:.08em;text-shadow:0 0 10px color-mix(in srgb,var(--gold) 34%,transparent)}@media (prefers-reduced-motion: reduce){.ui-seal,.game-root>.toolbar button{transition:none}}:is(.fate-step3-panel:not(.collapsed),.battle-panel.char-panel,.battle-panel.path-panel,.battle-panel.market-panel,.battle-panel.encounter-panel,.guide-panel.settings-panel,.save-list:has(>.save-list-seal),.battle-panel:has(>.battle-panel-seal)){background:var(--panel-glass);border-color:var(--hair);border-radius:16px;box-shadow:var(--panel-lift),inset 0 1px color-mix(in srgb,var(--gold) 7%,transparent);-webkit-backdrop-filter:blur(10px) saturate(1.06);backdrop-filter:blur(10px) saturate(1.06);transition:border-color .18s ease,box-shadow .18s ease}:is(.fate-step3-panel:not(.collapsed),.battle-panel.char-panel,.battle-panel.path-panel,.battle-panel.market-panel,.battle-panel.encounter-panel,.guide-panel.settings-panel,.save-list:has(>.save-list-seal),.battle-panel:has(>.battle-panel-seal)):before,:is(.fate-step3-panel:not(.collapsed),.battle-panel.char-panel,.battle-panel.path-panel,.battle-panel.market-panel,.battle-panel.encounter-panel,.guide-panel.settings-panel,.save-list:has(>.save-list-seal),.battle-panel:has(>.battle-panel-seal)):after{content:"";position:absolute;width:13px;height:13px;border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);pointer-events:none}:is(.fate-step3-panel:not(.collapsed),.battle-panel.char-panel,.battle-panel.path-panel,.battle-panel.market-panel,.battle-panel.encounter-panel,.guide-panel.settings-panel,.save-list:has(>.save-list-seal),.battle-panel:has(>.battle-panel-seal)):before{top:-1px;left:-1px;border-right:0;border-bottom:0;border-top-left-radius:16px}:is(.fate-step3-panel:not(.collapsed),.battle-panel.char-panel,.battle-panel.path-panel,.battle-panel.market-panel,.battle-panel.encounter-panel,.guide-panel.settings-panel,.save-list:has(>.save-list-seal),.battle-panel:has(>.battle-panel-seal)):after{right:-1px;bottom:-1px;border-top:0;border-left:0;border-bottom-right-radius:16px}:is(.fate-step3-panel:not(.collapsed),.battle-panel.char-panel,.battle-panel.path-panel,.battle-panel.market-panel,.battle-panel.encounter-panel,.guide-panel.settings-panel,.save-list:has(>.save-list-seal),.battle-panel:has(>.battle-panel-seal)):is(:hover,:focus-within,:active){border-color:var(--hair-lit);box-shadow:var(--panel-lift),0 0 30px -14px color-mix(in srgb,var(--gold) 60%,transparent),inset 0 1px color-mix(in srgb,var(--gold) 9%,transparent)}:is(.battle-overlay:has(>.battle-panel.char-panel),.battle-overlay:has(>.battle-panel.path-panel),.battle-overlay:has(>.battle-panel.market-panel),.battle-overlay:has(>.battle-panel.encounter-panel),.battle-overlay:has(>.battle-panel>.battle-panel-seal)){background:radial-gradient(circle at center,color-mix(in srgb,var(--ink) 76%,transparent),color-mix(in srgb,var(--ink-deep) 92%,transparent));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.battle-panel.char-panel>.market-header,.battle-panel.path-panel>.market-header,.battle-panel.market-panel>.market-header,.battle-panel.encounter-panel>.market-header,.guide-panel.settings-panel>.guide-head{position:relative;align-items:center;border-bottom:0;padding-bottom:10px}.battle-panel.path-panel>.market-header,.battle-panel.market-panel>.market-header,.guide-panel.settings-panel>.guide-head{gap:8px}.battle-panel.char-panel>.market-header:after,.battle-panel.path-panel>.market-header:after,.battle-panel.market-panel>.market-header:after,.battle-panel.encounter-panel>.market-header:after,.guide-panel.settings-panel>.guide-head:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:linear-gradient(90deg,transparent,var(--hair-lit) 34%,var(--hair) 76%,transparent);pointer-events:none}.battle-panel.char-panel>.market-header h2,.battle-panel.path-panel>.market-header h2,.battle-panel.market-panel>.market-header h2,.battle-panel.encounter-panel>.market-header h2,.guide-panel.settings-panel>.guide-head h2{color:var(--gold);font-family:var(--brush);font-size:19px;font-weight:400;letter-spacing:.09em;line-height:1.25;text-shadow:0 0 8px color-mix(in srgb,var(--gold) 22%,transparent),0 2px 12px rgba(29,10,4,.85)}.guide-panel.settings-panel>.guide-head{justify-content:flex-start}.guide-panel.settings-panel>.guide-head .guide-close{margin-left:auto}.battle-panel.encounter-panel>.market-header>div{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;column-gap:8px}.battle-panel.encounter-panel>.market-header>div>.panel-title-seal{grid-column:1;grid-row:1}.battle-panel.encounter-panel>.market-header>div>h2{grid-column:2;grid-row:1}.battle-panel.encounter-panel>.market-header>div>.save-info{grid-column:2;grid-row:2}.save-list:has(>.save-list-seal)>.save-list-seal,.battle-panel:has(>.battle-panel-seal)>.battle-panel-seal{align-self:flex-start;margin-bottom:2px}.fate-step3-toggle{position:relative;color:var(--gold);font-family:var(--brush);font-size:16px;font-weight:400;letter-spacing:.09em;text-shadow:0 0 8px color-mix(in srgb,var(--gold) 22%,transparent),0 2px 12px rgba(29,10,4,.85)}.fate-step3-panel:not(.collapsed)>.fate-step3-toggle{align-self:stretch;width:100%;padding:2px 3px 10px;background:transparent;border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.fate-step3-panel:not(.collapsed)>.fate-step3-toggle:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:linear-gradient(90deg,transparent,var(--hair-lit) 34%,var(--hair) 76%,transparent);pointer-events:none}.fate-step3-panel.collapsed>.fate-step3-toggle{background:var(--panel-glass);border-color:var(--hair);border-radius:10px;box-shadow:var(--panel-lift),inset 0 1px color-mix(in srgb,var(--gold) 7%,transparent);-webkit-backdrop-filter:blur(8px) saturate(1.04);backdrop-filter:blur(8px) saturate(1.04)}.fate-step3-panel.collapsed>.fate-step3-toggle:is(:hover,:focus-visible,:active){border-color:var(--hair-lit);box-shadow:var(--panel-lift),0 0 22px -10px color-mix(in srgb,var(--gold) 62%,transparent);outline:none}.battle-panel.char-panel .char-tabs button{display:flex;align-items:center;gap:7px;color:color-mix(in srgb,var(--gold) 54%,var(--text-dim));background:var(--panel-glass);border-color:var(--hair);border-radius:10px;box-shadow:0 10px 22px -18px #000000f2;transition:transform .12s ease,border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease}.battle-panel.char-panel .char-tabs button:is(:hover,:focus-visible,:active),.battle-panel.char-panel .char-tabs button.active{color:var(--gold);background:linear-gradient(180deg,#2c22159e,#0c0a07ad);border-color:var(--hair-lit);box-shadow:0 10px 22px -16px #000000f2,0 0 22px -10px color-mix(in srgb,var(--gold) 62%,transparent);outline:none}.battle-panel.char-panel .char-tabs button:active{transform:translateY(1.5px) scale(.985)}.fate-step3-panel:not(.collapsed) .choice-btn,.fate-step3-panel:not(.collapsed) .free-act-row input,.battle-panel.char-panel .char-grid>div,.battle-panel.char-panel .save-item,.battle-panel.path-panel .realm-row,.battle-panel.path-panel .readiness-box,.battle-panel.path-panel .next-realm,.battle-panel.market-panel .save-item,.battle-panel.encounter-panel .encounter-log,.save-list:has(>.save-list-seal)>.save-item,.battle-panel:has(>.battle-panel-seal) .actor-card,.battle-panel:has(>.battle-panel-seal) .battle-log,.battle-panel:has(>.battle-panel-seal) .technique-btn,.battle-panel:has(>.battle-panel-seal) .battle-outcome,.battle-panel:has(>.battle-panel-seal) .battle-outcome .save-list{background:color-mix(in srgb,var(--ink-deep) 78%,transparent)}.fate-step3-panel:not(.collapsed) .choice-btn,.fate-step3-panel:not(.collapsed) .free-act-row input,.battle-panel.char-panel .char-grid>div,.battle-panel.char-panel .save-item,.battle-panel.path-panel .realm-row,.battle-panel.market-panel .save-item,.battle-panel.encounter-panel .encounter-log,.save-list:has(>.save-list-seal)>.save-item,.battle-panel:has(>.battle-panel-seal) .battle-log,.battle-panel:has(>.battle-panel-seal) .technique-btn{border-color:var(--hair)}.battle-panel.path-panel .realm-row.active{border-color:var(--hair-lit);box-shadow:0 0 20px -12px color-mix(in srgb,var(--gold) 55%,transparent)}.battle-panel:has(>.battle-panel-seal) .battle-outcome{border-top-color:var(--hair)}.battle-panel:has(>.battle-panel-seal) .bar{background:var(--ink-deep)}.fate-step3-panel:not(.collapsed) .choice-btn,.fate-step3-panel:not(.collapsed) .free-act-row button,.battle-panel.char-panel button,.battle-panel.path-panel .toolbar button,.battle-panel.market-panel button,.battle-panel.encounter-panel button,.guide-panel.settings-panel .ai-mode-options button,.save-list:has(>.save-list-seal) button,.battle-panel:has(>.battle-panel-seal) .technique-btn,.battle-panel:has(>.battle-panel-seal) .start-btn,.battle-panel:has(>.battle-panel-seal) .battle-outcome .save-list button{background:color-mix(in srgb,var(--ink-deep) 72%,transparent);border-color:var(--hair);box-shadow:0 8px 18px -16px #000000f2}.fate-step3-panel:not(.collapsed) .choice-btn:is(:hover,:focus-visible):not(:disabled),.fate-step3-panel:not(.collapsed) .free-act-row button:is(:hover,:focus-visible):not(:disabled),.battle-panel.char-panel button:is(:hover,:focus-visible):not(:disabled),.battle-panel.path-panel .toolbar button:is(:hover,:focus-visible):not(:disabled),.battle-panel.market-panel button:is(:hover,:focus-visible):not(:disabled),.battle-panel.encounter-panel button:is(:hover,:focus-visible):not(:disabled),.guide-panel.settings-panel .ai-mode-options button:is(:hover,:focus-visible):not(:disabled),.save-list:has(>.save-list-seal) button:is(:hover,:focus-visible):not(:disabled),.battle-panel:has(>.battle-panel-seal) .technique-btn:is(:hover,:focus-visible):not(:disabled),.battle-panel:has(>.battle-panel-seal) .start-btn:is(:hover,:focus-visible):not(:disabled),.battle-panel:has(>.battle-panel-seal) .battle-outcome .save-list button:is(:hover,:focus-visible):not(:disabled){border-color:var(--hair-lit);box-shadow:0 8px 20px -14px #000000f2,0 0 18px -10px color-mix(in srgb,var(--gold) 54%,transparent);outline:none}.guide-panel.settings-panel .guide-section kbd{color:var(--gold);background:color-mix(in srgb,var(--ink-deep) 72%,transparent);border-color:var(--hair)}.fate-step3-panel:not(.collapsed)>.fate-step3-toggle>.phase2-panel-seal,.fate-step3-toggle:is(:hover,:focus-visible,:active)>.phase2-panel-seal,.battle-panel.char-panel .char-tabs button:is(:hover,:focus-visible,:active)>.phase2-panel-seal,.battle-panel.char-panel .char-tabs button.active>.phase2-panel-seal,.battle-panel.path-panel:is(:hover,:focus-within,:active) .panel-title-seal,.battle-panel.market-panel:is(:hover,:focus-within,:active) .panel-title-seal,.battle-panel.talk-panel:is(:hover,:focus-within,:active) .panel-title-seal,.battle-panel.encounter-panel:is(:hover,:focus-within,:active) .panel-title-seal,.guide-panel.settings-panel:is(:hover,:focus-within,:active) .panel-title-seal,.save-list:has(>.save-list-seal):is(:hover,:focus-within,:active)>.save-list-seal,.battle-panel:has(>.battle-panel-seal):is(:hover,:focus-within,:active)>.battle-panel-seal{opacity:1;transform:rotate(-8deg) scale(1);border-color:#c8493ad1;box-shadow:inset 0 0 0 1px #ffdecc38,0 2px 7px #00000080}@media (prefers-reduced-motion: reduce){:is(.fate-step3-panel:not(.collapsed),.battle-panel.char-panel,.battle-panel.path-panel,.battle-panel.market-panel,.battle-panel.talk-panel,.battle-panel.encounter-panel,.guide-panel.settings-panel,.save-list:has(>.save-list-seal),.battle-panel:has(>.battle-panel-seal)),.battle-panel.char-panel .char-tabs button{transition:none}}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]){--duel-near-x: 34%;--duel-near-bottom: 4%;--duel-near-h: 44vh;--duel-far-x: 66%;--duel-far-bottom: 31%;--duel-far-h: 20vh;isolation:isolate;gap:0;padding:0;overflow:hidden;background:#05090c;line-height:1.45}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse 72% 42% at 50% 68%,rgba(70,91,90,.2),transparent 70%),radial-gradient(ellipse 55% 44% at 50% 108%,rgba(61,75,72,.42),transparent 76%),linear-gradient(180deg,#182329,#0b1318 44%,#04080b);box-shadow:inset 0 0 12vw #000000db,inset 0 -18vh 20vh #0000007a}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-backdrop-img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%;-webkit-user-select:none;user-select:none;box-shadow:inset 0 0 12vw #000000db,inset 0 -18vh 20vh #0000007a}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-backdrop-img[hidden]{display:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-backdrop:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(106deg,rgba(35,45,48,.92) 0 7%,rgba(15,24,28,.58) 19%,transparent 34%),linear-gradient(254deg,rgba(32,42,45,.92) 0 8%,rgba(13,22,26,.58) 20%,transparent 35%),repeating-linear-gradient(172deg,transparent 0 7vh,rgba(150,166,158,.035) 7.2vh 7.45vh),radial-gradient(ellipse 58% 23% at 50% 19%,rgba(115,135,132,.12),transparent 74%);opacity:.9}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-backdrop:after{content:"";position:absolute;top:16%;right:-8%;bottom:-12%;left:-8%;background:radial-gradient(ellipse 32% 10% at 23% 73%,rgba(187,205,198,.13),transparent 75%),radial-gradient(ellipse 34% 11% at 76% 45%,rgba(184,201,196,.12),transparent 76%),linear-gradient(180deg,transparent 42%,rgba(166,187,181,.08) 66%,transparent 92%);filter:blur(10px)}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-world-shake-root{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;pointer-events:none;transform:translateZ(0)}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-ground-vfx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 31% 10% at var(--duel-near-x) calc(100% - var(--duel-near-bottom)),rgba(199,214,202,.13),transparent 78%),radial-gradient(ellipse 23% 8% at var(--duel-far-x) calc(100% - var(--duel-far-bottom)),rgba(178,199,194,.1),transparent 80%),linear-gradient(180deg,transparent 54%,rgba(151,173,168,.07) 68%,transparent 88%);filter:blur(4px)}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-ground-vfx:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;background:radial-gradient(ellipse 7.5vw 2.2vh at var(--duel-vfx-fire-light-1-x, -20vw) var(--duel-vfx-fire-light-1-y, 120vh),rgba(255,149,45,.28),rgba(193,50,16,.1) 42%,transparent 76%),radial-gradient(ellipse 6.5vw 1.9vh at var(--duel-vfx-fire-light-2-x, -20vw) var(--duel-vfx-fire-light-2-y, 120vh),rgba(255,174,63,.24),rgba(179,42,13,.08) 44%,transparent 78%),radial-gradient(ellipse 8vw 2.4vh at var(--duel-vfx-fire-light-3-x, -20vw) var(--duel-vfx-fire-light-3-y, 120vh),rgba(255,133,37,.3),rgba(173,35,10,.11) 42%,transparent 76%);filter:blur(7px);mix-blend-mode:screen}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-world-shake-root.duel-vfx-fire-flight-light .duel-ground-vfx:before{opacity:1}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-player,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe{position:absolute;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-player{left:var(--duel-near-x);bottom:var(--duel-near-bottom);height:var(--duel-near-h);width:auto;transform:translate(-50%);z-index:4}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe{left:var(--duel-far-x);bottom:var(--duel-far-bottom);height:var(--duel-far-h);width:auto;transform:translate(-50%);z-index:3}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-player:after,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe:after{content:"";position:absolute;left:50%;bottom:-1.1vh;width:64%;height:3.4vh;transform:translate(-50%);background:radial-gradient(ellipse at center,rgba(0,0,0,.52) 0%,rgba(0,0,0,.26) 46%,transparent 72%);z-index:-1;pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe:after{bottom:-.7vh;width:58%;height:2vh;background:radial-gradient(ellipse at center,rgba(0,0,0,.46) 0%,rgba(0,0,0,.22) 46%,transparent 72%)}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-player img,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe img{display:block;height:100%;width:auto;object-fit:contain;object-position:50% 100%;transform-origin:50% 92%;-webkit-user-select:none;user-select:none;animation:duel-fighter-breathe 4.8s ease-in-out infinite;will-change:transform}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-player img{filter:drop-shadow(0 2.2vh 1.2vh rgba(0,0,0,.78)) drop-shadow(0 0 1.8vw rgba(111,137,126,.16))}.duel-stage .fighter-player .duel-cast-portrait{position:absolute;bottom:0;left:3.2%;opacity:0;pointer-events:none}.duel-stage .fighter-player[data-cast-pose-ready=true] .duel-cast-portrait{opacity:var(--duel-cast-blend, 0)}.duel-stage .fighter-player[data-cast-pose-ready=true] .duel-standing-portrait{opacity:calc(1 - var(--duel-cast-blend, 0))}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe img{animation-duration:5.3s;animation-delay:-1.7s;filter:drop-shadow(0 1.5vh .9vh rgba(0,0,0,.74)) drop-shadow(0 0 1.3vw rgba(128,151,143,.14))}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-player img[hidden],.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe img[hidden]{display:none}@keyframes duel-fighter-breathe{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(0,-.8vh,0) scale(1.008)}}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) #duel-vfx-mount{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) #duel-vfx-mount canvas{display:block;pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden;pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-flash-core{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;mix-blend-mode:screen;transform:translateZ(0)}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-fire-impact-sparks{position:absolute;left:var(--duel-vfx-impact-x, 50%);top:var(--duel-vfx-impact-y, 50%);width:0;height:0;opacity:0;pointer-events:none;transform:scaleX(var(--duel-vfx-impact-direction, 1));transform-origin:0 0;filter:drop-shadow(0 0 8px var(--duel-vfx-element-glow));mix-blend-mode:screen}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-fire-impact .duel-fire-impact-sparks{opacity:1}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-fire-impact-sparks>span{position:absolute;left:0;top:0;width:clamp(30px,3.2vw,58px);aspect-ratio:1;background-color:var(--duel-vfx-impact-color, #fff4cc);-webkit-mask-image:url(/assets/duel/vfx/spark-sheet.png);mask-image:url(/assets/duel/vfx/spark-sheet.png);mask-mode:luminance;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:200% 200%;mask-size:200% 200%;animation:duel-vfx-fire-directional-spark var(--duel-vfx-fire-impact-duration, .12s) cubic-bezier(.16,.84,.3,1) both paused;animation-delay:calc(var(--duel-vfx-spark-delay, 0ms) - var(--duel-vfx-fire-impact-time, 0ms));will-change:transform,opacity}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-fire-impact-sparks>span:nth-child(1){--duel-vfx-spark-x: 84px;--duel-vfx-spark-y: -46px;--duel-vfx-spark-rotation: 18deg;--duel-vfx-spark-delay: 0ms;-webkit-mask-position:0 0;mask-position:0 0}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-fire-impact-sparks>span:nth-child(2){--duel-vfx-spark-x: 96px;--duel-vfx-spark-y: 34px;--duel-vfx-spark-rotation: -12deg;--duel-vfx-spark-delay: 7ms;-webkit-mask-position:100% 0;mask-position:100% 0}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-fire-impact-sparks>span:nth-child(3){--duel-vfx-spark-x: 76px;--duel-vfx-spark-y: -78px;--duel-vfx-spark-rotation: 34deg;--duel-vfx-spark-delay: 13ms;-webkit-mask-position:0 100%;mask-position:0 100%}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-fire-impact-sparks>span:nth-child(4){--duel-vfx-spark-x: 132px;--duel-vfx-spark-y: 67px;--duel-vfx-spark-rotation: -28deg;--duel-vfx-spark-delay: 4ms;-webkit-mask-position:100% 100%;mask-position:100% 100%}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-caster-lunge img{animation-duration:var(--duel-vfx-track-duration, .7s);animation-delay:calc(-1 * var(--duel-vfx-track-time, 0ms));animation-timing-function:linear;animation-fill-mode:both;animation-play-state:paused;will-change:transform,filter}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-caster-wood img{animation-name:duel-vfx-caster-wood-lunge}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-caster-fire img{animation-name:duel-vfx-caster-fire-lunge}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-target-hit :is(img,.duel-motion2d-player),.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-target-graze :is(img,.duel-motion2d-player){animation-duration:var(--duel-vfx-cue-duration, .24s);animation-delay:calc(-1 * var(--duel-vfx-cue-time, 0ms));animation-timing-function:linear;animation-fill-mode:both;animation-play-state:paused;will-change:transform,filter}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-target-wood-hit :is(img,.duel-motion2d-player){animation-name:duel-vfx-target-wood-impact}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-target-fire-hit :is(img,.duel-motion2d-player){animation-name:duel-vfx-target-fire-impact}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-target-graze :is(img,.duel-motion2d-player){animation-name:duel-vfx-target-graze-flash}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-world-shake-root.duel-vfx-screen-shake{animation:duel-vfx-world-shake var(--duel-vfx-shake-duration, .15s) linear both paused;animation-delay:calc(-1 * var(--duel-vfx-shake-time, 0ms));will-change:transform}.duel-stage[data-duel-vfx-active=fire-crow]:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-world-shake-root.duel-vfx-screen-shake.duel-vfx-fire-impact{animation:duel-vfx-fire-world-impact var(--duel-vfx-fire-impact-duration, .12s) linear both paused;animation-delay:calc(-1 * var(--duel-vfx-fire-impact-time, 0ms));transform-origin:var(--duel-vfx-impact-origin-x, 50%) var(--duel-vfx-impact-origin-y, 50%)}.duel-stage[data-duel-vfx-active=fire-crow].duel-vfx-fire-impact:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-backdrop:after{animation:duel-vfx-fire-fog-pulse var(--duel-vfx-fire-impact-duration, .12s) ease-out both paused;animation-delay:calc(-1 * var(--duel-vfx-fire-impact-time, 0ms))}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-impact-flash .duel-impact-flash-core{background:radial-gradient(circle var(--duel-vfx-impact-radius, 20vh) at var(--duel-vfx-impact-x, 50%) var(--duel-vfx-impact-y, 50%),color-mix(in srgb,var(--duel-vfx-impact-color, #fff) 94%,white) 0 5%,var(--duel-vfx-impact-color, #fff) 12%,color-mix(in srgb,var(--duel-vfx-element-glow, #fff) 72%,transparent) 38%,color-mix(in srgb,var(--duel-vfx-element-glow, #fff) 24%,transparent) 68%,transparent 100%);animation:duel-vfx-impact-flash var(--duel-vfx-cue-duration, 64ms) linear both paused;animation-delay:calc(-1 * var(--duel-vfx-cue-time, 0ms));will-change:opacity,filter}.duel-stage[data-duel-vfx-active=fire-crow]:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-impact-flash .duel-impact-flash-core{animation-name:duel-vfx-fire-impact-flash}.duel-stage[data-duel-vfx-active=wood-sword-edge]:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-impact-flash .duel-impact-flash-core:before,.duel-stage[data-duel-vfx-active=wood-sword-edge]:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-impact-flash .duel-impact-flash-core:after{content:"";position:absolute;left:var(--duel-vfx-impact-x, 50%);top:var(--duel-vfx-impact-y, 50%);width:clamp(72px,14vh,150px);height:clamp(4px,.9vh,10px);border-radius:999px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--duel-vfx-element-glow, #54efbd) 58%,transparent) 18%,var(--duel-vfx-impact-color, #effffc) 46% 54%,color-mix(in srgb,var(--duel-vfx-element-glow, #54efbd) 58%,transparent) 82%,transparent 100%);box-shadow:0 0 1.4vh var(--duel-vfx-element-glow, #54efbd);transform-origin:50% 50%}.duel-stage[data-duel-vfx-active=wood-sword-edge]:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-impact-flash .duel-impact-flash-core:before{transform:translate(-50%,-50%) rotate(42deg)}.duel-stage[data-duel-vfx-active=wood-sword-edge]:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-impact-flash .duel-impact-flash-core:after{transform:translate(-50%,-50%) rotate(-48deg)}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay.duel-vfx-impact-graze .duel-impact-flash-core{background:radial-gradient(circle var(--duel-vfx-graze-radius, 10vh) at var(--duel-vfx-impact-x, 50%) var(--duel-vfx-impact-y, 50%),var(--duel-vfx-impact-color, #fff) 0 6%,color-mix(in srgb,var(--duel-vfx-element-glow, #fff) 68%,transparent) 42%,transparent 100%);animation:duel-vfx-impact-graze var(--duel-vfx-cue-duration, 44ms) linear both paused;animation-delay:calc(-1 * var(--duel-vfx-cue-time, 0ms));will-change:opacity,filter}@keyframes duel-vfx-caster-wood-lunge{0%{transform:translateZ(0) rotate(0);filter:brightness(1)}22%{transform:translate3d(0,-5px,0) rotate(-1deg);filter:brightness(1.08) drop-shadow(0 0 9px var(--duel-vfx-element-glow))}44%{transform:translate3d(var(--duel-vfx-lunge-x),-2px,0) rotate(1.4deg);filter:brightness(1.18) drop-shadow(0 0 15px var(--duel-vfx-element-glow))}72%{transform:translate3d(calc(var(--duel-vfx-lunge-x) * .38),0,0) rotate(.3deg);filter:brightness(1.04)}to{transform:translateZ(0) rotate(0);filter:brightness(1)}}@keyframes duel-vfx-caster-fire-lunge{0%{transform:translateZ(0) rotate(0);filter:brightness(1)}18%{transform:translate3d(calc(var(--duel-vfx-lunge-x) * .22),-3px,0) rotate(-1deg);filter:brightness(1.22) drop-shadow(0 0 18px var(--duel-vfx-element-glow))}32%{transform:translate3d(var(--duel-vfx-lunge-x),0,0) rotate(1.8deg);filter:brightness(1.12) drop-shadow(0 0 12px var(--duel-vfx-element-glow))}78%{transform:translate3d(calc(var(--duel-vfx-lunge-x) * .42),0,0) rotate(.4deg);filter:brightness(1.04)}to{transform:translateZ(0) rotate(0);filter:brightness(1)}}@keyframes duel-vfx-target-wood-impact{0%{transform:translate3d(var(--duel-vfx-knockback-x),7px,0) scale(1.03,.94);filter:brightness(1.65) saturate(.7) drop-shadow(0 0 18px var(--duel-vfx-element-glow))}24%{transform:translate3d(var(--duel-vfx-knockback-x),9px,0) scale(1.04,.92);filter:brightness(1.3) saturate(.8)}56%{transform:translate3d(calc(var(--duel-vfx-knockback-x) * -.2),-3px,0) scale(.99,1.025);filter:brightness(1.12)}78%{transform:translate3d(calc(var(--duel-vfx-knockback-x) * .08),1px,0) scale(1.005,.995);filter:brightness(1.03)}to{transform:translateZ(0) scale(1);filter:brightness(1)}}@keyframes duel-vfx-target-fire-impact{0%{transform:translate3d(var(--duel-vfx-knockback-x),-2px,0) rotate(1.5deg);filter:brightness(1.9) saturate(.65) drop-shadow(1px 0 2px var(--duel-vfx-impact-color)) drop-shadow(-1px 0 2px var(--duel-vfx-impact-color)) drop-shadow(0 0 22px var(--duel-vfx-element-glow))}12%{transform:translate3d(calc(var(--duel-vfx-knockback-x) * 1.12),1px,0) rotate(2.2deg);filter:brightness(2.1) saturate(.45) drop-shadow(0 0 13px var(--duel-vfx-element-glow))}26%{transform:translate3d(calc(var(--duel-vfx-knockback-x) * .72),1px,0) rotate(1deg);filter:brightness(1.52) saturate(.7)}58%{transform:translate3d(calc(var(--duel-vfx-knockback-x) * -.2),0,0) rotate(-.5deg);filter:brightness(1.12)}80%{transform:translate3d(calc(var(--duel-vfx-knockback-x) * .08),0,0) rotate(.2deg);filter:brightness(1.03)}to{transform:translateZ(0) rotate(0);filter:brightness(1)}}@keyframes duel-vfx-target-graze-flash{0%{filter:brightness(2.05) saturate(.35) drop-shadow(0 0 10px var(--duel-vfx-element-glow))}to{filter:brightness(1)}}@keyframes duel-vfx-world-shake{0%{transform:translateZ(0)}13%{transform:translate3d(var(--duel-vfx-shake-amount),calc(var(--duel-vfx-shake-amount) * -.45),0)}29%{transform:translate3d(calc(var(--duel-vfx-shake-amount) * -.72),calc(var(--duel-vfx-shake-amount) * .36),0)}47%{transform:translate3d(calc(var(--duel-vfx-shake-amount) * .48),calc(var(--duel-vfx-shake-amount) * -.2),0)}68%{transform:translate3d(calc(var(--duel-vfx-shake-amount) * -.24),calc(var(--duel-vfx-shake-amount) * .12),0)}to{transform:translateZ(0)}}@keyframes duel-vfx-fire-world-impact{0%{transform:translateZ(0) scale(1)}10%{transform:translate3d(var(--duel-vfx-fire-camera-x),-2px,0) scale(1.01)}28%{transform:translate3d(calc(var(--duel-vfx-shake-amount) * -.55),calc(var(--duel-vfx-shake-amount) * .24),0) scale(1.014)}46%{transform:translate3d(calc(var(--duel-vfx-shake-amount) * .34),calc(var(--duel-vfx-shake-amount) * -.18),0) scale(1.011)}68%{transform:translate3d(calc(var(--duel-vfx-shake-amount) * -.16),0,0) scale(1.006)}to{transform:translateZ(0) scale(1)}}@keyframes duel-vfx-fire-fog-pulse{0%{opacity:1;filter:blur(10px) brightness(1)}14%{opacity:1;filter:blur(9px) brightness(1.42)}42%{opacity:.96;filter:blur(10px) brightness(1.16)}to{opacity:1;filter:blur(10px) brightness(1)}}@keyframes duel-vfx-fire-directional-spark{0%{opacity:0;transform:translate(-50%,-50%) translateZ(0) rotate(0) scale(.28)}9%{opacity:1;transform:translate(-50%,-50%) translate3d(8px,0,0) rotate(0) scale(.78)}28%{opacity:.45}to{opacity:0;transform:translate(-50%,-50%) translate3d(var(--duel-vfx-spark-x),var(--duel-vfx-spark-y),0) rotate(var(--duel-vfx-spark-rotation)) scale(.42)}}@keyframes duel-vfx-fire-impact-flash{0%{opacity:min(1,var(--duel-vfx-flash-strength, .48));filter:brightness(1.16)}18%{opacity:calc(.38 * var(--duel-vfx-flash-strength, .48));filter:brightness(1.07)}55%{opacity:calc(.12 * var(--duel-vfx-flash-strength, .48));filter:brightness(1.02)}to{opacity:0;filter:brightness(1)}}@keyframes duel-vfx-impact-flash{0%{opacity:min(1,var(--duel-vfx-flash-strength, 1));filter:brightness(1.18)}18%{opacity:calc(.82 * var(--duel-vfx-flash-strength, 1));filter:brightness(1.06)}to{opacity:0;filter:brightness(1)}}@keyframes duel-vfx-impact-graze{0%{opacity:calc(.72 * var(--duel-vfx-flash-strength, .3));filter:brightness(1.15)}to{opacity:0;filter:brightness(1)}}@keyframes duel-vfx-reduced-hit{0%{transform:none;filter:brightness(1.85) saturate(.55) drop-shadow(0 0 9px var(--duel-vfx-element-glow))}to{transform:none;filter:brightness(1)}}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-hud{position:relative;z-index:3;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:clamp(5px,.8vh,10px);width:100%;height:100%;min-height:0;padding:clamp(8px,1.5vh,18px) clamp(16px,2.5vw,48px);pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-hud>*,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-hud button,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-hud details{pointer-events:auto}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-head{flex-direction:row;align-items:baseline;justify-content:space-between;gap:16px;padding:5px 10px 7px;border:1px solid rgba(182,201,194,.17);background:linear-gradient(90deg,#070c10e6,#0a12169e,#070c10d6);box-shadow:0 1vh 2vh #0000003d}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-head span{max-width:68%;text-align:right}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-host{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;justify-self:start;gap:10px;width:min(62vw,980px);padding:5px 10px;border:1px solid rgba(168,139,74,.22);border-left:3px solid #a88b4a;background:linear-gradient(90deg,#231d11cc,#14171799,#090e11c7);box-shadow:0 1vh 2vh #0003}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-host ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.5vw,24px);margin:0;padding-left:16px;color:#b9c6c3;font-size:12px;line-height:1.35}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-body{display:grid;grid-template-areas:"foe player";grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);gap:clamp(12px,2.2vw,42px);min-height:0;align-items:stretch;pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-side{width:min(30vw,420px);max-height:100%;overflow-y:auto;border-color:#b4c8c238;background:linear-gradient(145deg,#070d11eb,#11191cb8);box-shadow:0 1.5vh 3vh #0000006b,inset 0 0 2vw #748b820a}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-side-player{grid-area:player;align-self:end;justify-self:end;width:min(22vw,320px);gap:4px;padding:8px 10px;line-height:1.3}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-side-foe{grid-area:foe;align-self:start;justify-self:start;width:min(22vw,320px)}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-side-player .duel-bar{grid-template-columns:34px minmax(0,1fr) 36px;gap:4px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-side-player .duel-bar-track{height:4px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro>b{color:#f0e3c2;font-size:15px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro>em{color:#8d9db0;font-size:12px;font-style:normal}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro-toggle{width:100%;padding:5px 8px;border:1px solid rgba(180,200,194,.22);background:#141e21e6;color:#cbb98a;cursor:pointer;font:inherit;text-align:left}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro-toggle:hover{border-color:#e2c98a}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro-overlay{position:fixed;top:clamp(124px,18vh,190px);left:calc(clamp(16px,2.5vw,48px) + min(22vw,320px) + 12px);z-index:8;display:flex;flex-direction:column;gap:8px;width:min(34vw,520px);max-height:min(54vh,520px);overflow-y:auto;padding:12px 14px;border:1px solid rgba(226,201,138,.34);background:linear-gradient(145deg,#070d11fa,#11191cf5);box-shadow:0 2vh 5vh #0000009e;transition:opacity .18s ease,transform .18s ease}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro-overlay .duel-foe-origin,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro-overlay .duel-foe-look{line-height:1.55}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log{min-height:0;max-height:min(32vh,330px);border-color:#b4c8c233;background:#050a0ed1;box-shadow:0 1.5vh 3vh #00000061}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log-panel{display:flex;flex-direction:column;gap:6px;min-height:0;margin-top:4px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log-toggle{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:7px;width:100%;padding:6px 9px;border:1px solid rgba(180,200,194,.22);background:#141e21e6;color:#f0e3c2;cursor:pointer;font:inherit;text-align:left}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log-toggle-copy{min-width:0;overflow:hidden;color:#b9c6c3;text-overflow:ellipsis;white-space:nowrap}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log-toggle:hover{border-color:#e2c98a}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log-body{display:flex;flex-direction:column;gap:6px;min-height:0;max-height:42vh;opacity:1;overflow:hidden;transition:max-height .2s ease,opacity .2s ease}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log-panel[data-log-collapsed=true] .duel-log-body{max-height:0;opacity:0;overflow:hidden;pointer-events:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-actions{gap:6px;max-height:28vh;overflow-y:auto;padding:8px;border:1px solid rgba(180,200,194,.22);background:linear-gradient(180deg,#080e12d1,#05090cf5);box-shadow:0 -1.5vh 3vh #00000057}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-technique-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:6px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-verb-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-technique,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-verb{min-width:0;padding:6px 9px;background:#141e21e6}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-verb-quit{margin-left:0}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-verdict{justify-self:center;width:min(72vw,980px);padding:10px 14px;border:1px solid rgba(226,201,138,.38);background:linear-gradient(135deg,#1d1910eb,#080d10f0);box-shadow:0 -1.5vh 3vh #00000073}@media (max-height: 800px) and (min-width: 901px){.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]){font-size:12px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-hud{gap:5px;padding-block:7px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-head{padding-block:3px 4px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-head b{font-size:15px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-head span,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-host ul{font-size:11px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-host{padding-block:4px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-side{gap:4px;padding:7px 9px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-side>b{font-size:14px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-appraisal{padding:4px 6px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-appraisal small,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-technique-meta,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-technique-reveal,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-verb em{font-size:10px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log{max-height:27vh;padding-block:7px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-actions{gap:4px;padding:6px}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-technique,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-verb{padding-block:4px}}@media (prefers-reduced-motion: reduce){.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-player img,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .fighter-foe img{animation:none;transform:none;will-change:auto}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-log-body{transition:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-foe-intro-overlay{transition:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-world-shake-root.duel-vfx-screen-shake,.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) .duel-impact-overlay :is(.duel-impact-flash-core){animation:none;opacity:0;transform:none}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe).duel-vfx-caster-lunge img{animation:none;transform:none;filter:drop-shadow(0 0 8px var(--duel-vfx-element-glow))}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe):is(.duel-vfx-target-hit,.duel-vfx-target-graze) img{animation:duel-vfx-reduced-hit var(--duel-vfx-cue-duration, .12s) linear both paused;animation-delay:calc(-1 * var(--duel-vfx-cue-time, 0ms))}}.duel-practice-nav{position:fixed;inset:0 0 auto;z-index:510;height:44px;display:flex;align-items:center;gap:10px;padding:6px 20px;background:#111b1c;border-bottom:1px solid #746346;color:#d2c7b1;font-size:13px}.duel-practice-nav button{border:1px solid #52625d;background:#1c2927;color:#cdd8cc;padding:5px 10px}.duel-practice-nav button[aria-pressed=true]{border-color:#c7b072;color:#f3e1ac}.duel-practice-nav span{margin-left:auto;opacity:.7}.duel-practice .duel-stage{top:44px!important;height:calc(100dvh - 44px)!important}.duel-combat-stats{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#c3cdbc;line-height:1.45;margin-top:8px}.duel-stage .duel-foe-balance[data-charging=true]{color:#f1c985;border-color:#b99047;background:#342915}.duel-anticipation-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;opacity:0;pointer-events:none;will-change:opacity}.duel-stage .fighter-player[data-cast-pose-ready=true] img.duel-cast-portrait{opacity:0;visibility:hidden;animation:none;will-change:auto}.duel-stage .fighter-player[data-active-pose=fallback] img[data-pose=fallback],.duel-stage .fighter-player[data-active-pose=sword] img[data-pose=sword],.duel-stage .fighter-player[data-active-pose=gather] img[data-pose=gather],.duel-stage .fighter-player[data-active-pose=step] img[data-pose=step],.duel-stage .fighter-player[data-active-pose=control] img[data-pose=control]{opacity:var(--duel-cast-blend, 0);visibility:visible}.duel-stage .fighter-player img.duel-cast-pose{left:-25%}.duel-stage:is([data-duel-phase=fight],[data-duel-phase=verdict]) :is(.fighter-player,.fighter-foe){translate:calc(var(--duel-dodge-x, 0px) + var(--duel-step-x, 0px)) 0}.duel-stage .fighter-player img.duel-held-portrait{position:absolute;bottom:0;left:-25%;opacity:0;visibility:hidden;animation:none}.duel-stage .fighter-player[data-insect-spear=true] img.duel-held-portrait[data-ready=true]{opacity:calc(1 - var(--duel-cast-blend, 0));visibility:visible}.duel-stage .fighter-player[data-insect-spear=true][data-insect-armor=false]:has(img.duel-held-portrait[data-armor=false][data-ready=true]) img.duel-standing-portrait:not(.duel-held-portrait),.duel-stage .fighter-player[data-insect-spear=true][data-insect-armor=true]:has(img.duel-held-portrait[data-armor=true][data-ready=true]) img.duel-standing-portrait:not(.duel-held-portrait){opacity:0;visibility:hidden}.duel-stage .fighter-player img.duel-armored-standing{position:absolute;top:0;right:0;bottom:0;left:0}.fighter-player[data-insect-armor=false] img[data-armor=true],.fighter-player[data-insect-armor=true] img[data-armor=false]{opacity:0!important;visibility:hidden!important}@media (prefers-reduced-motion: reduce){.duel-stage .duel-companion{transform:none}}.duel-stage .duel-companion{position:absolute;left:28%;bottom:15%;width:31%;height:58%;z-index:3;pointer-events:none;opacity:var(--duel-companion-visible, 0);transform:translate(var(--duel-companion-x, 0px)) rotate(var(--duel-companion-lean, 0deg));transform-origin:45% 95%}.duel-stage .duel-companion-puppet{left:32%;bottom:14%;width:27%;height:49%}.duel-companion img{width:100%;height:100%;object-fit:contain}.duel-stage[data-duel-context=practice] .duel-technique-reveal,.duel-stage[data-duel-context=pact] .duel-technique-reveal{display:none}@media (max-width: 900px){.duel-practice-nav{overflow-x:auto;white-space:nowrap;gap:6px;padding-inline:8px}.duel-practice-nav span{display:none}}.duel-family-row{display:flex;align-items:center;gap:8px;min-height:27px}.duel-family-row button{background:transparent;color:#b5bba9;border:1px solid #47544f;padding:4px 12px;font-size:12px}.duel-family-row button[aria-pressed=true]{color:#f0d48b;border-color:#b49a59;background:#303022}.duel-technique-help{font-size:11px;color:#c4c9b9;padding-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duel-hit-label{position:absolute;z-index:15;top:38%;left:var(--duel-far-x);color:#f4df99;font-size:clamp(16px,2vw,28px);text-shadow:0 2px 5px #000;transform:translate(-50%);pointer-events:none}.duel-hit-label[data-target=player]{left:var(--duel-near-x);top:53%}.duel-stage .fighter-player img.duel-step-echo{position:absolute;bottom:0;left:-25%;opacity:var(--duel-step-echo, 0);visibility:visible;animation:none;filter:sepia(.3) saturate(.45);pointer-events:none}.duel-stage .fighter-player img.duel-step-echo-1{translate:45px 0}.duel-stage .fighter-player img.duel-step-echo-2{translate:85px 0;opacity:calc(var(--duel-step-echo, 0) * .55)}.duel-stage .fighter-player[data-releasing-form=armor][data-insect-spear=false] img.duel-standing-portrait:not(.duel-held-portrait)[data-armor=false]{opacity:var(--duel-form-release, 0)!important;visibility:visible!important}.duel-stage .fighter-player[data-releasing-form=armor][data-insect-spear=false] img.duel-armored-standing{opacity:calc(1 - var(--duel-form-release, 0))!important;visibility:visible!important}.duel-stage .fighter-player[data-releasing-form=armor][data-insect-spear=true] img.duel-held-portrait[data-armor=false]{opacity:var(--duel-form-release, 0)!important;visibility:visible!important}.duel-stage .fighter-player[data-releasing-form=armor][data-insect-spear=true] img.duel-held-portrait[data-armor=true]{opacity:calc(1 - var(--duel-form-release, 0))!important;visibility:visible!important}.duel-stage .fighter-player[data-releasing-form=spear] img.duel-held-portrait{opacity:calc(1 - var(--duel-form-release, 0));visibility:visible}.duel-stage .fighter-player[data-releasing-form=spear] img.duel-standing-portrait:not(.duel-held-portrait){opacity:var(--duel-form-release, 0);visibility:visible}.practice-sword-tier{color:#d7ccb0;white-space:nowrap}.practice-sword-tier select{background:#172422;color:#e6dbbd;border:1px solid #5c6b60;padding:5px 6px;font:inherit}.duel-motion2d-player,.duel-motion2d-enemy{position:absolute;display:none;pointer-events:none}.duel-motion2d-player{height:101.2%;width:99.14625%;left:.426875%;bottom:-1.73%;transform-origin:50% 92%}.duel-motion2d-enemy{width:150%;height:104.166667%;left:-14.84375%;bottom:-2.604167%}.duel-motion2d-kneel{position:absolute;display:none;pointer-events:none;width:168.75%;height:104.166667%;left:-23.4375%;bottom:-2.604167%}.duel-stage .fighter-foe[data-motion2d=kneel]>.duel-motion2d-kneel{display:block}.duel-stage .fighter-foe[data-motion2d=kneel]>.duel-motion2d-enemy{display:none}.duel-stage .fighter-player[data-motion2d]>img,.duel-stage .fighter-foe[data-motion2d]>img{opacity:0!important;visibility:hidden!important;animation:none!important}.duel-stage [data-motion2d]>.duel-motion2d-player,.duel-stage [data-motion2d]>.duel-motion2d-enemy{display:block}.duel-stage .fighter-foe[data-motion2d]:after{left:calc(50% + var(--duel-motion-shadow-x, 0%))}.duel-audio-controls{position:absolute;z-index:25;right:16px;top:78px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:310px;padding:6px 9px;background:#0c181be8;border:1px solid #50625d;color:#d5ceaf;font-size:12px}.duel-audio-controls button{color:#e4d49a;background:#202f2b;border:1px solid #64716a;padding:3px 9px;cursor:pointer}.duel-audio-controls label{display:flex;gap:7px;align-items:center}.duel-audio-controls input{width:82px;accent-color:#c6b479;cursor:pointer}.duel-audio-controls output{min-width:2em}.duel-audio-controls span{flex-basis:100%;color:#d7c899}.duel-audio-controls :focus-visible{outline:2px solid #e0cb89;outline-offset:2px}.duel-stage .fighter-player[data-spear-motion=armored] img.duel-held-portrait{opacity:0!important;visibility:hidden!important}.duel-stage .fighter-player[data-spear-motion=armored] img.duel-armored-standing{opacity:calc(1 - var(--duel-cast-blend,0))!important;visibility:visible!important}.duel-scene-view{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;transform:translateZ(0) scale(1);will-change:transform}.duel-scene-ground,.duel-scene-ground-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.duel-ceremony-card{position:absolute;left:25%;top:15%;width:50%;z-index:8;text-align:center;padding:14px 28px;background:linear-gradient(90deg,transparent,#071516e8 20%,#071516e8 80%,transparent);border-block:1px solid #b5a67555;color:#ede1b8;pointer-events:none;opacity:var(--duel-ceremony-opacity,1)}.duel-ceremony-card b{font-size:clamp(18px,2vw,25px);letter-spacing:3px;font-weight:400}.duel-ceremony-card p{margin:7px 0;color:#bfcec5;font-size:14px}.duel-ceremony-end{left:auto;top:auto;right:4%;bottom:8%;width:46%}.duel-ceremony-skip{position:absolute;right:22px;bottom:22px;z-index:9;padding:7px 16px;border:1px solid #b1b29288;background:#142323e8;color:#e5d8ac;font:15px Songti SC,serif;cursor:pointer}.duel-stage:is([data-duel-ceremony=opening],[data-duel-ceremony=ending]) :is(.duel-hud,.duel-hit-label){visibility:hidden;pointer-events:none}.duel-stage[data-duel-scene=true] .duel-verdict{left:auto;right:4%;bottom:5%;width:46%;max-height:50%;overflow:auto}@media (max-width:800px){.duel-ceremony-card{left:15%;width:70%}.duel-ceremony-end{left:auto;right:3%;width:48%;padding:12px}.duel-ceremony-card p{font-size:12px}}
