@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&display=swap');
:root{--ink:#20332b;--muted:#75857a;--paper:#f4f0e6;--panel:#fffdf7;--green:#456b53;--green2:#dce8d8;--gold:#d6a64c;--line:#e5e0d4;--red:#a45b4b;--shadow:0 18px 50px rgba(28,40,31,.12)}*{box-sizing:border-box}body{margin:0;background:#e8e6db;color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c99a48;outline-offset:2px}.hidden{display:none!important}#app{min-height:100vh;background:radial-gradient(ellipse at 18% 6%,#f6f1e4 0,#e8e6db 50%,#dfe5d8 100%);padding:18px}.topbar{height:76px;max-width:1440px;margin:0 auto 14px;background:var(--panel);border:1px solid #e7e2d7;border-radius:16px;box-shadow:0 5px 22px rgba(39,51,40,.06);display:flex;align-items:center;padding:12px 18px;gap:22px}.brand{display:flex;align-items:center;gap:11px;min-width:210px}.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#496e55;color:#fff;font-family:Fraunces,serif;font-size:24px;box-shadow:inset 0 -4px rgba(0,0,0,.12)}.brand strong{font-family:Fraunces,serif;font-size:17px;letter-spacing:1.2px;display:block}.brand small{font:9px 'DM Mono',monospace;color:#8b9688;letter-spacing:1.6px}.status-row{display:flex;gap:clamp(12px,3vw,38px);margin-left:auto}.stat{display:flex;flex-direction:column;gap:3px;min-width:50px}.stat small,.side-heading small,.eyebrow{font:9px 'DM Mono',monospace;letter-spacing:1.5px;color:#879286}.stat b{font-size:14px}.identity-stat b{color:#8b6b34}.top-icon{border:1px solid var(--line);background:#f8f6ef;border-radius:10px;width:40px;height:40px;color:var(--green);font-size:18px}.game-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;min-height:calc(100vh - 126px)}.world-panel,.side-panel{background:var(--panel);border:1px solid #e7e2d7;border-radius:16px;overflow:hidden;box-shadow:0 5px 22px rgba(39,51,40,.05)}.world-panel{position:relative;display:flex;flex-direction:column;min-height:650px}.world-caption{height:47px;padding:0 17px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);font:10px 'DM Mono',monospace;color:#718074;letter-spacing:.7px}.world-caption #weatherCaption{margin-left:auto;color:#a08a5f}.live-dot{width:7px;height:7px;border-radius:50%;background:#73a66f;box-shadow:0 0 0 4px #e7f0df}.world-panel canvas{width:100%;height:auto;flex:1;display:block;background:#a9c79e;image-rendering:pixelated;image-rendering:crisp-edges}.world-controls{height:37px;border-top:1px solid var(--line);display:flex;justify-content:center;gap:25px;align-items:center;background:#faf8f1;font:9px 'DM Mono',monospace;color:#8a9587;letter-spacing:.4px}.world-controls kbd{background:#eae9df;border:1px solid #dcdccf;border-bottom-width:2px;padding:2px 5px;border-radius:4px;color:#4f6255}.nearby-hint{position:absolute;bottom:52px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:8px 13px;border:1px solid rgba(255,255,255,.7);border-radius:20px;background:rgba(255,253,247,.9);box-shadow:0 3px 14px rgba(38,52,40,.14);font-size:10px;color:#526457;pointer-events:none}.side-panel{display:flex;flex-direction:column;padding:18px 16px 14px;min-height:650px}.side-heading{display:flex;align-items:center;justify-content:space-between;padding:2px 0 14px;border-bottom:1px solid var(--line)}.side-heading h2{font:600 23px Fraunces,serif;margin:5px 0 0}.sun-icon{color:#c39a4b;font-size:25px}.side-content{padding:15px 1px;flex:1;overflow:auto}.welcome-copy{font:500 17px/1.45 Fraunces,serif;color:#465c4c;margin:0 0 10px}.muted-copy{font-size:11px;color:#899488;line-height:1.6}.section-label{font:9px 'DM Mono',monospace;color:#929b8e;letter-spacing:1.5px;margin:17px 0 8px}.quest-card,.person-card,.activity-card{background:#f8f7f0;border:1px solid #ece8dc;border-radius:10px;padding:11px;margin-bottom:8px}.quest-card strong,.person-card strong,.activity-card strong{display:block;font-size:12px}.quest-card p,.person-card p,.activity-card p{font-size:10px;color:#829082;line-height:1.5;margin:4px 0 0}.tiny-tag{display:inline-block;margin-top:7px;background:#e7eee1;color:#58765b;border-radius:20px;padding:3px 7px;font:8px 'DM Mono',monospace}.side-actions{display:grid;gap:7px}.action-btn{border:0;background:#4d7257;color:#fff;border-radius:9px;padding:12px 13px;text-align:left;font-weight:700;font-size:11px;box-shadow:inset 0 -2px rgba(0,0,0,.13)}.action-btn span{float:right;color:#d9e7d8}.action-btn.secondary{background:#edf1e8;color:#506d53;box-shadow:none;border:1px solid #dce6d6}.action-btn.secondary span{color:#759779}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.quick-actions button{border:1px solid var(--line);background:#fbfaf5;border-radius:8px;height:52px;color:#667b68;font-size:18px}.quick-actions span{display:block;font:8px 'DM Mono',monospace;color:#899286;margin-top:3px}.modal-backdrop{position:fixed;inset:0;z-index:40;background:rgba(23,35,28,.42);backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px}.modal{width:min(620px,96vw);max-height:min(88vh,820px);overflow:auto;background:#fffdf7;border:1px solid #e7e1d4;border-radius:17px;box-shadow:0 25px 90px rgba(18,31,22,.3);padding:24px;position:relative}.modal.wide{width:min(850px,96vw)}.modal-close{position:absolute;right:15px;top:15px;width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:#f6f4ec;color:#687769;font-size:18px}.modal h2{font:600 31px Fraunces,serif;margin:7px 42px 6px 0;color:#344a3b}.modal-lead{font-size:12px;color:#849084;line-height:1.6;margin:0 0 18px}.eyebrow{color:#b08c4e}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.btn{border:1px solid #dce3d6;background:#edf2e9;color:#47664d;padding:10px 14px;border-radius:8px;font-size:11px;font-weight:700}.btn.primary{background:#4c7056;color:#fff;border-color:#4c7056}.btn.ghost{background:#fffdf7;border-color:var(--line);color:#68766b}.btn.danger{background:#f6e9e3;border-color:#ebd4c8;color:#995747}.btn:disabled{opacity:.4;cursor:not-allowed}.field{display:grid;gap:6px;margin:12px 0}.field label{font:9px 'DM Mono',monospace;color:#879386;letter-spacing:1.2px}.field input,.field select{width:100%;padding:11px 12px;border:1px solid #dedfd2;border-radius:8px;background:#fbfaf5;color:#34483a}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.avatar-choice{border:1px solid var(--line);border-radius:10px;background:#f6f4ec;padding:8px 4px;color:#718071;font-size:9px}.avatar-choice canvas{width:60px;height:60px;display:block;margin:0 auto 4px;image-rendering:pixelated}.avatar-choice.selected{border:2px solid #71936d;background:#eaf1e5;color:#385940}.choice-list{display:grid;gap:8px}.choice{border:1px solid #e5e3d9;background:#faf9f3;border-radius:9px;text-align:left;padding:12px;color:#405647}.choice strong{font-size:12px;display:block}.choice small{display:block;color:#899589;font-size:10px;margin-top:4px;line-height:1.4}.choice:hover{border-color:#9fb79a;background:#f1f5ec}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.clue-grid,.identity-grid,.slot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.clue,.identity-tile,.slot{background:#f7f6ee;border:1px solid #e9e5d9;border-radius:10px;padding:11px}.clue b,.identity-tile b,.slot b{display:block;font-size:11px}.clue small,.identity-tile small,.slot small{display:block;font-size:9px;color:#889386;line-height:1.5;margin-top:5px}.identity-tile.discovered{background:#edf3e8;border-color:#d4e2cd}.progress-track{height:6px;background:#e6e7dc;border-radius:9px;overflow:hidden;margin-top:8px}.progress-track span{display:block;height:100%;background:#80a477}.toast{position:fixed;z-index:50;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:11px 16px;background:#2e4938;color:#fff;border-radius:9px;box-shadow:var(--shadow);font-size:11px;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.menu-screen{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#263f31,#182d25 55%,#354d38);overflow:auto}.menu-card{width:min(680px,96vw);background:#f8f5eb;border:1px solid rgba(255,255,255,.4);border-radius:20px;box-shadow:0 30px 100px rgba(0,0,0,.32);padding:38px;position:relative;overflow:hidden}.menu-card:after{content:'✿';position:absolute;font-size:230px;color:rgba(114,147,103,.08);right:-30px;bottom:-90px;pointer-events:none}.menu-brand{font:10px 'DM Mono',monospace;letter-spacing:3px;color:#8b9a80}.menu-title{font:600 clamp(45px,8vw,74px)/.96 Fraunces,serif;color:#304b38;margin:14px 0}.menu-title span{color:#ad8a4e}.menu-text{font-size:12px;line-height:1.7;color:#7f8a7b;max-width:430px}.menu-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:24px;max-width:400px;position:relative;z-index:1}.menu-buttons .btn:first-child{grid-column:span 2}.menu-foot{font:9px 'DM Mono',monospace;color:#9ca293;margin-top:25px;letter-spacing:1px}.map-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-place{border:1px solid #e4e2d7;background:#faf9f3;border-radius:9px;padding:12px;text-align:left}.map-place b{display:block;font-size:12px}.map-place small{font-size:9px;color:#8b9688}.map-place:disabled{opacity:.4}.bar-row{display:flex;align-items:center;gap:8px;margin:8px 0}.bar-row label{width:105px;font-size:10px;color:#6f7f70}.bar-row .progress-track{flex:1;margin:0}.bar-row em{font:9px 'DM Mono',monospace;color:#829080;font-style:normal;width:24px;text-align:right}.journal-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0 14px}.journal-tabs button{border:1px solid var(--line);background:#faf9f3;color:#758273;padding:7px 9px;border-radius:7px;font-size:9px}.journal-tabs button.active{background:#e6eee0;color:#42634a;border-color:#cbdcc3}.log-item{padding:10px 0;border-bottom:1px solid #eeebe2}.log-item b{font-size:11px}.log-item p{font-size:10px;color:#869184;line-height:1.5;margin:4px 0 0}
@media(max-width:950px){#app{padding:9px}.game-layout{grid-template-columns:minmax(0,1fr) 270px}.world-panel,.side-panel{min-height:600px}.brand{min-width:auto}.identity-stat{display:none}}
@media(max-width:720px){.topbar{height:auto;flex-wrap:wrap;padding:10px}.status-row{order:3;width:100%;justify-content:space-between;margin:0}.game-layout{display:flex;flex-direction:column}.world-panel{min-height:58vh}.side-panel{min-height:380px}.world-panel canvas{min-height:340px;object-fit:cover}.world-controls{gap:8px;font-size:7px}.nearby-hint{bottom:48px;font-size:8px;max-width:90%;white-space:normal;text-align:center}.avatar-grid{grid-template-columns:repeat(3,1fr)}.menu-card{padding:25px}.clue-grid,.identity-grid,.slot-grid{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}}
body.large-text .modal-lead,body.large-text .muted-copy,body.large-text .quest-card p,body.large-text .person-card p{font-size:13px}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
