:root{--ink:#0a0a12;--cyan:#4ec8f0;--cyan-deep:#1a6aa8;--peach:#f0c8a0;--peach-deep:#d8a878;--red:#e23030;--green:#3cb86a;--panel:#0c1830;color:#f4f8ff;background:#081020;font-family:"Press Start 2P",monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;height:100%}body{background:radial-gradient(at 30% 20%,#1a3a68 0%,#0000 50%),radial-gradient(at 80% 80%,#3a1840 0%,#0000 45%),linear-gradient(#0a1428,#081018 70%)}.scanlines{pointer-events:none;position:fixed;z-index:100;opacity:.28;background:repeating-linear-gradient(#0000 0 3px,#0000000d 3px 4px);inset:0}.hidden{display:none!important}.screen{display:grid;place-items: center;min-height:100%;padding:.75rem}.boot-panel{background:linear-gradient(180deg,var(--cyan),var(--cyan-deep));border:5px solid var(--ink);text-align:center;animation:boot-in .45s cubic-bezier(.2,1.4,.4,1)both;width:min(420px,100%);padding:1.2rem 1rem 1rem;box-shadow:inset 0 2px #ffffff4d,0 12px #0006}@keyframes boot-in{0%{transform:scale(.85)translateY(12px);opacity:0}to{transform:scale(1)translateY(0);opacity:1}}.menu-art{image-rendering:auto;display:block;border:4px solid var(--ink);width:140px;height:140px;margin:0 auto .7rem;box-shadow:0 4px #00000059}.boot-eyebrow{letter-spacing:.08em;color:#082040;margin-bottom:.55rem;font-size:.38rem}.logo{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.7rem;line-height:1}.logo-spidey{color:var(--red);text-shadow:3px 3px 0 var(--ink),-1px 0 0 #fff;font-size:clamp(1.4rem,8vw,1.9rem)}.logo-swing{color:#fff8e0;text-shadow:3px 3px 0 var(--ink);font-size:clamp(1.1rem,6vw,1.45rem)}.menu-sub{color:#082040;margin-bottom:1rem;font-size:.42rem;line-height:1.6}.btn-boot{font:inherit;color:#fff8e0;border:4px solid var(--ink);box-shadow:inset 0 2px 0 #ffffff40,0 4px 0 var(--ink);cursor:pointer;background:linear-gradient(#f07840,#d04020);width:100%;padding:.85rem .5rem;font-size:.58rem}.btn-boot:active{box-shadow:inset 0 2px 0 #fff3,0 2px 0 var(--ink);transform:translateY(2px)}.best-line{color:#ffe066;text-shadow:2px 2px #082040;margin-top:.75rem;font-size:.42rem}.how-line{color:#082040;opacity:.85;margin-top:.45rem;font-size:.32rem;line-height:1.5}.stage{width:min(1100px,100%);height:min(92vh,720px)}.stage-frame{position:relative;background:var(--cyan);border:5px solid var(--ink);display:grid;grid-template-rows:1fr auto auto;overflow:hidden;width:100%;height:100%;box-shadow:inset 0 2px #ffffff4d,0 10px #0006}.play-area{position:relative;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;width:100%;height:100%;min-height:0}#gameCanvas{display:block;touch-action:none;cursor:crosshair;background:#6ec8f0;width:100%;height:100%}.hud{position:absolute;display:flex;pointer-events:none;flex-wrap:wrap;align-items: center;gap:.4rem;top:.55rem;left:.55rem;right:.55rem}.hud-pill{border:3px solid var(--ink);color:#ffe066;display:flex;background:linear-gradient(#0c1c38eb,#081024eb);align-items:baseline;gap:.4rem;padding:.45rem .6rem;font-size:.42rem;box-shadow:inset 0 1px #ffffff1f,0 3px #00000059}.hud-label{color:#8ab0d0;font-size:.32rem}.hud-pill--hearts{color:var(--red);letter-spacing:.1em}.hud-msg{background:linear-gradient(180deg,var(--peach),var(--peach-deep));border:3px solid var(--ink);color:#082040;flex:120px;min-width:0;padding:.4rem .5rem;font-size:.36rem;line-height:1.4}.deck{display:flex;background:linear-gradient(180deg,var(--peach),var(--peach-deep));border-top:4px solid var(--ink);align-items:stretch;gap:.4rem;padding:.4rem .45rem}.deck-tip{color:#082040;text-align:center;background:linear-gradient(180deg,var(--peach-deep),#c89868);border-top:2px solid #0a0a1240;padding:.25rem .4rem .4rem;font-size:.3rem;line-height:1.35}.web-hold{font:inherit;letter-spacing:.04em;color:#fff8e0;border:3px solid var(--ink);box-shadow:inset 0 2px 0 #ffffff40,0 3px 0 var(--ink);cursor:pointer;touch-action:none;-webkit-user-callout:none;user-select:none;background:linear-gradient(#f07840,#d04020);flex:auto;min-width:0;min-height:48px;padding:.55rem .4rem;font-size:.5rem}.web-hold:active,.web-hold.holding{box-shadow:inset 0 2px 0 #0003,0 1px 0 var(--ink);background:linear-gradient(#ff9048,#e05028);transform:translateY(2px)}.peach-btn{font:inherit;border:3px solid var(--ink);color:#082040;cursor:pointer;background:linear-gradient(#f8e0c0,#e0b888);min-width:3.8rem;padding:.55rem .5rem;font-size:.38rem}.peach-btn.active{background:linear-gradient(180deg,#6adf90,var(--green))}.peach-btn--quit{color:#fff8e0;background:linear-gradient(#f09090,#c04040)}.overlay{position:fixed;z-index:40;display:grid;backdrop-filter:blur(2px);background:#040812bf;place-items: center;padding:1rem;inset:0}.panel{background:linear-gradient(180deg,var(--cyan),var(--cyan-deep));border:5px solid var(--ink);text-align:center;width:min(360px,100%);padding:1.1rem;box-shadow:inset 0 2px #ffffff4d,0 10px #0006}.panel-eyebrow{color:#082040;margin-bottom:.65rem;font-size:.6rem}.panel-body{color:#082040;white-space:pre-wrap;margin-bottom:1rem;font-size:.48rem;line-height:1.6}.result-actions{display:flex;flex-direction:column;gap:.45rem}.btn-ghost{color:#083050;font:inherit;cursor:pointer;background:0 0;border:3px solid #083050;padding:.65rem;font-size:.45rem}@media (pointer:coarse){.web-hold{min-height:56px;font-size:.55rem}.peach-btn{min-height:44px}}@media (orientation:landscape) and (max-height:500px){.stage{height:96vh}.boot-panel{overflow:auto;max-height:94vh}.menu-art{width:72px;height:72px}.menu-sub{display:none}.deck-tip{padding:.15rem .35rem .3rem;font-size:.28rem}.web-hold{min-height:44px;font-size:.42rem}}
