:root{--ink: #f6efe1;--ink-dim: #d8ccb4;--paper: #f3ead6;--paper-ink: #3a2f22;--accent: #e8b25c;--accent-2: #2f7f86;--glass: rgba(24, 28, 32, .62);--focus: #ffd27a;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0d1418;color:var(--ink)}#app,#app canvas{position:fixed;inset:0;width:100%;height:100%;display:block}#ui{position:fixed;inset:0;pointer-events:none}#ui .interactive,#ui button,#ui input,#ui select,#ui label,#ui dialog{pointer-events:auto}.hidden{display:none!important}button,select,input{font:inherit}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn{background:var(--accent);color:#2a2014;border:0;border-radius:6px;padding:.7em 1.4em;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 3px #a67a34}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(2px);box-shadow:0 1px #a67a34}.btn.secondary{background:#ffffff1f;color:var(--ink);box-shadow:none;border:1px solid rgba(255,255,255,.25)}.btn.danger{background:#b8443a;color:#fff;box-shadow:0 3px #7d2a23}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#0d1418;z-index:50;transition:opacity .6s}#loading p{color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;font-size:.85rem}#loading.fade{opacity:0;pointer-events:none}#loading .err{color:#ffb4a8;max-width:32em;text-align:center;text-transform:none;letter-spacing:0}#title{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;padding:6vh 7vw;background:linear-gradient(90deg,#0a1014c7,#0a101459 45%,#0a101400 70%);transition:opacity .8s}#title.fade{opacity:0;pointer-events:none}#title h1{font-size:clamp(2.6rem,7vw,5.4rem);margin:0;letter-spacing:.12em;font-weight:800;color:var(--paper);text-shadow:0 4px 24px rgba(0,0,0,.4)}#title h2{margin:.2em 0 1em;font-weight:400;font-style:italic;color:var(--accent);letter-spacing:.08em;font-size:clamp(1rem,2.2vw,1.4rem)}#title p.pitch{max-width:30em;line-height:1.55;color:var(--ink-dim);margin:0 0 1.6em}.title-actions{display:flex;flex-wrap:wrap;gap:.8em;align-items:center}.title-options{margin-top:1.4em;display:flex;flex-wrap:wrap;gap:1.2em;align-items:center;color:var(--ink-dim);font-size:.95rem}.title-options select{background:#0006;color:var(--ink);border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:.3em .5em}.touch-note{margin-top:1em;color:#ffd9a0;max-width:30em;font-size:.9rem}.controls-list{display:grid;grid-template-columns:auto 1fr;gap:.35em 1.2em;margin:1em 0 0;font-size:.95rem}.controls-list kbd{background:#ffffff24;border:1px solid rgba(255,255,255,.3);border-bottom-width:2px;border-radius:4px;padding:.05em .45em;font-family:inherit;font-size:.85em}#hud{position:fixed;inset:0;transition:opacity .4s}#hud .region{position:absolute;top:18px;left:22px;font-size:.95rem;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 6px rgba(0,0,0,.6);transition:opacity .6s}#hud .counter{position:absolute;top:14px;right:18px;background:var(--glass);padding:.45em .9em;border-radius:20px;font-size:.9rem;display:flex;gap:.6em;align-items:center;cursor:pointer;border:0;color:var(--ink)}#hud .prompt{position:absolute;bottom:16%;left:50%;transform:translate(-50%);background:var(--glass);padding:.5em 1em;border-radius:6px;font-size:1rem;white-space:nowrap}#hud .prompt kbd{background:var(--accent);color:#2a2014;border-radius:3px;padding:0 .4em;margin-right:.4em;font-weight:700;font-family:inherit}#hud .hint{position:absolute;bottom:11%;left:50%;transform:translate(-50%);color:var(--paper);text-shadow:0 1px 6px rgba(0,0,0,.7);font-size:.95rem;transition:opacity 1s;text-align:center}#hud .weather{position:absolute;top:44px;left:22px;font-size:.8rem;color:var(--ink-dim);text-shadow:0 1px 4px rgba(0,0,0,.6)}.toasts{position:absolute;top:64px;right:18px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.toast{background:var(--paper);color:var(--paper-ink);border-left:5px solid var(--accent-2);padding:.6em .9em;border-radius:4px;max-width:300px;box-shadow:0 6px 18px #0000004d;animation:toast-in .35s ease-out}.toast strong{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2)}@keyframes toast-in{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}.reduced-motion .toast{animation:none}.overlay{position:fixed;inset:0;background:#080c108c;display:grid;place-items:center;padding:3vh 3vw}.panel{background:var(--glass);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:1.6em 2em;width:min(560px,100%);max-height:92vh;overflow:auto}.panel h2{margin:0 0 .6em;letter-spacing:.1em}.panel .row{display:flex;align-items:center;justify-content:space-between;gap:1em;margin:.55em 0}.panel .stack{display:flex;flex-direction:column;gap:.6em;margin-top:1em}.panel input[type=range]{width:50%;accent-color:var(--accent)}.panel select{background:#0006;color:var(--ink);border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:.3em}.panel .note{font-size:.85rem;color:var(--ink-dim)}.notebook{background:var(--paper);color:var(--paper-ink);width:min(760px,100%);border-radius:6px;padding:1.8em 2.2em;max-height:90vh;overflow:auto;box-shadow:0 20px 60px #00000080;background-image:repeating-linear-gradient(transparent 0 27px,#3a2f2214 27px 28px)}.notebook h2{font-family:Georgia,serif;font-style:italic;margin:0 0 .2em}.notebook .sub{margin:0 0 1.2em;color:#6b5a44}.notebook ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9em}.notebook li{border:1px dashed rgba(58,47,34,.35);border-radius:4px;padding:.7em .8em;background:#ffffff59}.notebook li.locked{opacity:.55}.notebook li h3{margin:0 0 .2em;font-size:1rem;font-family:Georgia,serif}.notebook li .where{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#8a6a3a}.notebook li p{margin:.4em 0 0;font-size:.88rem;line-height:1.4}.notebook h4{margin:1.4em 0 .6em;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;color:#6b5a44}.notebook .close{float:right}.card{position:fixed;left:50%;bottom:22%;transform:translate(-50%);background:var(--paper);color:var(--paper-ink);padding:1em 1.4em;border-radius:6px;width:min(460px,92vw);box-shadow:0 10px 40px #00000073;border-top:5px solid var(--accent)}.card .kicker{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:#8a6a3a}.card h3{margin:.15em 0 .35em;font-family:Georgia,serif}.card p{margin:0;line-height:1.45;font-size:.95rem}#debug{position:fixed;left:10px;bottom:10px;background:#000000b8;color:#b8f5c4;font:12px/1.45 ui-monospace,Menlo,Consolas,monospace;padding:8px 10px;border-radius:4px;min-width:260px}#debug .btns{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}#debug button{background:#263;color:#dfe;border:1px solid #4a6;border-radius:3px;font:inherit;padding:1px 6px;cursor:pointer}#debug button.on{background:#6a4;color:#021}#debug pre{margin:0;white-space:pre}@media (max-width: 640px){#title{padding:4vh 6vw;background:#0a101499}#hud .prompt{bottom:20%;font-size:.9rem}.panel{padding:1.2em}}#hud .objectives{position:absolute;top:64px;left:18px;max-width:330px;background:#0a10146b;border-radius:8px;padding:.55em .85em;font-size:.86rem;backdrop-filter:blur(3px)}#hud .objectives h4{margin:0 0 .35em;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}#hud .objectives ul{list-style:none;margin:0;padding:0}#hud .objectives li{margin:.2em 0;display:flex;gap:.45em;line-height:1.3;transition:opacity .6s}#hud .objectives li.done{opacity:.55;text-decoration:line-through;text-decoration-color:#ffffff59}#hud .objectives .tick{width:1em;flex:none;color:var(--accent)}#hud .seasons{position:absolute;bottom:18px;left:50%;transform:translate(-50%);display:flex;gap:8px}#hud .season{display:flex;align-items:center;gap:.4em;padding:.35em .7em;border-radius:999px;background:#0a101480;border:2px solid transparent;font-size:.82rem;transition:border-color .25s,box-shadow .25s,background .25s}#hud .season kbd{font-size:.7rem}#hud .season.on{border-color:var(--c);box-shadow:0 0 18px color-mix(in srgb,var(--c) 60%,transparent);background:color-mix(in srgb,var(--c) 22%,rgba(10,16,20,.6))}#hud .season.locked{opacity:.35}.map-panel{background:var(--glass);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:1.4em 1.8em;width:min(760px,100%);max-height:94vh;overflow:auto;text-align:center}.map-panel h2{margin:0;letter-spacing:.1em;font-family:Georgia,serif}.map-panel .sub{margin:.3em 0 .8em;color:var(--ink-dim)}.map-svg{width:100%;height:auto;display:block;border-radius:14px}.map-svg .isle.closed{opacity:.6}.map-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5em;margin:.9em 0}.map-list .btn{display:flex;flex-direction:column;align-items:center;padding:.5em}.map-list .btn small{font-size:.72rem;opacity:.8;margin-top:.2em}.map-list .btn[disabled]{opacity:.45;cursor:not-allowed}#fade{position:fixed;inset:0;background:#f4ecd8;opacity:0;transition:opacity .9s ease;pointer-events:none;display:grid;place-items:center;z-index:30}#fade.on{opacity:1}#fade .fade-text{font-family:Georgia,serif;font-style:italic;font-size:1.6rem;color:#4a3a2a;letter-spacing:.05em}
