#duelApp [hidden]{display:none!important}

/* Live Duel page: compact cards, clear create/join actions, and responsive boards. */
.duel-hero{padding-bottom:22px}
.duel-hero .eyebrow{color:#ffad77}
.duel-hero .eyebrow-dot{background:linear-gradient(135deg,#ffad59,#f15380);box-shadow:0 0 0 5px rgba(255,151,89,.13)}
.duel-hero h1{max-width:1000px;line-height:1.08;letter-spacing:-.035em}
.duel-hero p{max-width:100%;line-height:1.65}

.duel-shell,.duel-rules-card{--duel-coral:#ff9c63;--duel-rose:#f04f80;--duel-mint:#50d9bc;--duel-blue:#528fee;width:100%;margin:0 0 20px;border:1px solid rgba(146,176,215,.2);border-radius:22px;background:linear-gradient(145deg,rgba(20,34,55,.97),rgba(17,30,49,.98) 50%,rgba(19,37,57,.97));box-shadow:0 18px 46px rgba(0,0,0,.17);overflow:hidden}
.theme-light .duel-shell,.theme-light .duel-rules-card{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(242,247,253,.98) 55%,rgba(236,246,249,.98))}
.duel-shell{border-color:color-mix(in srgb,var(--duel-coral) 23%,var(--line));background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--duel-coral) 10%,transparent),transparent 38%),radial-gradient(ellipse at 100% 100%,color-mix(in srgb,var(--duel-mint) 8%,transparent),transparent 40%),linear-gradient(145deg,var(--panel),var(--panel-2))}
.theme-light .duel-shell{background:radial-gradient(ellipse at 0 0,rgba(255,156,99,.09),transparent 38%),radial-gradient(ellipse at 100% 100%,rgba(80,217,188,.08),transparent 40%),linear-gradient(145deg,var(--panel),var(--panel-2))}

.duel-value-strip{display:flex;justify-content:center;padding:13px 22px;border-bottom:1px solid var(--line-soft);background:linear-gradient(90deg,rgba(255,156,99,.09),rgba(240,79,128,.055) 48%,rgba(80,217,188,.08))}
.duel-value-strip span{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted);font-size:13px;font-weight:750;line-height:1.5;text-align:center}
.duel-value-strip b{color:var(--duel-coral);font-size:16px}
.duel-notice{margin:15px 19px 0;padding:12px 15px;border:1px solid rgba(255,201,101,.35);border-radius:12px;background:rgba(255,201,101,.1);color:var(--text);font-size:14px;font-weight:700;line-height:1.5}
.duel-notice.is-error{border-color:rgba(255,108,120,.42);background:rgba(255,108,120,.1)}
.duel-notice.is-success{border-color:rgba(80,217,188,.42);background:rgba(80,217,188,.1)}

