.main:has(.vb-page){background:#f7f7f3;max-width:none;padding:24px 20px 48px}.vb-page{--ink:#203248;--muted:#687b8b;--vb-surface:#faf8f0;--vb-clear:#faf8f000;--vb-border:#dce1e1;--vb-accent:#315f8e;--vb-danger:#a65344;--vb-wall:#9caeb8;--vb-net:#6c89a2;--vb-used:#a1b3bf;--vb-aim:#3671ad;--vb-halo:#b7c9d2;--vb-dark:0;max-width:800px;margin:auto;color:var(--ink);font-family:Inter,system-ui,sans-serif}.vb-page *{box-sizing:border-box}.vb-page [hidden]{display:none!important}.vb-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 22px;font-size:12px}.vb-heading a{font-size:17px;letter-spacing:-.5px;font-weight:800;color:var(--ink);text-decoration:none}.vb-heading a span{font-weight:400;color:var(--muted)}.vb-heading>span{color:var(--muted);font-size:11px}.vb-layout{display:grid;grid-template-columns:minmax(0,450px) minmax(210px,1fr);gap:42px;align-items:start}.vb-game{min-width:0}.vb-stage{position:relative;isolation:isolate;aspect-ratio:450/800;width:min(100%,calc((100dvh - 112px)*.5625));margin-inline:auto;overflow:hidden;background:var(--vb-surface);border:1px solid var(--vb-border);border-radius:14px;container-type:inline-size;box-shadow:0 5px 18px #20324806}.vb-stage canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;touch-action:none;display:block}.vb-stage canvas:focus-visible{outline:2px solid var(--vb-accent);outline-offset:-3px}.vb-stage[data-state=ready] canvas{cursor:grab}.vb-stage[data-state=dragging] canvas{cursor:grabbing}.vb-tools{position:absolute;right:5%;top:3%;display:flex;gap:5px;z-index:5}.vb-tools button{border:0;background:transparent;color:var(--muted);padding:5px;min-width:30px;min-height:30px;font-size:19px;cursor:pointer}.vb-tools button[aria-pressed=false][data-sound]{opacity:.4}.vb-page button:focus-visible,.vb-page summary:focus-visible{outline:2px solid #2f70b4;outline-offset:4px}.vb-hud{position:absolute;z-index:2;top:5%;left:12%;right:12%;text-align:center;pointer-events:none}.vb-hud>span{font-size:8px;font-weight:700;letter-spacing:2px;color:var(--muted)}.vb-hud>strong{display:block;font-size:15cqw;line-height:1.05;letter-spacing:-2px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}.vb-hud small{display:block;margin-top:7px;font-size:10px;color:var(--muted)}.vb-hud small b{font-weight:600;color:var(--muted)}.vb-panel{position:absolute;bottom:6%;left:8%;right:8%;text-align:center;z-index:3;padding-top:28px}.vb-panel:before{content:"";position:absolute;z-index:-1;inset:-50px -45px;background:linear-gradient(var(--vb-clear),var(--vb-surface) 32%);pointer-events:none}.vb-panel h1{font-family:inherit;font-size:5.1cqw;line-height:1.25;letter-spacing:-.6px;color:var(--ink);margin:0 0 8px;font-weight:750}.vb-panel>p{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 10px}.vb-aim{display:flex;align-items:center;justify-content:center;gap:10px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--vb-accent);margin-bottom:16px}.vb-aim i{font-style:normal;color:var(--muted)}.vb-start{border:0;border-radius:8px;background:#234f80;color:#fff;width:100%;height:48px;min-height:44px;font-size:13px;font-weight:650;cursor:pointer;transition:background .15s}.vb-start:hover{background:#193c64}.vb-start:active{transform:translateY(1px)}.vb-start:disabled{opacity:.5;cursor:wait}.vb-finished .vb-panel h1{color:var(--vb-danger)}.vb-finished .vb-panel>p[data-instructions]{color:#6d625e}.vb-finished .vb-panel{bottom:5%}.vb-panel [data-adjust]{display:block;margin:4px auto 0}.vb-panel .vb-save{font-size:10px;margin:10px 0 0;line-height:1.5}.vb-save:empty{display:none}.vb-text-button{color:var(--vb-accent);font-size:10px;background:none;border:0;padding:8px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.vb-effect{position:absolute;z-index:2;top:23%;left:4%;right:4%;text-align:center;pointer-events:none}.vb-effect b{display:block;font-size:4.2cqw;line-height:1.2;letter-spacing:-.3px}.vb-effect span{display:block;margin-top:4px;font-size:10px;color:#7d8994}.vb-active{position:absolute;z-index:2;bottom:5%;left:10%;right:10%;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;pointer-events:none;color:var(--muted)}.vb-active span{border-bottom:2px solid #a2b8cb;padding:3px 5px;font-variant-numeric:tabular-nums}.vb-watermark{position:absolute;z-index:2;bottom:2%;left:0;right:0;text-align:center;font-size:7px;letter-spacing:1px;color:var(--muted);pointer-events:none}.vb-caption{font-size:10px;line-height:1.6;text-align:center;color:#8b959c;margin:14px 6px 0}.vb-ranking{padding-top:12px}.vb-ranking h2{font-family:inherit;font-size:19px;font-weight:700;letter-spacing:-.4px;margin:0 0 22px;color:var(--ink)}.vb-tabs{display:flex;gap:20px;border-bottom:1px solid var(--vb-border)}.vb-tabs button{border:0;background:none;padding:0 0 12px;color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.vb-tabs button[aria-pressed=true]{color:var(--vb-accent);border-bottom:2px solid var(--vb-accent);font-weight:700;margin-bottom:-1px}.vb-rank-caption{display:flex;justify-content:space-between;margin:20px 0 9px;color:var(--muted);font-size:8px;letter-spacing:.5px}.vb-ranking ol{list-style:none;padding:0;margin:0;max-height:380px;overflow:auto;scrollbar-width:thin}.vb-ranking li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:7px;padding:12px 0;border-bottom:1px solid var(--vb-border);font-size:11px}.vb-ranking li>span:first-child{color:var(--muted);font-size:10px}.vb-ranking li>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.vb-ranking li strong{font-size:13px;color:var(--vb-accent);font-variant-numeric:tabular-nums}.vb-note,.vb-empty,.vb-ranking [data-rank-status]{font-size:11px;line-height:1.7;color:var(--muted);margin:18px 0}.vb-empty{padding:24px 0}.vb-ranking [data-rank-status]:empty{display:none}.vb-help{margin-top:26px;border-top:1px solid var(--vb-border);padding-top:18px;color:var(--muted);font-size:11px;line-height:1.8}.vb-help summary{color:var(--vb-accent);cursor:pointer}body.bounce-focus{overflow:hidden}.bounce-focus .vb-stage{position:fixed;z-index:10000;top:50%;left:50%;transform:translate(-50%,-50%);width:min(100vw,56.25dvh);height:auto;border-radius:0;border:0;box-shadow:0 0 0 100vmax var(--vb-surface)}@media(max-width:650px){.main:has(.vb-page){padding:15px 12px 35px}.vb-heading{margin-bottom:14px}.vb-heading>span{display:none}.vb-layout{display:flex;flex-direction:column;align-items:center;gap:28px}.vb-game{width:100%;max-width:430px}.vb-stage{width:min(100%,calc((100dvh - 90px)*.5625))}.vb-ranking{width:100%;max-width:430px;padding:0 8px}.vb-caption{font-size:9px}.vb-ranking h2{font-size:18px}.vb-panel>p{font-size:11px}}@media(prefers-reduced-motion:reduce){.vb-page *{transition:none!important}}[data-theme=dark] .main:has(.vb-page){background:#0b121c}[data-theme=dark] .vb-page,.vb-stage[data-camera=on]{--ink:#e8eff7;--muted:#a1b0c2;--vb-surface:#111e2d;--vb-clear:#111e2d00;--vb-border:#2a3b4e;--vb-accent:#8cbbec;--vb-danger:#f0a08a;--vb-wall:#7e96ac;--vb-net:#bbd0e4;--vb-used:#70889e;--vb-aim:#a5d0ff;--vb-halo:#697f96;--vb-dark:1}[data-theme=dark] .vb-start,.vb-stage[data-camera=on] .vb-start{background:#376b9f}[data-theme=dark] .vb-start:hover,.vb-stage[data-camera=on] .vb-start:hover{background:#457cb4}.vb-camera{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;filter:saturate(.8)}.vb-camera-shade{display:none;position:absolute;inset:0;pointer-events:none;background:linear-gradient(#081220b8,#08122038 35% 65%,#081220bc)}.vb-stage[data-camera=on] .vb-camera-shade{display:block}.vb-stage[data-camera=on] .vb-panel:before{background:linear-gradient(#08122000,#081220c9 48%);border-radius:16px}.vb-tools button[data-camera-toggle]{display:grid;place-items:center}.vb-tools button[data-camera-toggle][aria-pressed=true]{color:#b3e4cb}.vb-camera-status{position:absolute;z-index:6;top:10%;left:5%;right:5%;margin:0;text-align:center;font-size:11px;color:var(--ink);background:var(--vb-surface);border:1px solid var(--vb-border);border-radius:8px;padding:10px;pointer-events:none}.vb-rank-list,.vb-own-ranking{list-style:none;padding:0;margin:0;scrollbar-width:thin}.vb-rank-list li,.vb-own-ranking li{display:grid;grid-template-columns:minmax(26px,max-content) minmax(0,1fr) auto;align-items:center;gap:8px;padding:11px 8px;border-bottom:1px solid var(--vb-border);font-size:11px;text-align:left;font-variant-numeric:tabular-nums}.vb-rank-list li>span:first-child,.vb-own-ranking li>span:first-child{color:var(--muted);font-size:10px}.vb-rank-list li>span:nth-child(2),.vb-own-ranking li>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.vb-rank-list li strong,.vb-own-ranking li strong{font-size:13px;color:var(--vb-accent)}.vb-rank-me{background:color-mix(in srgb,var(--vb-accent) 10%,transparent)}.vb-own-ranking{flex:none;margin-top:8px!important;border:1px solid var(--vb-accent);border-radius:7px;overflow:hidden!important}.vb-own-ranking li{border:0!important}.vb-own-ranking li>span:nth-child(2){color:var(--ink);font-weight:650}.vb-result-ranking{display:flex;flex-direction:column;flex:1;min-height:0;margin:8px 0 14px;text-align:left}.vb-result-ranking .vb-tabs{gap:0;flex:none}.vb-result-ranking .vb-tabs button{flex:1;min-height:40px;padding:8px;font-size:12px}.vb-result-ranking .vb-rank-caption{flex:none;margin:10px 8px 5px}.vb-result-ranking .vb-rank-list{flex:1;min-height:42px;overflow:auto;overscroll-behavior:contain}.vb-result-ranking .vb-empty{margin:auto 0;padding:12px 0;text-align:center}.vb-rank-status{flex:none;font-size:10px;line-height:1.5;color:var(--muted);margin:6px 0 0;text-align:center}.vb-rank-status:empty{display:none}.vb-finished .vb-panel{top:24%;bottom:5%;display:flex;flex-direction:column;padding:0;min-height:0}.vb-finished .vb-panel:before,.vb-stage[data-camera=on].vb-finished .vb-panel:before{inset:-14px -12px -10px;background:var(--vb-surface);border-radius:12px}.vb-finished .vb-panel h1{flex:none;font-size:clamp(12px,4.2cqw,18px);margin:0}.vb-finished .vb-panel>.vb-start,.vb-finished .vb-panel>.vb-save,.vb-finished .vb-panel>.vb-text-button{flex:none}.vb-finished .vb-panel>.vb-text-button{align-self:center;min-height:28px;padding:6px 8px}.vb-finished .vb-panel .vb-save{margin-top:6px}.vb-finished .vb-panel h1:focus{outline:none}@media(max-height:550px){.vb-finished .vb-panel{overflow:auto;overscroll-behavior:contain}.vb-result-ranking{flex:none;min-height:190px}}
