:root{--cream:#f3e7cf;--cream-dim:#dfd1b3;--ink:#221d16;--panel:#161410e0;--panel-soft:#161410b8;--sage:#8fa06a;--terracotta:#b5623c;--red:#b23a44;--gold:#d9a75b;--focus:#f0c987;--border-warm:#f3e7cf2e;--border-gold:#d9a75bad;--shadow:0 18px 60px #0000007a;--font-display:Georgia, "Times New Roman", Times, serif;--font-ui:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--cream);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-user-select:none;user-select:none;touch-action:none;background:#1b2118;margin:0;overflow:hidden}body{overscroll-behavior:none}#app{position:fixed;inset:0;overflow:hidden}#canvas{outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#ui{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}#ui *,#ui :before,#ui :after{pointer-events:none}.hidden{display:none!important}.key{background:var(--cream);width:1.9rem;height:1.9rem;color:var(--ink);font-family:var(--font-ui);border-radius:999px;flex:none;place-items:center;font-size:.85rem;font-weight:800;line-height:1;display:inline-grid}.title-screen{z-index:60;opacity:1;background:radial-gradient(at 50% 32%,#20261c38 0%,#0d100cb8 58%,#080a07f0 100%);place-items:center;padding:2rem;transition:opacity .6s;display:grid;position:absolute;inset:0}.title-screen.out{opacity:0}.title-card{text-align:center;-webkit-backdrop-filter:blur(2px);background:radial-gradient(at 50% 0,#f3e7cf12,#10120d52 72%);border:1px solid #f3e7cf1a;border-radius:28px;max-width:46rem;padding:3.25rem 4rem 2.6rem;box-shadow:0 30px 100px #00000059}.title-kicker{color:var(--sage);letter-spacing:.32em;text-transform:uppercase;margin:0 0 1.1rem;font-size:.78rem;font-weight:700}.title-name{color:var(--cream);font-family:var(--font-display);letter-spacing:.01em;text-shadow:0 4px 46px #0009;margin:0;font-size:clamp(3.2rem,8vw,6rem);font-weight:500;line-height:1}.title-sub{max-width:32rem;color:var(--cream-dim);margin:1.15rem auto 2.5rem;font-size:1.08rem;line-height:1.65}.title-start{background:var(--cream);color:var(--ink);letter-spacing:.04em;border-radius:999px;align-items:center;gap:.7rem;padding:.65rem 1.35rem .65rem .65rem;font-size:1rem;font-weight:700;animation:2.8s ease-in-out infinite breathe;display:inline-flex;box-shadow:0 16px 46px #00000075}.title-start .key{background:var(--ink);color:var(--cream)}.title-foot{color:#f3e7cfad;letter-spacing:.04em;margin:2.2rem 0 0;font-size:.78rem}@keyframes breathe{0%,to{opacity:.92;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.hud{z-index:10;justify-content:space-between;align-items:flex-start;gap:1.2rem;display:flex;position:absolute;inset:1.5rem 1.6rem auto}.hud-block{background:var(--panel-soft);border:1px solid var(--border-warm);-webkit-backdrop-filter:blur(10px)saturate(1.1);border-radius:14px;padding:.68rem .95rem;box-shadow:0 10px 34px #0000004d}.hud-when{align-items:baseline;gap:.55rem;display:flex}.hud-day{color:var(--sage);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;font-size:.78rem;font-weight:800}.hud-sep{color:#f3e7cf61;font-size:.9rem}.hud-clock{color:var(--cream);font-family:var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.55rem;line-height:1}.hud-season{color:var(--cream-dim);letter-spacing:.06em;white-space:nowrap;font-size:.8rem;font-weight:600}.quest{text-align:right;max-width:24rem}.quest-label{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:.7rem;font-weight:800}.quest-text{color:var(--cream);margin-top:.22rem;font-size:1rem;line-height:1.35}.quest-step{color:var(--cream-dim);margin-top:.2rem;font-size:.88rem;line-height:1.35}.quest-hint{color:#f3e7cf80;letter-spacing:.12em;text-transform:uppercase;margin-top:.42rem;font-size:.7rem;font-weight:700}.prompt{z-index:20;border:1px solid var(--border-warm);background:var(--panel);box-shadow:var(--shadow);color:var(--cream);white-space:nowrap;-webkit-backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:.65rem;padding:.55rem 1rem .55rem .55rem;font-size:.98rem;display:flex;position:absolute;bottom:8.2rem;left:50%;transform:translate(-50%)}.prompt-text{padding-right:.15rem}.dialogue{z-index:30;border:1px solid var(--border-warm);background:var(--panel);width:min(56rem,100vw - 3rem);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px)saturate(1.05);border-radius:20px;padding:1.35rem 1.6rem 1.1rem;position:absolute;bottom:2.2rem;left:50%;transform:translate(-50%)}.dialogue-name{background:var(--red);color:var(--cream);letter-spacing:.2em;text-transform:uppercase;border-radius:999px;margin-bottom:.55rem;padding:.18rem .58rem;font-size:.72rem;font-weight:800;display:inline-block}.dialogue-text{min-height:3.6rem;color:var(--cream);font-family:var(--font-display);white-space:pre-wrap;margin:0;font-size:1.22rem;line-height:1.58}.dialogue-choices{gap:.38rem;margin-top:1rem;display:grid}.choice{color:var(--cream);background:#f3e7cf09;border:1px solid #0000;border-radius:10px;grid-template-columns:1.1rem 1fr;align-items:center;gap:.55rem;padding:.56rem .78rem;font-size:1rem;line-height:1.35;transition:background .14s,border-color .14s;display:grid}.choice-marker{color:var(--gold);opacity:0;font-weight:800;transition:opacity .14s,transform .14s;transform:translate(-2px)}.choice.selected{border-color:var(--border-gold);background:#d9a75b29;box-shadow:inset 0 0 0 1px #d9a75b2e}.choice.selected .choice-marker{opacity:1;transform:translate(0)}.dialogue-hint{color:#f3e7cf9e;letter-spacing:.09em;text-transform:uppercase;margin-top:.85rem;font-size:.72rem;font-weight:700}.pause{z-index:40;-webkit-backdrop-filter:blur(8px);background:#080a07a8;place-items:center;padding:1.25rem;display:grid;position:absolute;inset:0}.pause-panel{border:1px solid var(--border-warm);width:min(31rem,100vw - 2.5rem);max-height:calc(100vh - 2.5rem);box-shadow:var(--shadow);background:#181611f5;border-radius:22px;padding:1.6rem 1.6rem 1.2rem;overflow:hidden}.pause-title{color:var(--cream);font-family:var(--font-display);letter-spacing:.01em;margin:0 0 1rem;font-size:1.8rem;font-weight:500}.pause-rows{gap:.34rem;display:grid}.pause-row{color:var(--cream);border:1px solid #0000;border-radius:11px;grid-template-columns:1.1rem 1fr auto;align-items:center;gap:.55rem;padding:.62rem .72rem;font-size:1.02rem;line-height:1.3;transition:background .14s,border-color .14s;display:grid}.pause-marker{color:var(--gold);opacity:0;font-weight:800;transition:opacity .14s,transform .14s;transform:translate(-2px)}.pause-row.selected{border-color:var(--border-gold);background:#d9a75b26;box-shadow:inset 0 0 0 1px #d9a75b2e}.pause-row.selected .pause-marker{opacity:1;transform:translate(0)}.pause-value{color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:.02em;text-align:right;font-size:.94rem}.pause-foot{color:#f3e7cf99;letter-spacing:.09em;text-transform:uppercase;margin:1rem 0 0;font-size:.72rem;font-weight:700}.toast{z-index:50;background:var(--cream);max-width:calc(100vw - 2rem);color:var(--ink);box-shadow:var(--shadow);letter-spacing:.01em;opacity:0;border-radius:999px;padding:.68rem 1.15rem;font-size:.94rem;font-weight:700;transition:opacity .22s,transform .22s;position:absolute;top:5.5rem;left:50%;transform:translate(-50%)translateY(-8px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.fade{z-index:70;opacity:0;background:#080a07;transition:opacity .65s;position:absolute;inset:0}.fade.on{opacity:1}.vignette{z-index:1;mix-blend-mode:multiply;background:radial-gradient(#0a0e0900 52%,#090c0875 100%);position:absolute;inset:0}.connect-hint{z-index:12;color:#f3e7cfc7;letter-spacing:.04em;white-space:nowrap;background:#12110d94;border-radius:999px;padding:.4rem .78rem;font-size:.78rem;font-weight:600;position:absolute;bottom:1.35rem;left:50%;transform:translate(-50%)}@media (max-width:720px){.title-screen{padding:1rem}.title-card{border-radius:22px;padding:2.4rem 1.3rem 2rem}.title-kicker{letter-spacing:.24em;font-size:.7rem}.title-name{font-size:clamp(2.8rem,15vw,4rem)}.title-sub{margin:.9rem auto 1.9rem;font-size:1rem}.title-foot{margin-top:1.7rem;font-size:.76rem;line-height:1.5}.hud{gap:.5rem;inset:.8rem .8rem auto}.hud-block{border-radius:12px;padding:.55rem .7rem}.hud-when{flex-wrap:wrap;gap:.35rem}.hud-day{font-size:.72rem}.hud-clock{font-size:1.2rem}.hud-season{font-size:.74rem}.hud-sep{font-size:.72rem}.quest{max-width:48vw}.quest-label{font-size:.64rem}.quest-text,.quest-step{font-size:1rem}.prompt{font-size:1rem;bottom:7.2rem}.dialogue{border-radius:16px;width:calc(100vw - 1.5rem);padding:1rem;bottom:1rem}.dialogue-text{min-height:2.8rem;font-size:1.05rem}.choice{padding:.6rem .7rem;font-size:1rem}.pause{padding:.75rem}.pause-panel{border-radius:18px;width:calc(100vw - 1.5rem);max-height:calc(100vh - 1.5rem);padding:1.2rem 1rem 1rem}.pause-title{font-size:1.5rem}.pause-row{padding:.55rem .6rem;font-size:1rem}.toast{font-size:1rem;top:4.7rem}.connect-hint{text-align:center;font-size:.76rem;bottom:.9rem}}@media (prefers-reduced-motion:reduce){.title-start{animation:none}.title-screen,.fade,.toast{transition-duration:1ms}}.journal{z-index:45;-webkit-backdrop-filter:blur(8px);pointer-events:none;color:var(--cream);font-family:var(--font-ui);background:#080a07b3;place-items:center;padding:1.5rem;font-size:1.125rem;display:grid;position:absolute;inset:0}.journal-panel{border:1px solid var(--border-warm);width:min(64rem,100vw - 3rem);height:min(46rem,100vh - 3rem);max-height:calc(100vh - 3rem);box-shadow:var(--shadow);background:#181611f7;border-radius:22px;flex-direction:column;display:flex;overflow:hidden}.journal-head{border-bottom:1px solid var(--border-warm);justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.35rem 1.6rem 1.05rem;display:flex}.journal-head-text{min-width:0}.journal-title{color:var(--cream);font-family:var(--font-display);letter-spacing:.01em;margin:0;font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:500;line-height:1}.journal-when{color:var(--gold);letter-spacing:.06em;margin:.4rem 0 0;font-size:1.125rem;font-weight:700}.journal-body{flex:auto;grid-template-columns:11rem minmax(0,1fr);min-height:0;display:grid}.journal-tabs{border-right:1px solid var(--border-warm);background:#f3e7cf05;flex-direction:column;gap:.35rem;padding:1rem .9rem;display:flex}.journal-tab{color:var(--cream-dim);letter-spacing:.02em;border:1px solid #0000;border-radius:11px;padding:.7rem .85rem;font-size:1.125rem;font-weight:700;line-height:1.3;transition:background .14s,border-color .14s,color .14s}.journal-tab.selected{border-color:var(--border-gold);color:var(--cream);background:#d9a75b26;box-shadow:inset 0 0 0 1px #d9a75b2e}.journal-main{grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid}.journal-list{scrollbar-width:thin;scrollbar-color:#d9a75b73 transparent;flex-direction:column;gap:.5rem;min-height:0;padding:1rem 1.2rem;display:flex;overflow-y:auto}.journal-list::-webkit-scrollbar{width:8px}.journal-list::-webkit-scrollbar-track{background:0 0}.journal-list::-webkit-scrollbar-thumb{background:#d9a75b66;border-radius:999px}.journal-row{color:var(--cream);background:#f3e7cf09;border:1px solid #0000;border-radius:12px;padding:.75rem .9rem;transition:background .14s,border-color .14s}.journal-row.selected{border-color:var(--border-gold);background:#d9a75b26;box-shadow:inset 0 0 0 1px #d9a75b2e}.journal-row-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.journal-row-title{color:var(--cream);font-size:1.2rem;font-weight:700;line-height:1.35}.journal-row-state{color:var(--gold);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex:none;font-size:1.125rem;font-weight:800;line-height:1.35}.journal-row-meta{color:var(--sage);margin-top:.16rem;font-size:1.125rem;line-height:1.4}.journal-row-sub{color:var(--cream-dim);margin-top:.22rem;font-size:1.125rem;line-height:1.45}.journal-empty{color:#f3e7cf9e;font-family:var(--font-display);margin:0;padding:1rem .5rem;font-size:1.2rem;font-style:italic;line-height:1.5}.journal-detail{border-top:1px solid var(--border-warm);background:#f3e7cf08;min-height:6.5rem;padding:1rem 1.2rem 1.1rem}.journal-detail-kicker{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:1.125rem;font-weight:800;line-height:1.3}.journal-detail-text{color:var(--cream);font-family:var(--font-display);white-space:pre-wrap;margin:.35rem 0 0;font-size:1.25rem;line-height:1.55}.journal-hint{border-top:1px solid var(--border-warm);color:#f3e7cfad;letter-spacing:.02em;padding:.7rem 1.6rem .8rem;font-size:1.125rem;font-weight:600;line-height:1.4}@media (max-width:720px){.journal{padding:.75rem}.journal-panel{border-radius:18px;width:100%;height:calc(100vh - 1.5rem);max-height:calc(100vh - 1.5rem)}.journal-head{padding:.95rem 1rem .8rem}.journal-title{font-size:1.7rem}.journal-body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.journal-tabs{border-right:0;border-bottom:1px solid var(--border-warm);flex-direction:row;gap:.3rem;padding:.5rem;overflow-x:auto}.journal-tab{text-align:center;white-space:nowrap;flex:1 0 auto;padding:.55rem .7rem}.journal-list{gap:.4rem;padding:.7rem}.journal-row{padding:.65rem .75rem}.journal-detail{min-height:5rem;padding:.7rem .85rem .8rem}.journal-hint{padding:.6rem .85rem .7rem;font-size:1.125rem;line-height:1.35}}@media (prefers-reduced-motion:reduce){.journal-tab,.journal-row{transition:none}}
