:root{--ink:#2b2030;--paper:#f6ead9;--paper-2:#efdcc4;--pinga:#ff5fd2;--pinga-low:#ff6a3d;--green:#5dff9a;--cyan:#7ff6ff;--serif:"Fraunces", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--display:"Unbounded", "Fraunces", sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--serif);-webkit-user-select:none;user-select:none;background:#eccab0;margin:0;overflow:hidden}#scene{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:fixed;inset:0}#scene:active{cursor:grabbing}.hidden{display:none!important}#hud{pointer-events:none;font-family:var(--mono);position:fixed;inset:0}.reactor{top:max(16px, env(safe-area-inset-top));background:color-mix(in srgb, var(--paper) 82%, transparent);border:2px solid var(--ink);box-shadow:3px 4px 0 var(--ink);border-radius:14px 18px 12px 16px;align-items:center;gap:12px;padding:8px 16px 8px 10px;display:flex;position:absolute;left:16px}.reactor .bottle{width:30px;height:60px;overflow:visible}.reactor .bottle #bottle-liquid{fill:var(--pinga);transition:y .25s linear}.reactor .bottle .glass{fill:#ffffff40;stroke:var(--ink);stroke-width:3px;stroke-linejoin:round}.reactor .bottle .cork{fill:#9c6656;stroke:var(--ink);stroke-width:2px}.reactor .bottle .shine{stroke:#fff;stroke-width:3px;stroke-linecap:round;opacity:.7}.reactor.low #bottle-liquid{fill:var(--pinga-low);animation:.6s steps(2,end) infinite flicker}.reactor.over #bottle-liquid{fill:#fff2fb}.reactor.over .bottle{filter:drop-shadow(0 0 8px var(--pinga)) drop-shadow(0 0 14px #fff)}.reactor .label{letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:600}.reactor .pct{margin-top:2px;font-size:20px;font-weight:600}@keyframes flicker{50%{opacity:.55}}.cells{top:calc(max(16px, env(safe-area-inset-top)) + 92px);gap:8px;display:flex;position:absolute;left:18px}.pip{border:2px solid var(--ink);background:color-mix(in srgb, var(--paper) 70%, transparent);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:16px;height:22px}.pip.on{background:var(--pinga);box-shadow:0 0 12px var(--pinga)}.compass{top:max(16px, env(safe-area-inset-top));background:color-mix(in srgb, var(--paper) 82%, transparent);border:2px solid var(--ink);box-shadow:3px 4px 0 var(--ink);border-radius:18px 12px 16px 14px;align-items:center;gap:10px;padding:8px 12px 8px 8px;display:flex;position:absolute;right:16px}.compass .dial{border:2px solid var(--ink);background:var(--paper-2);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.compass .arrow{border-left:8px solid #0000;border-right:8px solid #0000;border-bottom:22px solid var(--pinga);width:0;height:0;filter:drop-shadow(0 0 1px var(--ink)) drop-shadow(0 0 1px var(--ink))}.compass .meta{font-size:12px;line-height:1.35}.compass .target{font-weight:600}.skills{left:16px;bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute}.ability,.meter{background:color-mix(in srgb, var(--paper) 82%, transparent);border:2px solid var(--ink);opacity:.7;border-radius:12px 16px 14px 12px;align-items:center;gap:8px;padding:7px 12px;font-size:12px;display:flex}.ability.ready,.meter.ready{opacity:1}.ability.active{background:#c9f5d9}.ability .key,.meter .key{border:2px solid var(--ink);background:var(--paper);border-radius:6px;place-items:center;min-width:22px;height:22px;padding:0 4px;font-weight:600;display:inline-grid}.ability.ready .key{background:var(--green)}.meter.ready .key{background:var(--cyan,#7ff6ff)}.meter i{border:2px solid var(--ink);background:#e2cdb3;border-radius:6px;width:60px;height:8px;display:block;overflow:hidden}.meter b{background:#7ff6ff;height:100%;display:block}.boss{top:calc(max(16px, env(safe-area-inset-top)) + 96px);text-align:center;width:min(520px,100vw - 32px);position:absolute;left:50%;transform:translate(-50%)}.boss-name{font:700 18px var(--serif);color:var(--paper);text-shadow:0 2px 0 var(--ink), 0 0 10px #c9b8ff;letter-spacing:.04em}.boss-bar{border:2px solid var(--ink);height:14px;box-shadow:3px 3px 0 var(--ink);background:#2b2030cc;border-radius:8px;margin-top:4px;position:relative;overflow:hidden}.boss-fill{background:linear-gradient(90deg,#6e1f33,#c03a5a);height:100%;transition:width .2s ease-out}.boss-open{background:#fff;height:3px;position:absolute;bottom:0;left:0}.boss.shielded .boss-fill{background:repeating-linear-gradient(135deg,#8f7cc7 0 8px,#c9b8ff 8px 16px)}.boss-state{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 0 var(--ink), 0 0 6px var(--ink);margin-top:4px}.combo{font-family:var(--serif);color:var(--paper);text-shadow:0 3px 0 var(--ink), 0 0 12px var(--pinga);opacity:0;align-items:baseline;gap:6px;transition:opacity .2s,transform .2s;display:flex;position:absolute;top:42%;right:18px;transform:scale(.6)}.combo.on{opacity:1;transform:scale(1)}.combo b{font-size:52px;line-height:1}.combo span{font:600 14px var(--mono);text-transform:uppercase;letter-spacing:.1em}.combo.pop b{animation:.18s ease-out comboPop}.combo.hot b{color:#fff2fb;text-shadow:0 3px 0 var(--ink), 0 0 18px var(--pinga), 0 0 30px var(--pinga)}@keyframes comboPop{0%{transform:scale(1.6)rotate(-6deg)}to{transform:scale(1)rotate(0)}}.charge{display:none;position:absolute;top:calc(50% + 46px);left:50%;transform:translate(-50%)}.charge.on{display:block}.charge i{border:2px solid var(--ink);background:#2b203099;border-radius:6px;width:90px;height:8px;display:block;overflow:hidden}.charge b{background:var(--pinga);height:100%;display:block}.charge.full b{box-shadow:0 0 10px var(--pinga);background:#fff2fb}.crosshair{border:2px solid var(--paper);width:18px;height:18px;box-shadow:0 0 0 2px var(--ink);border-radius:50%;margin:-9px 0 0 -9px;display:none;position:absolute;top:50%;left:50%}.charge.on+.crosshair{display:block}.touch-pad,.stick,body.touch .meter,body.touch .ability{display:none}body.touch .touch-pad{right:18px;bottom:calc(max(16px, env(safe-area-inset-bottom)) + 8px);pointer-events:auto;grid-template-rows:repeat(2,64px);grid-template-columns:repeat(2,64px);gap:10px;display:grid;position:absolute}.touch-btn{border:2px solid var(--ink);background:color-mix(in srgb, var(--paper) 85%, transparent);width:64px;height:64px;font:600 12px var(--mono);color:var(--ink);box-shadow:3px 4px 0 var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%}.touch-btn:active{box-shadow:1px 2px 0 var(--ink);transform:translate(2px,2px)}.touch-btn.big{background:var(--pinga)}#btn-gaze.ready{background:var(--green)}.stick{border:2px solid color-mix(in srgb, var(--ink) 60%, transparent);background:color-mix(in srgb, var(--paper) 30%, transparent);border-radius:50%;width:100px;height:100px;position:absolute;top:-50px;left:-50px}.stick .knob{background:color-mix(in srgb, var(--paper) 85%, transparent);border:2px solid var(--ink);border-radius:50%;width:40px;height:40px;position:absolute;top:30px;left:30px}#popups{pointer-events:none;position:fixed;inset:0;overflow:hidden}.popup{font:700 22px var(--serif);color:#fff;white-space:nowrap;text-shadow:0 2px 0 var(--ink), 2px 0 0 var(--ink), -2px 0 0 var(--ink), 0 -2px 0 var(--ink);will-change:transform, opacity;position:absolute;top:0;left:0}.popup.crit{color:var(--green);font-size:28px}.popup.hurt{color:var(--pinga-low)}.popup.gain{color:var(--pinga);font-size:18px}.popup.parry{color:#7ff6ff;letter-spacing:.05em;font-size:26px}.popup.block{color:#c9b8ff;font:600 14px var(--mono)}.popup.kill{color:#fff2fb;font:700 16px var(--mono);letter-spacing:.15em}.popup.big{color:#fff2fb;text-shadow:0 3px 0 var(--ink), 0 0 14px var(--pinga);font-size:34px}#hurt{pointer-events:none;opacity:0;background:radial-gradient(#0000 45%,#ff468c8c 100%);position:fixed;inset:0}#letterbox{pointer-events:none;position:fixed;inset:0}#letterbox i{background:#16111c;height:9vh;transition:transform .5s;position:absolute;left:0;right:0}#letterbox i:first-child{top:0;transform:translateY(-100%)}#letterbox i:last-child{bottom:0;transform:translateY(100%)}#letterbox.on i{transform:translateY(0)}#dialogue{left:50%;bottom:calc(max(16px, env(safe-area-inset-bottom)) + 56px);background:color-mix(in srgb, var(--ink) 88%, transparent);width:min(640px,100vw - 32px);color:var(--paper);box-shadow:4px 5px 0 color-mix(in srgb, var(--ink) 40%, transparent);pointer-events:auto;cursor:pointer;z-index:5;border-radius:16px 20px 14px 18px;padding:14px 18px 16px;position:fixed;transform:translate(-50%)}#dialogue .who{font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}#dialogue .text{min-height:1.4em;font-size:clamp(16px,2.2vw,19px);line-height:1.4}#overlay{background:radial-gradient(ellipse at center, transparent 30%, color-mix(in srgb, var(--ink) 45%, transparent));place-items:center;padding:16px;display:grid;position:fixed;inset:0}#overlay .panel{background:var(--paper);border:2px solid var(--ink);width:min(560px,100%);box-shadow:6px 7px 0 var(--ink);text-align:center;border-radius:22px 30px 20px 26px;padding:28px 28px 22px}#overlay h1{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(36px,9vw,60px);font-weight:700;line-height:1}#overlay .tag{color:#7a4a6a;margin:10px 0 0;font-size:18px;font-style:italic}#overlay .body{max-width:46ch;margin:16px auto 0;font-size:16px;line-height:1.5}#overlay button{font:600 15px var(--mono);letter-spacing:.06em;color:var(--ink);background:var(--pinga);border:2px solid var(--ink);box-shadow:3px 4px 0 var(--ink);cursor:pointer;border-radius:14px 18px 12px 16px;margin-top:22px;padding:12px 26px}#overlay button:hover{box-shadow:4px 5px 0 var(--ink);transform:translate(-1px,-1px)}#overlay button:active{box-shadow:1px 2px 0 var(--ink);transform:translate(2px,2px)}#overlay .controls{font:12px var(--mono);color:#6b5a68;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:20px;display:flex}body.touch #overlay .controls{display:none}#hud{transition:opacity .4s}body.cine #hud{opacity:0}@media (max-width:720px){#dialogue{bottom:calc(max(16px, env(safe-area-inset-bottom)) + 104px)}.combo b{font-size:40px}}body.touch #dialogue{bottom:calc(max(16px, env(safe-area-inset-bottom)) + 168px)}body.cine #dialogue{bottom:calc(9vh + 12px)}.title{z-index:20;color:#fff6f0;font-family:var(--mono);position:fixed;inset:0;overflow:hidden}.title.hidden{display:none}.t-bars i{z-index:3;background:#0d0a11;height:11vh;transition:height .9s cubic-bezier(.7,0,.2,1);position:absolute;left:0;right:0}.t-bars i:first-child{top:0}.t-bars i:last-child{bottom:0}.title.gate .t-bars i{height:50.5vh}.title.menu .t-bars i{height:6vh}.t-vignette{pointer-events:none;background:radial-gradient(at 50% 55%,#0000 40%,#0d0a11b3 100%);position:absolute;inset:0}.t-scan{z-index:6;pointer-events:none;mix-blend-mode:multiply;opacity:.5;background:repeating-linear-gradient(0deg,#0000001f 0 1px,#0000 1px 3px);position:absolute;inset:0}.t-gate{z-index:5;cursor:pointer;background:radial-gradient(circle,#ff5fd21f,#0000 40%);flex-direction:column;justify-content:center;align-items:center;gap:18px;display:none;position:absolute;inset:0}.title.gate .t-gate{display:flex}.t-bottle{filter:drop-shadow(0 0 18px #ff5fd2)drop-shadow(0 0 40px #ff5fd2);width:54px;height:108px;animation:1.6s ease-in-out infinite gateBeat;overflow:visible}.t-bottle path{fill:#ff5fd2;stroke:#fff6f0;stroke-width:2.5px}.t-bottle rect{fill:#9c6656;stroke:#fff6f0;stroke-width:2px}@keyframes gateBeat{0%,to{opacity:.85;transform:scale(1)}12%{opacity:1;transform:scale(1.08)}24%{transform:scale(.98)}36%{opacity:1;transform:scale(1.05)}}.t-gate-cta{font:600 13px var(--mono);letter-spacing:.4em;text-transform:uppercase;margin:0;animation:1.2s steps(2,end) infinite blink}.t-gate-hint{letter-spacing:.2em;text-transform:uppercase;opacity:.45;margin:0;font-size:11px}@keyframes blink{50%{opacity:.35}}.t-wipe{z-index:2;pointer-events:none;position:absolute;inset:0}.t-wipe i{border-radius:42% 58% 63% 37%/45% 39% 61% 55%;width:40vmax;height:40vmax;margin:-20vmax 0 0 -20vmax;animation:.75s cubic-bezier(.65,0,.35,1) forwards wipe;position:absolute;transform:scale(0)rotate(0)}@keyframes wipe{0%{opacity:1;border-radius:42% 58% 63% 37%/45% 39% 61% 55%;transform:scale(0)rotate(0)}45%{opacity:1;border-radius:60% 40% 35% 65%/55% 62% 38% 45%;transform:scale(4.5)rotate(40deg)}to{opacity:0;transform:scale(5)rotate(70deg)}}.t-card{z-index:4;pointer-events:none;opacity:0;flex-direction:column;gap:6px;max-width:min(90vw,900px);display:flex;position:absolute;bottom:calc(11vh + clamp(20px,6vh,64px));left:clamp(20px,7vw,110px)}.t-card.on{animation:2.2s cubic-bezier(.2,.9,.2,1) forwards cardIn}@keyframes cardIn{0%{opacity:0;filter:blur(6px);transform:translate(-30px)}10%{opacity:1;filter:blur();transform:translate(0)}85%{opacity:1}to{opacity:0;transform:translate(12px)}}.t-card-kicker{font:600 12px var(--mono);letter-spacing:.35em;text-transform:uppercase;color:var(--accent,#ff5fd2)}.t-card-name{font:900 clamp(34px, 7.4vw, 104px) / .95 var(--display);text-transform:uppercase;letter-spacing:-.01em;color:#fff6f0;text-shadow:0 0 30px color-mix(in srgb, var(--accent,#ff5fd2) 60%, transparent);margin:0;position:relative}.t-card-name:before,.t-card-name:after{content:attr(data-text);pointer-events:none;position:absolute;inset:0}.t-card-name:before{color:#7ff6ff;mix-blend-mode:screen;animation:2.2s step-end infinite glitchA}.t-card-name:after{color:var(--accent,#ff5fd2);mix-blend-mode:screen;animation:1.7s step-end infinite glitchB}.t-card-line{font:500 clamp(13px, 1.6vw, 18px) var(--mono);letter-spacing:.08em;color:#fff6f0cc}.t-card-line:before{content:"";vertical-align:middle;background:var(--accent,#ff5fd2);width:36px;height:3px;margin-right:12px;display:inline-block}@keyframes glitchA{0%{clip-path:inset(0);transform:translate(0)}4%{clip-path:inset(18% 0 62%);transform:translate(-6px)}8%{clip-path:inset(70% 0 8%);transform:translate(5px)}12%,to{clip-path:inset(0 0 100%);transform:translate(0)}}@keyframes glitchB{0%{clip-path:inset(0 0 100%)}50%{clip-path:inset(40% 0 35%);transform:translate(7px)}54%{clip-path:inset(10% 0 80%);transform:translate(-4px)}58%,to{clip-path:inset(0 0 100%);transform:translate(0)}}.t-logo{z-index:4;pointer-events:none;opacity:0;position:absolute;top:50%;left:clamp(20px,7vw,110px);transform:translateY(-62%)}.title.slam .t-logo,.title.menu .t-logo{opacity:1}.title.slam .t-logo{animation:.55s cubic-bezier(.2,1.6,.4,1) slam}@keyframes slam{0%{filter:blur(10px);opacity:0;transform:translateY(-62%)scale(1.9)}60%{filter:blur();opacity:1;transform:translateY(-62%)scale(.96)}to{transform:translateY(-62%)scale(1)}}.t-glitch{font:900 clamp(28px, 8.8vw, 140px) / .9 var(--display);letter-spacing:-.035em;color:#fff6f0;text-shadow:0 0 2px #fff,0 0 40px #ff5fd28c,0 6px #16111c;margin:0;position:relative}.t-glitch:before,.t-glitch:after{content:attr(data-text);text-shadow:none;position:absolute;inset:0}.t-glitch:before{color:#ff5fd2;mix-blend-mode:screen;animation:3.1s step-end infinite glitchA;transform:translate(-3px)}.t-glitch:after{color:#7ff6ff;mix-blend-mode:screen;animation:2.3s step-end infinite glitchB;transform:translate(3px)}.t-tag{font:italic 400 clamp(15px, 1.9vw, 24px) var(--serif);color:#ffd1ee;text-shadow:0 2px #16111c;margin:14px 0 0 4px}.t-menu{z-index:4;flex-direction:column;align-items:flex-start;gap:10px;display:none;position:absolute;top:calc(50% + clamp(40px,9vh,110px));left:clamp(20px,7vw,110px)}.title.menu .t-menu{animation:.6s cubic-bezier(.2,.9,.2,1) .15s both menuIn;display:flex}@keyframes menuIn{0%{opacity:0;transform:translateY(14px)}}.t-btn{font:600 14px var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#fff6f0;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));cursor:pointer;background:#0d0a118c;border:1px solid #fff6f040;padding:10px 18px 10px 30px;transition:background .15s,color .15s,transform .15s;position:relative}.t-btn:before{content:"";opacity:.4;background:currentColor;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:12px}.t-btn:hover,.t-btn:focus-visible{color:#16111c;background:#7ff6ff;outline:none;transform:translate(6px)}.t-btn.primary{color:#16111c;background:#ff5fd2;border-color:#ff5fd2;padding:14px 26px 14px 34px;font-size:17px;box-shadow:0 0 24px #ff5fd299}.t-btn.primary:hover{background:#fff6f0}.t-chapter{letter-spacing:.3em;text-transform:uppercase;opacity:.6;margin-top:8px;font-size:11px}.t-press{z-index:4;letter-spacing:.35em;text-transform:uppercase;font-size:12px;animation:1.2s steps(2,end) infinite blink;display:none;position:absolute;bottom:calc(6vh + 18px);right:clamp(20px,5vw,70px)}.t-press b{color:#ff5fd2}.title.menu .t-press{display:block}body.touch .t-press{display:none!important}.t-controls{z-index:7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0d0a11e0;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:16px;display:flex;position:absolute;inset:0}.t-controls.hidden{display:none}.t-controls h3{font:900 28px var(--display);letter-spacing:.02em;margin:0}.t-keys{grid-template-columns:auto 1fr;align-items:center;gap:10px 18px;width:100%;max-width:620px;display:grid}.t-keys span{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.t-keys em{opacity:.85;font-size:13px;font-style:normal}kbd{min-width:26px;font:600 11px var(--mono);text-align:center;text-transform:uppercase;color:#16111c;background:#fff6f0;border-radius:4px;padding:4px 7px;display:inline-block;box-shadow:0 3px #ff5fd2}.t-tip{color:#7ff6ff;margin:0;font-size:12px}.t-skip{z-index:4;letter-spacing:.3em;text-transform:uppercase;opacity:0;font-size:11px;position:absolute;top:calc(11vh + 14px);right:clamp(16px,4vw,48px)}.title.open .t-skip{opacity:.6}body.titling #hud,body.titling #dialogue{display:none!important}@media (max-width:720px){.t-logo,.t-menu,.t-card{left:20px;right:20px}.t-logo{top:38%}.t-menu{top:auto;bottom:calc(6vh + 24px)}.t-keys{grid-template-columns:1fr;gap:4px}.t-keys span{justify-content:flex-start;margin-top:8px}.t-press{display:none!important}}.warp-chip{left:50%;top:calc(max(16px, env(safe-area-inset-top)) + 70px);font:700 13px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#fff;box-shadow:0 0 0 2px var(--ink), 0 0 24px #c46bff;text-shadow:0 1px 0 var(--ink), 0 0 4px var(--ink);opacity:0;background:linear-gradient(90deg,#ff6b6b,#ffd36b,#6bff9e,#6bc8ff,#c46bff,#ff6b6b) 0 0/300% 100%;border-radius:999px;padding:8px 16px;transition:opacity .2s,transform .2s;animation:1.2s linear infinite warpRoll;position:absolute;transform:translate(-50%)scale(.8)}.warp-chip.on{opacity:1;transform:translate(-50%)scale(1)}.warp-chip span{display:none}.warp-chip.ready span{display:inline}.warp-chip kbd{box-shadow:0 2px 0 var(--ink)}body.touch .warp-chip kbd{display:none}@keyframes warpRoll{to{background-position:300% 0}}.popup.warp{font:900 26px var(--display);background:linear-gradient(90deg,#ff6b6b,#ffd36b,#6bff9e,#6bc8ff,#c46bff);color:#0000;text-shadow:none;filter:drop-shadow(0 2px #2b2030);-webkit-background-clip:text;background-clip:text}
