:root {
  --bg:#050503; --panel:rgba(12,10,5,.86); --panel2:rgba(18,14,7,.92);
  --gold:#d6aa45; --gold2:#f0d889; --line:rgba(214,170,69,.55);
  --text:#f7e9c0; --muted:#cbbd91; --green:#71d06c; --red:#c95f4d; --shadow:rgba(0,0,0,.7);
}
*{box-sizing:border-box} html,body{min-height:100%}
body{margin:0;color:var(--text);background:var(--bg);font-family:Georgia,"Noto Serif SC","Songti SC",SimSun,serif;overflow-x:hidden}
.bg-layer{position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 50% 8%,rgba(214,170,69,.18),transparent 25%),linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.94)),repeating-linear-gradient(90deg,transparent 0 56px,rgba(255,255,255,.015) 56px 57px),linear-gradient(90deg,rgba(60,43,17,.45),rgba(0,0,0,.92))}
.bg-layer:before{content:"";position:absolute;inset:0;opacity:.16;background:linear-gradient(90deg,transparent 0 12%,#111 12% 18%,transparent 18% 24%,#0a0a08 24% 28%,transparent 28%),linear-gradient(0deg,#000 0 16%,transparent 16%);filter:blur(.2px)}
.app-shell{width:min(1180px,96vw);margin:0 auto;padding:42px 0 22px}.hero{text-align:center;margin-bottom:18px}.seal{font-size:clamp(54px,8vw,112px);font-weight:800;letter-spacing:.28em;margin-left:.28em;line-height:1;color:#f3e6b5;text-shadow:0 3px 0 #735c25,0 0 34px rgba(255,225,137,.25)}
h1{position:absolute;left:-9999px}.subtitle{color:#f1c651;font-size:clamp(20px,3vw,34px);margin:12px 0 8px;letter-spacing:.07em}.tagline{color:var(--gold2);margin:0;font-size:16px;letter-spacing:.06em}.screen{display:none}.screen.active{display:grid}
#start-screen{grid-template-columns:1fr minmax(360px,560px) 1fr;gap:18px;align-items:stretch}.game-layout{grid-template-columns:minmax(420px,720px) minmax(280px,360px);gap:18px;align-items:start}.game-top-bar{grid-column:1/-1;display:flex;justify-content:flex-start;margin-bottom:-4px}.top-back-btn{min-width:92px}.current-fate-block{margin-bottom:18px}.log-section-title{margin-top:10px}.log-actions{justify-content:stretch}.log-actions .mini-btn{flex:1;min-width:0}.log-card{position:sticky;top:16px}.ending-layout{place-items:center}.side-card,.center-card{border:1px solid var(--line);background:linear-gradient(180deg,rgba(22,16,8,.88),rgba(5,5,3,.88));box-shadow:0 12px 38px var(--shadow),inset 0 0 28px rgba(214,170,69,.06);border-radius:7px}.side-card{padding:20px;min-height:330px}.center-card{padding:26px 30px}.start-card{text-align:center;min-height:520px}.story-card{min-height:620px}.ending-card{width:min(760px,92vw);text-align:center}h2{margin:0 0 12px;color:#ffe18a;text-align:center;letter-spacing:.06em}.side-card h2{font-size:18px}.center-card h2{font-size:clamp(24px,3vw,34px)}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:12px 0 16px;opacity:.6}.rules-card p{font-size:14px;line-height:1.8;color:var(--text)}.icon{color:#f2c75b;margin-right:8px}.first-play-note,.load-warning{color:var(--gold2);font-size:14px;line-height:1.8;border:1px solid rgba(214,170,69,.24);background:rgba(214,170,69,.06);padding:10px 12px;margin:10px 0 24px;border-radius:6px}.load-warning{color:#ffdf9a;margin-top:20px}.start-card p{line-height:1.9}.primary-btn,.ghost-btn,.mini-btn,.choice-btn{font-family:inherit;cursor:pointer;border-radius:6px;transition:transform .08s ease,filter .15s ease,border-color .15s ease}.primary-btn{display:inline-block;width:min(420px,100%);margin:20px auto 8px;padding:18px 28px;border:1px solid #f1cf72;background:linear-gradient(180deg,#f1ca69,#b8892d);color:#fff7d8;font-size:26px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.5)}.ghost-btn,.mini-btn{border:1px solid rgba(214,170,69,.5);background:rgba(0,0,0,.24);color:var(--gold2);padding:10px 14px}.subtle{opacity:.7}.primary-btn:hover,.ghost-btn:hover,.mini-btn:hover,.choice-btn:hover{filter:brightness(1.08)}.primary-btn:active,.ghost-btn:active,.mini-btn:active,.choice-btn:active{transform:translateY(1px)}.small{color:var(--muted);font-size:12px;line-height:1.7}.hidden{display:none!important}.route-badge{border:1px solid rgba(214,170,69,.35);color:#ffe7a1;padding:10px;margin-bottom:12px;border-radius:5px;font-size:13px;line-height:1.6}.stat-row,.progress-row{margin:12px 0}.stat-label,.progress-label{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:6px}.bar{height:8px;border:1px solid rgba(214,170,69,.36);border-radius:999px;overflow:hidden;background:rgba(0,0,0,.35)}.bar>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#a77c27,#f2cf70)}.node-meta{color:var(--muted);text-align:center;font-size:13px;margin-bottom:8px}.story-body{color:#f5e6bd;font-size:16px;line-height:2.05;white-space:pre-wrap}.choices{display:grid;gap:12px;margin-top:24px}.choice-btn{text-align:left;padding:14px 16px;border:1px solid rgba(214,170,69,.45);background:rgba(8,6,2,.66);color:var(--text);font-size:15px;line-height:1.75}.choice-key{display:inline-block;color:#ffe18a;font-weight:700;margin-right:8px}.choice-prob{color:var(--green);font-size:12px;margin-left:8px}.choice-feedback{margin-top:18px;border:1px solid rgba(214,170,69,.35);border-radius:6px;background:rgba(214,170,69,.07);padding:12px 14px;color:var(--muted);line-height:1.8;font-size:14px}.log-list{max-height:360px;overflow:auto;padding-right:4px}.log-item{border-left:2px solid rgba(214,170,69,.55);padding:8px 0 8px 10px;color:var(--muted);font-size:13px;line-height:1.6;margin-bottom:8px}.log-item strong{color:var(--gold2)}.button-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.button-row.vertical{flex-direction:column;margin-top:18px}.unlock-item{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);border-bottom:1px solid rgba(214,170,69,.18);padding:10px 0}.unlock-item.done{color:var(--green)}.unlock-item.locked{opacity:.7}.node-progress{color:var(--muted);font-size:13px;line-height:1.8;margin-bottom:10px}.developer-panel label{display:block;color:var(--muted);margin-bottom:8px;font-size:13px}.developer-panel select{width:100%;background:#0b0905;color:var(--text);border:1px solid rgba(214,170,69,.45);padding:8px;border-radius:5px;margin-bottom:8px}code{color:#ffe18a}.footer{text-align:center;color:rgba(244,224,174,.55);margin-top:18px;font-size:12px}
@media(max-width:980px){#start-screen,.game-layout{grid-template-columns:1fr}.game-top-bar{justify-content:flex-start;margin-bottom:0}.log-card{position:static}.side-card{min-height:auto}.seal{letter-spacing:.12em;margin-left:.12em}.app-shell{padding-top:26px}.center-card{padding:22px 18px}.story-body{font-size:15px;line-height:1.95}.primary-btn{font-size:22px}}
.choice-btn:disabled{opacity:.58;cursor:wait;filter:grayscale(.25)}


/* 信物展览馆 */
.hero{position:relative}.museum-btn{margin:18px auto 0;display:inline-grid;place-items:center;gap:4px;width:92px;height:92px;border-radius:22px;border:1px solid rgba(240,216,137,.72);background:radial-gradient(circle at 50% 30%,rgba(240,216,137,.22),rgba(49,34,12,.78));color:#fff0b6;box-shadow:0 10px 30px rgba(0,0,0,.48),inset 0 0 24px rgba(214,170,69,.16);font-family:inherit;cursor:pointer;letter-spacing:.08em;transition:transform .12s ease,filter .16s ease,border-color .16s ease}.museum-btn:before{content:"";width:34px;height:24px;border:2px solid rgba(255,230,159,.88);border-bottom-width:6px;border-radius:4px 4px 2px 2px;box-shadow:inset 10px 0 0 rgba(255,230,159,.18),inset -10px 0 0 rgba(255,230,159,.18)}.museum-btn:hover{transform:translateY(-2px);filter:brightness(1.1);border-color:#ffe18a}.museum-icon-text{font-weight:800;font-size:18px;text-shadow:0 1px 3px rgba(0,0,0,.6)}.museum-count{font-size:12px;color:var(--gold2);opacity:.9;letter-spacing:0}.modal-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:22px;background:rgba(0,0,0,.72);backdrop-filter:blur(3px)}.modal-overlay.hidden{display:none!important}.museum-modal,.relic-unlock-card{position:relative;width:min(1040px,94vw);max-height:min(84vh,860px);overflow:auto;border:1px solid rgba(240,216,137,.68);border-radius:10px;background:linear-gradient(180deg,rgba(24,17,8,.96),rgba(6,5,3,.96));box-shadow:0 20px 70px rgba(0,0,0,.82),inset 0 0 42px rgba(214,170,69,.08);padding:26px}.modal-close{position:absolute;right:16px;top:12px;width:36px;height:36px;border-radius:999px;border:1px solid rgba(214,170,69,.5);background:rgba(0,0,0,.22);color:#ffe18a;font-size:26px;line-height:1;cursor:pointer}.museum-summary{color:var(--muted);text-align:center;line-height:1.8;margin:0 auto 20px;max-width:760px}.museum-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.museum-empty{grid-column:1/-1;text-align:center;color:var(--muted);border:1px dashed rgba(214,170,69,.35);border-radius:8px;padding:28px;line-height:1.9}.relic-card{border:1px solid rgba(214,170,69,.36);background:rgba(0,0,0,.22);border-radius:9px;padding:12px;box-shadow:inset 0 0 18px rgba(214,170,69,.05)}.relic-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:7px;border:1px solid rgba(214,170,69,.24);background:#120e08;display:block}.relic-card h3{font-size:16px;color:#ffe18a;margin:10px 0 4px;line-height:1.45}.museum-route{font-size:12px;color:#d6aa45;margin:0 0 6px;text-align:center}.relic-card .museum-route{text-align:left}.relic-card p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.relic-card small{display:block;color:rgba(244,224,174,.62);font-size:11px;margin-top:8px}.relic-unlock-card{width:min(560px,94vw);text-align:center;overflow:hidden}.relic-unlock-img{width:min(310px,74vw);aspect-ratio:1/1;object-fit:cover;border-radius:10px;border:1px solid rgba(214,170,69,.5);box-shadow:0 0 34px rgba(214,170,69,.22);background:#120e08;margin:8px auto 14px;display:block}.relic-unlock-card h3{font-size:24px;line-height:1.45;color:#ffe18a;margin:8px 0}.relic-primary{width:auto;font-size:18px;padding:12px 20px}.unlock-burst{position:absolute;inset:auto 0 48% 0;margin:auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,225,138,.22),transparent 62%);filter:blur(1px);animation:relicPulse 1.6s ease-out infinite;pointer-events:none}.relic-unlock-card>*:not(.unlock-burst){position:relative}@keyframes relicPulse{0%{transform:scale(.82);opacity:.42}70%{transform:scale(1.16);opacity:.12}100%{transform:scale(1.25);opacity:0}}@media(max-width:980px){.museum-btn{width:82px;height:82px}.museum-grid{grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:12px}.museum-modal,.relic-unlock-card{padding:22px 16px}.relic-card{padding:10px}.relic-card h3{font-size:14px}.museum-summary{font-size:13px}.modal-overlay{padding:14px}}


/* 航海加载画面 */
body.is-loading{overflow:hidden}.loading-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:clamp(12px,2.4vw,34px);background:radial-gradient(circle at 35% 25%,#2b2115 0,#090908 54%,#020202 100%);opacity:1;transition:opacity .22s ease}.loading-overlay.hidden{display:none!important}.loading-overlay.is-leaving{opacity:0;pointer-events:none}.loading-panel{width:min(1500px,100%);display:grid;gap:clamp(14px,2vw,24px)}.loading-visual{--loading-progress:0%;--loading-solid:0%;--loading-fade:4%;--sharp-opacity:0;position:relative;width:100%;aspect-ratio:1672/941;max-height:68vh;overflow:hidden;border:1px solid rgba(246,214,138,.52);border-radius:10px;background:#050505;box-shadow:0 24px 70px rgba(0,0,0,.72),0 0 44px rgba(214,170,69,.12);isolation:isolate}.loading-art{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;object-position:center;background:#050505;user-select:none;-webkit-user-drag:none}.loading-art-blurred{filter:blur(15px) brightness(.58) saturate(.72);opacity:.9}.loading-art-sharp{opacity:var(--sharp-opacity);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 var(--loading-solid),transparent var(--loading-fade),transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 var(--loading-solid),transparent var(--loading-fade),transparent 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transition:opacity .15s linear}.loading-visual.is-complete .loading-art-sharp{-webkit-mask-image:none;mask-image:none;opacity:1}.loading-vignette{position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 80px rgba(0,0,0,.5);background:linear-gradient(180deg,rgba(0,0,0,.06),transparent 65%,rgba(0,0,0,.24))}.loading-copy{width:min(1180px,96%);margin:0 auto;color:#f4e0ae}.loading-status{min-height:1.6em;margin:0 0 8px;text-align:center;color:#ffe39a;font-size:clamp(15px,1.6vw,21px);letter-spacing:.08em;text-shadow:0 2px 8px rgba(0,0,0,.8)}.loading-progress-readout{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px;color:#d9bd79;font-size:13px;letter-spacing:.08em}.loading-progress-readout strong{color:#ffe18a;font-size:18px;font-variant-numeric:tabular-nums}.loading-progress-meter{width:100%}.loading-progress-track{position:relative;height:18px;border:1px solid rgba(242,207,112,.68);border-radius:4px;overflow:hidden;background:rgba(0,0,0,.64);box-shadow:inset 0 0 12px rgba(0,0,0,.7)}.loading-progress-fill{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#8d6421,#d7a943 45%,#ffe08a);box-shadow:0 0 18px rgba(255,215,119,.42);transition:width .16s linear}.loading-tick-lines{position:absolute;inset:0;display:flex;justify-content:space-between;pointer-events:none}.loading-tick-lines span{width:1px;height:100%;background:rgba(255,244,207,.24)}.loading-tick-lines span:first-child,.loading-tick-lines span:last-child{opacity:0}.loading-scale{display:flex;justify-content:space-between;margin-top:7px;color:rgba(244,224,174,.76);font-size:clamp(9px,1vw,12px);font-variant-numeric:tabular-nums}.loading-scale span{width:2.4em;text-align:center}.loading-scale span:first-child{text-align:left}.loading-scale span:last-child{text-align:right}.loading-hint{text-align:center;margin:9px 0 0;color:rgba(244,224,174,.58);font-size:12px;letter-spacing:.04em}@media(max-width:700px){.loading-overlay{padding:10px}.loading-panel{gap:14px}.loading-visual{border-radius:7px;max-height:none}.loading-copy{width:100%}.loading-progress-track{height:15px}.loading-scale{font-size:8px}.loading-scale span{width:2em}.loading-status{font-size:14px}.loading-hint{font-size:10px}}@media(prefers-reduced-motion:reduce){.loading-overlay,.loading-progress-fill,.loading-art-sharp{transition:none!important}}

/* Simplified / Traditional Chinese switch */
.language-switch{position:absolute;top:2px;right:0;display:flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid rgba(214,170,69,.42);border-radius:999px;background:rgba(8,6,2,.56);box-shadow:0 6px 20px rgba(0,0,0,.28);backdrop-filter:blur(5px);z-index:3}.language-option{appearance:none;border:0;background:transparent;color:rgba(244,224,174,.62);font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.04em;padding:2px 5px;cursor:pointer;transition:color .16s ease,text-shadow .16s ease,transform .12s ease}.language-option:hover{color:#ffe18a;transform:translateY(-1px)}.language-option.active{color:#ffe18a;text-shadow:0 0 12px rgba(255,225,138,.36)}.language-option:focus-visible{outline:1px solid #ffe18a;outline-offset:3px;border-radius:4px}.language-divider{color:rgba(214,170,69,.48);font-size:12px;user-select:none}@media(max-width:700px){.language-switch{position:relative;top:auto;right:auto;width:max-content;margin:0 auto 14px;padding:6px 10px}.language-option{font-size:12px}}
