#ub-air-hockey-v8,#ub-air-hockey-v8 *{box-sizing:border-box}
#ub-air-hockey-v8{--ink:#31313d;--muted:#78788a;--line:rgba(104,92,164,.22);--pink:#ff83b7;--purple:#9a86ff;--cyan:#76dbe8;width:min(100%,760px);margin:clamp(10px,2.5vh,24px) auto;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;font-size:14px;line-height:1.5;-webkit-text-size-adjust:100%;isolation:isolate}
#ub-air-hockey-v8 button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#ub-air-hockey-v8 button:focus-visible{outline:2px solid #8874d1;outline-offset:3px}
#ub-air-hockey-v8 .shell{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 42px rgba(77,65,125,.10);padding:21px clamp(12px,3vw,24px) 23px}
#ub-air-hockey-v8 .shell::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--pink),var(--purple),var(--cyan));opacity:.78;pointer-events:none}
#ub-air-hockey-v8 .heading{margin:0 0 19px;text-align:center;font-size:12px;letter-spacing:.10em;font-weight:750;color:var(--muted)}
#ub-air-hockey-v8 .settings{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:min(100%,420px);margin:0 auto 19px}
#ub-air-hockey-v8 .setting-row{display:flex;flex-direction:column;min-width:0;gap:7px}
#ub-air-hockey-v8 .setting-label{font-size:12px;color:var(--muted);font-weight:700;text-align:center;line-height:1.4}
#ub-air-hockey-v8 .segments{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:8px;width:100%;min-width:0}
#ub-air-hockey-v8 .segments button{min-width:0;min-height:42px;padding:7px 3px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:13px;font-weight:650;color:var(--muted);transition:background .14s ease,border-color .14s ease,transform .1s ease}
#ub-air-hockey-v8 .segments button[aria-pressed="true"]{border-color:rgba(154,134,255,.55);background:linear-gradient(135deg,rgba(255,131,183,.25),rgba(154,134,255,.20) 52%,rgba(118,219,232,.24));color:var(--ink)}
#ub-air-hockey-v8 .segments button:not([aria-pressed="true"]):hover{border-color:rgba(154,134,255,.50);background:#fff}
#ub-air-hockey-v8 .segments button:active{transform:scale(.97)}
#ub-air-hockey-v8 .difficulty-row[hidden]{display:none}
#ub-air-hockey-v8 .stage{position:relative;overflow:hidden;border:1px solid rgba(104,92,164,.16);border-radius:18px;min-width:0;padding:15px clamp(6px,1.5vw,16px) 13px;background:linear-gradient(rgba(255,255,255,.89),rgba(255,255,255,.89)),repeating-linear-gradient(0deg,transparent 0,transparent 39px,rgba(120,105,180,.045) 40px)}
#ub-air-hockey-v8 .scorebar{width:min(100%,645px);margin:0 auto 10px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;color:var(--muted);font-variant-numeric:tabular-nums}
#ub-air-hockey-v8 .score-team{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;min-height:42px;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 2px 6px rgba(77,65,125,.045);font-size:9px;font-weight:700}
#ub-air-hockey-v8 .score-team:first-child{padding-right:16px}
#ub-air-hockey-v8 .score-team:last-child{padding-left:16px}
#ub-air-hockey-v8 .score-team strong{font-size:clamp(16px,3.8vw,24px);color:var(--ink);line-height:1.15;font-weight:780}
#ub-air-hockey-v8 .team-label{white-space:nowrap;font-size:calc(9px - 1pt);color:var(--muted)}
#ub-air-hockey-v8 .goal-title{padding:3px 8px;border:1px solid var(--line);border-radius:99px;font-size:8.5px;font-weight:700;color:var(--muted);background:#fff;white-space:nowrap}
#ub-air-hockey-v8 .table-wrap{position:relative;width:min(100%,690px);margin:0 auto;min-width:0;aspect-ratio:1000/490;border-radius:18px;overflow:hidden;filter:drop-shadow(0 9px 11px rgba(77,65,125,.13))}
#ub-air-hockey-v8 canvas{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none;outline:none;cursor:crosshair;background:#fff}
#ub-air-hockey-v8 canvas:focus-visible{outline:2px solid #9a86ff;outline-offset:-4px}
#ub-air-hockey-v8 .state{min-height:19px;margin:10px 0 0;text-align:center;font-size:12px;font-weight:700;color:var(--muted)}
#ub-air-hockey-v8 .actions{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:18px}
#ub-air-hockey-v8 .start-btn{min-width:clamp(108px,28vw,160px);min-height:46px;padding:9px 20px;border:1px solid rgba(104,92,164,.34);border-radius:999px;background:rgba(255,255,255,.76);color:var(--muted);font-size:14px;font-weight:650;letter-spacing:.08em;transition:transform .08s ease,border-color .15s ease,background .15s ease}
#ub-air-hockey-v8 .start-btn:is(:hover,:focus-visible):not(:disabled){border-color:rgba(154,134,255,.42);background:linear-gradient(135deg,rgba(255,131,183,.25),rgba(154,134,255,.20) 52%,rgba(118,219,232,.24));color:var(--muted)}
#ub-air-hockey-v8 .start-btn:active:not(:disabled){transform:scale(.98);background:linear-gradient(135deg,rgba(255,131,183,.32),rgba(154,134,255,.27) 52%,rgba(118,219,232,.31))}
#ub-air-hockey-v8 .start-btn:disabled{opacity:.48;cursor:default}
#ub-air-hockey-v8 .sound-row{display:flex;align-items:center;justify-content:center;gap:11px}
#ub-air-hockey-v8 .sound-label{font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--muted)}
#ub-air-hockey-v8 .sound-toggle{position:relative;width:38px;height:20px;padding:0;border:1px solid rgba(104,92,164,.35);border-radius:999px;background:#fff}
#ub-air-hockey-v8 .sound-toggle[aria-pressed="true"]{border-color:#9a86ff9b;background:linear-gradient(135deg,#ff83b72c,#76dbe832)}
#ub-air-hockey-v8 .sound-knob{position:absolute;top:3px;left:3px;width:12px;height:12px;border:1px solid rgba(104,92,164,.35);border-radius:50%;background:white;transition:transform .16s ease}
#ub-air-hockey-v8 .sound-toggle[aria-pressed="true"] .sound-knob{transform:translateX(18px)}
@media(max-width:420px){#ub-air-hockey-v8 .shell{padding:16px 9px 17px;border-radius:18px}#ub-air-hockey-v8 .settings{gap:12px;margin-bottom:14px}#ub-air-hockey-v8 .segments{gap:6px}#ub-air-hockey-v8 .segments button{min-height:40px;font-size:12px}#ub-air-hockey-v8 .stage{padding:11px 5px 12px}#ub-air-hockey-v8 .scorebar{width:calc(100% - 10px);gap:7px;margin-bottom:8px}#ub-air-hockey-v8 .score-team{gap:4px;min-height:34px;padding:5px 6px;border-radius:9px}#ub-air-hockey-v8 .score-team:first-child{padding-right:11px}#ub-air-hockey-v8 .score-team:last-child{padding-left:11px}#ub-air-hockey-v8 .team-label{font-size:calc(8px - 1pt)}#ub-air-hockey-v8 .score-team strong{font-size:clamp(14px,3.7vw,20px)}#ub-air-hockey-v8 .goal-title{padding:2px 5px;font-size:8px}#ub-air-hockey-v8 .table-wrap{border-radius:10px}#ub-air-hockey-v8 .actions{margin-top:16px;gap:16px}}
@media(prefers-reduced-motion:reduce){#ub-air-hockey-v8 .segments button,#ub-air-hockey-v8 .start-btn,#ub-air-hockey-v8 .sound-knob{transition:none}}
