@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
:root{--ink:#1f1017;--surface:#2a1820;--surface-2:#341f29;--line:#4a3440;--text:#fff;--dim:#b9adb3;--faint:#6e5e66;--red:#ff003d;--red-600:#e00036;--red-a50:#ff003d80;--red-tint:#fff0f4;--amber:#ffb547;--mint:#3ddc97;--radius:6px;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}.frame{box-sizing:border-box;border:1px solid var(--line);border-radius:12px;width:640px;max-width:100%;position:relative;overflow:hidden}.frame:before,.frame:after{content:"";border-left:1px dashed var(--red-a50);pointer-events:none;width:0;position:fixed;top:0;bottom:0}.frame:before{left:24px}.frame:after{right:24px}.game-area{display:flex}.gamewrap{background:var(--ink);flex:auto;min-width:0;position:relative}canvas{aspect-ratio:640/720;touch-action:none;cursor:crosshair;width:100%;height:auto;display:block}.overlay{z-index:5;text-align:left;background:#1f1017fb;flex-direction:column;align-items:stretch;gap:14px;padding:28px;display:flex;position:absolute;inset:0;overflow-y:auto}.eyebrow{color:var(--red);letter-spacing:.02em;margin:0;font-size:13px;font-weight:600}.title-main{letter-spacing:-.02em;color:var(--text);text-wrap:balance;margin:0;font-size:clamp(30px,6vw,44px);font-weight:700;line-height:1}.title-main .accent{color:var(--red)}.tagline{color:var(--dim);max-width:46ch;margin:0;font-size:15px;font-weight:400;line-height:1.45}.title-best{color:var(--text);letter-spacing:.04em;font-size:12px;font-weight:600}.title-best span{color:var(--red)}.arcade-link{color:var(--faint);margin:0;font-size:12px}.arcade-link a{color:var(--dim);text-underline-offset:2px;text-decoration:underline}.arcade-link a:hover{color:var(--red)}.briefing{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text);padding:14px 0;font-size:13px;line-height:1.55}.briefing p{color:var(--dim);margin:0 0 10px}.briefing-row{align-items:baseline;gap:12px;margin:5px 0;display:flex}.key{color:var(--text);letter-spacing:.04em;border:1px solid var(--line);text-align:center;border-radius:4px;min-width:88px;padding:3px 7px;font-size:11px;font-weight:600}.desc{color:var(--dim)}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.start-btn,.btn{font-family:var(--font);border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:11px 18px;font-size:15px;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.start-btn,.btn--primary{background:var(--red-600);border-color:var(--red-600);color:#fff}.start-btn:hover,.btn--primary:hover{background:var(--red);border-color:var(--red)}.btn--secondary{color:var(--text);border-color:var(--text);background:0 0}.btn--secondary:hover{background:var(--text);color:var(--ink)}.start-btn:focus-visible,.btn:focus-visible,.shop-btn:focus-visible,.share-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.start-btn{align-self:flex-start}.gameover-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:34px;font-weight:700;line-height:1}.gameover-sub{color:var(--dim);margin:0;font-size:14px}.gameover-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.gameover-stats div{padding:12px 10px 12px 0}.gameover-stats b{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;display:block}.gameover-stats span{color:var(--dim);letter-spacing:.04em;font-size:11px}.gameover-stats .hot b{color:var(--red)}.new-record-badge{letter-spacing:.08em;color:#fff;background:var(--red-600);border-radius:4px;align-self:flex-start;padding:5px 10px;font-size:11px;font-weight:700}.save-error{color:var(--amber);margin:0;font-size:13px}.name-entry{flex-direction:column;gap:8px;display:flex}.name-entry label{color:var(--red);font-size:13px;font-weight:600}.name-entry-row{gap:8px;display:flex}.name-entry input,.email-entry-row input,.comp-input{font-family:var(--font);background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:var(--radius);outline:none;padding:10px 12px;font-size:14px}.name-entry-row input{text-transform:uppercase;letter-spacing:.08em;width:200px;font-weight:600}.name-entry input:focus,.email-entry-row input:focus,.comp-input:focus{border-color:var(--text)}.name-entry button{font-family:var(--font);background:var(--red-600);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:10px 16px;font-size:14px;font-weight:500}.name-entry button:hover{background:var(--red)}.email-entry-row{max-width:320px}.email-entry-row input{width:100%}.email-entry-row input::placeholder,.comp-input::placeholder{color:var(--faint)}.badge-row{flex-wrap:wrap;gap:6px;display:flex}.badge{letter-spacing:.04em;border:1px solid var(--line);color:var(--text);white-space:nowrap;border-radius:4px;padding:4px 9px;font-size:11px;font-weight:600}.badge-rank-1{border-color:var(--red);color:var(--red)}.leaderboard{width:100%}.leaderboard h4,.comp-tab-name{color:var(--red);margin:0 0 6px;font-size:13px;font-weight:600}.lb-row{border-bottom:1px solid var(--line);grid-template-columns:28px 1fr 90px 34px 1fr;align-items:center;gap:8px;padding:7px 0;font-size:13px;display:grid}.lb-row:last-child{border-bottom:none}.lb-row.you{background:var(--surface)}.lb-rank{color:var(--dim);font-variant-numeric:tabular-nums;font-weight:600}.rank-1 .lb-rank{color:var(--red)}.lb-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lb-score{color:var(--text);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.lb-wave{color:var(--dim);text-align:right;font-size:11px}.lb-badge{color:var(--dim);letter-spacing:.04em;font-size:10px;font-weight:600}.lb-empty{color:var(--dim);padding:10px 0;font-size:13px}.share-row{flex-wrap:wrap;gap:8px;display:flex}.share-btn{font-family:var(--font);border:1px solid var(--line);color:var(--text);border-radius:var(--radius);cursor:pointer;background:0 0;padding:9px 14px;font-size:13px;font-weight:500}.share-btn:hover{border-color:var(--text)}.card-preview{border-radius:var(--radius);border:1px solid var(--line);width:100%;max-width:420px;overflow:hidden}.card-preview canvas{aspect-ratio:1200/630;width:100%;height:auto;display:block}.guide{gap:16px;margin-top:4px;display:grid}.guide h3{color:var(--red);margin:0 0 8px;font-size:13px;font-weight:600}.guide-grid{grid-template-columns:1fr 1fr;gap:10px 20px;display:grid}.guide-row{color:var(--dim);align-items:baseline;gap:9px;font-size:12.5px;line-height:1.45;display:flex}.guide-row b{letter-spacing:.02em;font-weight:700}.guide-row i{color:var(--text);font-style:normal}.guide-sw{border-radius:2px;flex:none;width:10px;height:10px;display:inline-block;box-shadow:inset 0 0 0 1px #ffffff40}.guide-sw.pill{border-radius:3px}.shop-title{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:700;line-height:1.05}.shop-tally{color:var(--dim);font-size:13px;line-height:1.7}.shop-tally b{color:var(--text);font-weight:600}.shop-big{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.shop-big div{padding:10px 10px 10px 0}.shop-big b{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;display:block}.shop-big span{color:var(--dim);letter-spacing:.04em;font-size:11px}.shop-big .hot b{color:var(--red)}.shop-100{color:#fff;background:var(--red-600);border-radius:var(--radius);padding:12px 14px;font-size:14px;font-weight:600}.shop-note{color:var(--dim);margin:0;font-size:13px;line-height:1.5}.shop-apps{display:grid}.shop-app{border-bottom:1px solid var(--line);grid-template-columns:minmax(96px,1fr) minmax(120px,1.2fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.shop-app:first-child{border-top:1px solid var(--line)}.shop-app-name{letter-spacing:.02em;font-size:14px;font-weight:700}.shop-app-status{letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.shop-app-acts{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.shop-protected{color:var(--dim);font-size:12px}.shop-tag{letter-spacing:.04em;white-space:nowrap;border:1px solid;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.shop-btn{font-family:var(--font);border-radius:var(--radius);border:1px solid var(--text);color:var(--text);cursor:pointer;background:0 0;padding:7px 11px;font-size:12px;font-weight:500}.shop-btn:hover:not(:disabled){background:var(--text);color:var(--ink)}.shop-btn:disabled{opacity:.3;cursor:not-allowed}.shop-btn.k{background:var(--red-600);border-color:var(--red-600);color:#fff}.shop-btn.k:hover:not(:disabled){background:var(--red);border-color:var(--red)}.shop-btn.r{border-color:var(--amber);color:var(--amber)}.shop-btn.r:hover:not(:disabled){background:var(--amber);color:var(--ink)}.shop-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.comp-banner{background:var(--red-600);color:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.comp-banner--entered{background:var(--surface);border-bottom:1px solid var(--line)}.comp-banner-trophy{letter-spacing:.08em;flex-shrink:0;font-size:11px;font-weight:700}.comp-banner-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.comp-banner-prize{opacity:.85;font-size:12px;font-weight:400}.comp-banner-countdown{white-space:nowrap;font-variant-numeric:tabular-nums}.comp-banner-cta{font-family:var(--font);background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:var(--radius);cursor:pointer;white-space:nowrap;flex-shrink:0;padding:6px 12px;font-size:13px;font-weight:500}.comp-banner-dismiss{color:inherit;opacity:.8;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:13px}.comp-banner-dismiss:hover{opacity:1}.comp-modal-overlay{z-index:1000;background:#1f1017eb;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.comp-modal{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;max-width:440px;margin:auto;padding:28px}.comp-modal-title{letter-spacing:-.01em;margin-bottom:12px;font-size:24px;font-weight:700}.comp-modal-prize{color:var(--red);margin:0 0 10px;font-size:14px;font-weight:600}.comp-modal-body{color:var(--dim);margin:0 0 18px;font-size:14px;line-height:1.6}.comp-modal-btn{font-family:var(--font);background:var(--red-600);color:#fff;border:1px solid var(--red-600);border-radius:var(--radius);cursor:pointer;padding:10px 16px;font-size:14px;font-weight:500}.comp-modal-btn:hover{background:var(--red)}.comp-modal-btn:disabled{opacity:.5;cursor:not-allowed}.comp-modal-btn--ghost{border-color:var(--text);color:var(--text);background:0 0}.comp-modal-btn--ghost:hover{background:var(--text);color:var(--ink)}.comp-form{flex-direction:column;gap:10px;display:flex}.comp-form-row{gap:10px;display:flex}.comp-input{width:100%}.comp-form-error{color:var(--amber);font-size:12px}.comp-form-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.go-tabs{border-bottom:1px solid var(--line);gap:18px;display:flex}.go-tab{font-family:var(--font);color:var(--dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 0;font-size:13px;font-weight:600}.go-tab.active{color:var(--text);border-bottom-color:var(--red)}.comp-tab{width:100%}.comp-tab-header{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.comp-tab-countdown{color:var(--dim);font-variant-numeric:tabular-nums;font-size:12px}.comp-tab-prize{margin-bottom:10px;font-size:13px;font-weight:600}.comp-tab-myrank{background:var(--surface);border-radius:var(--radius);color:var(--dim);align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;font-size:12px;display:flex}.comp-lb{flex-direction:column;display:flex}.comp-lb-row{border-bottom:1px solid var(--line);grid-template-columns:28px 1fr 90px 48px;align-items:center;gap:8px;padding:7px 0;font-size:13px;display:grid}.comp-lb-row:last-child{border-bottom:none}.comp-lb-row.you{background:var(--surface)}.comp-lb-badge{text-align:center;font-size:11px;font-weight:700}.comp-lb-badge--up{color:var(--mint)}.comp-lb-badge--down{color:var(--amber)}.comp-lb-badge--hold{color:var(--dim)}.comp-lb-badge--new{letter-spacing:.06em;color:var(--red);font-size:10px}.page{background:var(--ink);min-height:100vh;color:var(--text);font-family:var(--font);flex-direction:column;align-items:center;padding:48px 16px;display:flex}.page-inner{flex-direction:column;gap:16px;width:100%;max-width:600px;display:flex}.page h1{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(32px,6vw,48px);font-weight:700;line-height:1}.page .lead{color:var(--dim);margin:0;font-size:15px}.page .pill{color:#fff;background:var(--red-600);border-radius:4px;align-self:flex-start;padding:6px 12px;font-size:13px;font-weight:600}.page .big-number{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(56px,14vw,96px);font-weight:700;line-height:1}.page .quote{color:var(--dim);border-left:2px solid var(--red);margin:8px 0;padding-left:12px;font-size:15px}.page .note{color:var(--faint);font-size:12px}.page-table{border-top:1px solid var(--line)}.page-row{border-bottom:1px solid var(--line);grid-template-columns:36px 1fr 100px 60px;align-items:center;gap:8px;padding:12px 0;font-size:14px;display:grid}.page-row .rank{color:var(--dim);font-variant-numeric:tabular-nums;font-weight:700}.page-row.first .rank{color:var(--red)}.page-row .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.page-row .score{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.page-row .delta{text-align:center}.page a.text-link{color:var(--red);font-weight:500;text-decoration:none}.page a.text-link:after{content:" ↗"}@media (max-width:680px){html,body{height:auto;min-height:100%;overflow:auto}.frame{width:100%}.frame:before,.frame:after{display:none}.overlay{padding:20px 16px}}@media (max-width:520px){.guide-grid{grid-template-columns:1fr}.shop-app{grid-template-columns:1fr 1fr}.shop-app-acts{grid-column:1/-1;justify-content:flex-start}.gameover-stats{grid-template-columns:repeat(2,1fr)}.shop-big{grid-template-columns:1fr 1fr}}
