:root{--bg:#0a0d16;--ink:#f4f6fa;--muted:#9aa4b8;--accent:#3ce08a;--accent2:#5bb0ff;--font:"Barlow Condensed",Impact,sans-serif;--jp:"Noto Sans JP",sans-serif}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--jp);overflow:hidden}
#gl{position:fixed;inset:0}#gl canvas{display:block}
/* loading */
#loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(ellipse at 50% 40%,#16213a,#05070d);z-index:50;transition:opacity .5s}
#loading.hide{opacity:0;pointer-events:none}#loading .txt{font-family:var(--font);font-size:38px;letter-spacing:.12em;font-weight:800}
#loading .track{width:320px;height:6px;background:#1f2a44;border-radius:3px;overflow:hidden}#loading .bar{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .3s}
/* menu */
#menu{position:fixed;inset:0;overflow:auto;z-index:20;background:linear-gradient(180deg,rgba(5,7,13,.92),rgba(5,7,13,.78));transition:opacity .4s}
#menu.hide{opacity:0;pointer-events:none}
.menu-inner{max-width:1240px;margin:0 auto;padding:28px 24px 60px}
.menu-inner header{display:flex;align-items:center;gap:18px;margin-bottom:18px}.menu-inner header img{height:44px}
.menu-inner h1{font-family:var(--font);font-size:56px;margin:0;letter-spacing:.04em;line-height:1}.menu-inner h1 span{color:var(--accent)}
.menu-inner header p{margin:0 0 0 auto;color:var(--muted);font-size:14px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}section h2,.lineup h3{font-family:var(--font);font-size:22px;letter-spacing:.08em;margin:8px 0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.team-card{background:#111726;border:2px solid #1f2a44;border-radius:10px;padding:8px 6px;text-align:center;cursor:pointer;transition:transform .12s,border-color .12s;position:relative;overflow:hidden}
.team-card::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--c),transparent 70%);opacity:.25}
.team-card img{width:52px;height:52px;object-fit:contain;position:relative}.team-card .tn{font-family:var(--font);font-size:16px;font-weight:700;position:relative}.team-card .tov{font-size:11px;color:var(--muted);position:relative}
.team-card:hover{transform:translateY(-2px);border-color:#3b4a6e}.team-card.sel{border-color:var(--accent);box-shadow:0 0 0 2px rgba(60,224,138,.35)}
.lineups{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}.lineup h3{color:var(--ink);border-left:6px solid var(--c);padding-left:10px}.lineup h3 small{color:var(--muted);font-size:13px;font-family:var(--jp);margin-left:8px}
.roster .row{display:grid;grid-template-columns:34px 44px 1fr 56px 44px 70px;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;cursor:pointer;font-size:14px}
.roster .row img{width:34px;height:45px;object-fit:cover;border-radius:3px}.roster .row:hover{background:#151d31}.roster .row.on{background:#15301f;outline:1px solid var(--accent)}
.roster .no{color:var(--muted);font-family:var(--font)}.roster .ovr{font-family:var(--font);font-size:20px;font-weight:800;text-align:right}.roster .pos{color:var(--muted);font-size:12px}
.roster .rar{font-size:10px;text-align:center;border-radius:3px;padding:2px 0;background:#2a3350}.rar.Diamond{background:#3fb6d8}.rar.Amethyst{background:#8d4fd6}.rar.Ruby{background:#c8394b}.rar.Sapphire{background:#3a63c9}.rar.Emerald{background:#2e9e64}.rar.Gold{background:#b8912a}.rar.Silver{background:#7d8798}.rar.Bronze{background:#8a5a2b}
.actions{display:flex;align-items:center;gap:20px;margin-top:22px}#start,#again{font-family:var(--font);font-size:30px;font-weight:800;letter-spacing:.1em;padding:12px 40px;border:0;border-radius:8px;background:linear-gradient(90deg,var(--accent),#26c46f);color:#05130a;cursor:pointer}
#start:hover,#again:hover{filter:brightness(1.1)}.rules{color:var(--muted);font-size:13px}
/* HUD */
#hud{position:fixed;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;z-index:10}#hud.show{opacity:1}
.score{position:absolute;top:14px;left:50%;transform:translateX(-50%);display:flex;align-items:stretch;background:rgba(6,9,18,.82);border:1px solid #27324f;border-radius:12px;overflow:hidden;font-family:var(--font)}
.score .team{display:flex;align-items:center;gap:10px;padding:6px 14px;border-bottom:4px solid var(--c);min-width:180px}.score .team.poss .abbr::after{content:"●";color:var(--accent);margin-left:6px;font-size:10px;vertical-align:middle}
.score .logo{width:38px;height:38px;object-fit:contain}.score .abbr{font-size:22px;font-weight:700;letter-spacing:.06em}.score .pts{font-size:40px;font-weight:800;margin-left:auto}.score .away .pts{margin:0 auto 0 0}
.score .team.flash{background:rgba(60,224,138,.35)}
.score .clock{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 18px;background:#0d1220;border-left:1px solid #27324f;border-right:1px solid #27324f}.clock .time{font-size:30px;font-weight:700}.clock .shot{font-size:20px;color:var(--accent2)}.clock .shot.warn{color:#ff5a5a}
.msg{position:absolute;top:120px;left:50%;transform:translateX(-50%) scale(.9);font-family:var(--font);font-size:48px;font-weight:800;letter-spacing:.08em;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.7),0 0 30px rgba(60,224,138,.5);opacity:0;transition:opacity .15s,transform .15s}.msg.show{opacity:1;transform:translateX(-50%) scale(1)}
.meter{position:absolute;left:50%;bottom:120px;transform:translateX(-50%);width:220px;height:14px;background:rgba(0,0,0,.6);border:1px solid #fff5;border-radius:7px;opacity:0}.meter.show{opacity:1}.meter .bar{height:100%;background:linear-gradient(90deg,#ffb84d,#3ce08a 62%,#ff5a5a 90%);border-radius:7px}.meter .sweet{position:absolute;left:62%;top:-4px;width:14%;height:22px;border:2px solid #fff;border-radius:4px}
.ctrl{position:absolute;left:24px;bottom:56px;font-family:var(--font);display:flex;align-items:baseline;gap:10px;background:rgba(6,9,18,.7);padding:8px 14px;border-radius:8px;border-left:5px solid var(--accent)}.ctrl .num{font-size:22px;color:var(--accent)}.ctrl .name{font-size:24px;font-weight:700;font-family:var(--jp)}.ctrl .hint{font-size:13px;color:var(--muted);font-family:var(--jp);margin-left:8px}
.stamina{position:absolute;left:24px;bottom:44px;width:220px;height:5px;background:#1f2a44;border-radius:3px}.stamina .fill{height:100%;background:var(--accent2);border-radius:3px}
.help{position:absolute;right:20px;bottom:16px;font-size:12px;color:var(--muted);background:rgba(6,9,18,.6);padding:6px 10px;border-radius:6px}
#pause,#result{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(3,5,10,.7);z-index:30;font-family:var(--font)}#pause.show,#result.show{display:flex}#pause div{font-size:64px;font-weight:800;letter-spacing:.2em;text-align:center}#pause small{font-size:18px;letter-spacing:.1em;color:var(--muted)}
#result .card{background:#0f1526;border:1px solid #2a3654;border-radius:14px;padding:30px 44px;text-align:center;min-width:420px}#result h1{font-size:44px;margin:0 0 8px}#result .final{font-size:36px;margin-bottom:12px}#result table{margin:0 auto 18px;font-size:20px;border-collapse:collapse}#result td,#result th{padding:4px 18px}
@media (max-width:900px){.cols,.lineups{grid-template-columns:1fr}.grid{grid-template-columns:repeat(3,1fr)}.menu-inner h1{font-size:40px}.help{display:none}}

.options{display:flex;gap:22px;align-items:center;margin-top:18px;font-size:14px}.options .opt{display:flex;align-items:center;gap:6px;cursor:pointer}.options select{font-size:14px;background:#111726;color:#fff;border:1px solid #2a3654;border-radius:6px;padding:4px 8px}
