:root{--bg: #0a0f0a;--panel: #101810;--border: #2a4a2a;--text: #b8e6b8;--text-dim: #6a9a6a;--accent: #ffd76a;--danger: #ff6a6a;--font: "VT323", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font)}body{font-size:20px;line-height:1.35}.site-home-link{color:var(--text-dim);font-size:.9rem;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}.site-home-link:hover{color:var(--accent)}.site-home-link--title{position:fixed;top:16px;left:20px}.game-shell,.title-screen{min-height:100vh;padding:16px}.game-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.game-title{font-size:1.6rem;letter-spacing:.08em;color:var(--accent);text-align:center;flex:1}.game-layout{display:grid;grid-template-columns:1fr auto 260px 1fr;gap:16px;align-items:start}.map-panel{grid-column:2;display:flex;flex-direction:column;align-items:center}.status-panel{grid-column:3}.map-panel,.status-panel,.log-panel{background:var(--panel);border:1px solid var(--border);padding:12px}.map-name{color:var(--text-dim);font-size:.95rem;letter-spacing:.12em;margin-bottom:8px;text-align:center;text-transform:uppercase}.map-name-sub{text-transform:none;letter-spacing:.04em}.map-display{color:var(--text);font-family:var(--font);font-size:clamp(14px,2.1vw,22px);line-height:1.1;margin:0 auto;overflow-x:auto;white-space:pre}.status-panel h2,.inventory-panel h3{color:var(--accent);font-size:1.2rem;margin-bottom:10px}.stat-list{display:grid;gap:6px;margin-bottom:12px}.stat-list div{display:flex;justify-content:space-between;gap:8px}.stat-list dt{color:var(--text-dim)}.stat-list dd{color:var(--text)}.stat-bonus{color:var(--accent);font-size:.9em}.btn,.btn-text{background:#1a301a;border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:inherit;font-size:1rem;letter-spacing:.08em;padding:8px 12px;text-transform:uppercase}.btn:hover,.btn-text:hover{border-color:var(--accent);color:var(--accent)}.btn-text{background:transparent}.btn-large{font-size:1.3rem;padding:12px 24px}.inventory-panel{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.inventory-list{list-style:none;display:grid;gap:6px}.inventory-item{align-items:center;background:#142014;border:1px solid var(--border);color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:1rem;gap:8px;padding:6px 8px;text-align:left;width:100%}.inventory-item:hover{border-color:var(--accent)}.item-char{color:var(--accent);width:1ch}.log-panel{margin:12px auto 0;max-width:min(100%,640px);min-height:120px}.log-panel--near-map{background:transparent;border:none;margin:6px 0 0;max-width:none;min-height:0;padding:0;width:100%}.log-panel--near-map .log-latest{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;white-space:normal}.log-panel p{color:var(--text-dim);margin-bottom:4px}.log-latest{color:var(--text)}.dim{color:var(--text-dim)}.small{font-size:.9rem;margin-top:8px}.title-screen{align-items:center;display:flex;justify-content:center}.title-box{background:var(--panel);border:1px solid var(--border);max-width:720px;padding:32px;text-align:center}.chapter-picker{margin:20px 0 8px;text-align:left}.chapter-picker-label{color:var(--text-dim);font-size:.85rem;letter-spacing:.12em;margin-bottom:10px;text-transform:uppercase}.chapter-picker-options{display:grid;gap:10px}.chapter-card{background:#0d140d;border:1px solid var(--border);color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:12px 14px;text-align:left}.chapter-card:hover{border-color:var(--accent)}.chapter-card--locked{cursor:not-allowed;opacity:.45}.chapter-card--locked:hover{border-color:var(--border)}.chapter-card--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.shop-panel h3{font-size:.95rem;margin:14px 0 6px;text-align:left}.panel-feedback{background:#7aba7a1f;border:1px solid var(--accent);border-radius:4px;color:var(--text);font-size:.95rem;margin:12px 0 16px;padding:10px 12px;text-align:center}.panel-feedback--warn{background:#c97a6a26;border-color:#c97a6a;color:#f0d4ce}.title-eyebrow{color:var(--text-dim);letter-spacing:.14em;margin-bottom:12px;text-transform:uppercase}.title-heading{color:var(--accent);font-size:clamp(2rem,6vw,3.2rem);letter-spacing:.1em;margin-bottom:16px}.title-story,.title-credit{color:var(--text-dim);margin-bottom:12px}.title-hint{color:var(--text-dim);font-size:.95rem;margin-top:16px}.overlay{align-items:center;background:#000000bf;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed}.overlay-box{background:var(--panel);border:1px solid var(--border);max-width:420px;padding:24px;text-align:center}.overlay-box h2{color:var(--accent);margin-bottom:12px}.overlay-box p{color:var(--text-dim);margin-bottom:16px}.story-overlay{z-index:30}.story-box{max-height:min(88vh,720px);max-width:min(92vw,640px);overflow-y:auto;text-align:left}.story-eyebrow{color:var(--accent);font-size:.8rem;letter-spacing:.14em;margin-bottom:8px;text-transform:uppercase}.story-title{color:var(--text);font-size:1.5rem;margin-bottom:16px}.story-body p{color:var(--text);line-height:1.65;margin-bottom:14px;text-align:left}.story-body p:last-child{margin-bottom:20px}.story-continue{width:100%}.story-hint{margin-bottom:0;margin-top:10px;text-align:center}.game-topbar-actions{display:flex;gap:8px;align-items:center}.account-banner{margin:-4px 0 8px;text-align:center}.title-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.auth-box{max-width:420px;text-align:left}.auth-copy{color:var(--text-dim);margin:0 0 10px}.auth-form{display:grid;gap:10px}.auth-field{display:grid;gap:4px}.auth-field span{color:var(--text-dim);font-size:.95rem}.auth-field input{background:#0a140a;border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:1.1rem;padding:8px 10px}.auth-field input:focus{border-color:var(--accent);outline:none}.auth-actions{display:flex;gap:10px;margin-top:4px}.auth-links{display:flex;flex-direction:column;gap:6px;margin-top:12px}.auth-error{color:var(--danger)}.auth-message{color:var(--text)}.save-box{max-width:480px;text-align:left}.save-slot-list{display:grid;gap:10px;list-style:none;margin:12px 0}.save-slot-item{align-items:center;border:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:10px}.save-slot-info{display:grid;gap:4px}.save-slot-actions{display:flex;flex-direction:column;gap:6px}.touch-controls{display:none;align-items:center;justify-content:center;gap:16px;margin-top:10px;width:100%;user-select:none;-webkit-user-select:none}.touch-dpad{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(52px,1fr));grid-template-rows:repeat(3,52px);width:min(100%,174px)}.touch-actions{display:grid;gap:8px;flex:1;max-width:220px}.touch-btn{align-items:center;background:#1a301a;border:1px solid var(--border);color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:1.4rem;justify-content:center;line-height:1;min-height:52px;padding:8px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.touch-btn--action{font-size:1.1rem;letter-spacing:.06em;text-transform:uppercase}.touch-btn:active:not(:disabled){background:#243824;border-color:var(--accent);color:var(--accent)}.touch-btn--up{grid-column:2;grid-row:1}.touch-btn--left{grid-column:1;grid-row:2}.touch-btn--right{grid-column:3;grid-row:2}.touch-btn--down{grid-column:2;grid-row:3}@media(max-width:900px),(hover:none)and (pointer:coarse){.touch-controls{display:flex}.game-shell{padding:8px}.game-topbar{margin-bottom:8px;padding-bottom:6px}.game-title{font-size:1rem}.game-layout{gap:8px;grid-template-columns:1fr}.map-panel{grid-column:1;padding:8px;width:100%}.map-name{font-size:.85rem;margin-bottom:4px}.map-display{font-size:min(calc((100vw - 32px) / 12),calc((100svh - 380px)/8));line-height:1;margin:0 auto;overflow-x:hidden;text-align:center;width:12ch}.log-panel--near-map{margin-top:4px}.log-panel--near-map p{font-size:.9rem;margin-bottom:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-panel--near-map .log-latest{-webkit-line-clamp:2;display:-webkit-box;white-space:normal}.log-panel--near-map p:nth-child(n+3){display:none}.touch-controls{margin-top:6px}.status-panel{grid-column:1;padding:10px}.status-panel h2{font-size:1rem;margin-bottom:6px}.stat-list{gap:4px 12px;grid-template-columns:1fr 1fr;margin-bottom:8px}.stat-list div{font-size:.95rem}.status-panel>.btn{display:none}}
