:root{--bg:#0f131a;--panel:#19212b;--gold:#d6b77a;--text:#e7dfd3;--muted:#9e9d9b}*{box-sizing:border-box}body{background:radial-gradient(ellipse at 50% 0,#263544,#0f131a 58%);min-height:100vh;color:var(--text);font-family:Georgia,serif}.shell{max-width:1150px;margin:auto}.game-bar{padding:15px 24px;background:#10171edc;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #42464a;gap:10px}.brand{letter-spacing:.2em;color:var(--gold);font-weight:bold}.brand small{display:block;letter-spacing:.27em;font-size:.55rem;color:#aaa}.text-gold{color:var(--gold)!important}.btn-gold{background:#c5a36b;border:1px solid #ddbd81;color:#10141b;font-weight:bold}.btn-gold:hover{background:#e3c58f}.panel{background:#18212bdc;border:1px solid #394149;border-radius:6px;padding:25px}.intro{max-width:780px;margin:40px auto}.form-control,.form-select{background:#121b25;color:#eee;border-color:#50515a}.form-control:focus,.form-select:focus{background:#141e28;color:white;border-color:var(--gold);box-shadow:0 0 0 2px #c6a56f35}.form-control::placeholder{color:#85898b}.muted{color:var(--muted)}.story{max-width:850px;margin:auto}.story-image{width:100%;aspect-ratio:16/9;object-fit:cover;background:linear-gradient(120deg,#283846,#121b25)}.scene{background:#18212a;border:1px solid #353e46;margin:24px 0;border-radius:5px;overflow:hidden}.scene-body{padding:28px}.scene-body p{line-height:1.85;font-size:1.08rem;white-space:pre-wrap}.scene-foot{padding:8px 16px;display:flex;justify-content:space-between;align-items:center;background:#121a22;color:#b8a68a;font:12px system-ui}.choice{display:block;text-align:left;width:100%;background:#1a2530;color:#eee;border:1px solid #48505a;border-radius:4px;padding:13px 17px;margin:9px 0;font:14px system-ui}.choice:hover,.choice.active{border-color:var(--gold);background:#29302d}.section-title{font-variant:small-caps;letter-spacing:.15em;color:var(--gold)}.dark-modal{background:#1a222c;color:#eee;border:1px solid #5d523f}.alert-quiet{background:#3b2f26;color:#edd9b4;border:1px solid #806548;padding:12px}.busy{color:var(--gold);font-style:italic}.illustration-placeholder{height:260px;display:flex;align-items:center;justify-content:center;background:linear-gradient(30deg,#293b4d,#101821);color:#c5a36b}.action-area{border-top:1px solid #39424b;padding-top:22px}

.inventory-backdrop{position:fixed;inset:0;z-index:1100;background:#03060bcc;display:flex;justify-content:flex-end}.inventory-panel{height:100%;width:min(490px,100vw);overflow-y:auto;background:#16202a;border-left:1px solid #6b5b41;padding:24px;box-shadow:-14px 0 80px #000a}.inventory-panel h2{color:#e7d1a5;font-family:Georgia,serif}.inventory-panel h4{color:#c9ab79;font:small-caps 1.1rem Georgia,serif;letter-spacing:.06em}.inv-entry{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #39424b;padding:12px 0}.inv-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.inv-entry button{white-space:nowrap}

/* Player skill allocation, deliberately styled as an RPG character sheet. */
.skill-line{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:12px 0;border-bottom:1px solid #43403b}.skill-controls{display:flex;align-items:center;gap:12px;min-width:142px;justify-content:flex-end}.skill-controls span{min-width:48px;text-align:center;color:#d9bd86;font-variant-numeric:tabular-nums}.skill-builder{margin:1rem 0 1.5rem}@media(max-width:560px){.skill-line{align-items:flex-start;flex-direction:column;gap:6px}.skill-controls{justify-content:flex-start}}

/* Persistent in-world health and terminal outcomes */
.health-hud{max-width:270px;margin:.75rem 0 1rem;color:#e5c8af;font-size:.88rem}.health-track{height:9px;background:#493039;border:1px solid #73505a;border-radius:5px;overflow:hidden;margin-top:.35rem}.health-fill{height:100%;background:linear-gradient(90deg,#a93546,#e77070);transition:width .3s}.end-screen{border:1px solid #8f7755;padding:1.25rem;margin:1rem 0;background:rgba(18,21,26,.8);color:#e9d7bd}.end-screen h2{font-family:Georgia,serif;color:#dec08a}

/* Mobile-first game presentation. Desktop game remains unchanged. */
.mobile-game-dock,.mobile-scene-status{display:none}
@media(max-width:767.98px){
 html{scroll-padding-top:70px}body{background:#0b1119;color:#f0e7d8}
 .shell{min-height:100svh;width:100%;overflow-x:clip}
 .game-bar{position:sticky;top:0;z-index:100;background:#101820f5;padding:calc(env(safe-area-inset-top,0px) + 8px) 14px 9px;min-height:59px;box-shadow:0 3px 25px #0009;gap:7px}
 .brand{font:700 .82rem Georgia,serif;letter-spacing:.11em;white-space:nowrap}.brand small{font-size:.43rem;letter-spacing:.08em;margin-top:3px}
 .game-bar>div:last-child{display:flex;align-items:center;gap:2px}
 #wallet{font:600 12px system-ui;padding:5px;white-space:nowrap;text-decoration:none}
 #buy{font-size:11px;padding:5px 8px}#exit,#admin-link{font-size:0!important;padding:5px!important;max-width:28px;overflow:hidden}#exit::after{content:'↪';font-size:16px}#admin-link::after{content:'⚙';font-size:16px}
 #app.campaign-active{padding:0!important;width:100%;max-width:100%}
 .campaign-active .story{max-width:none;margin:0;padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
 .campaign-active .story>.mb-4{padding:14px 17px 9px;margin:0!important;background:#111a24}
 .campaign-active .story>.mb-4 .d-flex.gap-2,.campaign-active .story>.mb-4>.section-title,.campaign-active .story>.mb-4>#daily-free{display:none!important}
 .campaign-active .story>.mb-4 h1{display:none}
 .mobile-scene-status{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#121d29;padding:10px 17px;border-bottom:1px solid #333f4c;color:#e5ce9e;font:600 11px system-ui;letter-spacing:.07em;text-transform:uppercase}
 .mobile-scene-status .mobile-world-title{max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .mobile-scene-status .mobile-free-turns{color:#aebcc8;letter-spacing:0;text-transform:none}
 .campaign-active .health-hud{max-width:none;margin:0;display:flex;align-items:center;gap:12px;font:600 12px system-ui}.campaign-active .health-hud span{white-space:nowrap}.campaign-active .health-track{flex:1;margin:0;height:7px}
 .campaign-active .scene{border:0;border-bottom:1px solid #34404b;border-radius:0;margin:0;background:#141e29;box-shadow:none}
 .campaign-active .scene-archived{display:none}
 .campaign-active .view-history .scene-archived{display:block}
 .campaign-active .story-image{display:block;width:100%;aspect-ratio:4/3;max-height:47svh;object-fit:cover;background:#202e38}
 .campaign-active .scene-foot{min-height:40px;background:#121b24;padding:9px 15px;gap:10px;font-size:10px;letter-spacing:.02em}
 .campaign-active .scene-foot span:last-child{margin-left:auto;text-align:right}.campaign-active .scene-foot button{font-size:11px!important;min-height:30px;text-decoration:none}
 .campaign-active .scene-body{padding:20px 20px 24px}.campaign-active .scene-body p{font-size:1.035rem;line-height:1.72;letter-spacing:.006em;margin-bottom:1.05rem}
 .campaign-active .action-area{border:0;border-top:1px solid #4a463c;border-radius:0;background:#121c26;padding:23px 17px 26px;margin:0}
 .campaign-active .action-area h3{color:#e9d4ad;font-size:1.25rem;margin-bottom:15px}
 .campaign-active .choice{min-height:56px;margin:9px 0;padding:14px 16px;border-radius:9px;background:#202c38;border:1px solid #445260;color:#eee5d6;font:500 14px/1.45 system-ui;transition:background .15s,border-color .15s}
 .campaign-active .choice:active,.campaign-active .choice.active{background:#353322;border-color:#d6b77a}
 .campaign-active .action-area .section-title{display:block;font-size:12px;margin-top:22px!important}
 .campaign-active #action{min-height:95px;font:16px/1.5 system-ui;border-radius:9px;resize:vertical;padding:13px}
 .campaign-active #continue{display:block;width:100%;min-height:54px;border-radius:9px;margin-top:14px!important;font:700 15px system-ui;letter-spacing:.02em}
 .mobile-game-dock{display:flex;position:fixed;z-index:90;bottom:0;left:0;right:0;height:calc(69px + env(safe-area-inset-bottom,0px));padding:5px 7px env(safe-area-inset-bottom,0px);background:#0f1822f5;border-top:1px solid #574e3d;backdrop-filter:blur(20px);box-shadow:0 -8px 28px #0008}
 .mobile-dock-btn{color:#9eaebd;flex:1;min-width:0;border:0;background:transparent;font:500 11px system-ui;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px}.mobile-dock-btn.is-active{color:#e9c688}.dock-icon{font-size:22px;line-height:24px}
 .campaign-active .view-history .action-area{display:none}
 .inventory-panel{width:100vw;padding:calc(18px + env(safe-area-inset-top,0px)) 18px calc(30px + env(safe-area-inset-bottom,0px));border-left:0}
 .inventory-panel button{min-height:39px}.inv-entry{align-items:flex-start}
 .modal-dialog{margin:0;min-height:100%;display:flex;align-items:flex-end}.modal-content{border-radius:17px 17px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
 .panel.intro{margin:14px 0;padding:20px}.skill-controls button{min-height:42px;min-width:42px}
 @media(orientation:landscape) and (max-height:520px){.campaign-active .story-image{max-height:70svh;aspect-ratio:16/9}.mobile-game-dock{height:52px}.mobile-dock-btn{min-height:40px}.dock-icon{font-size:16px}}
}
@media(prefers-reduced-motion:reduce){.campaign-active .choice{transition:none}html{scroll-behavior:auto!important}}

/* Responsive original game wordmark, transparent PNG. */
.game-logo-link{display:inline-flex;align-items:center;flex:0 1 auto;min-width:0;line-height:0;text-decoration:none}
.game-logo{display:block;width:clamp(156px,22vw,235px);height:auto;max-height:71px;object-fit:contain;object-position:left center}
.game-logo-link:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.admin-brand{display:flex;align-items:center;gap:14px;min-width:0}
.admin-game-logo{display:block;width:clamp(118px,15vw,178px);height:auto;object-fit:contain}
@media(max-width:767.98px){
 .game-bar .game-logo-link{flex:0 1 auto;max-width:47%;min-width:0}
 .game-bar .game-logo{width:clamp(115px,35vw,173px);max-width:100%;max-height:48px;height:auto}
 .game-bar>div:last-child{flex-shrink:0}
 .admin-brand{gap:9px;flex-wrap:wrap}.admin-game-logo{width:124px}
}
@media(max-width:380px){.game-bar{padding-left:9px;padding-right:9px}.game-bar .game-logo{width:120px}#wallet{font-size:11px}#buy{padding:5px!important}}
