:root{--cream: #fbf6ec;--ink: #3e4a40;--ink-soft: #6c766b;--accent: #e88a3c;--green: #6f9a5e;--shadow: 0 10px 30px rgba(45, 60, 40, .18), 0 2px 6px rgba(45, 60, 40, .12);--round: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif;--serif: "Iowan Old Style", "Palatino Linotype", Georgia, serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#cfe3ee;font-family:var(--round);color:var(--ink)}#scene{display:block;width:100vw;height:100vh;outline:none}kbd{display:inline-block;min-width:1.6em;padding:.1em .45em;margin:0 .12em;border-radius:6px;background:#fff;color:var(--ink);font:600 12px/1.5 var(--round);box-shadow:0 1px #0000002e,inset 0 -1px #0000000f;text-align:center}#loading{position:fixed;inset:0;display:grid;place-items:center;background:linear-gradient(#cfe6f2,#f3ead6);transition:opacity .6s ease;z-index:10}#loading.done{opacity:0;pointer-events:none}.loading-card{text-align:center}.loading-card h1{font:600 40px/1.1 var(--serif);margin:0 0 8px;color:#4a5a48}.loading-card .status{margin:0 0 16px;color:var(--ink-soft);font-size:14px}.bar{width:240px;height:6px;border-radius:3px;background:#ffffffb3;overflow:hidden;margin:0 auto}.fill{width:0;height:100%;background:var(--accent);transition:width .25s ease}.prompt{position:fixed;left:0;top:0;pointer-events:none;display:flex;align-items:center;gap:6px;padding:6px 12px 6px 6px;border-radius:999px;background:#fbf6eceb;box-shadow:var(--shadow);font-size:13px;font-weight:600;white-space:nowrap;opacity:0;transition:opacity .15s ease;z-index:3}.prompt.on{opacity:1}.prompt kbd{background:var(--accent);color:#fff;box-shadow:none}.panel{position:fixed;inset:0;display:grid;place-items:center;background:#28372d00;transition:background .2s ease;z-index:5}.panel.open{background:#28372d2e}.panel[hidden]{display:none}.card{width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow:auto;padding:24px 24px 16px;background:var(--cream);border-radius:18px;box-shadow:var(--shadow);transform:translateY(8px) scale(.98);opacity:0;transition:transform .2s ease,opacity .2s ease}.panel.open .card{transform:none;opacity:1}.card .kind{margin:0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--green);font-weight:700}.card h2{margin:4px 0 8px;font:600 28px/1.15 var(--serif)}.card .blurb{margin:0 0 16px;color:var(--ink-soft);font-size:14px;line-height:1.5}.card section{margin:0 0 16px}.card h3{margin:0 0 4px;font-size:13px;font-weight:700}.card ul{margin:0;padding-left:18px;font-size:14px;line-height:1.6}.card .actions{display:flex;justify-content:flex-end}.card button{font:600 13px var(--round);color:var(--ink);background:#fff;border:0;border-radius:999px;padding:8px 12px;box-shadow:0 1px 3px #0000001f;cursor:pointer}.card button:hover{background:#f3ede1}.card button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%,8px);padding:10px 16px;border-radius:999px;background:#fbf6ecf2;box-shadow:var(--shadow);font-size:14px;opacity:0;transition:opacity .25s ease,transform .25s ease;z-index:4}.toast.on{opacity:1;transform:translate(-50%)}.hint{position:fixed;left:16px;bottom:16px;display:flex;flex-wrap:wrap;gap:8px 16px;max-width:560px;padding:10px 14px;border-radius:14px;background:#fbf6ecd1;box-shadow:var(--shadow);font-size:12px;color:var(--ink-soft);transition:opacity 1.2s ease;z-index:2}.hint.fade{opacity:0;pointer-events:none}@media (max-width: 640px){.hint{right:16px}}@media (prefers-reduced-motion: reduce){.card,.panel,.toast,.prompt{transition:none}}
