@font-face{font-family:Patrick;src:url(/assets/PatrickHand-Regular.ttf) format("truetype");font-display:swap}:root{--ink:#302677;--paper:#edeadd;--red:#cb3b58;--scale:1}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--paper);color:var(--ink);font-family:Patrick,Chalkboard SE,cursive}button,input{font:inherit}button{cursor:pointer;color:inherit}#game,#game canvas,#paper,#fx,#hud,#damage,#special-tint{position:fixed;inset:0;width:100%;height:100%}#game canvas{display:block}#paper{pointer-events:none;z-index:2;mix-blend-mode:multiply}#fx{z-index:5;pointer-events:none}#hud{z-index:6;pointer-events:none;font-size:clamp(15px,2.8vh,25px);line-height:1.1;text-shadow:.5px .5px 0 #30267722}#score{position:absolute;top:3.2%;left:9%}#combo{display:block;color:var(--red);font-size:1.3em;transform:rotate(-4deg);margin-top:12px}#wave{position:absolute;right:4%;top:3.2%;text-align:right}#remaining{margin-top:3.3vh}#countdown{display:block;color:var(--red);margin-top:9px;font-size:.8em}#banner{position:absolute;top:24%;left:50%;transform:translate(-50%) rotate(-1.5deg);text-align:center;transition:opacity .4s;width:80%}#banner strong{display:block;font-size:clamp(36px,8.5vh,76px);font-weight:400}#banner span{display:block;font-size:1.15em;margin-top:2px}#health{position:absolute;left:9%;bottom:17.9%;display:flex;align-items:center;gap:8px;font-size:.85em}#health>div{width:11.2vw;min-width:105px;height:1.8vh;min-height:11px;max-height:17px;border:2px solid var(--ink);border-radius:4px 2px 5px;transform:rotate(-.7deg);overflow:hidden}#health i,.boss-track i,#katana-meter i{display:block;height:100%;width:100%;background:repeating-linear-gradient(120deg,transparent 0 2px,var(--ink) 2px 3.5px);transition:width .15s}#health b{font-weight:400}#ammo{position:absolute;left:9%;bottom:4.6%;width:180px;line-height:1}#ammo strong{font-size:clamp(35px,6.1vh,57px);font-weight:400}#ammo>span{font-size:2.2vh}#ammo-marks{max-width:190px;margin-top:4px;display:flex;flex-wrap:wrap;gap:4px;min-height:23px}#ammo-marks i{height:16px;width:2px;background:var(--ink);transform:rotate(-9deg)}#ammo-marks i:nth-child(5n){margin-right:5px}#reloading{position:absolute;left:0;top:-19px;color:var(--red);font-size:19px;white-space:nowrap}#arsenal{position:absolute;right:4%;bottom:13.7%;font-size:clamp(12px,1.95vh,19px);line-height:1.65;min-width:128px}#arsenal>div{opacity:.37;display:flex;align-items:center;gap:6px}#arsenal>div.active{opacity:1;border-bottom:1.8px solid var(--ink);transform:rotate(-1deg)}#arsenal .slot-key{font-size:.8em;line-height:1;border:1px solid #30267755;padding:1px 3px;transform:rotate(2deg)}#arsenal .slot-ammo{font-size:.7em;margin-left:auto;padding-left:13px}#weapon-title{position:absolute;bottom:8.1%;right:4%;font-size:3.5vh}#weapon-description{position:absolute;bottom:4.5%;right:4%;font-size:1.85vh}#hint{position:absolute;bottom:17.6%;left:50%;transform:translate(-50%);font-size:2.55vh;white-space:nowrap}#tiny-help{position:absolute;left:1.15%;bottom:2%;font-size:14px;opacity:.45;writing-mode:vertical-rl}#crosshair{position:absolute;left:50%;top:50%;width:28px;height:28px;transform:translate(-50%,-50%);color:var(--ink)}#crosshair i,#crosshair b,#crosshair em,#crosshair span{position:absolute;background:currentColor;width:2px;height:7px;font-style:normal}#crosshair i{left:13px;top:0}#crosshair b{left:13px;bottom:0}#crosshair em{width:7px;height:2px;top:13px;left:0}#crosshair span{width:7px;height:2px;top:13px;right:0}#crosshair.target{color:var(--red)}#crosshair.grapple{color:#3388c9}#hitmarker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(10deg);font-size:46px;color:var(--red);opacity:0}#grapple-label{position:absolute;top:54%;left:50%;transform:translate(-50%);font-size:15px;color:#407aba}#events{position:absolute;right:4.2%;top:27%;text-align:right;max-width:40%}.event{color:var(--red);font-size:clamp(17px,3.4vh,30px);animation:event-in .18s ease-out;margin-bottom:5px;white-space:nowrap}.event.blue{color:#347cc6}.event.orange{color:#c1833c}.event small{display:block;font-size:.55em}@keyframes event-in{0%{opacity:0;transform:translate(20px) rotate(-7deg)}to{opacity:1;transform:translate(0) rotate(-2deg)}}#katana-meter{display:none;position:absolute;top:39%;left:4.4%;text-align:center}#katana-meter>span{font-size:1.8vh;letter-spacing:1px}#katana-meter>div{height:18vh;width:24px;border:2px solid var(--ink);border-radius:5px 3px 6px 2px;position:relative;margin:4px auto}#katana-meter i{position:absolute;bottom:0;height:0;transition:height .15s}#katana-meter.ready i{background:repeating-linear-gradient(120deg,transparent 0 2px,var(--red) 2px 4px)}#slash-ready{display:none;position:absolute;left:50%;top:16%;transform:translate(-50%) rotate(-2deg);color:var(--red);font-size:3.5vh;text-align:center}#slash-ready small{display:block;font-size:.65em}#boss{display:none;position:absolute;top:6%;left:50%;transform:translate(-50%);text-align:center;font-size:2.4vh}.boss-track{height:17px;width:22vw;min-width:220px;margin-top:5px;border:1.5px solid var(--ink);transform:rotate(-.35deg)}.boss-track i{background:repeating-linear-gradient(120deg,transparent 0 2px,var(--red) 2px 4px)}#damage{z-index:4;pointer-events:none;box-shadow:inset 0 0 100px 35px #bc244c;opacity:0}#special-tint{z-index:3;background:#398cff;mix-blend-mode:color;pointer-events:none;opacity:0}#scope{display:none;position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden}.scope-ring{position:absolute;left:50%;top:50%;width:61.5vh;height:61.5vh;transform:translate(-50%,-50%);border:3px solid var(--ink);border-radius:50%;box-shadow:0 0 0 200vmax var(--paper),inset 0 0 0 3px #30267718;overflow:hidden}.scope-ring i{position:absolute;left:50%;height:100%;width:1px;background:var(--ink)}.scope-ring b{position:absolute;top:50%;width:100%;height:1px;background:var(--ink)}.scope-ring span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--red);font:20px monospace}.overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#edeaddbd;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.hidden{display:none!important}.menu-paper{width:min(580px,88vw);padding:30px 36px;position:relative;transform:rotate(-1deg);text-align:center}.eyebrow{font-size:19px;letter-spacing:1.3px;color:#665a8a}h1{position:relative;font-weight:400;font-size:clamp(44px,8.6vh,82px);line-height:.89;margin:20px 0 25px;letter-spacing:-1px}h1 span{font-size:1.07em}h1 svg{position:absolute;bottom:-19px;width:90%;left:5%;fill:none;stroke:var(--red);stroke-width:3;stroke-linecap:round}.intro{font-family:Patrick,PingFang SC,sans-serif;font-size:17px;letter-spacing:3px;margin:32px 0 22px}.primary{background:var(--ink);color:var(--paper);border:2px solid var(--ink);padding:12px 27px;font-family:Patrick,PingFang SC,sans-serif;font-size:19px;min-width:220px;border-radius:3px 7px 3px 5px;box-shadow:4px 4px #30267725;transition:transform .12s,box-shadow .12s}.primary:hover{transform:translate(-2px,-2px) rotate(-1deg);box-shadow:6px 6px #cb3b5850}.primary>span{margin-left:28px}.menu-actions{display:flex;align-items:center;justify-content:center;gap:23px;margin:19px 0 27px}.menu-actions button,.text-button{background:none;border:0;border-bottom:1px solid #30267755;padding:4px 0;font-size:15px}.menu-actions button:hover,.text-button:hover{color:var(--red);border-color:var(--red)}.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;padding-top:21px;border-top:1px dashed #30267755;text-align:left;transform:rotate(1deg)}.controls-grid>div{display:flex;align-items:center;gap:11px;font-size:12px;font-family:PingFang SC,sans-serif;white-space:nowrap}.controls-grid kbd{font:15px Patrick;width:71px;flex-shrink:0;text-align:center;border:1.3px solid #30267777;padding:2px 4px;border-radius:3px 1px 4px 2px}.menu-note{font-family:PingFang SC,sans-serif;font-size:11px;opacity:.6;margin-top:26px}.margin-note{position:absolute;right:9%;top:22%;font-size:25px;line-height:1.15;transform:rotate(9deg);color:var(--red)}.margin-note svg{display:block;width:110px;height:80px;fill:none;stroke:var(--red);stroke-width:2}.pause-paper{text-align:center;width:min(560px,88vw);padding:35px;transform:rotate(-.6deg)}h2{font-size:48px;font-weight:400;margin:18px 0}.pause-paper p{font:14px/2.1 PingFang SC,sans-serif;margin-bottom:28px}.pause-paper .setting{font:13px PingFang SC,sans-serif;display:flex;justify-content:center;align-items:center;gap:10px;margin:17px}.setting input{accent-color:var(--ink)}#game-over .text-button{display:block;margin:22px auto}#demo-bar{position:fixed;z-index:11;bottom:10px;left:50%;transform:translate(-50%);padding:8px 18px;display:flex;gap:22px;align-items:center;border:1px dashed var(--ink);background:#edeadddd;font-size:14px;white-space:nowrap}#demo-bar button{border:0;background:none;text-decoration:underline;font-size:14px}#loading{position:fixed;inset:0;z-index:20;background:var(--paper);display:grid;place-items:center;font:20px PingFang SC,sans-serif}@media(max-width:900px){.margin-note{display:none}#hint{font-size:2.1vh}#arsenal{bottom:16%}.menu-paper{padding:18px 22px}.controls-grid{gap:10px 14px}.menu-note{margin-bottom:0}.menu-actions{margin:15px 0 17px}#weapon-description{max-width:35%;text-align:right}#events{max-width:65%}}@media(max-height:650px){h1{font-size:48px;margin:10px 0 20px}.eyebrow{font-size:15px}.intro{font-size:14px;margin:27px 0 17px}.controls-grid{gap:8px;padding-top:12px}.menu-actions{margin:10px 0 15px}.primary{padding:9px 22px}.menu-note{margin-top:15px}.menu-paper{padding:12px 30px}}#slash-ready{top:auto;bottom:17.6%;font-size:2.6vh;white-space:nowrap;transform:translate(-50%)}#slash-ready small{display:inline;font-size:1em;color:var(--ink)}#slash-ready small:before{content:" · "}#katana-meter.ready:after{content:"SLASH READY";display:block;font-size:10px;color:var(--red);margin-top:7px;white-space:nowrap}#special-tint{background:#86a5ef;mix-blend-mode:multiply}#crosshair.melee{width:24px;height:24px;border:1px dashed currentColor;border-radius:50%}#crosshair.melee i,#crosshair.melee b{left:10px;height:5px}#crosshair.melee em,#crosshair.melee span{top:10px;width:5px}#crosshair i,#crosshair b{left:calc(50% - 1px)}#crosshair em,#crosshair span{top:calc(50% - 1px)}#crosshair.melee i,#crosshair.melee b{left:10px}#crosshair.melee em,#crosshair.melee span{top:10px}#aim-state{position:absolute;right:4%;bottom:11.9%;font-size:1.6vh;color:#b17b35;letter-spacing:1px}
