@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Quicksand:wght@500;650&display=swap";:root{color:#fffaf2;font-synthesis:none;--ink:#08050d;--paper:#fffaf2;--violet:#8d5bc9;--violet-dark:#3b2258;--shell-width:min(960px, calc(100vw - 24px));background:#08050d;font-family:DM Mono,ui-monospace,monospace}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:radial-gradient(circle at 50% 40%, #8d5bc91f, transparent 42%), var(--ink);margin:0;overflow:hidden}button{font:inherit}#app{place-content:center;min-height:100vh;padding:12px;display:grid}#game-shell{width:var(--shell-width);aspect-ratio:16/9;image-rendering:pixelated;background:#000;border:1px solid #fffaf229;position:relative;overflow:hidden;box-shadow:0 24px 90px #000000b8,0 0 70px #8d5bc91a}#game,#game canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block;width:100%!important;height:100%!important}.dialogue{z-index:4;min-height:22%;color:var(--paper);border:2px solid var(--paper);pointer-events:auto;background:#08050df2;padding:clamp(14px,2.2vw,24px) clamp(18px,3vw,34px);position:absolute;bottom:5%;left:5%;right:5%;overflow:visible;box-shadow:5px 5px #3b2258f2,0 0 0 1px #000}.dialogue-opening{animation:.24s cubic-bezier(.22,.8,.28,1) both dialogue-rise}.dialogue-closing{pointer-events:none;animation:.19s cubic-bezier(.55,0,1,.45) both dialogue-sink}.speaker{color:#c9a7f2;letter-spacing:.12em;text-transform:uppercase;min-height:1.1em;margin:0 0 .55em;font-family:Quicksand,sans-serif;font-size:clamp(11px,1.75vw,18px);font-weight:650}.dialogue-text{white-space:pre-wrap;min-height:2.9em;margin:0;font-family:Quicksand,sans-serif;font-size:clamp(13px,2vw,22px);font-weight:500;line-height:1.48}.dialogue-choices{z-index:1;box-shadow:none;background:0 0;border:0;flex-direction:column;align-items:flex-end;gap:0;margin:0;display:none;position:absolute;bottom:calc(100% - 2px);right:-2px}.dialogue.has-choices .dialogue-choices{display:flex}.choice-button{border:2px solid var(--paper);color:#8f78b0;text-align:right;cursor:pointer;white-space:nowrap;background:#08050dfa;width:max-content;max-width:min(70vw,420px);margin-top:-2px;padding:.45em .85em .45em 1.55em;font-family:Quicksand,sans-serif;font-size:clamp(11px,1.55vw,17px);line-height:1.3;position:relative;box-shadow:4px 4px #3b2258d9,0 0 0 1px #000}.choice-button:first-child{margin-top:0}.choice-button:before{content:"";color:var(--paper);position:absolute;left:.45em}.choice-button[aria-selected=true]{color:var(--paper);background:#08050dfa}.choice-button[aria-selected=true]:before{content:">"}.choice-button:hover,.choice-button:focus-visible{color:#dbc7f5;outline:none}.continue-mark{color:#c9a7f2;font-size:.7em;animation:.85s steps(2,end) infinite drift;position:absolute;bottom:12px;right:18px}.hud-message{z-index:5;border:2px solid var(--paper);color:var(--paper);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;pointer-events:none;background:#08050df5;padding:5px 10px;font-size:clamp(8px,1.2vw,13px);position:absolute;top:6.5%;left:50%;translate:-50%;box-shadow:3px 3px #3b2258f2}.hud-message-showing{animation:2.6s both hud-message-life}.pause-menu{z-index:10;background:radial-gradient(circle at 50% 42%,#8d5bc933,#0000 46%),#000000e0;place-items:center;padding:3.5%;display:grid;position:absolute;inset:0}.pause-panel{border:3px solid var(--paper);width:min(690px,94%);min-height:min(410px,88%);max-height:94%;color:var(--paper);background:#1d102b;flex-direction:column;display:flex;overflow:hidden;box-shadow:7px 7px #6d3fa2}.pause-header{background:#08050d8a;border-bottom:2px solid #8d5bc9;justify-content:flex-end;align-items:center;padding:clamp(11px,1.7vw,18px) clamp(14px,2vw,22px);display:flex}.pause-summary{color:#c9a7f2;letter-spacing:.13em;align-items:center;gap:clamp(10px,2vw,24px);font-size:clamp(7px,1.05vw,11px);display:flex}.pause-close{width:30px;height:30px;color:var(--paper);cursor:pointer;background:0 0;border:0;padding:0;font-size:24px;line-height:1}.pause-close:hover,.pause-close:focus-visible{color:var(--ink);background:var(--paper);outline:none}.pause-tabs{background:#08050d;border-bottom:2px solid #8d5bc9;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.pause-tab{color:#9e82c4;cursor:pointer;letter-spacing:.08em;background:0 0;border:0;border-right:1px solid #8d5bc98c;min-width:0;padding:clamp(8px,1.25vw,13px) 4px;font-size:clamp(6px,.9vw,10px)}.pause-tab:last-child{border-right:0}.pause-tab[aria-selected=true]{color:var(--paper);box-shadow:inset 0 -3px 0 var(--paper);background:#3b2258}.pause-tab:hover,.pause-tab:focus-visible{color:var(--paper);outline:none}.pause-content{scrollbar-color:#8d5bc9 #08050d;flex:1;min-height:0;padding:clamp(13px,2vw,22px);overflow:auto}.pause-tab-panel{min-height:100%}.inventory-items{gap:8px;display:grid}.inventory-item{background:#08050d;border:2px solid #8d5bc9;align-items:center;gap:12px;padding:10px;display:flex}.inventory-item-icon{width:32px;height:32px;color:var(--ink);background:var(--paper);flex:0 0 32px;place-items:center;display:grid}.inventory-item-name{font-family:Quicksand,sans-serif;font-size:clamp(11px,1.7vw,16px);font-weight:650}.inventory-item-description{color:#c9a7f2;margin-top:3px;font-size:clamp(7px,1.05vw,11px);line-height:1.35}.pause-option{background:#08050d;border:2px solid #8d5bc9;justify-content:space-between;align-items:center;gap:18px;margin-bottom:10px;padding:clamp(10px,1.5vw,15px);display:flex}.pause-option strong{letter-spacing:.1em;margin-bottom:4px;font-family:Quicksand,sans-serif;font-size:clamp(10px,1.4vw,15px);display:block}.pause-option span{color:#c9a7f2;font-size:clamp(7px,1vw,10px)}.pause-toggle,.pause-action{border:2px solid var(--paper);color:var(--paper);cursor:pointer;letter-spacing:.12em;background:#3b2258;padding:8px 15px;font-size:clamp(7px,1vw,11px)}.pause-toggle{min-width:58px}.pause-toggle[aria-pressed=true]{color:#1d102b;background:var(--paper)}.pause-toggle:hover,.pause-toggle:focus-visible,.pause-action:hover,.pause-action:focus-visible{color:#1d102b;background:#c9a7f2;outline:none}.controls-list{gap:7px;margin:0;display:grid}.controls-list div{border-bottom:1px solid #8d5bc98c;grid-template-columns:minmax(120px,1fr) 1fr;padding:7px 3px;display:grid}.controls-list dt{color:#c9a7f2;letter-spacing:.1em;font-size:clamp(7px,1vw,11px)}.controls-list dd{text-align:right;margin:0;font-size:clamp(7px,1vw,11px)}.pause-action-panel{text-align:center;align-content:center;justify-items:center;display:grid}.pause-action-panel>p:not(.pause-status){color:#c9a7f2;max-width:420px;font-size:clamp(8px,1.15vw,12px);line-height:1.5}.pause-action{margin-top:10px}.pause-action-divider{border-top:1px solid #8d5bc9a6;width:min(280px,70%);margin:18px 0 7px}.pause-action-danger{background:#08050d;border-color:#c9a7f2}.pause-status{min-height:1.3em;color:var(--paper);letter-spacing:.13em;margin:12px 0 0;font-size:clamp(7px,1vw,10px)}.pause-hint{color:#fffaf273;text-align:right;letter-spacing:.12em;background:#08050d73;border-top:1px solid #8d5bc98c;margin:0;padding:8px 14px;font-size:clamp(6px,.9vw,9px)}.pause-opening{animation:.18s both pause-backdrop-in}.pause-opening .pause-panel{animation:.22s cubic-bezier(.22,.8,.28,1) both pause-panel-in}.pause-closing{pointer-events:none;animation:.18s both pause-backdrop-out}.pause-closing .pause-panel{animation:.18s both pause-panel-out}.outside-note{color:#fffaf259;text-align:center;letter-spacing:.08em;margin:9px 0 0;font-size:10px}.is-hidden{display:none!important}@keyframes drift{50%{transform:translateY(3px)}}@keyframes dialogue-rise{0%{opacity:0;transform:translateY(calc(100% + 32px))}to{opacity:1;transform:translateY(0)}}@keyframes dialogue-sink{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(calc(100% + 32px))}}@keyframes hud-message-life{0%{opacity:0;transform:translateY(-8px)}7%,84%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-3px)}}@keyframes pause-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes pause-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes pause-panel-in{0%{opacity:0;transform:translateY(15px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pause-panel-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.9)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}
