.bs-wrap{display:flex;flex-direction:column;gap:12px;align-items:center;width:100%;max-width:460px;margin:0 auto}.bs-hud{display:flex;align-items:baseline;gap:18px;width:100%;padding:0 2px}.bs-stat{display:flex;align-items:baseline;gap:6px}.bs-stat[hidden]{display:none}.bs-stat b{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;color:#1c4a68}.bs-stat i{font-style:normal;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;opacity:.6}.bs-right{margin-left:auto}.bs-combo-wrap b{color:#c2432f}.bs-grid{display:grid;grid-template-columns:repeat(8,1fr);width:100%;aspect-ratio:1;background:#fff;border:3px solid #2f6f9f;border-radius:12px;overflow:hidden}.bs-cell{border-right:1px solid #d3e4ee;border-bottom:1px solid #d3e4ee;cursor:pointer;user-select:none;position:relative}.bs-cell:nth-child(8n){border-right:0}.bs-cell:nth-last-child(-n+8){border-bottom:0}.bs-cell.bs-on:after,.bs-cell.bs-ghost:after{content:"";position:absolute;inset:2px;border-radius:5px}.bs-k0{--bs-fill: #e05b4a;--bs-deep: #a83828}.bs-k1{--bs-fill: #f0a021;--bs-deep: #b96f08}.bs-k2{--bs-fill: #4bb45f;--bs-deep: #2c7c3c}.bs-k3{--bs-fill: #2f9fd0;--bs-deep: #1a6b91}.bs-k4{--bs-fill: #7b6bd6;--bs-deep: #50429c}.bs-k5{--bs-fill: #e0699f;--bs-deep: #a63f70}.bs-k6{--bs-fill: #21b8ac;--bs-deep: #0e7d75}.bs-cell.bs-on:after{background:linear-gradient(180deg,#ffffff6b,#ffffff0f 42%,#0000000f),var(--bs-fill, #2f6f9f);box-shadow:inset 0 -3px 0 var(--bs-deep, #1a4a68),inset 0 1px #ffffff80;border-radius:6px}.bs-cell.bs-ghost:after{background:#78aad257;box-shadow:inset 0 0 0 2px #3c82b48c;border-radius:6px}.bs-tray{display:flex;gap:10px;width:100%;justify-content:center}.bs-slot{flex:1 1 0;min-height:84px;display:grid;grid-template-columns:repeat(var(--bs-c, 1),16px);grid-template-rows:repeat(var(--bs-r, 1),16px);gap:2px;place-content:center;padding:8px;border:2px solid #cfe0ea;border-radius:12px;background:#f6fafd;cursor:pointer}.bs-slot i{width:16px;height:16px;border-radius:4px}.bs-slot i.bs-p{background:linear-gradient(180deg,#ffffff6b,#ffffff0f 42%,#0000000f),var(--bs-fill, #2f6f9f);box-shadow:inset 0 -2px 0 var(--bs-deep, #1a4a68),inset 0 1px #ffffff80}.bs-slot i.bs-h{background:transparent}.bs-slot.bs-sel{border-color:#e09b1f;background:#fff4dd;box-shadow:0 0 0 2px #ffd98a}.bs-slot.bs-stuck{opacity:.45}.bs-slot.bs-stuck i.bs-p{--bs-fill: #98a6b0;--bs-deep: #6b7780}.bs-slot.bs-empty{border-style:dashed;background:transparent;cursor:default}.bs-slot:disabled{cursor:default}.bs-over{width:100%;padding:16px;border:2px solid #cfe0ea;border-radius:14px;background:#f6fafd;text-align:center}.bs-over-title{margin:0 0 4px;font-size:1.2rem;font-weight:800;color:#1c4a68}.bs-over-score{margin:0 0 12px;color:#4a6a78}.bs-over-score b{font-size:1.4rem;color:#1c4a68;font-variant-numeric:tabular-nums}.bs-again{min-height:44px;padding:10px 24px;border:0;border-radius:999px;background:#2f6f9f;color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.bs-again:hover{background:#26597f}.bs-board-slot,.so-board-slot{margin:4px 0 14px;text-align:left}.sl-note{margin:0 0 8px;opacity:.7;font-size:.92rem}.sl-pct{margin:0 0 8px;font-weight:700;color:#1c4a68}.sl-rank{margin:0 0 8px;font-weight:700;color:#1f9c58}.sl-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.sl-label{flex:1 0 100%;font-size:.85rem;opacity:.7}.sl-input{flex:1 1 140px;min-height:44px;padding:8px 12px;border:2px solid #cfe0ea;border-radius:10px;font-size:1rem}.sl-submit{min-height:44px;padding:8px 20px;border:0;border-radius:10px;background:#2f6f9f;color:#fff;font-weight:700;cursor:pointer}.sl-submit:disabled{opacity:.6;cursor:default}.sl-err{flex:1 0 100%;margin:0;color:#c2323c;font-size:.88rem}.sl-list{margin:0;padding:0;list-style:none;counter-reset:lb}.sl-list li{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-top:1px solid #e3edf3;counter-increment:lb}.sl-list li:before{content:counter(lb) ".";opacity:.5;min-width:1.6em;font-variant-numeric:tabular-nums}.sl-list li b{margin-left:auto;font-variant-numeric:tabular-nums}.bs-stat b{color:#8ec3e4}.bs-drag{position:fixed;z-index:60;display:grid;grid-template-columns:repeat(var(--bs-c, 1),var(--bs-size, 40px));grid-template-rows:repeat(var(--bs-r, 1),var(--bs-size, 40px));pointer-events:none;filter:drop-shadow(0 8px 14px rgba(0,0,0,.32));transform:scale(1.04)}.bs-drag i{display:block}.bs-drag i.bs-p{background:linear-gradient(180deg,#ffffff6b,#ffffff0f 42%,#0000000f),var(--bs-fill, #2f6f9f);box-shadow:inset 0 -3px 0 var(--bs-deep, #1a4a68),inset 0 1px #ffffff80;border-radius:6px;margin:2px}.bs-drag i.bs-h{background:transparent}.bs-drag.bs-drag-bad{opacity:.55}.bs-slot,.bs-grid{touch-action:none;-webkit-user-select:none;user-select:none}.so-wrap{display:flex;flex-direction:column;gap:14px;align-items:center;width:100%;max-width:460px;margin:0 auto}.so-hud{display:flex;align-items:baseline;gap:18px;width:100%;padding:0 2px}.so-stat{display:flex;align-items:baseline;gap:6px}.so-stat[hidden]{display:none}.so-stat b{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;color:#8ec3e4}.so-stat i{font-style:normal;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;opacity:.6}.so-right{margin-left:auto}.so-board{display:grid;grid-template-columns:repeat(var(--so-cols, 5),minmax(0,1fr));justify-content:center;align-items:end;gap:14px 10px;width:100%;padding:16px 12px 18px;border-radius:18px;background:radial-gradient(120% 90% at 50% 0%,#78c8eb29,#14203000 62%),linear-gradient(180deg,#16202e,#101827);box-shadow:inset 0 1px #ffffff12,inset 0 -18px 26px -22px #000000e6}.so-bottle{position:relative;display:flex;flex-direction:column;gap:4px;justify-content:flex-end;width:100%;min-height:44px;padding:7px 6px 8px;border:2px solid rgba(216,240,255,.55);border-top-color:#ffffffd9;border-radius:7px 7px 20px 20px;background:linear-gradient(100deg,#ffffff4d,#ffffff1a 26%,#ffffff0d 62%,#ffffff2e);box-shadow:0 10px 16px -10px #000000d9,inset 0 -10px 14px -12px #0009;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.so-bottle:before{content:"";position:absolute;left:7px;top:10px;bottom:16px;width:6px;border-radius:6px;background:linear-gradient(180deg,#ffffffa6,#ffffff0f);pointer-events:none}.so-slot{display:block;width:100%;aspect-ratio:1;border-radius:50%;background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff1f;transition:transform .13s ease}.so-slot[class*=so-c]{background:radial-gradient(circle at 34% 27%,#ffffffeb,#ffffff61 12%,#fff0 44%),linear-gradient(180deg,var(--so-fill) 0%,var(--so-deep) 100%);box-shadow:inset 0 -4px 7px -3px #00000073,inset 0 -1px #ffffff47,0 2px 3px #00000059}.so-slot.so-c0{--so-fill: #f0554a;--so-deep: #a8261f}.so-slot.so-c1{--so-fill: #3aa0e0;--so-deep: #1a5c94}.so-slot.so-c2{--so-fill: #4fc45f;--so-deep: #248036}.so-slot.so-c3{--so-fill: #f7b32b;--so-deep: #b0700a}.so-slot.so-c4{--so-fill: #9b6ee6;--so-deep: #5c37a5}.so-slot.so-c5{--so-fill: #1fc5ad;--so-deep: #0b7a6d}.so-slot.so-c6{--so-fill: #f0699f;--so-deep: #a83570}.so-slot.so-c7{--so-fill: #6b7ae0;--so-deep: #3a45a0}.so-slot.so-face-down{background:repeating-linear-gradient(45deg,#97a4ad 0 4px,#7f8c96 4px 8px);box-shadow:inset 0 0 0 1px #00000040}.so-bottle.so-sel{transform:translateY(-6px);border-color:#ffd98a;box-shadow:0 0 0 2px #ffd98a8c,0 14px 18px -10px #000000e6}.so-slot.so-lift{transform:translateY(-14px) scale(1.04)}.so-bottle.so-done{border-color:#5adc82d9;box-shadow:0 0 0 2px #5adc824d,0 10px 16px -10px #000000d9;cursor:default}.so-bottle:disabled{cursor:default}.so-tools{display:flex;gap:10px;width:100%;justify-content:center}.so-tool{min-height:44px;padding:8px 18px;border:0;border-radius:999px;background:linear-gradient(180deg,#f7fbfe,#dde9f2);color:#12354d;font-size:.95rem;font-weight:800;cursor:pointer;box-shadow:0 3px #00000059}.so-tool:hover{background:linear-gradient(180deg,#fff,#e7f1f8)}.so-tool:disabled{background:#3f4c60;color:#c2cede;box-shadow:none;cursor:default}.so-tool[hidden]{display:none}.so-msg{margin:0;min-height:1.2em;font-size:.95rem;font-weight:600;color:#f0b45e;text-align:center}.so-over{width:100%;padding:16px;border:2px solid rgba(143,195,228,.3);border-radius:14px;background:#2f6f9f1f;text-align:center}.so-over-title{margin:0 0 4px;font-size:1.2rem;font-weight:800;color:#8ec3e4}.so-over-score{margin:0 0 12px;color:#b9c9d6}.so-over-score b{font-size:1.4rem;color:#8ec3e4;font-variant-numeric:tabular-nums}.so-again{min-height:44px;padding:10px 24px;border:0;border-radius:999px;background:#2f6f9f;color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.so-again:hover{background:#3a83b8}@media (prefers-reduced-motion: reduce){.so-bottle,.so-slot{transition:none}}
