@font-face{font-family:Modak;src:url('./fonts/Modak-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#f5edda;--ink:#242820;--red:#df482d;--yellow:#f2ce49;--line:#c9c1ad;font-family:'Trebuchet MS',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:4px solid #2875bc;outline-offset:4px}button:disabled{cursor:default}[hidden]{display:none!important}
.app{max-width:1110px;margin:auto;padding:0 28px 25px}.header{height:64px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:2px solid var(--ink)}.logo{font-family:Arial,sans-serif;font-weight:950;letter-spacing:-1.3px;font-size:25px;text-decoration:none;color:var(--ink)}.logo span{color:var(--red)}.small-button{background:transparent;border:2px solid var(--ink);border-radius:8px;padding:9px 15px;min-height:43px;font-size:15px;font-weight:800}.small-button:hover{background:var(--ink);color:var(--paper)}.small-button:active{transform:translateY(1px)}
h1,h2{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-weight:900;letter-spacing:-1.5px;line-height:.98;margin:0}h1{font-size:68px}p{margin:13px 0 0;font-size:20px;line-height:1.35}.intro{text-align:center;padding:28px 0 23px}.intro h1{font-size:86px;letter-spacing:-2.8px}.intro h1>span{color:var(--red)}.intro>p:last-child{font-size:19px}.eyebrow{font-size:12px;font-weight:900;letter-spacing:1.5px;margin:0 0 12px;line-height:1.3}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);margin-right:7px}
.side-picker{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:820px;margin:auto;position:relative}.side-card{display:flex;flex-direction:column;align-items:stretch;overflow:hidden;min-width:0;background:#ef996d;border:3px solid var(--ink);border-radius:12px;padding:0;box-shadow:5px 6px 0 var(--ink);transition:transform .12s,box-shadow .12s;text-align:left}.side-card:hover{transform:translate(-2px,-3px);box-shadow:7px 9px 0 var(--ink)}.side-card:active{transform:translate(3px,4px);box-shadow:2px 2px 0 var(--ink)}.police-card{background:#a8ba88}.card-tag{font-size:11px;font-weight:900;letter-spacing:1.1px;padding:13px 20px 0}.portrait{width:100%;height:180px;display:block;pointer-events:none}.card-bottom{background:var(--ink);color:var(--paper);padding:16px 21px 15px;display:block}.side-name{display:flex;align-items:center;justify-content:space-between;font-size:30px;font-weight:900;letter-spacing:-1px}.side-name>span{font-weight:400;font-size:35px;color:var(--yellow)}.side-detail{display:block;font-size:14px;margin-top:4px;line-height:1.35;color:#e1d9c8}.side-progress{display:block;color:var(--yellow);font-size:12px;font-weight:900;letter-spacing:1px;margin-top:15px}.versus{position:absolute;left:50%;top:36%;z-index:1;transform:translate(-50%,-50%) rotate(-9deg);border:3px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;width:51px;height:51px;font-size:20px;font-weight:900;background:var(--yellow);pointer-events:none}.menu-note{text-align:center;font-size:20px;font-weight:900;margin-top:24px}.menu-note>span{display:inline-block;background:var(--yellow);border:2px solid var(--ink);border-radius:50%;width:30px;height:30px;line-height:25px;margin-right:6px}.wall-sticker{display:block;font-family:Modak,sans-serif;font-size:32px;font-weight:400;line-height:1.3;color:#ba492f;transform:rotate(-4deg);text-align:center;width:max-content;max-width:100%;margin:15px auto 0}
.chapter-line{display:flex;align-items:center;gap:13px;margin-top:19px;font-weight:900;font-size:18px}.chapter-line>span:first-child{background:var(--ink);color:var(--paper);font-size:11px;letter-spacing:1.1px;padding:8px 10px;border-radius:4px}.game-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0 17px}.game-top h1{font-size:42px;letter-spacing:-1.1px}.hud{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 3px 12px;font-size:20px;font-weight:900}.shots,.target-count{display:flex;align-items:center;gap:12px}.ammo{display:flex;gap:7px}.ammo i{display:block;width:21px;height:21px;border:2px solid var(--ink);background:var(--yellow);border-radius:50%}.ammo i.used{background:transparent;border-color:var(--line)}.target-icon{font-family:Arial,sans-serif;color:var(--red);font-size:31px;line-height:1}.arena{position:relative;border:3px solid var(--ink);background:#f6efd9;border-radius:12px;overflow:hidden;box-shadow:4px 5px 0 var(--ink)}#fling-canvas{display:block;width:100%;height:clamp(350px,59vh,530px);touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}#fling-canvas[data-state=aiming]{cursor:grabbing}#fling-canvas[data-state=flying]{cursor:default}#fling-canvas:focus-visible{outline:3px solid #2875bc;outline-offset:-6px;border-radius:9px}.status-copy{font-size:23px;font-weight:900;letter-spacing:-.5px;text-align:center;margin-top:18px;min-height:31px}.keyboard-hint{text-align:center;font-size:13px;color:#696b5d;margin-top:5px}
.pause-overlay{position:absolute;inset:0;background:#f5eddaef;backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:25px;z-index:3}.pause-overlay h2{font-size:65px;margin:0 0 12px}.pause-overlay .eyebrow{margin-bottom:0}.big-button{border:3px solid var(--ink);border-radius:9px;background:var(--yellow);display:flex;align-items:center;justify-content:center;gap:20px;font-size:28px;font-weight:900;letter-spacing:-.6px;min-height:72px;padding:13px 23px;box-shadow:4px 5px 0 var(--ink);width:100%;touch-action:manipulation}.big-button:hover{background:#ffe66c}.big-button:active{transform:translate(3px,4px);box-shadow:1px 1px 0 var(--ink)}.pause-overlay .big-button{max-width:360px;font-size:25px;min-height:65px}.plain-button{background:none;border:0;padding:10px 16px;min-height:44px;font-size:18px;font-weight:800;text-decoration:underline;text-underline-offset:5px}.plain-button:hover{color:var(--red)}.pause-links{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}
.map-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:30px}.map-top h1{font-size:58px}.map-top .eyebrow{color:var(--red);margin-bottom:8px}.map-summary{display:flex;justify-content:space-between;gap:15px;margin:24px 0 19px;font-size:16px}.map-summary>span:first-child{font-weight:900}.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.level-card{position:relative;text-align:left;padding:19px;min-height:178px;background:#fff9e9;border:3px solid var(--ink);border-radius:9px;box-shadow:4px 4px 0 var(--ink);display:flex;flex-direction:column;justify-content:space-between;gap:10px}.level-card:not(:disabled):hover{background:var(--yellow);transform:translateY(-2px)}.level-card.current{background:var(--yellow)}.level-card:disabled{background:#e6dfce;border-color:#bdb7a5;box-shadow:3px 3px 0 #bdb7a5;color:#8b8b7d}.level-number{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:37px;line-height:1;opacity:.6}.level-name{font-size:25px;font-weight:900;letter-spacing:-.6px}.level-goal{font-size:12px;color:#686b5c;font-weight:700}.level-card:disabled .level-goal{color:inherit}.level-foot{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:900;letter-spacing:.3px}.map-stars{font-size:20px;letter-spacing:3px;color:#b99416}.map-switch{display:block;margin:23px auto 0}
.result-paper{max-width:780px;margin:24px auto 0;border:3px solid var(--ink);background:#fff9e9;box-shadow:6px 7px 0 #ded4b9;border-radius:3px;overflow:hidden}.result-kicker{display:flex;justify-content:space-between;padding:10px 17px;background:var(--ink);color:var(--paper);font-size:11px;font-weight:900;letter-spacing:1px}.result-screen .intro{padding:20px 20px 8px}.result-screen h1{font-size:70px;text-transform:uppercase}.result-screen[data-outcome=win] h1{color:var(--red)}.result-screen .intro p:last-child{font-size:20px;font-weight:700}.result-stars{display:flex;justify-content:center;gap:11px;font-size:46px;line-height:1.2;margin-top:8px;color:#d7cdb9}.result-stars .earned{color:#dbaf20;-webkit-text-stroke:1.5px var(--ink);text-shadow:2px 3px 0 var(--ink)}.result-reward{text-align:center;font-size:14px;font-weight:900;margin:9px 0 5px}.result-art-wrap{position:relative;overflow:hidden}#result-art{display:block;width:100%;height:210px}.result-stamp{position:absolute;font-family:Modak,sans-serif;font-size:34px;font-weight:400;right:17px;top:18px;line-height:1.2;transform:rotate(9deg);color:#ba492f;background:var(--paper);border:3px solid #ba492f;padding:8px 10px 3px;border-radius:3px;pointer-events:none}.result-screen[data-outcome=lose] .result-stamp{display:none}.result-screen[data-outcome=lose] .result-stars{display:none}.result-actions{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:410px;margin:23px auto 0}.result-links{display:flex;gap:15px}.result-links .plain-button{font-size:16px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:761px) and (max-height:800px){.header{height:57px}.intro{padding:20px 0}.intro h1{font-size:72px}.portrait{height:145px}.card-tag{padding-top:11px}.card-bottom{padding-top:12px;padding-bottom:13px}.side-progress{margin-top:11px}.menu-note{margin-top:21px}.wall-sticker{font-size:29px;margin-top:10px}.chapter-line{margin-top:14px}.game-top{padding:10px 0 13px}.game-top h1{font-size:38px}#fling-canvas{height:57vh;min-height:320px}.status-copy{margin-top:13px;font-size:22px}.result-paper{margin-top:18px}.result-screen h1{font-size:62px}#result-art{height:170px}.result-actions{margin-top:18px}}
@media(max-width:760px){.app{padding:0 20px 24px}.header{height:61px}.logo{font-size:23px}.intro h1{font-size:75px}.side-picker{gap:21px}.card-tag{font-size:9px;padding-left:15px;padding-right:10px}.portrait{height:170px}.card-bottom{padding:14px 16px}.side-name{font-size:25px}.side-detail{font-size:13px}.versus{width:45px;height:45px;font-size:17px}.game-top h1{font-size:37px}.chapter-line{font-size:17px}.hud{font-size:18px}#fling-canvas{height:460px}.level-grid{grid-template-columns:repeat(2,1fr);gap:15px}.map-top h1{font-size:47px}.map-summary{font-size:14px}.level-card{min-height:160px;padding:17px}.result-screen h1{font-size:62px}}
@media(max-width:540px){.app{padding:0 13px 21px}.header{height:59px}.logo{font-size:22px}.small-button{font-size:13px;padding:8px 11px}.intro{padding:25px 0 23px}.intro h1{font-size:64px;letter-spacing:-1.7px}.intro>p:last-child{font-size:16px}.eyebrow{font-size:10px;letter-spacing:1px}.side-picker{gap:16px}.side-card{border-width:2px;border-radius:8px;box-shadow:3px 4px 0 var(--ink)}.card-tag{font-size:8px;letter-spacing:.35px;line-height:1.4;padding:11px 10px 0;min-height:34px}.portrait{height:145px}.card-bottom{padding:12px 11px}.side-name{font-size:20px;letter-spacing:-.6px;gap:2px}.side-name>span{font-size:24px}.side-detail{font-size:11px;min-height:31px;margin-top:6px}.side-progress{font-size:10px;letter-spacing:.5px;margin-top:13px}.versus{width:36px;height:36px;border-width:2px;font-size:14px;top:35%}.menu-note{font-size:17px;margin-top:24px}.menu-note>span{width:26px;height:26px;line-height:22px}.wall-sticker{font-size:29px;margin-top:18px}.chapter-line{margin-top:17px;font-size:16px;gap:10px}.chapter-line>span:first-child{font-size:9px;padding:7px 8px;letter-spacing:.7px}.game-top{padding:12px 0 16px;gap:8px}.game-top h1{font-size:31px;letter-spacing:-.8px;max-width:245px;line-height:1.05}.game-top .small-button{padding:8px 10px}.hud{font-size:16px;padding-bottom:11px}.ammo{gap:5px}.ammo i{width:18px;height:18px}.shots,.target-count{gap:8px}.target-icon{font-size:27px}.arena{border-width:2px;border-radius:8px;box-shadow:3px 4px 0 var(--ink)}#fling-canvas{height:420px;min-height:0}.status-copy{font-size:21px;margin-top:16px;min-height:29px}.keyboard-hint{display:none}.pause-overlay{padding:17px;gap:10px}.pause-overlay h2{font-size:54px;margin-bottom:10px}.pause-overlay .big-button{font-size:23px;min-height:65px}.plain-button{font-size:16px;padding:10px 13px}.pause-links{gap:0}.map-top{padding-top:25px}.map-top h1{font-size:39px}.map-summary{font-size:12px;margin:22px 0 16px;gap:8px}.level-grid{gap:13px}.level-card{min-height:154px;padding:13px;border-width:2px;box-shadow:3px 3px 0 var(--ink)}.level-name{font-size:21px}.level-number{font-size:31px}.level-foot{font-size:10px}.map-stars{font-size:17px;letter-spacing:2px}.result-paper{margin-top:20px;border-width:2px;box-shadow:4px 5px 0 #ded4b9}.result-kicker{padding:9px 11px;font-size:9px;letter-spacing:.6px}.result-screen .intro{padding:24px 13px 8px}.result-screen h1{font-size:57px;letter-spacing:-1.7px}.result-screen .intro p:last-child{font-size:17px;line-height:1.4}.result-stars{font-size:42px;margin-top:6px}.result-reward{font-size:12px;margin-top:9px}#result-art{height:225px}.result-stamp{font-size:26px;right:12px;top:12px;border-width:2px;padding:7px 9px 2px}.result-actions{margin-top:22px;gap:9px}.big-button{min-height:70px;font-size:26px}.result-links{gap:8px}.result-links .plain-button{font-size:15px}}
@media(max-width:360px){.app{padding:0 11px 19px}.header{height:54px}.logo{font-size:20px}.intro{padding:22px 0 21px}.intro h1{font-size:56px}.intro>p:last-child{font-size:14px}.side-picker{gap:13px}.card-tag{font-size:7px;padding-left:8px;min-height:31px}.portrait{height:125px}.card-bottom{padding:11px 9px}.side-name{font-size:18px}.side-name>span{font-size:21px}.side-detail{font-size:10px;min-height:29px}.side-progress{font-size:9px}.menu-note{font-size:16px}.wall-sticker{font-size:27px}.chapter-line{font-size:14px;margin-top:14px;gap:8px}.game-top h1{font-size:27px;max-width:200px}.game-top{padding-top:11px;padding-bottom:13px}.hud{font-size:15px}#fling-canvas{height:365px}.status-copy{font-size:19px;margin-top:14px}.map-top h1{font-size:34px}.level-card{padding:11px;min-height:144px}.level-name{font-size:19px}.map-summary{font-size:11px}.level-foot{font-size:9px}.map-stars{font-size:15px}.result-screen h1{font-size:49px}.result-screen .intro p:last-child{font-size:15px}#result-art{height:195px}.result-stars{font-size:38px}.result-kicker{font-size:8px}}
@media(max-width:760px) and (max-height:650px){#fling-canvas{height:280px}.chapter-line{margin-top:10px}.game-top{padding-top:8px;padding-bottom:10px}.header{height:52px}.status-copy{margin-top:10px;font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.side-card:hover,.side-card:active,.big-button:active{transform:none}}

.side-name .side-title{font:inherit;line-height:1.05;color:inherit}.side-detail{min-height:20px}
