@font-face{font-family:Trazo;src:url('assets/caveat.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Trazo;src:url('assets/caveat-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Bangers;src:url('assets/bangers.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:light;--ink:#222c46;--paper:#f7f1df;--yellow:#f3c84a;--blue:#437ca0;--red:#df6555;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:#202c3c;min-height:100dvh;display:grid;place-items:center;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px dashed var(--blue);outline-offset:7px}button{border:0}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.55}[hidden]{display:none!important}#stage{position:relative;width:min(100vw,160dvh);aspect-ratio:8/5;max-height:100dvh;overflow:hidden;isolation:isolate;container-type:inline-size}#game{display:block;width:100%;height:100%;touch-action:none}.screen{position:absolute;inset:0}button kbd{font-family:inherit}
.topbar{position:absolute;z-index:5;left:4%;right:4%;top:3%;display:flex;align-items:center;justify-content:space-between;color:#e9e8d9;font-size:clamp(10px,1cqw,14px);font-weight:bold;letter-spacing:.12em}.topbar>span{opacity:.65}.topbar i{font-style:normal;padding:0 9px;color:var(--yellow)}.topbar button{color:inherit;background:none;font-size:inherit;letter-spacing:inherit}.topbar>div{display:flex;gap:18px}.playing .topbar{color:var(--ink);top:2.2%;font-size:clamp(10px,.95cqw,13px)}.topbar a:hover{text-decoration:underline;text-underline-offset:4px}.topbar #pause{border:1px solid currentColor;padding:4px 8px;transform:rotate(2deg)}
.cover-copy{position:absolute;left:14%;top:19%;transform:rotate(-2deg);color:var(--ink)}.eyebrow{font-size:clamp(10px,1cqw,14px);font-weight:800;letter-spacing:.12em}.cover-copy .eyebrow{display:flex;align-items:center;gap:12px}.cover-copy .eyebrow>span{display:inline-block;font:400 26px Bangers;border:2px solid var(--ink);padding:2px 7px;transform:rotate(-7deg)}.cover-copy h1{font:400 clamp(94px,16.5cqw,224px)/.8 Bangers,cursive;letter-spacing:.005em;margin:.2em 0 .14em;transform:rotate(-2deg);text-shadow:3px 3px 0 #fff1b578;position:relative}.cover-copy h1>span{display:inline-block;color:var(--red);-webkit-text-stroke:1.5px var(--ink);transform:rotate(9deg);margin-left:1px}.slogan{font:400 clamp(18px,2.8cqw,39px)/1.04 Trazo,cursive;margin:0 0 .85em}.slogan strong{font-weight:700}.primary{background:var(--red);color:var(--paper);border:2px solid var(--ink);padding:17px 24px 15px;font:400 clamp(17px,2.15cqw,30px)/1 Bangers,cursive;letter-spacing:.045em;box-shadow:5px 6px 0 var(--ink);transform:rotate(-1.5deg);transition:transform .15s,box-shadow .15s}.primary>span{margin-left:22px;font-family:Arial,sans-serif}.primary:hover{transform:translateY(-4px) rotate(.5deg);box-shadow:6px 9px 0 var(--ink)}.primary:active{transform:translateY(3px) rotate(-1deg);box-shadow:2px 2px 0 var(--ink)}.menu-note{font:400 clamp(12px,1.6cqw,22px) Trazo,cursive;max-width:310px;line-height:1;margin-top:19px;color:#695940}.menu-note i{color:var(--ink);font-size:1.4em;font-weight:bold;display:inline-block;transform:rotate(8deg);padding-left:10px}.edition{position:absolute;right:12%;top:13.5%;transform:rotate(8deg);border:2px solid var(--ink);padding:9px 20px;color:var(--ink);background:var(--paper);box-shadow:3px 4px 0 #222c4633;font:400 clamp(16px,2cqw,28px)/1.1 Bangers;text-align:center}.edition>span,.edition>small{display:block;font:bold clamp(8px,.65cqw,10px) Arial;letter-spacing:.08em}.edition>span{margin-bottom:3px}.edition>small{margin-top:5px}.cover-bottom{position:absolute;bottom:4%;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;font-size:clamp(9px,.9cqw,12px);letter-spacing:.1em;color:#eee8d9a3;font-weight:bold}.cover-bottom button{background:none;color:#e9e8d9;font-size:inherit;letter-spacing:inherit}.cover-bottom b{display:inline-grid;place-items:center;background:var(--yellow);color:var(--ink);width:21px;height:21px;margin-left:8px;border-radius:50%;font:400 19px Bangers}
#scene-label{position:absolute;left:15%;top:12%;font:400 clamp(14px,1.6cqw,23px) Bangers;color:var(--ink);transform:rotate(-2deg);border-bottom:3px solid var(--yellow);padding-bottom:3px}#skip{position:absolute;right:7%;top:11.5%}.small-button{background:var(--paper);border:1.5px solid var(--ink);padding:8px 15px;color:var(--ink);font:400 clamp(13px,1.4cqw,20px) Bangers;letter-spacing:.04em;transform:rotate(2deg)}.small-button:hover{background:var(--yellow)}.subtitle{position:absolute;bottom:15%;left:16%;right:13%;text-align:center;font:700 clamp(19px,2.5cqw,36px)/1.15 Trazo,cursive;color:var(--ink)}.subtitle>span{background:var(--paper);padding:4px 14px;box-shadow:0 4px 0 #222c4614;box-decoration-break:clone;-webkit-box-decoration-break:clone}#intro-action{position:absolute;bottom:13%;left:50%;transform:translateX(-50%) rotate(-1.5deg);background:var(--ink);color:var(--yellow);white-space:nowrap;padding:16px 24px}#intro-action:hover{transform:translateX(-50%) translateY(-4px) rotate(.5deg)}#intro-action kbd{display:inline-block;border:1.5px solid var(--paper);color:var(--paper);padding:2px 8px;margin-right:12px;transform:rotate(4deg)}#intro-action small{display:block;font:400 18px Trazo;color:var(--paper);margin:8px 0 -5px;letter-spacing:0}.weapon-ready .subtitle{display:none}
.hud-left,.hud-right{position:absolute;top:9.7%;color:var(--ink);pointer-events:none}.hud-left{left:11.5%;width:26%;display:flex;align-items:center;transform:rotate(-2deg)}#portrait{width:27%;height:auto;flex:none;border:2px solid var(--ink);background:#eadca8;transform:rotate(-4deg);box-shadow:3px 3px 0 #222c4624;aspect-ratio:1}.hero-file{padding-left:5%;position:relative}.hero-file::before{content:'';position:absolute;left:3%;right:1%;top:24%;height:24%;background:#f3c84a80;z-index:-1;transform:rotate(-2deg)}.tiny{font:bold clamp(8px,.8cqw,11px)/1.1 Arial;letter-spacing:.08em}.hero-file>strong{display:block;font:400 clamp(24px,3cqw,44px)/1 Bangers;letter-spacing:.025em}.health-note{display:block;font:400 clamp(12px,1.2cqw,18px)/1 Trazo;color:#81828a}#hearts{line-height:1;margin:4px 0;max-width:220px;display:flex;flex-wrap:wrap;gap:3px}.heart{font-family:Arial,sans-serif;color:var(--red);font-size:clamp(14px,1.85cqw,25px);-webkit-text-stroke:.7px var(--ink);transform:rotate(-7deg)}.heart:nth-child(even){transform:rotate(6deg)}.heart.empty{color:transparent;opacity:.4}.chapter-note{position:absolute;top:10%;left:42%;width:27%;text-align:center;transform:rotate(1deg);color:var(--ink)}#page-label{display:inline-block;font:700 clamp(11px,1.3cqw,18px) Trazo;letter-spacing:.1em;border-bottom:2px solid var(--yellow);padding:0 12px}#chapter-title{display:block;font:400 clamp(20px,2.5cqw,35px)/1.1 Bangers;margin-top:5px}#wave-label{font:700 clamp(10px,1.2cqw,16px) Trazo;letter-spacing:.06em}#wave-dots{display:flex;justify-content:center;gap:6px;margin-top:4px}#wave-dots i{width:17px;height:4px;background:#222c4622;transform:rotate(-3deg)}#wave-dots i.done{background:var(--ink)}#wave-dots i.current{background:var(--red)}.hud-right{right:9%;width:18%;text-align:center;transform:rotate(4deg);background:#fffaed;border:1px solid #c4b993;padding:10px 8px 4px;box-shadow:3px 4px 0 #222c4612}.hud-right::before{content:'';position:absolute;width:41%;height:13px;top:-7px;left:27%;background:#e5d49e90;transform:rotate(-8deg)}.hud-right>span:first-child{font:bold clamp(8px,.75cqw,11px) Arial;letter-spacing:.1em}.hud-right strong{display:block;font:400 clamp(29px,3.4cqw,50px)/1 Bangers;letter-spacing:.03em}.score-note{font:400 clamp(12px,1.2cqw,18px) Trazo;color:#8b857c}
#combo{position:absolute;right:7.5%;top:30%;color:var(--ink);transform:rotate(9deg);text-align:center;pointer-events:none;min-width:130px}#combo::before{content:'';position:absolute;inset:13% -12% 2%;z-index:-1;background:var(--yellow);clip-path:polygon(9% 7%,30% 14%,38% 0,55% 16%,85% 4%,82% 26%,100% 45%,88% 63%,98% 90%,68% 81%,49% 100%,37% 85%,4% 96%,13% 69%,0 40%,15% 25%)}#combo strong{display:block;font:400 clamp(35px,5.8cqw,80px)/.85 Bangers;-webkit-text-stroke:1px var(--paper);text-shadow:2px 3px var(--paper)}#combo>span{display:block;font:400 clamp(12px,1.3cqw,19px) Bangers;margin-top:7px}#combo-time{height:3px;background:var(--ink);width:100%;margin-top:6px;transform-origin:left}
#special{position:absolute;left:13%;bottom:8%;width:20%;background:var(--paper);color:var(--ink);padding:8px 10px 6px;border:2px solid var(--ink);box-shadow:3px 4px 0 #222c4622;transform:rotate(-3deg);text-align:left}#special:disabled{opacity:1}.special-top{display:flex;align-items:center;gap:7px}.special-top kbd{border:1.5px solid currentColor;padding:1px 5px;font:400 clamp(14px,1.5cqw,22px) Bangers}.special-top strong{font:400 clamp(18px,2cqw,29px) Bangers}.special-top>b{margin-left:auto;color:var(--blue);font-size:24px}.ink-track{height:8px;width:100%;border:1px solid var(--ink);background:#437ca018;margin:5px 0 2px;overflow:hidden}#ink-fill{height:100%;width:0;background:repeating-linear-gradient(110deg,#437ca0 0 4px,#356a88 4px 6px);transition:width .12s}#ink-label{font:700 clamp(10px,1.12cqw,15px) Trazo}#special.ready{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:3px 4px 0 var(--yellow)}#special.ready .special-top>b{color:var(--yellow)}#special.ready #ink-label{color:var(--yellow)}#special.ready .ink-track{border-color:var(--paper)}#tip{position:absolute;bottom:10%;left:40%;right:9%;display:flex;justify-content:space-between;gap:10px;color:var(--ink)}#tip>span{font:400 clamp(12px,1.4cqw,20px) Trazo;display:flex;align-items:center;gap:6px;white-space:nowrap}#tip kbd{font:400 clamp(12px,1.2cqw,17px) Bangers;border:1.5px solid var(--ink);padding:4px 6px;background:#fff9e8;transform:rotate(3deg);box-shadow:1px 2px 0 #222c4622}#dash-tip.cooling{opacity:.4}#boss-hud{position:absolute;left:33%;right:26%;top:23%;color:var(--ink);font:400 clamp(14px,1.75cqw,24px) Bangers;transform:rotate(-1deg)}#boss-hud small{float:right;font:700 clamp(10px,1.1cqw,15px) Trazo;padding-top:4px;color:var(--red)}#boss-hud>div{height:9px;border:1.5px solid var(--ink);margin-top:3px;background:#df65551a}#boss-fill{display:block;height:100%;background:var(--red);width:100%}#encounter{position:absolute;left:14%;bottom:25%;border-left:4px solid var(--red);padding:5px 12px;transform:rotate(-4deg);color:var(--ink);background:#f7f1dfe6;pointer-events:none}#encounter>span{font:bold clamp(8px,.8cqw,11px) Arial;letter-spacing:.2em;color:var(--red)}#encounter strong{display:block;font:400 clamp(20px,2.5cqw,34px) Bangers}#encounter small{font:400 clamp(13px,1.5cqw,21px) Trazo}
.veil{background:#172036bf;display:flex;align-items:center;justify-content:center;z-index:9;backdrop-filter:blur(5px)}.paper-dialog{position:relative;width:78%;max-width:930px;background:var(--paper);color:var(--ink);padding:4% 5% 3%;transform:rotate(-1deg);box-shadow:12px 14px 0 #07141f77;text-align:center;border:2px solid var(--ink);background-image:repeating-linear-gradient(transparent 0 28px,#7397ae1c 28px 29px)}.paper-dialog::before{content:'';position:absolute;top:-12px;left:36%;width:27%;height:27px;background:#e9d5a8c4;transform:rotate(-3deg);border:1px solid #dac49460}.paper-dialog h2{font:400 clamp(35px,5.8cqw,80px)/.95 Bangers;margin:12px 0;letter-spacing:.01em}.paper-dialog>p{font:700 clamp(16px,1.85cqw,26px)/1.15 Trazo;white-space:pre-line;max-width:690px;margin:12px auto 18px}.paper-dialog .eyebrow{font:400 clamp(13px,1.6cqw,22px) Bangers;letter-spacing:.04em;color:var(--red)}.paper-dialog .primary{margin-top:12px}.dialog-stamp{position:absolute;right:4%;top:8%;font:400 clamp(15px,1.8cqw,25px)/.9 Bangers;color:var(--red);border:2px solid var(--red);padding:8px 9px;transform:rotate(14deg);opacity:.65}.dialog-footnote{display:block;font:400 clamp(13px,1.5cqw,21px) Trazo;color:#84828a;margin-top:19px}#choices{display:flex;gap:20px;margin:26px 0 4px}#choices:empty{display:none}.choice{flex:1;position:relative;min-width:0;text-align:center;background:#fffbef;border:2px solid var(--ink);color:var(--ink);padding:10px 10px 16px;box-shadow:4px 5px 0 #222c4629;transform:rotate(-3deg);transition:transform .15s,background .15s,box-shadow .15s}.choice:nth-child(2){transform:rotate(2deg);background:#fae8aa}.choice:nth-child(3){transform:rotate(-1deg);background:#e2edf0}.choice:hover{transform:rotate(0deg) translateY(-9px);box-shadow:5px 11px 0 #222c4629}.choice strong{display:block;font:400 clamp(21px,2.5cqw,35px)/1 Bangers}.choice span{font:700 clamp(13px,1.45cqw,20px)/1.12 Trazo;display:block;margin-top:9px}.choice canvas{width:100%;max-width:160px;aspect-ratio:8/5;display:block;margin:-5px auto 3px}.choice .choice-number{position:absolute;top:-12px;left:10px;font:400 22px Bangers;background:var(--ink);color:var(--paper);width:27px;height:27px;padding:2px;transform:rotate(6deg)}
.mobile-controls{position:fixed;inset:auto 5% max(22px,env(safe-area-inset-bottom));z-index:7;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.mobile-controls button,#stick{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.mobile-controls button{border:2px solid var(--paper);background:#26334adc;color:var(--paper);width:57px;height:57px;border-radius:45% 53% 44% 50%;font-size:25px;box-shadow:3px 4px 0 #0f142b77}.touch-actions{display:flex;gap:12px;align-items:flex-end}.touch-actions #touch-attack{height:80px;width:80px;background:var(--red);color:var(--paper);font-weight:bold;font-size:35px;line-height:1;transform:rotate(-5deg)}.touch-actions #touch-attack span{display:block;font:400 17px Bangers;letter-spacing:.04em}.touch-actions #touch-special{align-self:flex-start;margin-top:-35px;color:var(--yellow)}#stick{width:110px;height:110px;border:2px dashed #eee6c455;border-radius:50%;background:#152c32a6;position:relative}#stick i{position:absolute;width:43px;height:43px;border-radius:46% 52% 48% 45%;background:#eee6c45e;left:32px;top:32px;border:2px solid #eee6c4ab}#stick span{position:absolute;bottom:-23px;width:100%;text-align:center;font:400 15px Bangers;color:#f4efd97a;letter-spacing:.1em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(hover:hover) and (pointer:fine){.mobile-controls{display:none!important}}
@media(max-width:700px){.topbar>span{display:none}.topbar{top:2.5%;font-size:9px}.primary{padding:10px 12px;font-size:20px;box-shadow:3px 4px 0 var(--ink)}.primary>span{margin-left:8px}.cover-copy{left:14%;top:17%}.cover-copy h1{font-size:17cqw}.cover-copy .eyebrow{gap:6px;font-size:8px}.cover-copy .eyebrow>span{font-size:15px;padding:0 3px;border-width:1px}.slogan{font-size:3.2cqw}.menu-note{font-size:12px;max-width:160px;line-height:.9;margin-top:10px}.edition{padding:5px 10px;right:11%;top:14%;font-size:19px;border-width:1px}.edition>small{font-size:6px}.edition>span{font-size:6px}.cover-bottom>span{font-size:6px}.cover-bottom button{font-size:8px}.cover-bottom b{width:16px;height:16px;font-size:13px}.cover-bottom{bottom:3%}.hud-left{width:29%;left:10%;top:10%}.hero-file>strong{font-size:22px}.tiny{font-size:7px}.heart{font-size:12px}#hearts{gap:1px;margin:2px 0}.health-note{font-size:10px}.chapter-note{top:10%;left:40%;width:29%}#page-label{font-size:10px}#chapter-title{font-size:16px;margin-top:3px}#wave-label{font-size:9px}#wave-dots{gap:3px;margin-top:2px}#wave-dots i{width:10px;height:3px}.hud-right{padding:5px 2px 3px;width:20%;right:8%}.hud-right>span:first-child{font-size:6px}.hud-right strong{font-size:24px}.score-note{font-size:10px}#special{padding:4px 5px;border-width:1px;width:22%}.special-top strong{font-size:15px}.special-top kbd{font-size:12px}.special-top>b{font-size:14px}.ink-track{height:5px;margin:3px 0}#ink-label{font-size:9px}.special-top{gap:3px}#tip{left:38%;right:8%;gap:6px}#tip>span{font-size:10px;gap:3px}#tip kbd{font-size:10px;padding:2px 3px;border-width:1px}#combo{min-width:60px;right:9%}#combo strong{font-size:40px}#combo>span{font-size:11px}#boss-hud{top:24%;font-size:13px}#boss-hud small{font-size:9px}#boss-hud>div{height:5px}#encounter{padding:3px 7px}#encounter strong{font-size:18px}#encounter small{font-size:11px}#encounter>span{font-size:7px}.paper-dialog{width:84%;padding:4%}.paper-dialog h2{font-size:36px;margin:8px 0}.paper-dialog>p{font-size:15px;margin:9px auto}.paper-dialog .eyebrow{font-size:13px}.dialog-stamp{font-size:12px;padding:5px;right:3%}.dialog-footnote{font-size:12px;margin-top:11px}#choices{gap:9px;margin:16px 0 4px}.choice{padding:8px 5px 10px}.choice canvas{max-width:90px}.choice strong{font-size:19px}.choice span{font-size:12px;margin-top:5px}.choice .choice-number{font-size:14px;width:20px;height:20px;top:-10px;left:5px}.paper-dialog .primary{font-size:18px;margin-top:6px}.subtitle{font-size:19px;bottom:14%}#scene-label{font-size:12px;top:11%}#skip{font-size:12px;padding:5px 9px}#intro-action{font-size:18px;padding:10px 15px;bottom:10%}#intro-action small{font-size:13px;margin:5px 0 -2px}#intro-action kbd{margin-right:6px}.playing .topbar{font-size:8px}.topbar #pause{padding:2px 4px}}
@media(orientation:portrait) and (pointer:coarse){body{align-items:start;padding-top:15dvh}#stage{overflow:visible}.topbar{top:-13%;font-size:11px}.playing .topbar{top:-13%;color:var(--paper);font-size:11px}.playing #tip{display:none}#special{left:12%;bottom:-17%;width:36%;background:var(--paper);padding:9px}.special-top strong{font-size:21px}.special-top kbd{font-size:16px}#ink-label{font-size:13px}.ink-track{height:7px}.veil{position:fixed;inset:0}.paper-dialog h2{font-size:46px}.paper-dialog>p{font-size:21px}.paper-dialog .primary{padding:15px 20px;font-size:24px}.dialog-stamp{font-size:17px}.paper-dialog .eyebrow{font-size:17px}#choices{flex-direction:column;gap:16px}.choice{display:grid;grid-template-columns:70px 1fr;grid-template-rows:auto auto;text-align:left;align-items:center;padding:8px 12px;column-gap:10px}.choice canvas{grid-row:1/3;grid-column:1;width:70px;margin:0}.choice strong{font-size:24px;grid-column:2}.choice span{font-size:17px;grid-column:2}.choice .choice-number{grid-column:auto}.dialog-footnote{font-size:16px}.cover-bottom>span{display:none}.cover-bottom{bottom:-13%;justify-content:center}.cover-bottom button{font-size:11px}.cover-bottom b{width:22px;height:22px}.subtitle{font-size:18px}#intro-action{bottom:-16%;font-size:21px}#scene-label{font-size:11px}.slogan{font-size:3.3cqw}.primary{font-size:17px}.menu-note{font-size:11px}.edition{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.cover-copy .eyebrow{margin:0 0 16px}.cover-copy h1{margin:.06em 0 .1em}.cover-copy .slogan{margin-bottom:.7em}
