:root{--surround:#08080f;--system-ink:#9fe8c8;--system-dim:#5a8a75}*{box-sizing:border-box}html,body,#root{height:100dvh}body{background:var(--surround);margin:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;overflow:hidden}.stage{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);justify-content:center;align-items:center;display:flex;position:relative}canvas.screen{image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.system-line{left:50%;top:max(3vh, env(safe-area-inset-top));color:var(--system-ink);letter-spacing:.04em;text-shadow:0 0 8px #9fe8c859;white-space:pre-wrap;text-align:center;max-width:90vw;padding:0 16px;font-size:13px;position:fixed;transform:translate(-50%)}.system-line .bracket{color:var(--system-dim)}.system-idle{color:#6f7897;text-shadow:none}.system-system{color:var(--system-ink)}.system-achievement{color:#ffd9a0;text-shadow:0 0 12px #ffb3478c;letter-spacing:.06em;font-size:14px}@media (prefers-reduced-motion:no-preference){.system-achievement{animation:.62s cubic-bezier(.2,1.4,.4,1) achievement-pop}@keyframes achievement-pop{0%{opacity:0;transform:translate(-50%)scale(.7)}45%{opacity:1;transform:translate(-50%)scale(1.14)}70%{transform:translate(-50%)scale(.97)}to{opacity:1;transform:translate(-50%)scale(1)}}.system-line.toast{animation:.35s ease-out system-in}@keyframes system-in{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}}.frame{display:inline-block;position:relative}.pixi-host,.pixi-host>.screen{display:block}.scene-portal{pointer-events:none;background:conic-gradient(#05070f00 0deg,#8f7bffd9 60deg,#9fe8c8e6 140deg,#ffd9a0d9 220deg,#4a5ac8cc 300deg,#05070f00 360deg);border-radius:50%;animation:.52s ease-in-out forwards portal-wipe;position:absolute;inset:-60%}@keyframes portal-wipe{0%{opacity:0;transform:rotate(0)scale(.15)}45%{opacity:1;transform:rotate(320deg)scale(1.05)}to{opacity:0;transform:rotate(680deg)scale(1.9)}}.prologue-skip{z-index:2;color:#c8d2e6;cursor:pointer;background:#05070f73;border:1px solid #2a3350;border-radius:4px;padding:6px 12px;font:13px ui-monospace,monospace;position:absolute;bottom:12px;right:14px}.prologue-skip:hover,.prologue-skip:focus-visible{color:#ffd9a0;border-color:#ffd9a0}.prologue-skip:disabled{opacity:0;pointer-events:none}.arrival-flood{z-index:4;background:#ffe6bc;animation:.4s ease-out forwards arrival-flood;position:absolute;inset:0}@keyframes arrival-flood{0%{opacity:1}to{opacity:0}}.dialogue{color:#e9e6dd;background:#080a12eb;border:2px solid #2a3350;border-radius:4px;min-height:3.2em;padding:10px 14px 12px;font-size:15px;line-height:1.5;position:absolute;bottom:1.6%;left:4%;right:4%}.dialogue.has-speaker{align-items:flex-start;gap:12px;display:flex}.dialogue-body{flex:1;min-width:0}.dialogue.stage-direction .dialogue-text{color:#a7aec6;font-style:italic}.portrait{width:96px;height:96px;image-rendering:pixelated;border:2px solid;border-radius:3px;flex:none}.portrait-guide{border-color:#ffd9a0}.dialogue .speaker{color:#ffd9a0;letter-spacing:.12em;margin-bottom:5px;font-size:11px}.dialogue.has-speaker .speaker{color:inherit}.dialogue-body .speaker,.dialogue .caret{color:#ffd9a0}.text-btn{color:#9fe8c8;font:inherit;cursor:pointer;background:0 0;border:1px solid #2a3350;border-radius:4px;padding:4px 10px}.text-btn:hover,.text-btn:focus-visible{border-color:#9fe8c8;outline:none}.glyph-confirm{color:#ffd9a0;font:inherit;letter-spacing:.1em;cursor:pointer;background:#080a12eb;border:2px solid #2a3350;border-radius:4px;padding:8px 22px;font-size:13px}.glyph-confirm:disabled{color:#5a8a75;cursor:default}.glyph-confirm:not(:disabled):hover,.glyph-confirm:not(:disabled):focus-visible{border-color:#ffd9a0;outline:none;box-shadow:0 0 16px #ffd9a033}.intention{flex-direction:column;gap:8px;width:min(60%,460px);display:flex;position:absolute;bottom:24%;left:50%;transform:translate(-50%)}.intention-text{color:#e9e6dd;font:inherit;resize:none;caret-color:#ffd9a0;background:#080a12f0;border:2px solid #2a3350;border-radius:4px;outline:none;padding:10px 12px;font-size:14px;line-height:1.5}.intention-text:focus{border-color:#ffd9a0}.intention-row{justify-content:space-between;align-items:center;display:flex}.intention-count{color:#5a8a75;font-size:11px}.intention-question,.intention-cancel{display:none}.asset-gate{color:#8a93b8;flex-direction:column;align-items:center;gap:18px;font-size:15px;display:flex}.asset-gate-retry{color:#e9e6dd;font:inherit;cursor:pointer;background:0 0;border:2px solid #2a3350;border-radius:4px;padding:8px 22px}.asset-gate-retry:hover,.asset-gate-retry:focus-visible{color:#ffd9a0;border-color:#ffd9a0}.log-toggle{top:max(16px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));z-index:3;position:fixed}.log-panel{z-index:3;background:#080a12f2;border:2px solid #2a3350;border-radius:4px;width:min(340px,100vw - 36px);max-height:62vh;padding:10px 14px 12px;font-size:12px;position:fixed;top:52px;right:18px;overflow-y:auto}.log-header{color:var(--system-dim);letter-spacing:.12em;margin-bottom:8px;font-size:10px}.log-empty{color:var(--system-dim);font-style:italic}.log-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.log-entry{color:var(--system-ink);line-height:1.45}.log-entry .bracket{color:var(--system-dim)}.drag-hint{color:#cfeee0;text-shadow:0 1px #05070f,0 0 6px #05070f;letter-spacing:.1em;white-space:nowrap;font-size:12px;position:absolute;top:auto;bottom:21%;left:50%;transform:translate(-50%)}.sr-mirror-btn{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-mirror .sr-mirror-btn:focus-visible{clip-path:none;z-index:5;color:#9fe8c8;width:auto;height:auto;font:inherit;letter-spacing:.08em;background:#080a12f2;border:2px solid #9fe8c8;border-radius:4px;outline:none;margin:0;padding:6px 12px;font-size:12px;position:fixed;top:8vh;left:50%;overflow:visible;transform:translate(-50%)}.pour-list{letter-spacing:.06em;color:#e9e6dd;text-align:left;flex-direction:column;gap:5px;margin:0;padding:0;font-size:11px;line-height:1.4;list-style:none;display:flex;position:absolute;bottom:25%;left:21%}.pour-item{justify-content:flex-start;align-items:center;gap:7px;display:flex}.drink-btn{z-index:4;position:absolute;bottom:24%;right:21%}.sky-names{pointer-events:none;position:absolute;inset:0}.sky-name{pointer-events:auto;color:#fff2d8;min-height:44px;font:inherit;cursor:pointer;text-shadow:0 0 8px #ffd9a08c;background:#0a0e289e;border:1px solid #ffd9a073;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;transition:opacity .3s,background .2s,box-shadow .2s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 18px #ffd9a040}.sky-name-label{letter-spacing:.05em;overflow-wrap:break-word;font-size:17px}.sky-name.long .sky-name-label{font-size:15px}.sky-name-shape{letter-spacing:.14em;text-transform:uppercase;color:#ffd9a0d9;font-size:10px}.sky-name:hover,.sky-name:focus-visible{background:#141a42cc;outline:none;box-shadow:0 0 26px #ffd9a080}.sky-name:focus-visible{border-color:#fff7e8}.sky-name.picked{z-index:2;background:#2a221ed9;border-color:#ffd9a0;box-shadow:0 0 34px #ffd9a0b3}.sky-name.picked .sky-name-label{color:#ffe9c4}.sky-name.dimmed,.sky-names.is-refining .sky-name{opacity:.55}.sky-name:disabled{cursor:default}@media (prefers-reduced-motion:no-preference){.sky-name{animation:sky-drift var(--drift-s,11s) ease-in-out var(--drift-delay,0s) infinite alternate}.sky-name.picked{transition:opacity .3s,background .2s,box-shadow .2s,scale .26s ease-out;animation-play-state:paused;scale:1.12}}@media (height<=560px),(width<=900px){.sky-name{min-height:40px;padding:5px 11px}.sky-name-label{font-size:14px}.sky-name.long .sky-name-label{font-size:12px}.sky-name-shape{font-size:9px}.sky-names.crowded .sky-name{gap:0;min-height:34px;padding:3px 9px}.sky-names.crowded .sky-name.long .sky-name-label{font-size:11px}.sky-names.crowded .sky-name-shape{display:none}@media (pointer:coarse){.sky-names.crowded .sky-name:before{content:"";position:absolute;inset:-5px 0}}.sky-names.crowded .sky-name-label{font-size:12px}}@media (prefers-reduced-motion:no-preference) and ((height<=560px) or (width<=900px)){.sky-names.crowded .sky-name{animation-name:sky-drift-small}}@keyframes sky-drift-small{0%{translate:-3px 1px}to{translate:3px -2px}}@keyframes sky-drift{0%{translate:-10px 3px}to{translate:10px -5px}}.sky-refine{width:min(62%,560px);position:absolute;bottom:24%;left:50%;transform:translate(-50%)}.dialogue-actions{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:10px;display:flex}.dialogue-actions .glyph-confirm,.dialogue-actions .text-btn{min-height:36px;position:static}.true-name-wrap{pointer-events:none;justify-content:center;display:flex;position:absolute;top:22%;left:5%;right:5%}.true-name{letter-spacing:.06em;color:#ffe9c4;text-shadow:0 0 18px #ffd9a0e6,0 0 48px #ffb3478c;overflow-wrap:anywhere;text-align:center;background:#080a1259;border-radius:20px;max-width:100%;padding:6px 22px;font-size:34px}@media (height<=560px),(width<=900px){.true-name{font-size:24px}.dialogue{padding:7px 10px 8px;font-size:13px}.dialogue.has-speaker{gap:9px}.portrait{width:64px;height:64px}.dialogue-actions{gap:6px 12px;margin-top:6px}.dialogue-actions .glyph-confirm{padding:6px 14px}.claim-note{font-size:11px}}@media (prefers-reduced-motion:no-preference){.true-name{animation:.9s cubic-bezier(.2,.9,.3,1.2) both true-name-bloom}}@keyframes true-name-bloom{0%{opacity:0;filter:blur(6px);scale:.6}to{opacity:1;filter:blur();scale:1}}.claim-btn{padding:10px 24px;font-size:15px}.claim-note{color:#a7aec6;flex-basis:100%;margin:0;font-size:12px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (pointer:coarse){.text-btn,.glyph-confirm,.dialogue-actions .glyph-confirm,.dialogue-actions .text-btn,.log-toggle,.prologue-skip{min-height:44px}}@media (height<=420px){.system-line{top:max(2px, env(safe-area-inset-top));max-width:70vw;font-size:11px}}.rotate-overlay{z-index:10;padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));color:#e9e6dd;text-align:center;touch-action:none;background:#05070f;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.rotate-overlay:focus{outline:none}.rotate-face{border:2px solid #2a3350;border-radius:4px}.rotate-glyph{color:#ffd9a0;font-size:44px;line-height:1}.rotate-line{max-width:22em;margin:0;font-size:15px;line-height:1.5}@media (prefers-reduced-motion:no-preference){.rotate-glyph{animation:2.4s ease-in-out infinite rotate-hint}}@keyframes rotate-hint{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media (pointer:coarse){.intention-text{font-size:16px}}@media (pointer:coarse) and (height<=520px){.sky-refine{width:auto;position:static;transform:none}.intention{z-index:6;width:auto;padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left));background:#05070f;justify-content:flex-start;gap:10px;position:fixed;inset:0;transform:none}.intention-question{color:#e9e6dd;margin:0;font-size:14px;line-height:1.45;display:block}.intention-cancel{align-items:center;margin-left:auto;margin-right:12px;display:inline-flex}}
