:root{color-scheme:dark;--bg: #0a0e14;--bg-elevated: #121822;--bg-panel: #161e2a;--border: #2a3548;--text: #e8eef7;--text-muted: #8b9bb5;--accent: #3ecfd4;--accent-dim: #2a8f93;--danger: #e85d6c;--warning: #f0b429;--ride: #9b6dff;--score-turn: #7cf0ff;--score-banked: #c8d4e8;--touch: 44px;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.4}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--text);overflow-x:hidden}body{background:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(62,207,212,.12),transparent),radial-gradient(ellipse 80% 50% at 100% 100%,rgba(155,109,255,.08),transparent),var(--bg)}button{font:inherit;cursor:pointer;min-height:var(--touch);min-width:var(--touch);border-radius:10px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);padding:.55rem 1rem}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(135deg,var(--accent-dim),var(--accent));border-color:transparent;color:#041014;font-weight:600}button.ghost{background:transparent}a{color:var(--accent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.app-shell{max-width:1200px;width:100%;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:.75rem;gap:.75rem;overflow-x:clip;min-width:0}@media(min-width:900px){.app-shell.game-layout{display:grid;grid-template-columns:1fr min(320px,30vw);grid-template-rows:auto 1fr;align-items:stretch}.app-shell.game-layout .main-column{grid-column:1;grid-row:1 / span 2}.app-shell.game-layout .history-column{grid-column:2;grid-row:1 / span 2}}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;padding:.75rem;min-width:0;max-width:100%}.hud-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem .35rem}.hud-stat{display:flex;flex-direction:column;gap:.12rem;min-width:0}.hud-label{font-size:.72rem;color:var(--text-muted);line-height:1.2}.hud-value{font-size:.88rem;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.score-turn{color:var(--score-turn)}.score-banked{color:var(--score-banked)}.strike-warn{color:var(--warning)}.strike-danger{color:var(--danger);font-weight:700}.street-row{display:flex;gap:.5rem;overflow-x:auto;overflow-y:hidden;max-width:100%;padding-bottom:.25rem;scrollbar-width:thin}.slot{flex:0 0 96px;min-height:120px;border:2px dashed var(--border);border-radius:10px;padding:.35rem;font-size:.72rem;background:#00000040}.dice-arena{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.75rem;border:1px solid var(--accent-dim);border-radius:16px;background:#3ecfd40f;max-width:100%;min-width:0}.die{width:48px;height:48px;display:grid;place-items:center;border-radius:10px;border:2px solid var(--border);font-weight:700;font-size:1.25rem;background:var(--bg-panel)}.die.selected{border-color:var(--accent);box-shadow:0 0 0 2px #3ecfd459}.die.allowed:not(.selected){border-color:var(--accent-dim)}.hand-strip{display:flex;gap:.5rem;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:.35rem 0;scrollbar-width:thin}.card-tile{flex:0 0 min(200px,calc(100vw - 2.5rem));max-width:calc(100vw - 2.5rem);border:1px solid var(--border);border-radius:12px;padding:.5rem;background:var(--bg-panel);font-size:.78rem;overflow-wrap:anywhere}.card-tile h4{margin:0 0 .25rem;font-size:.9rem}.card-tile .meta{color:var(--text-muted);margin-bottom:.35rem}.history-list{max-height:min(70dvh,640px);overflow-y:auto;font-size:.78rem}.history-list li{border-bottom:1px solid var(--border);padding:.35rem 0}.handoff-overlay{position:fixed;inset:0;z-index:100;background:#04080eeb;display:grid;place-items:center;padding:1.5rem;text-align:center}.menu-card{max-width:420px;margin:auto;padding:1.25rem}.menu-card label{display:block;margin:.75rem 0 .25rem;color:var(--text-muted);font-size:.85rem}.menu-card input,.menu-card select{width:100%;min-height:var(--touch);border-radius:10px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);padding:.5rem}.toast{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:.65rem 1rem;border-radius:10px;z-index:200;max-width:min(90vw,420px)}.drawer-toggle{display:inline-flex}@media(min-width:900px){.drawer-toggle{display:none}.history-drawer{display:block!important;position:static!important}}.history-drawer{display:none;position:fixed;inset:auto 0 0;max-height:55dvh;z-index:50;border-radius:16px 16px 0 0;box-shadow:0 -8px 32px #00000073}.history-drawer.open{display:block}.action-bar{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.bank-convert{display:flex;gap:.5rem;align-items:flex-start;margin-top:.35rem;font-size:.78rem;line-height:1.35;max-width:100%}.bank-convert input{margin-top:.2rem;flex-shrink:0}.bank-preview{font-size:.85rem;border-left:3px solid var(--accent);padding-left:.65rem;margin:.5rem 0;width:100%;min-width:0;overflow-wrap:anywhere}.phase-tag{display:inline-block;padding:.15rem .5rem;border-radius:999px;background:#9b6dff33;color:var(--ride);font-size:.75rem;font-weight:600}.menu-tabs{display:flex;gap:.35rem;margin:1rem 0}.menu-tabs button{flex:1;min-width:0}.menu-tabs button.active{border-color:var(--accent);background:#3ecfd41f}.online-actions{border:1px solid var(--border);border-radius:12px;padding:.75rem 1rem;margin:.75rem 0}.online-actions label{display:flex;align-items:center;gap:.5rem;margin:.35rem 0}.join-code{font-size:2rem;letter-spacing:.35em;text-align:center;font-weight:700;color:var(--accent);margin:1rem 0}.online-status{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.45rem .75rem;background:var(--bg-elevated);border-bottom:1px solid var(--border);font-size:.85rem}.online-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--text-muted)}.online-dot.connected{background:#3ecf8e}.online-dot.connecting{background:var(--warning)}.online-dot.disconnected{background:var(--danger)}.online-deadline{margin-left:auto}.toast{position:fixed;top:.75rem;left:50%;transform:translate(-50%);z-index:100;max-width:min(92vw,420px);padding:.65rem 1rem;background:var(--bg-panel);border:1px solid var(--danger);border-radius:12px;box-shadow:0 8px 24px #00000059}.match-outcome{max-width:420px;margin:2rem auto;text-align:center}.zone-row{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}.card-face{display:flex;flex-direction:column;gap:.35rem;border:1px solid var(--border);border-radius:12px;padding:.35rem;background:var(--bg-panel);min-width:0}.card-face-hand{flex:0 0 min(148px,calc(42vw - 1rem));max-width:min(168px,calc(100vw - 2.5rem))}.card-face-slot{width:100%;border:none;padding:0;background:transparent}.card-face-art-btn{display:block;width:100%;padding:0;min-height:0;min-width:0;border:none;background:transparent;border-radius:8px;overflow:hidden}.card-face-art-btn:disabled{opacity:1;cursor:default}.card-face-art-wrap{position:relative;display:block;width:100%;aspect-ratio:360 / 504;border-radius:8px;overflow:hidden;background:#0b1018}.card-face-art{display:block;width:100%;height:100%;object-fit:cover}.card-face-meta{font-size:.72rem;overflow-wrap:anywhere}.card-face-meta h4{margin:0 0 .15rem;font-size:.82rem;line-height:1.25}.card-face-meta .meta{color:var(--text-muted)}.card-play-btn{width:100%;min-height:40px;padding:.35rem .5rem;font-size:.85rem}.slot{flex:0 0 108px;min-height:140px;border:2px dashed var(--border);border-radius:10px;padding:.35rem;font-size:.72rem;background:#00000040}.slot-filled{border-style:solid;border-color:var(--accent-dim)}.slot-index{margin-bottom:.25rem;color:var(--text-muted)}.card-back-stack{position:relative;width:72px;aspect-ratio:360 / 504;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--bg-panel);display:grid;place-items:center}.card-back-stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}.card-back-stack.empty{border-style:dashed;opacity:.55}.card-back-count{position:relative;z-index:1;font-weight:700;font-size:1.1rem;text-shadow:0 1px 4px #000}.card-back-label{position:absolute;bottom:.2rem;left:0;right:0;z-index:1;text-align:center;font-size:.65rem;color:#fff;text-shadow:0 1px 3px #000}.rarity-badge{position:absolute;top:.3rem;left:.3rem;z-index:1;padding:.1rem .35rem;border-radius:999px;font-size:.62rem;font-weight:700;letter-spacing:.02em;background:#000000a6;color:#fff;border:1px solid rgba(255,255,255,.2)}.rarity-1{border-color:#8b9bb5;color:#c8d4e8}.rarity-2{border-color:#3ecf8e;color:#9af0c4}.rarity-3{border-color:#9b6dff;color:#d4c0ff}.rarity-4{border-color:#f0b429;color:#ffe29a}.rarity-5{border-color:#ff7a3d;color:#ffd0b8;box-shadow:0 0 8px #ff7a3d73}.card-detail-overlay{position:fixed;inset:0;z-index:150;background:#04080edb;display:grid;place-items:center;padding:1rem}.card-detail{position:relative;width:min(92vw,420px);max-height:min(92dvh,860px);overflow:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;padding:.75rem}.card-detail-close{position:absolute;top:.4rem;right:.4rem;z-index:2;width:44px;height:44px;font-size:1.5rem;line-height:1;background:#0000008c}.card-detail-art{display:block;width:100%;height:auto;border-radius:12px;background:#0b1018}.card-detail-body{margin-top:.65rem}.card-detail-body h3{margin:0 0 .35rem;font-size:1.15rem}.card-detail-body .rarity-badge{position:static;display:inline-block;margin-bottom:.35rem}.card-detail-body .meta{color:var(--text-muted);font-size:.85rem;margin-bottom:.35rem}.card-detail-body p{margin:0;font-size:.9rem;overflow-wrap:anywhere}@media(min-width:900px){.card-face-hand{flex-basis:160px;max-width:180px}.slot{flex-basis:120px}}
