:root{--green:#7dff4a;--green-dark:#1c6b12;--ink:#15101c;--paper:#f4efe2}*{box-sizing:border-box}html,body{height:100%;color:var(--paper);-webkit-user-select:none;user-select:none;background:#000;margin:0;font-family:Trebuchet MS,Avenir Next,Verdana,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#vignette{pointer-events:none;background:radial-gradient(#0000 55%,#05020f8c 100%);position:fixed;inset:0}.bar{pointer-events:none;background:#000;height:12vh;transition:transform .55s cubic-bezier(.2,.8,.2,1);position:fixed;left:0;right:0}#bar-top{top:0;transform:translateY(-100%)}#bar-bottom{bottom:0;transform:translateY(100%)}body.cinema .bar{transform:translateY(0)}#fade{opacity:1;pointer-events:none;background:#000;position:fixed;inset:0}#flash{opacity:0;pointer-events:none;mix-blend-mode:screen;background:#c8ff9a;position:fixed;inset:0}#goal{letter-spacing:.3px;border:3px solid var(--ink);border-left:6px solid var(--green);opacity:0;background:#15101cc7;border-radius:6px;padding:8px 14px;font-size:17px;transition:opacity .4s;position:fixed;top:18px;left:22px}body.play #goal.on{opacity:1}#prompt{white-space:nowrap;background:var(--paper);color:var(--ink);border:3px solid var(--ink);opacity:0;pointer-events:none;border-radius:8px;padding:5px 10px;font-size:15px;font-weight:700;transition:opacity .15s;position:fixed;top:0;left:0;transform:translate(-50%,-100%)}#prompt.on{opacity:1}#prompt .key{background:var(--ink);color:var(--green);border-radius:4px;margin-right:4px;padding:1px 6px}#caption{text-align:center;letter-spacing:2px;color:#d9d4c5;opacity:0;font-family:Courier New,monospace;font-size:2.4vh;transition:opacity .4s;position:fixed;bottom:3.6vh;left:0;right:0}#caption.on{opacity:1}#toast{opacity:0;background:#15101ccc;border-radius:6px;padding:6px 12px;font-size:14px;transition:opacity .3s;position:fixed;top:18px;right:22px}#toast.on{opacity:1}#parts{opacity:0;border:3px solid var(--ink);background:#15101cc7;border-radius:8px;gap:8px;padding:8px 10px;transition:opacity .4s;display:flex;position:fixed;top:18px;right:22px}body.play #parts.on{opacity:1}#parts span{border:3px dashed #6b6478;border-radius:6px;width:26px;height:26px;transition:all .3s}#parts span.got{border-style:solid;border-color:var(--ink);transform:rotate(8deg)scale(1.1)}#parts span.got:first-child{background:#4affe0;box-shadow:0 0 12px #4affe0}#parts span.got:nth-child(2){background:#c45aff;box-shadow:0 0 12px #c45aff}#parts span.got:nth-child(3){background:#ffb03a;box-shadow:0 0 12px #ffb03a}#hint{white-space:nowrap;border:3px solid var(--ink);opacity:0;background:#15101cc7;border-radius:8px;padding:7px 14px;font-size:15px;transition:opacity .4s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}body.play #hint.on{opacity:1}#toast{top:64px}#dialogue{opacity:0;pointer-events:none;align-items:flex-end;gap:0;width:min(980px,92vw);transition:opacity .2s,transform .25s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;bottom:13.5vh;left:50%;transform:translate(-50%,30px)}#dialogue.on{opacity:1;pointer-events:auto;transform:translate(-50%)}#dlg-portrait{z-index:2;transform-origin:bottom;height:min(300px,38vh);filter:drop-shadow(0 0 0 var(--ink)) drop-shadow(6px 6px 0 #00000073);margin-right:-18px}#dlg-portrait.pop{animation:.28s cubic-bezier(.2,1.6,.4,1) pop}#dlg-portrait.talk{animation:.22s ease-in-out infinite alternate talk}@keyframes pop{0%{transform:scale(.8)translateY(20px)}to{transform:scale(1)}}@keyframes talk{0%{transform:scaleY(1)}to{transform:scaleY(1.025)rotate(-.6deg)}}#dlg-box{background:var(--paper);min-height:150px;color:var(--ink);border:5px solid var(--ink);border-radius:18px 22px 16px 24px;flex:1;padding:20px 28px 26px 38px;position:relative;box-shadow:8px 8px #00000080}#dlg-name{background:var(--green);color:var(--ink);border:4px solid var(--ink);border-radius:10px;padding:4px 16px;font-size:19px;font-weight:700;position:absolute;top:-22px;left:30px;transform:rotate(-2deg)}#dlg-text{min-height:66px;font-size:24px;line-height:1.35}#dlg-choices{flex-direction:column;gap:6px;margin-top:10px;display:flex}.choice{cursor:pointer;border:3px solid #0000;border-radius:10px;padding:7px 14px;font-size:20px}.choice.sel{border-color:var(--ink);background:var(--green);font-weight:700}.choice.sel:before{content:"▶ "}#dlg-arrow{opacity:0;font-size:20px;animation:.5s ease-in-out infinite alternate bounce;position:absolute;bottom:8px;right:18px}#dlg-arrow.on{opacity:1}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(6px)}}#card{text-align:center;opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:fixed;inset:0}#card.on{opacity:1}#card.solid{background:#000}#card-small{letter-spacing:.6vh;text-transform:uppercase;color:#cfe;margin-bottom:1.5vh;font-size:3vh}#card-big{letter-spacing:-.2vh;color:var(--green);-webkit-text-stroke:.5vh var(--ink);paint-order:stroke fill;text-shadow:0 0 4vh #7dff4abf,.6vh .6vh #0a3b05;font-size:11vh;font-weight:900;line-height:.95;transform:rotate(-3deg)}#card.on #card-big{animation:.5s cubic-bezier(.2,1.5,.4,1) slam}@keyframes slam{0%{opacity:0;transform:rotate(-3deg)scale(2.2)}to{opacity:1;transform:rotate(-3deg)scale(1)}}#card-hint{color:#d9d4c5;margin-top:4vh;font-size:2.4vh;animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.25}}
