*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#1a0f07;--bg-panel:#231310;--text:#d4b896;--text-light:#e8d5c0;--accent:#c9a55c;--accent-glow:#e8c97a;--border:#5a3a28;--btn-bg:#2e1a10;--btn-hover:#3d2416;--btn-border:#8b6914;--danger:#a04030;--font:"STSong","SimSun","Noto Serif SC","Source Han Serif SC",serif}
body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;display:flex;justify-content:center;align-items:center;background-image:radial-gradient(ellipse at 50% 0%,rgba(180,130,60,0.08) 0%,transparent 60%),radial-gradient(ellipse at 50% 100%,rgba(120,60,20,0.06) 0%,transparent 60%)}
#app{width:100%;max-width:720px;min-height:100vh;padding:20px;display:flex;flex-direction:column}
.screen{display:none;flex-direction:column;flex:1}
.screen.active{display:flex}
#title-screen{justify-content:center;align-items:center;text-align:center;gap:28px}
.title-icon{font-size:80px;animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.title-text{font-size:42px;color:var(--accent);letter-spacing:8px;text-shadow:0 0 40px rgba(200,160,60,0.4)}
.title-sub{font-size:16px;color:#8a7060;letter-spacing:4px}
.btn{font-family:var(--font);font-size:18px;padding:14px 36px;background:var(--btn-bg);color:var(--accent);border:1px solid var(--btn-border);cursor:pointer;letter-spacing:3px;transition:all 0.3s}
.btn:hover{background:var(--btn-hover);color:var(--accent-glow);border-color:var(--accent-glow);box-shadow:0 0 20px rgba(200,160,60,0.2)}
.btn:active{transform:scale(0.97)}
.btn-small{font-size:15px;padding:10px 20px;letter-spacing:2px}
#setup-screen{justify-content:center;align-items:center;gap:20px}
.setup-title{font-size:26px;color:var(--accent);letter-spacing:4px}
.input-group{display:flex;flex-direction:column;gap:6px;width:100%;max-width:360px}
.input-group label{font-size:15px;color:var(--text-light);letter-spacing:2px}
.input-group input,.input-group select{font-family:var(--font);font-size:17px;padding:12px 16px;background:#1a0f08;color:var(--accent-glow);border:1px solid var(--border);outline:none;letter-spacing:2px;transition:border-color 0.3s}
.input-group input:focus,.input-group select:focus{border-color:var(--btn-border)}
.input-group select option{background:#1a0f08;color:var(--accent-glow)}
.api-hint{font-size:13px;color:#8a7060;text-align:center;max-width:360px;line-height:1.8}
.api-hint a{color:var(--accent)}
#game-screen{gap:16px}
.game-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;flex-wrap:wrap;gap:4px}
.game-era-label{color:var(--accent);letter-spacing:2px}
.game-time-display{color:var(--accent-glow);font-size:17px;letter-spacing:2px;text-align:center;width:100%;padding:2px 0;text-shadow:0 0 12px rgba(200,160,60,0.3)}
.game-player-info{color:#8a7060}
.game-round{color:#6a5040;font-size:12px;width:100%}
.scene-area{text-align:center;font-size:60px;padding:16px 0;animation:fadeIn 0.8s}
.narrative-area{flex:1;background:var(--bg-panel);border:1px solid var(--border);padding:20px;min-height:140px;line-height:2;font-size:17px;letter-spacing:1.5px;animation:fadeIn 0.5s;overflow-y:auto;max-height:40vh}
.narrative-area .cursor::after{content:"▎";animation:blink 0.9s step-end infinite}
@keyframes blink{50%{opacity:0}}
.choices-area{display:flex;flex-direction:column;gap:10px;animation:fadeIn 0.6s}
.choice-btn{font-family:var(--font);font-size:16px;padding:14px 20px;background:var(--btn-bg);color:var(--text-light);border:1px solid var(--border);cursor:pointer;letter-spacing:2px;text-align:left;transition:all 0.3s;position:relative}
.choice-btn:hover:not(:disabled){background:var(--btn-hover);border-color:var(--btn-border);color:var(--accent-glow);padding-left:28px}
.choice-btn:disabled{opacity:0.5;cursor:not-allowed}
.loading-indicator{text-align:center;padding:24px;color:var(--accent);letter-spacing:2px;font-size:15px}
.loading-dots::after{content:"";animation:dots 1.5s steps(4) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}100%{content:""}}
.status-bar{padding:6px 0;font-size:12px;color:#6a5040;display:flex;justify-content:space-between}
#ending-screen{justify-content:center;align-items:center;text-align:center;gap:28px}
.ending-icon{font-size:70px}
.ending-title-text{font-size:30px;color:var(--accent);letter-spacing:4px}
.ending-summary{background:var(--bg-panel);border:1px solid var(--border);padding:20px;line-height:2;font-size:16px;letter-spacing:1.5px;max-width:500px;text-align:left;max-height:50vh;overflow-y:auto}
.btn-danger{font-family:var(--font);font-size:14px;padding:8px 18px;background:transparent;color:var(--danger);border:1px solid var(--danger);cursor:pointer;letter-spacing:2px;transition:all 0.3s}
.btn-danger:hover{background:var(--danger);color:#fff}
.match-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,rgba(30,15,5,0.95),rgba(50,25,10,0.95));border:2px solid var(--accent);padding:18px 28px;text-align:center;z-index:100;animation:matchToast 3s ease forwards;pointer-events:none;box-shadow:0 0 30px rgba(200,160,60,0.3)}
.match-toast .match-icon{font-size:40px;display:block}
.match-toast .match-title{font-size:20px;color:var(--accent-glow);letter-spacing:3px;margin:6px 0}
.match-toast .match-figure{font-size:28px;color:#fff;letter-spacing:4px;font-weight:bold}
.match-toast .match-sub{font-size:13px;color:#8a7060;margin-top:4px}
@keyframes matchToast{0%{opacity:0;top:-60px}15%{opacity:1;top:20px}75%{opacity:1;top:20px}100%{opacity:0;top:-60px}}
.gems-display{color:var(--accent-glow);font-size:15px;letter-spacing:2px;text-shadow:0 0 8px rgba(200,160,60,0.3)}
.recharge-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:200;justify-content:center;align-items:center;flex-direction:column}
.recharge-overlay.active{display:flex}
.recharge-modal{background:var(--bg-panel);border:2px solid var(--accent);padding:32px 28px;text-align:center;max-width:380px;width:90%;animation:fadeIn 0.4s;box-shadow:0 0 60px rgba(200,160,60,0.2)}
.recharge-modal .rc-icon{font-size:56px;display:block;margin-bottom:8px}
.recharge-modal .rc-title{font-size:24px;color:var(--accent);letter-spacing:3px;margin-bottom:6px}
.recharge-modal .rc-sub{font-size:14px;color:#8a7060;line-height:1.8;margin-bottom:20px}
.recharge-modal .rc-packages{display:flex;gap:10px;justify-content:center;margin-bottom:20px}
.recharge-modal .rc-pkg{flex:1;background:var(--btn-bg);border:1px solid var(--border);padding:14px 10px;cursor:pointer;transition:all 0.3s}
.recharge-modal .rc-pkg:hover{border-color:var(--btn-border);box-shadow:0 0 12px rgba(200,160,60,0.15)}
.recharge-modal .rc-pkg .pkg-gems{font-size:22px;color:var(--accent-glow)}
.recharge-modal .rc-pkg .pkg-price{font-size:12px;color:#8a7060;margin-top:4px}
.btn-save-header{font-family:var(--font);font-size:16px;padding:2px 6px;background:transparent;border:1px solid var(--border);color:var(--accent);cursor:pointer;border-radius:4px;transition:all 0.3s;line-height:1}
.btn-save-header:hover{border-color:var(--btn-border);box-shadow:0 0 8px rgba(200,160,60,0.2)}
.choice-death{color:#c08070!important;border-color:#5a2020!important}
.choice-death:hover:not(:disabled){background:#2a1010!important;border-color:#a04030!important;color:#e0a090!important;box-shadow:0 0 15px rgba(200,60,40,0.2);padding-left:28px}
.save-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:200;justify-content:center;align-items:center;flex-direction:column}
.save-overlay.active{display:flex}
.save-modal{background:var(--bg-panel);border:2px solid var(--accent);padding:24px 22px;text-align:center;max-width:420px;width:90%;animation:fadeIn 0.4s;box-shadow:0 0 60px rgba(200,160,60,0.2);max-height:80vh;overflow-y:auto}
.save-modal .sv-title{font-size:22px;color:var(--accent);letter-spacing:3px;margin-bottom:12px}
.save-modal .sv-input{width:100%;padding:10px 12px;margin:8px 0;background:#1a0f08;border:1px solid var(--border);color:var(--accent-glow);font-family:var(--font);font-size:15px;border-radius:6px;letter-spacing:1px;outline:none}
.save-modal .sv-input:focus{border-color:var(--btn-border)}
.save-modal .sv-summary{font-size:13px;color:#8a7060;text-align:left;line-height:1.8;margin:8px 0}
.save-modal .sv-actions{display:flex;gap:10px;justify-content:center;margin-top:12px}
.save-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto}
.save-item{background:var(--btn-bg);border:1px solid var(--border);padding:12px 14px;cursor:pointer;transition:all 0.3s;text-align:left;display:flex;justify-content:space-between;align-items:center}
.save-item:hover{border-color:var(--btn-border);box-shadow:0 0 10px rgba(200,160,60,0.12)}
.save-item .sv-info{flex:1}
.save-item .sv-name{font-size:15px;color:var(--accent);letter-spacing:2px}
.save-item .sv-meta{font-size:12px;color:#8a7060;margin-top:3px}
.save-item .sv-del{color:var(--danger);background:none;border:1px solid var(--danger);padding:4px 10px;cursor:pointer;font-family:var(--font);font-size:12px;border-radius:4px;transition:all 0.3s}
.save-item .sv-del:hover{background:var(--danger);color:#fff}
.save-empty{color:#8a7060;text-align:center;padding:20px;letter-spacing:2px}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border)}
.era-modules{display:flex;flex-direction:column;gap:16px;max-height:58vh;overflow-y:auto;padding:2px;scroll-behavior:smooth}
.dynasty-module{border:1px solid var(--border);background:rgba(35,19,16,0.5)}
.dynasty-header{display:flex;align-items:center;gap:10px;padding:11px 16px;background:var(--btn-bg);border-bottom:1px solid var(--border);cursor:pointer;user-select:none}
.dynasty-header:hover{background:var(--btn-hover)}
.dynasty-header .dynasty-icon{font-size:22px;flex-shrink:0}
.dynasty-header .dynasty-title{font-size:17px;color:var(--accent);letter-spacing:3px;flex:1}
.dynasty-header .dynasty-count{font-size:12px;color:#8a7060}
.dynasty-header .dynasty-arrow{color:#8a7060;font-size:13px;transition:transform 0.3s}
.dynasty-header.collapsed .dynasty-arrow{transform:rotate(-90deg)}
.dynasty-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px}
.dynasty-body.collapsed{display:none}
.era-card{background:var(--btn-bg);border:1px solid var(--border);padding:11px 12px;cursor:pointer;transition:all 0.3s;text-align:center}
.era-card:hover{background:var(--btn-hover);border-color:var(--btn-border);box-shadow:0 0 12px rgba(200,160,60,0.12)}
.era-card .era-name{font-size:15px;color:var(--accent);letter-spacing:2px}
.era-card .era-date{font-size:11px;color:#8a7060;margin-top:2px}
.era-card .era-dynasty{font-size:10px;color:#7a6050;margin-top:1px;line-height:1.4}
.auth-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:200;justify-content:center;align-items:center}
.auth-overlay.active{display:flex}
.auth-modal{background:var(--bg-panel);border:1px solid var(--accent);border-radius:16px;padding:28px 24px;width:340px;text-align:center;animation:fadeIn 0.4s;box-shadow:0 0 40px rgba(200,160,60,0.15)}
.auth-modal h2{color:var(--accent);letter-spacing:3px;margin-bottom:16px;font-size:22px}
.auth-modal input{width:100%;padding:10px 12px;margin:7px 0;background:#1a0f08;border:1px solid var(--border);color:var(--accent-glow);font-family:var(--font);font-size:15px;border-radius:8px;letter-spacing:1px;outline:none}
.auth-modal input:focus{border-color:var(--btn-border)}
.auth-modal .auth-error{color:var(--danger);font-size:13px;margin:6px 0;display:none}
.auth-modal .auth-links{margin-top:14px;font-size:13px}
.auth-modal .auth-links a{color:var(--accent);text-decoration:none;cursor:pointer}
.auth-modal .auth-links a:hover{color:var(--accent-glow)}
.auth-modal .btn-ghost{background:none;border:none;color:#888;cursor:pointer;margin-top:8px;font-family:var(--font);font-size:14px}
.user-info-bar{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}
.user-info-bar .user-name{color:var(--accent-glow)}
.user-info-bar .login-prompt{color:#8a7060;font-size:13px}
.user-info-bar .login-prompt:hover{color:var(--accent)}
@media(max-width:500px){.title-text{font-size:30px;letter-spacing:4px}.scene-area{font-size:44px}.narrative-area{font-size:15px;padding:14px}.choice-btn{font-size:14px;padding:12px 16px}.game-header{font-size:12px}.dynasty-body{grid-template-columns:1fr}}
