:root{--felt: #12241c;--felt-deep: #0c1a14;--felt-panel: #183026;--gold: #c9a55c;--gold-dim: #8a7444;--ink: #e8e2d4;--ink-dim: #9aa398;--danger: #b05c4a;--line: #2a4436}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--felt-deep);color:var(--ink);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.7}.num,.metric-value,#round-indicator{font-family:SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}#app{max-width:720px;margin:0 auto;padding:24px 20px 64px;min-height:100vh;display:flex;flex-direction:column;gap:20px}#hud{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px 16px;padding:16px;background:var(--felt-panel);border:1px solid var(--line);border-radius:10px}.metric{display:flex;flex-direction:column;gap:4px}.metric-label{font-size:12px;color:var(--ink-dim);letter-spacing:2px}.metric .bar{height:6px;background:var(--felt-deep);border-radius:3px;overflow:hidden}.metric .fill{height:100%;width:50%;background:var(--gold);border-radius:3px;transition:width .5s ease}#metric-mentality .fill{background:#7fa88f}#metric-health .fill{background:#a87f7f}.metric-value{font-size:15px;color:var(--ink)}#round-indicator{grid-column:1 / 2;color:var(--gold);font-size:14px;letter-spacing:1px}#identity-badge{grid-column:2 / 4;text-align:right;font-size:13px;color:var(--ink-dim);letter-spacing:3px}#scene{background:var(--felt);border:1px solid var(--line);border-radius:10px;padding:28px 26px;min-height:180px}#scene-title{font-family:Songti SC,STSong,SimSun,serif;font-size:24px;color:var(--gold);letter-spacing:4px;margin-bottom:6px}#scene-meta{font-size:12px;color:var(--ink-dim);letter-spacing:1px;margin-bottom:16px}#scene-text{font-size:16px;color:var(--ink);white-space:pre-wrap;cursor:pointer}#choices{display:flex;flex-direction:column;gap:10px}.choice{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;background:var(--felt-panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:15px;text-align:left;cursor:pointer;transition:border-color .2s ease,transform .15s ease}.choice:hover{border-color:var(--gold-dim);transform:translate(4px)}.choice .ev-hint{font-size:12px;color:var(--ink-dim);white-space:nowrap}.choice .ev-hint.best{color:#7fa88f}.choice .ev-hint.bad{color:var(--danger)}#log{border-top:1px solid var(--line);padding-top:12px;font-size:13px;color:var(--ink-dim);max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}#log p{margin:0}#log p.sys{color:var(--gold-dim)}.m-normal .choice{opacity:1;filter:none}.m-anxious .choice{opacity:.8}.m-tilt .choice{opacity:.5;filter:blur(2px)}.m-tilt #scene-text{opacity:.85}@keyframes jitter{0%{transform:translate(0) rotate(0)}20%{transform:translate(-2px,1px) rotate(-.4deg)}40%{transform:translate(2px,-1px) rotate(.4deg)}60%{transform:translate(-1px,-2px) rotate(-.3deg)}80%{transform:translate(1px,2px) rotate(.3deg)}to{transform:translate(0) rotate(0)}}.m-collapse .choice{animation:jitter .18s linear infinite}.m-collapse #scene-text{animation:jitter .25s linear infinite}#ending-panel{background:var(--felt);border:1px solid var(--gold-dim);border-radius:12px;padding:40px 32px;text-align:center;display:flex;flex-direction:column;gap:16px}#ending-panel .end-reason{font-size:13px;color:var(--ink-dim);letter-spacing:3px}#ending-panel .title-name{font-family:Songti SC,STSong,SimSun,serif;font-size:48px;letter-spacing:10px;color:var(--ink)}#ending-panel .rarity-common .title-name{color:#d8d2c4}#ending-panel .rarity-rare .title-name{color:var(--gold)}#ending-panel .rarity-legend .title-name{color:var(--danger)}#ending-panel .epitaph{font-size:16px;color:var(--gold);font-style:italic}#ending-panel .seed{font-size:12px;color:var(--ink-dim)}#ending-panel .stats-lines{font-size:13px;color:var(--ink-dim);text-align:left}#ending-panel svg{width:100%;height:120px}#ending-panel .replay{margin-top:8px;padding:12px 32px;background:var(--gold);color:var(--felt-deep);border:none;border-radius:8px;font-size:16px;letter-spacing:4px;cursor:pointer}#ending-panel .gallery{font-size:12px;color:var(--ink-dim)}.card-line{display:flex;align-items:center;justify-content:center;gap:10px}.card-line-label{font-size:12px;color:var(--ink-dim);letter-spacing:2px;white-space:nowrap}.card-group{display:inline-flex;gap:6px}.playing-card{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:32px;padding:5px 6px 4px;background:#f2edde;border:1px solid #d8d2c0;border-radius:6px;box-shadow:0 2px 5px #00000059;font-family:SF Mono,Menlo,Consolas,monospace;font-weight:700;line-height:1.15}.playing-card .pc-rank{font-size:16px}.playing-card .pc-suit{font-size:13px}.playing-card.suit-red{color:#a83a2e}.playing-card.suit-black{color:#26292b}#scene-cards{display:flex;flex-direction:column;gap:8px;margin:4px 0 14px}#scene-cards:empty{display:none}.result-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#050a08b8;display:flex;align-items:center;justify-content:center;padding:24px;filter:none!important;animation:none!important}.result-modal{position:relative;overflow:hidden;width:100%;max-width:440px;background:var(--felt-panel);border:1px solid var(--gold);border-radius:14px;padding:28px 26px 22px;box-shadow:0 18px 60px #0000008c;display:flex;flex-direction:column;gap:14px;cursor:pointer;animation:rm-pop .26s ease}@keyframes rm-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.rm-title{font-family:Songti SC,STSong,SimSun,serif;font-size:18px;color:var(--gold);letter-spacing:4px;text-align:center}.rm-amount{display:flex;align-items:baseline;justify-content:center;gap:8px;font-family:SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.rm-amount .rm-num{font-size:44px;font-weight:700}.rm-amount .rm-arrow{font-size:22px}.rm-amount.win{color:#c4463a}.rm-amount.lose{color:#3f9e6b}.rm-amount.push{color:var(--gold)}.rm-text{font-size:14px;color:var(--ink);line-height:1.8}.rm-fx{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.fx-tag{font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid;letter-spacing:1px}.fx-tag.pos{color:#c4463a;border-color:#c4463a99}.fx-tag.neg{color:#3f9e6b;border-color:#3f9e6b99}.rm-continue{align-self:center;margin-top:4px;padding:10px 36px;background:var(--gold);color:var(--felt-deep);border:none;border-radius:8px;font-size:15px;letter-spacing:4px;cursor:pointer}.rm-continue:hover{background:#d8b876}.rm-hint{text-align:center;font-size:11px;color:var(--ink-dim);letter-spacing:2px}.rm-fireworks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.fp{position:absolute;left:50%;top:40%;width:7px;height:7px;border-radius:50%;opacity:0;animation:fp-burst 1s ease-out forwards;animation-delay:var(--fp-delay, 0s)}.fp-gold{background:var(--gold)}.fp-red{background:#c4463a}@keyframes fp-burst{0%{transform:translate(0) scale(1);opacity:1}70%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}#toast-layer{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:900;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;max-width:min(440px,92vw)}.toast{background:#0e1c16f5;border:1px solid var(--gold-dim, #8a7444);border-left:3px solid var(--gold, #c9a55c);color:var(--ink, #d8ded9);padding:10px 16px;border-radius:8px;font-size:13px;line-height:1.65;box-shadow:0 6px 20px #00000073;animation:toast-in .32s ease-out;transition:opacity .55s ease,transform .55s ease}.toast-h-low,.toast-m-collapse{border-left-color:#b05c4a}.toast-out{opacity:0;transform:translateY(-6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}body.ending-mode{background:radial-gradient(circle at 18% 22%,rgba(201,165,92,.05),transparent 34%),radial-gradient(circle at 82% 68%,rgba(201,165,92,.04),transparent 30%),radial-gradient(circle at 50% 50%,rgba(23,48,38,.9),transparent 70%),var(--felt-deep)}body.ending-mode #app{max-width:none;padding:0;gap:0;min-height:100vh}.ending-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060c098c;backdrop-filter:blur(22px) brightness(.85);-webkit-backdrop-filter:blur(22px) brightness(.85);z-index:0;pointer-events:none}.ending-poster{position:relative;z-index:1;width:100%;max-width:420px;margin:0 auto;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:20px 24px 26px;background:linear-gradient(180deg,#12241cf5,#0c1a14fa);border-left:1px solid var(--line);border-right:1px solid var(--line);filter:none!important}.ending-poster .pz,.ending-poster .ep-line{opacity:0;transform:translateY(10px);transition:opacity .65s ease,transform .65s ease}.ending-poster .ep-line{transform:translateY(6px)}.ending-poster .pz.pz-in,.ending-poster .ep-line.ep-in{opacity:1;transform:none}.pz-top{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;border-bottom:1px solid rgba(42,68,54,.7)}.pz-top .brand{font-size:12px;letter-spacing:4px;color:var(--ink-dim)}.pz-top .seed{font-size:12px;letter-spacing:1px;color:var(--gold-dim)}.pz-title{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:26px 0 18px}.title-frame{padding:26px 34px;border:1px solid #6b7368;border-radius:4px}.ending-poster.rarity-rare .title-frame{border:1px solid var(--gold);box-shadow:0 0 24px #c9a55c1f}.ending-poster.rarity-legend .title-frame{border:1px solid var(--danger);animation:legendBreath 2.6s ease-in-out infinite}@keyframes legendBreath{0%,to{box-shadow:0 0 10px #b05c4a26}50%{box-shadow:0 0 30px #b05c4a73}}.title-name{font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(52px,16.5vw,82px);line-height:1.15;letter-spacing:10px;text-indent:10px;color:#d8d2c4;text-align:center}.ending-poster.rarity-rare .title-name{color:var(--gold)}.ending-poster.rarity-legend .title-name{color:#c96a56}.rarity-tag{font-size:11px;letter-spacing:6px;text-indent:6px;color:var(--ink-dim)}.ending-poster.rarity-rare .rarity-tag{color:var(--gold)}.ending-poster.rarity-legend .rarity-tag{color:#c96a56}.legend-rate{font-size:11px;letter-spacing:1px;color:var(--gold-dim)}.pz-epitaph{text-align:center;padding:4px 6px 0}.ep-line{font-family:Songti SC,STSong,SimSun,serif;font-size:17px;line-height:2;color:#f0ead9;letter-spacing:1px}.pz-ep-meta{margin-top:8px}.end-reason{font-size:12px;letter-spacing:4px;color:var(--ink-dim);margin-bottom:8px}.narrative{font-size:12.5px;line-height:2;color:var(--ink-dim);max-width:34em;margin:0 auto;text-align:center}.pz-data{padding:14px 0 4px;display:flex;flex-direction:column;gap:12px}.curve{display:block;width:100%;height:110px}.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.data-cell{background:#18302680;border:1px solid rgba(42,68,54,.8);border-radius:8px;padding:9px 12px 8px}.data-cell.wide{grid-column:1 / -1;text-align:center}.data-label{font-size:11px;letter-spacing:2px;color:var(--ink-dim);margin-bottom:2px}.data-value{font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums}.data-cell.wide .data-value{font-size:24px}.data-value .unit{font-size:12px;color:var(--ink-dim)}.data-value.profit-pos{color:#7fa88f}.data-value.profit-neg{color:var(--danger)}.data-sub{margin-top:2px}.id-badge{font-size:11px;letter-spacing:2px;color:var(--gold)}.pz-guide{margin-top:auto;padding-top:16px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.guide-text{font-size:13px;letter-spacing:2px;color:var(--gold-dim)}.gallery-line{font-size:11px;letter-spacing:2px;color:var(--ink-dim)}.replay{margin-top:6px;padding:12px 44px;background:var(--gold);color:var(--felt-deep);border:none;border-radius:8px;font-size:15px;letter-spacing:6px;text-indent:6px;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease}.replay:hover{transform:translateY(-1px);box-shadow:0 4px 18px #c9a55c40}.ending-poster.warm{background:linear-gradient(180deg,#1e2618f5,#141a10fa)}.ending-poster.warm .title-frame{border-color:var(--gold-dim)}.ending-poster.warm .title-name{color:#e2cf9e}.perf-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;background:var(--felt-deep);transition:background .9s ease,opacity .9s ease}.perf-overlay.warm{background:#101a10}.perf-overlay.hard,.perf-overlay.to-black{background:#000}.perf-overlay.fade-out{opacity:0;pointer-events:none}.perf-stage{transition:opacity .6s ease}.perf-stage.gone{opacity:0}.perf-quote{opacity:0;transform:translateY(4px);transition:opacity .9s ease,transform .9s ease;font-size:13.5px;letter-spacing:2px;line-height:2.2;color:var(--ink-dim);text-align:center;padding:0 34px;max-width:30em}.perf-quote.on{opacity:1;transform:none}.perf-skip{position:absolute;right:22px;bottom:26px;background:none;border:1px solid var(--line);border-radius:999px;color:var(--ink-dim);font-size:12px;letter-spacing:2px;padding:8px 16px;cursor:pointer}.perf-skip:hover{color:var(--gold);border-color:var(--gold-dim)}.perf-roll{text-align:center}.perf-roll-label{font-size:12px;letter-spacing:6px;color:var(--ink-dim);margin-bottom:8px}.perf-roll-num{font-size:52px;color:var(--gold);font-variant-numeric:tabular-nums;animation:rollFlicker .12s linear infinite}.perf-roll-num.zeroed{color:var(--danger);animation:none}@keyframes rollFlicker{0%,to{opacity:1}50%{opacity:.82}}.perf-settle-inner{font-size:15px;letter-spacing:6px;color:var(--ink-dim);animation:endSettle 1.8s linear forwards}@keyframes endSettle{0%{transform:translate(0);filter:blur(2px);opacity:.7}15%{transform:translate(-4px,2px)}30%{transform:translate(3px,-2px);filter:blur(1.6px)}45%{transform:translate(-2px,1px)}60%{transform:translate(1.5px,-1px);filter:blur(1px);opacity:.6}75%{transform:translate(-1px,.5px)}90%{transform:translate(.5px,-.5px);filter:blur(.3px)}to{transform:translate(0);filter:blur(0);opacity:.5}}.perf-freeze-inner{font-size:15px;letter-spacing:6px;color:var(--ink-dim);animation:endBuzz .16s linear infinite;filter:blur(2px)}.perf-stage.frozen .perf-freeze-inner{animation:none;filter:none;opacity:.45}@keyframes endBuzz{0%{transform:translate(0) rotate(0)}25%{transform:translate(-2px,1px) rotate(-.4deg)}50%{transform:translate(2px,-1px) rotate(.4deg)}75%{transform:translate(-1px,-2px) rotate(-.3deg)}to{transform:translate(1px,2px) rotate(.3deg)}}.perf-curtain{display:flex;flex-direction:column-reverse;gap:14px;align-items:center}.curtain-bar{width:200px;text-align:center;font-size:12px;letter-spacing:6px;color:var(--ink-dim);border:1px solid var(--line);border-radius:6px;padding:10px 0;animation:curtainOut 1s ease forwards}.curtain-bar:nth-child(1){animation-delay:.05s}.curtain-bar:nth-child(2){animation-delay:.3s}.curtain-bar:nth-child(3){animation-delay:.55s}@keyframes curtainOut{to{opacity:0;transform:translateY(14px)}}.perf-applause{text-align:center;animation:applausePulse .5s ease-in-out infinite}.ap-amount{font-size:46px;color:var(--gold);font-variant-numeric:tabular-nums;text-shadow:0 0 26px rgba(201,165,92,.5)}.ap-id{margin-top:8px;font-size:13px;letter-spacing:4px;color:var(--gold-dim)}@keyframes applausePulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@media (max-width: 380px){.ending-poster{padding:16px 18px 20px}.title-frame{padding:20px 24px}.data-value{font-size:17px}}@media (max-height: 720px){.pz-title{padding:16px 0 10px}.title-frame{padding:18px 26px}.title-name{font-size:clamp(44px,14vw,64px)}.curve{height:90px}.narrative{display:none}}
