:root{--ink:#f4ead2;--ink-dim:#bfb394;--gold:#e8b64a;--panel:#151324e6;--panel-edge:#e8b64a8c;--serif:"Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;font-family:var(--serif);color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;background:#8cc4ee;margin:0;overflow:hidden}canvas#game{width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.hidden{display:none!important}.overlay{text-align:center;background:radial-gradient(at 50% 40%,#281e468c,#0c0a18e6);justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.overlay.light{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a08148c}.card{width:100%;max-width:640px}.crest{letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-size:13px}h1{letter-spacing:.14em;color:#fff3d6;text-shadow:0 0 40px #e8b64a73,0 4px #6b4a1c;margin:0;font-size:clamp(44px,9vw,92px);font-weight:700}h2.sub{color:var(--gold);letter-spacing:.06em;margin:6px 0 26px;font-size:clamp(18px,3vw,26px);font-style:italic;font-weight:400}.rule{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:160px;height:1px;margin:20px auto}.intro-text{text-align:left;white-space:pre-line;min-height:190px;font-size:clamp(17px,2.4vw,22px);line-height:1.6}.intro-text b{color:var(--gold);font-weight:700}.field{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:12px 0;display:flex}.field label{color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;font-size:14px}input[type=text]{font:inherit;border:1px solid var(--panel-edge);color:var(--ink);text-align:center;background:#ffffff14;border-radius:4px;outline:none;width:180px;padding:8px 12px;font-size:18px}input[type=text]:focus{border-color:var(--gold)}.seg{border:1px solid var(--panel-edge);border-radius:4px;display:inline-flex;overflow:hidden}.seg button{background:0 0;border:0;border-radius:0;padding:8px 16px}.seg button.on{background:var(--gold);color:#1d1608}button{font:inherit;cursor:pointer;color:var(--ink);border:1px solid var(--panel-edge);background:#ffffff14;border-radius:4px;padding:10px 22px;font-size:17px;transition:background .15s,transform .1s}button:hover{background:#e8b64a40}button:active{transform:translateY(1px)}button.primary{color:#1d1608;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(#f0c25a,#cf9a2c);border-color:#8a6414;padding:13px 38px;font-size:18px;font-weight:700;box-shadow:0 4px #7a560f,0 10px 24px #00000059}button.primary:hover{background:linear-gradient(#f7d070,#d9a537)}.hint{color:var(--ink-dim);letter-spacing:.04em;margin-top:18px;font-size:13px;line-height:1.7}.kbd{color:var(--ink);border:1px solid #ffffff59;border-bottom-width:2px;border-radius:4px;margin:0 1px;padding:0 6px;font-size:12px;display:inline-block}.loading{color:var(--ink-dim);margin-top:18px;font-style:italic}.hud-objective{background:var(--panel);border:1px solid var(--panel-edge);border-left:4px solid var(--gold);pointer-events:none;border-radius:4px;max-width:min(340px,70vw);padding:9px 14px 10px;position:absolute;top:14px;left:14px;box-shadow:0 6px 20px #0000004d}.hud-objective .lbl{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-size:10px}.hud-objective .txt{margin-top:3px;font-size:15px;line-height:1.35}.hud-objective.pulse{animation:1.1s pulse}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #e8b64acc}40%{transform:scale(1.04);box-shadow:0 0 0 10px #e8b64a00}to{transform:scale(1)}}.hud-btns{gap:8px;display:flex;position:absolute;top:14px;right:14px}.hud-btns button{background:var(--panel);padding:6px 12px;font-size:18px}.hud-help{color:#1e1832d9;pointer-events:none;background:#fffaeba6;border-radius:4px;padding:4px 10px;font-size:12px;position:absolute;bottom:12px;left:14px}.prompt{background:var(--panel);border:1px solid var(--gold);cursor:pointer;white-space:nowrap;border-radius:30px;padding:9px 20px;font-size:16px;position:absolute;bottom:74px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0000004d}.prompt .kbd{background:var(--gold);color:#1d1608;border-color:#8a6414;font-weight:700}.dialog{z-index:10;width:min(860px,100vw - 24px);position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.dialog .box{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;min-height:130px;padding:16px 22px;position:relative;box-shadow:0 10px 40px #00000080}.dialog.has-portrait .box{padding-left:190px}.dialog .portrait{border:1px solid var(--panel-edge);background:#151224 top/cover no-repeat;border-bottom:0;border-radius:6px 6px 0 0;width:164px;height:240px;position:absolute;bottom:0;left:12px;box-shadow:0 -4px 18px #0006}.dialog .who{letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;font-size:13px;font-weight:700}.dialog .says{min-height:62px;font-size:clamp(16px,2.1vw,20px);line-height:1.55}.dialog .says.narr{color:#ece3c8;font-style:italic}.dialog .more{color:var(--gold);font-size:13px;animation:1s ease-in-out infinite bob;position:absolute;bottom:8px;right:18px}@keyframes bob{50%{transform:translateY(4px)}}.choices{flex-direction:column;gap:7px;margin-top:10px;display:flex}.choices button{text-align:left;padding:9px 14px;font-size:16px}.choices button .n{color:var(--gold);margin-right:8px;font-weight:700}.dialog .tapzone{position:absolute;inset:0}.joy{touch-action:none;background:#ffffff2e;border:2px solid #ffffff80;border-radius:50%;width:130px;height:130px;position:absolute;bottom:30px;left:26px}.joy .knob{background:#ffffffa6;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #0000004d}.act{color:#1d1608;background:#e8b64ae6;border:2px solid #8a6414;border-radius:50%;width:84px;height:84px;padding:0;font-size:20px;font-weight:700;position:absolute;bottom:44px;right:30px}.fade{opacity:0;background:#0b0916;transition:opacity .7s;position:absolute;inset:0;pointer-events:none!important}.fade.on{opacity:1}.end-card h1{letter-spacing:.1em;font-size:clamp(32px,6vw,60px)}.end-card p{color:var(--ink-dim);font-size:clamp(16px,2.2vw,20px);line-height:1.6}@media (width<=620px){.dialog.has-portrait .box{padding-top:112px;padding-left:14px}.dialog .portrait{border-bottom:1px solid var(--panel-edge);border-radius:6px;width:84px;height:110px;margin-top:8px;top:0;bottom:auto;left:14px}.dialog .who{position:absolute;top:18px;left:110px}.hud-help{display:none}}