.duel-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:18px}
.duel-guide-prompt{grid-column:1/-1;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 8px;margin:0 3px;padding:9px 12px;border:1px solid rgba(102,169,255,.16);border-radius:11px;background:linear-gradient(90deg,rgba(102,169,255,.055),rgba(80,217,188,.045));color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
.duel-guide-prompt>span{display:grid;flex:none;width:19px;height:19px;place-items:center;border:1px solid rgba(102,169,255,.23);border-radius:50%;background:rgba(102,169,255,.1);color:var(--duel-blue);font-size:11px;font-weight:900}
.duel-guide-prompt a{color:#75c5dc;font-weight:850;white-space:nowrap}
.duel-guide-prompt a:hover{color:var(--duel-mint);text-decoration:underline;text-underline-offset:3px}
.theme-light .duel-guide-prompt a{color:#187f9b}
.duel-setup-card{--duel-accent:var(--duel-coral);position:relative;isolation:isolate;display:flex;min-width:0;flex-direction:column;align-items:stretch;padding:21px;border:1px solid color-mix(in srgb,var(--duel-accent) 27%,var(--line-soft));border-radius:17px;background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--duel-accent) 12%,transparent),transparent 43%),linear-gradient(145deg,var(--panel-2),color-mix(in srgb,var(--panel) 90%,var(--duel-accent) 10%));box-shadow:inset 0 1px rgba(255,255,255,.045);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.duel-setup-card::before{position:absolute;z-index:-1;top:0;right:18px;left:18px;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--duel-accent),var(--duel-accent-end,var(--duel-rose)));content:""}
.duel-create-card{--duel-accent:#ff9c63;--duel-accent-end:#f04f80}
.duel-join-card{--duel-accent:#50d9bc;--duel-accent-end:#528fee}
.duel-card-icon{display:grid;width:42px;height:42px;place-items:center;margin-bottom:13px;border:1px solid color-mix(in srgb,var(--duel-accent) 38%,transparent);border-radius:13px;background:color-mix(in srgb,var(--duel-accent) 13%,var(--panel));color:var(--duel-accent);font-size:20px;font-weight:900;box-shadow:inset 0 1px rgba(255,255,255,.1),0 5px 14px color-mix(in srgb,var(--duel-accent) 10%,transparent)}
.duel-card-copy h2{margin:0;color:var(--text);font-size:21px;line-height:1.2;font-weight:850;letter-spacing:-.025em}
.duel-card-copy p{min-height:42px;margin:7px 0 15px;color:var(--muted);font-size:14px;line-height:1.55}
.duel-field{display:grid;gap:7px;margin:0 0 12px;color:var(--muted);font-size:13px;font-weight:750;letter-spacing:.01em}
.duel-field input,.duel-field select{width:100%;min-height:46px;padding:10px 13px;border:1px solid var(--line);border-radius:11px;background:var(--bg-soft);color:var(--text);font-size:15px;font-weight:650;letter-spacing:0;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.duel-field input::placeholder{color:var(--dim);font-weight:500;opacity:.9}
.duel-field input:focus,.duel-field select:focus{border-color:var(--duel-accent);background:color-mix(in srgb,var(--bg-soft) 88%,var(--duel-accent) 12%);box-shadow:0 0 0 3px color-mix(in srgb,var(--duel-accent) 19%,transparent)}
.duel-field input[name="roomCode"]{text-transform:uppercase;letter-spacing:.14em;font-variant-numeric:tabular-nums}

.duel-primary-button,.duel-secondary-button,.duel-copy-button,.duel-ready-button,.duel-rematch-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 16px;border-radius:11px;font-size:14px;font-weight:850;line-height:1.25;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease,border-color .16s ease}
.duel-primary-button{width:100%;border:1px solid rgba(255,255,255,.2);background:linear-gradient(110deg,#ff9b4f,#f04f80);color:#fff;box-shadow:0 7px 18px rgba(240,79,128,.2),inset 0 1px rgba(255,255,255,.2)}
.duel-join-card .duel-secondary-button{width:100%;border:1px solid rgba(255,255,255,.2);background:linear-gradient(110deg,#168f84,#3278dc);color:#fff;box-shadow:0 7px 18px rgba(50,120,220,.16),inset 0 1px rgba(255,255,255,.16)}
.duel-primary-button:hover,.duel-ready-button:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 23px rgba(240,79,128,.25),inset 0 1px rgba(255,255,255,.2)}
.duel-join-card .duel-secondary-button:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 23px rgba(50,120,220,.22)}
.duel-secondary-button{border:1px solid color-mix(in srgb,var(--duel-mint) 33%,var(--line));background:linear-gradient(130deg,color-mix(in srgb,var(--duel-mint) 12%,var(--panel)),var(--panel-2));color:var(--text)}
.duel-secondary-button:hover,.duel-copy-button:hover{border-color:color-mix(in srgb,var(--duel-mint) 58%,var(--line));transform:translateY(-1px)}
.duel-form-hint{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}

.duel-room-panel{margin:0 18px 18px;border:1px solid var(--line-soft);border-radius:17px;background:linear-gradient(145deg,var(--panel-2),var(--panel));overflow:hidden}
.duel-room-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;border-bottom:1px solid var(--line-soft);background:linear-gradient(100deg,rgba(255,156,99,.06),transparent 45%,rgba(80,217,188,.05))}
.duel-room-kicker,.duel-board-caption{display:block;margin-bottom:4px;color:var(--dim);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.duel-room-title-wrap h2{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0;font-size:16px;font-weight:850}
.duel-room-title-wrap h2>span{color:var(--muted)}
.duel-room-title-wrap code{padding:5px 9px;border:1px solid rgba(255,156,99,.36);border-radius:8px;background:rgba(255,156,99,.12);color:#ffba83;font:850 15px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.15em}
.theme-light .duel-room-title-wrap code{color:#9d4c18}
.duel-copy-button{border:1px solid var(--line);background:var(--panel-3);color:var(--text);white-space:nowrap}
.duel-copy-button span{color:var(--duel-mint)}
.duel-rematch-button{border:1px solid rgba(255,255,255,.2);background:linear-gradient(110deg,#168f84,#3278dc);color:#fff;box-shadow:0 7px 18px rgba(50,120,220,.17)}
.duel-rematch-button:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 23px rgba(50,120,220,.22)}
.duel-rematch-button:disabled{cursor:not-allowed;filter:saturate(.45);opacity:.58;transform:none;box-shadow:none}
.duel-status-banner{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 17px;border-bottom:1px solid var(--line-soft);background:color-mix(in srgb,var(--duel-mint) 5%,var(--panel))}
.duel-status-indicator,.duel-player-online{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--dim)}
.duel-status-banner strong{font-size:13px;font-weight:850}
.duel-status-banner>span:last-child{margin-left:auto;color:var(--muted);font-size:12px;line-height:1.45;text-align:right}
.duel-status-banner.is-connected .duel-status-indicator,.duel-player-online.is-online{background:#50d9a8;box-shadow:0 0 0 4px rgba(80,217,168,.14)}
.duel-status-banner.is-playing .duel-status-indicator{background:var(--duel-coral);box-shadow:0 0 0 4px rgba(255,156,99,.15);animation:duel-pulse 1.5s ease-in-out infinite}
.duel-status-banner.is-finished .duel-status-indicator{background:var(--duel-mint)}
.duel-lobby{padding:17px}
.duel-player-pair{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);align-items:center;gap:10px}
.duel-player-chip{display:flex;min-width:0;align-items:center;gap:10px;padding:12px;border:1px solid var(--line-soft);border-radius:13px;background:var(--panel)}
.duel-player-chip.is-you{border-color:rgba(255,156,99,.3);background:linear-gradient(120deg,rgba(255,156,99,.09),var(--panel) 65%)}
.duel-player-chip:not(.is-you){border-color:rgba(80,217,188,.23);background:linear-gradient(120deg,rgba(80,217,188,.07),var(--panel) 65%)}
.duel-player-avatar{display:grid;flex:none;width:36px;height:36px;place-items:center;border-radius:11px;background:linear-gradient(140deg,#ffad59,#ed5d78);color:#fff;font-size:15px;font-weight:900}
.duel-player-avatar-opponent{background:linear-gradient(140deg,#31c7aa,#4a8ced)}
.duel-player-copy{display:grid;min-width:0;gap:2px}
.duel-player-copy strong{overflow:hidden;color:var(--text);font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.duel-player-copy small{color:var(--muted);font-size:11px;line-height:1.35}
.duel-player-online{margin-left:auto}
.duel-vs-badge{display:grid;width:40px;height:40px;place-items:center;border:1px solid rgba(255,201,101,.3);border-radius:50%;background:color-mix(in srgb,var(--yellow) 10%,var(--bg-soft));color:var(--yellow);font-size:11px;font-weight:900;letter-spacing:.04em}
.duel-ready-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px;padding:13px 15px;border:1px solid rgba(80,217,188,.22);border-radius:13px;background:linear-gradient(100deg,rgba(80,217,188,.08),var(--panel) 48%,rgba(255,156,99,.06))}
.duel-ready-row strong{color:var(--text);font-size:14px;font-weight:850}
.duel-ready-row p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.duel-ready-button{min-width:148px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(110deg,#168f84,#3278dc);color:#fff;box-shadow:0 7px 18px rgba(50,120,220,.17)}
.duel-ready-button:disabled{cursor:not-allowed;filter:saturate(.45);opacity:.55;transform:none;box-shadow:none}

.duel-match{padding:15px}
.duel-match-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;padding:0 1px}
.duel-match-live{display:flex;align-items:center;gap:9px;color:var(--text);font-size:13px}
.duel-live-dot{width:8px;height:8px;border-radius:50%;background:#ff7959;box-shadow:0 0 0 4px rgba(255,121,89,.14)}
.duel-mode-tools{display:flex;gap:5px;padding:4px;border:1px solid var(--line-soft);border-radius:11px;background:var(--bg-soft)}
.duel-tool-button{min-height:35px;padding:6px 11px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:12px;font-weight:800;cursor:pointer}
.duel-tool-button.is-selected{background:var(--panel-3);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.duel-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:13px}
.duel-board-card{min-width:0;padding:13px;border:1px solid var(--line-soft);border-radius:15px;background:linear-gradient(145deg,var(--panel),var(--bg-soft));overflow:hidden}
.duel-own-card{border-color:rgba(255,156,99,.28)}
.duel-board-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.duel-board-card-head h3{overflow:hidden;margin:0;color:var(--text);font-size:16px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}
.duel-board-progress{display:grid;justify-items:end;gap:1px;flex:none}
.duel-board-progress b{color:var(--duel-mint);font-size:18px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.2}
.duel-board-progress small{color:var(--dim);font-size:10px;font-weight:750}
.duel-board-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:10px}
.duel-board-stats span{display:grid;gap:2px;min-width:0;padding:7px 8px;border:1px solid var(--line-soft);border-radius:9px;background:var(--bg-soft)}
.duel-board-stats small{overflow:hidden;color:var(--muted);font-size:10px;font-weight:800;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;letter-spacing:.045em}
.duel-board-stats b{overflow:hidden;color:var(--text);font-size:13px;font-weight:850;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.duel-board-viewport{position:relative;width:max-content;max-width:100%;margin:0 auto;overflow:auto;overscroll-behavior:contain;border:1px solid #29425b;border-radius:8px;background:#25384d;scrollbar-color:#8da9c1 #25384d;scrollbar-width:thin}
.duel-board{display:grid;grid-template-columns:repeat(var(--duel-cols,9),var(--duel-cell-size,26px));grid-auto-rows:var(--duel-cell-size,26px);width:max-content;min-width:0;margin:0;justify-content:center;touch-action:pan-x pan-y;user-select:none}
.duel-cell{display:grid;width:var(--duel-cell-size,26px);height:var(--duel-cell-size,26px);place-items:center;padding:0;border:0;border-top:2px solid #c5d5e4;border-left:2px solid #b1c6d9;border-right:2px solid #30485f;border-bottom:2px solid #24394f;border-radius:1px;background:linear-gradient(145deg,#879fb5,#66819a);color:#fff;font:900 14px/1 ui-monospace,SFMono-Regular,Consolas,monospace;cursor:pointer;appearance:none}
.duel-cell:hover:not(.is-open){filter:brightness(1.13)}
.duel-cell:active:not(.is-open){border:1px solid #31485f;background:#56718b;box-shadow:inset 1px 1px 2px rgba(0,0,0,.27)}
.duel-cell.is-open{border:1px solid #798da0;background:linear-gradient(145deg,#dce5ed,#c3ced8);cursor:default}
.theme-light .duel-cell.is-open{background:linear-gradient(145deg,#edf3f9,#d6e0e9)}
.duel-cell.is-flagged{color:#ff4158;text-shadow:0 1px rgba(0,0,0,.25)}
.duel-cell.is-mine{background:#e85a5e;color:#fff}
.duel-cell.is-exploded{background:#bd2832;box-shadow:inset 0 0 0 2px #ffcc64}
.duel-cell.number-1{color:#1252bf}.duel-cell.number-2{color:#147d43}.duel-cell.number-3{color:#d62836}.duel-cell.number-4{color:#4e2da3}.duel-cell.number-5{color:#9a291e}.duel-cell.number-6{color:#087f8c}.duel-cell.number-7{color:#2b3543}.duel-cell.number-8{color:#7b8795}
.duel-opponent-viewport{min-height:180px}
.duel-opponent-board .duel-cell{pointer-events:none}
.duel-opponent-cover{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:18px;background:linear-gradient(145deg,rgba(12,24,40,.86),rgba(24,40,61,.91));color:#f4f7fc;text-align:center;font-size:13px;font-weight:700;line-height:1.5;transition:opacity .22s ease}
.theme-light .duel-opponent-cover{background:linear-gradient(145deg,rgba(37,58,83,.84),rgba(48,69,95,.9));color:#fff}
.duel-lock-icon{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(255,255,255,.24);border-radius:14px;background:rgba(255,255,255,.09);color:#ffb27a;font-size:22px}
.duel-opponent-cover[hidden]{display:none}
.duel-result{display:flex;align-items:center;gap:13px;margin-top:14px;padding:15px;border:1px solid rgba(255,201,101,.31);border-radius:13px;background:linear-gradient(110deg,rgba(255,201,101,.11),rgba(240,79,128,.07))}
.duel-result.is-win{border-color:rgba(80,217,168,.4);background:linear-gradient(110deg,rgba(80,217,168,.11),rgba(80,217,188,.04))}
.duel-result.is-loss{border-color:rgba(255,108,120,.36);background:rgba(255,108,120,.08)}
.duel-result-icon{display:grid;flex:none;width:42px;height:42px;place-items:center;border-radius:13px;background:rgba(255,201,101,.14);color:var(--yellow);font-size:22px}
.duel-result.is-win .duel-result-icon{background:rgba(80,217,168,.13);color:var(--green)}
.duel-result h3{margin:0;color:var(--text);font-size:17px;font-weight:900}
.duel-result p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.duel-result-copy{min-width:0;flex:1}
.duel-result .duel-rematch-status{margin-top:7px;color:color-mix(in srgb,var(--duel-mint) 78%,var(--text));font-size:12px;font-weight:750;line-height:1.45}
.duel-result .duel-rematch-status:empty{display:none}
.duel-result-actions{display:flex;flex-wrap:wrap;gap:7px;margin-left:auto}
.duel-result-actions .button{min-height:38px;padding:7px 11px;font-size:12px}

.duel-rules-card{padding:19px 21px;border-color:rgba(82,143,238,.24);background:radial-gradient(ellipse at 100% 0,rgba(82,143,238,.08),transparent 38%),linear-gradient(145deg,var(--panel),var(--panel-2))}
.theme-light .duel-rules-card{background:radial-gradient(ellipse at 100% 0,rgba(82,143,238,.075),transparent 38%),linear-gradient(145deg,var(--panel),var(--panel-2))}
.duel-rules-heading{display:flex;align-items:center;gap:10px;margin-bottom:13px}
.duel-rules-heading h2{margin:0;font-size:18px;font-weight:850;letter-spacing:-.02em}
.duel-rules-icon{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(82,143,238,.3);border-radius:11px;background:rgba(82,143,238,.11);color:#8bb9ff}
.duel-rules-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.duel-rules-list li{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:11px;border:1px solid var(--line-soft);border-radius:12px;background:color-mix(in srgb,var(--panel-2) 88%,var(--panel))}
.duel-rules-list li>span{display:grid;flex:none;min-width:29px;height:25px;place-items:center;border:1px solid rgba(255,156,99,.24);border-radius:8px;background:rgba(255,156,99,.09);color:#ffad77;font:850 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.duel-rules-list p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}

@keyframes duel-pulse{50%{box-shadow:0 0 0 7px rgba(255,156,99,.035)}}

@media(max-width:960px){
  .duel-board-grid{grid-template-columns:minmax(0,1fr)}
  .duel-rules-list{grid-template-columns:1fr}
}
@media(max-width:760px){
  .duel-setup-grid{grid-template-columns:1fr;gap:12px;padding:13px}
  .duel-setup-card{padding:18px}
  .duel-card-copy p{min-height:0;margin-bottom:14px}
  .duel-guide-prompt{padding:9px 8px;font-size:11px}
}
@media(max-width:680px){
  .duel-hero{padding-top:28px;padding-bottom:16px}
  .duel-hero h1{font-size:clamp(30px,8vw,37px);line-height:1.08}
  .duel-hero p{font-size:15px;line-height:1.6}
  .duel-shell,.duel-rules-card{border-radius:17px}
  .duel-value-strip{padding:11px 13px}
  .duel-value-strip span{font-size:12px;line-height:1.45}
  .duel-notice{margin:12px 12px 0;padding:11px 12px;font-size:13px}
  .duel-setup-grid{gap:10px;padding:11px}
  .duel-setup-card{padding:17px;border-radius:15px}
  .duel-card-icon{width:39px;height:39px;margin-bottom:11px}
  .duel-card-copy h2{font-size:19px}
  .duel-card-copy p{margin:6px 0 13px;font-size:13px}
  .duel-field{gap:6px;margin-bottom:11px;font-size:13px}
  .duel-field input,.duel-field select{min-height:47px;font-size:16px}
  .duel-primary-button,.duel-join-card .duel-secondary-button{min-height:48px;font-size:14px}
  .duel-form-hint{margin-top:9px;font-size:12px}
  .duel-room-panel{margin:0 10px 12px;border-radius:14px}
  .duel-room-head{align-items:stretch;flex-direction:column;gap:11px;padding:13px}
  .duel-room-head .button{width:100%}
  .duel-status-banner{align-items:flex-start;flex-wrap:wrap;padding:11px 12px}
  .duel-status-banner>span:last-child{width:calc(100% - 20px);margin-left:19px;text-align:left}
  .duel-lobby{padding:11px}
  .duel-player-pair{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:5px}
  .duel-player-chip{gap:6px;padding:9px 7px}
  .duel-player-avatar{width:29px;height:29px;border-radius:9px;font-size:13px}
  .duel-player-copy strong{font-size:12px}
  .duel-player-copy small{font-size:10px}
  .duel-vs-badge{width:29px;height:29px;font-size:9px}
  .duel-ready-row{align-items:stretch;flex-direction:column;gap:11px;padding:12px}
  .duel-ready-button{width:100%;min-height:47px}
  .duel-match{padding:10px}
  .duel-match-toolbar{align-items:stretch;flex-direction:column}
  .duel-mode-tools{width:100%}
  .duel-tool-button{flex:1;min-height:38px}
  .duel-board-card{padding:10px}
  .duel-board-card-head h3{font-size:15px}
  .duel-board-progress b{font-size:16px}
  .duel-board-stats{gap:5px}
  .duel-board-stats span{padding:6px}
  .duel-board-stats small{font-size:9px}
  .duel-board-stats b{font-size:12px}
  .duel-cell{font-size:10px;border-width:1px}
  .duel-opponent-viewport{min-height:145px}
  .duel-result{align-items:flex-start;flex-wrap:wrap;padding:12px}
  .duel-result-actions{width:100%;margin-left:0}
  .duel-result-actions .button{flex:1;min-height:42px}
  .duel-result-copy{width:100%;flex-basis:100%}
  .duel-rules-card{padding:15px 13px}
  .duel-rules-heading h2{font-size:17px}
  .duel-rules-list{gap:8px}
  .duel-rules-list li{padding:10px}
}
@media(max-width:380px){
  .duel-player-pair{grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr);gap:3px}
  .duel-player-chip{gap:5px;padding:8px 5px}
  .duel-player-avatar{width:26px;height:26px}
  .duel-vs-badge{width:25px;height:25px;font-size:8px}
  .duel-board-card{padding:8px}
}
@media(prefers-reduced-motion:reduce){
  .duel-setup-card,.duel-primary-button,.duel-secondary-button,.duel-copy-button,.duel-ready-button,.duel-rematch-button,.duel-opponent-cover{transition:none}
  .duel-status-banner.is-playing .duel-status-indicator{animation:none}
}
