/* Regular games share Vienna's ink, warm brass and book typography. */
#arcade-screen { padding:0;display:block;overflow:auto;background:radial-gradient(ellipse at 25% 0%,#253e4a,#101a2a 57%,#0c1320);color:#eee8d9;backdrop-filter:none;z-index:110;font-family:"Avenir Next","Segoe UI",sans-serif; }
#arcade-screen.hidden { display:none; }
#arcade-screen * { box-sizing:border-box; }
#arcade-screen button,#arcade-screen input,#arcade-screen select { font:inherit; }
#arcade-screen button { border:1px solid #a8b7ca40;border-radius:9px;background:#ffffff08;color:#eee8d9;padding:10px 15px;cursor:pointer;min-height:43px;touch-action:manipulation; }
#arcade-screen button:hover:not(:disabled) { background:#ffffff16;border-color:#dcca9a; }
#arcade-screen button:disabled { opacity:.35;cursor:default; }
#arcade-screen :focus-visible { outline:3px solid #f0d494;outline-offset:3px; }
#arcade-screen .ar-primary { background:#e8d3a6;border-color:#e8d3a6;color:#24303a;font-weight:700; }
#arcade-screen .ar-primary:hover:not(:disabled) { background:#f5e2b7; }
.ar-shell { width:min(1240px,100%);margin:auto;padding:24px 34px 12px; }
.ar-header { display:flex;align-items:center;gap:24px;padding-bottom:23px;border-bottom:1px solid #c8b88d26;margin-bottom:24px; }
.ar-header h1 { font:500 clamp(24px,2.5vw,34px)/1.2 "EB Garamond",Georgia,serif;letter-spacing:.1px;margin:5px 0 0; }
.ar-kicker { color:#c9b68f;letter-spacing:1.8px;font-size:9px;font-weight:700;line-height:1.6; }
.ar-toolbar { display:flex;gap:8px;align-items:center;margin-left:auto;flex-shrink:0; }
.ar-toolbar [data-host=help] { border-radius:50%;width:43px;padding:0;font-family:Georgia,serif!important;font-size:20px!important; }
.ar-volume .tv-pop { z-index:20;min-width:255px;background:#172538;color:#e9e2d1; }
.ar-volume .tv-row input { accent-color:#e8d3a6; }
.ar-layout { display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;max-width:955px;margin:auto;align-items:start; }
.ar-playfield { position:relative;overflow:hidden;border:1px solid #a1b7c435;border-radius:15px;background:#101b2c;box-shadow:0 20px 60px #0003; }
.ar-playfield canvas { display:block;width:100%;touch-action:none; }
[data-game=bubbles] .ar-playfield { max-width:470px;justify-self:center;width:100%; }
.ar-cover { position:absolute;inset:0;display:grid;place-items:center;background:#101a2a83;backdrop-filter:blur(3px);padding:18px; }
#arcade-screen .hidden { display:none; }
.ar-result { text-align:center;border:1px solid #dcc59360;background:linear-gradient(145deg,#243447f5,#132031fa);border-radius:15px;padding:28px 22px;box-shadow:0 15px 40px #0005;max-width:390px;width:100%; }
.ar-result>span { display:block;font-size:35px;color:#e8d3a6;margin-bottom:10px; }
.ar-result h2,.ar-result h3 { font:500 29px/1.1 "EB Garamond",Georgia,serif;margin:4px 0 12px; }
.ar-result p { color:#bfcbda;font-size:13px;line-height:1.6;margin:12px 0 20px; }
.ar-result button { margin:4px; }
.ar-aside { padding:12px 0; }
.ar-aside h2 { font:500 35px/1.1 "EB Garamond",Georgia,serif;margin:12px 0 10px;letter-spacing:-.4px; }
.ar-aside>p { font-size:13px;color:#aebfce;line-height:1.6;margin-bottom:22px; }
.ar-stats { display:flex;gap:32px;padding:17px 0;border-block:1px solid #c8b88d26;margin:24px 0; }
.ar-stats small { display:block;color:#adbdce;font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px; }
.ar-stats b { font:500 29px/1 "EB Garamond",Georgia,serif;color:#e7d7b5; }
.ar-select { display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#c1cbd7;margin-bottom:12px; }
.ar-select select { border:1px solid #ffffff30;border-radius:7px;background:#17283b;color:#f0e8d6;padding:8px;min-width:120px; }
.ar-aside>.ar-primary { width:100%; }
.ar-touch { display:flex;gap:8px;margin:10px 0; }
.ar-touch button { flex:1;user-select:none; }
.ar-status { color:#b5cecf;font-size:12px;line-height:1.6;margin:15px 0;min-height:38px; }
.ar-guide,.ar-poker-log { border-top:1px solid #c8b88d26;padding-top:16px;margin-top:19px;font-size:12px;line-height:1.7;color:#bdc9d8; }
.ar-guide summary,.ar-poker-log summary { cursor:pointer;color:#e7d7b5;font-size:13px;font-weight:600; }
.ar-guide p { margin:12px 0; }
.ar-guide kbd { border:1px solid #ffffff25;border-radius:4px;padding:1px 4px;font:11px inherit; }
.ar-footer { display:flex;justify-content:space-between;border-top:1px solid #c8b88d20;margin-top:23px;padding:14px 0;color:#9dafa9;font:14px Georgia,serif; }
.ar-footer span { color:#91a2b2;font:11px "Avenir Next",sans-serif; }
.ar-pause-sheet { position:fixed;inset:0;z-index:30;background:#081320bd;backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px; }
.ar-layout-saber { max-width:none;grid-template-columns:minmax(0,1fr) 260px;gap:16px 25px; }
.ar-layout-saber .ar-playfield canvas { max-height:none;min-height:0; }
.ar-layout-saber .ar-aside { grid-column:2;grid-row:1 / span 2; }
.ar-saber-touch { grid-column:1;grid-row:2;margin:0; }
.ar-poker-layout { display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:30px; }
.ar-poker-meta { display:flex;justify-content:space-between;font-size:11px;color:#c8d3cf;margin:7px 8px 17px;gap:8px; }
.ar-poker-table { position:relative;height:535px;border:9px solid #4b3b30;outline:1px solid #b6976340;border-radius:110px;background:radial-gradient(ellipse,#26564d,#143d36);box-shadow:inset 0 0 0 2px #8b735140,inset 0 0 75px #081b1966,0 20px 40px #0003; }
.ar-seat { position:absolute;text-align:center;min-width:110px;padding:8px 10px;border:1px solid transparent;border-radius:13px;transition:background .2s; }
.ar-seat-1 { top:23px;left:5%; }.ar-seat-2 { top:5px;left:50%;transform:translateX(-50%); }.ar-seat-3 { top:23px;right:5%; }.ar-seat-0 { bottom:13px;left:50%;transform:translateX(-50%); }
.ar-seat-name { font-size:12px;color:#dfebe2;margin-bottom:8px;height:20px;white-space:nowrap; }
.ar-seat small { display:block;max-width:140px;font-size:10px;color:#b7c9c0;margin:5px auto 0;min-height:13px; }
.ar-turn { background:#d9c79513;border-color:#ddc997;box-shadow:0 0 28px #ecce8724; }
.ar-folded { opacity:.48; }.ar-stack { font-size:13px;color:#f0dcb0;display:block;margin-top:8px; }
.ar-dealer { display:inline-grid;place-items:center;border-radius:50%;width:19px;height:19px;background:#eee5cc;color:#304239;font-size:11px;margin-left:3px; }
.ar-cards { display:flex;gap:6px;justify-content:center; }
.ar-card { position:relative;display:block;width:51px;height:72px;background:linear-gradient(135deg,#fff9e8,#e4dfd2);color:#233146;border-radius:6px;box-shadow:0 3px 5px #0003;text-align:left;flex-shrink:0; }
.ar-card b { position:absolute;top:5px;left:5px;font-size:14px;letter-spacing:-.7px; }.ar-card i { position:absolute;right:9px;bottom:5px;font:29px Georgia,serif; }.ar-card.red { color:#ac3e43; }
.ar-card-back { display:grid;place-items:center;background:repeating-linear-gradient(45deg,#233d60 0 4px,#2a476c 4px 5px);border:3px solid #e8dcc1;outline:1px solid #173830;color:#e2cfa3;font-size:23px; }
.ar-card-empty { background:#09281f3d;border:1px solid #d2dfc633;box-shadow:none; }
.ar-community { position:absolute;top:204px;left:50%;transform:translateX(-50%);width:90%;text-align:center; }
.ar-pot { color:#b4cbbd;font-size:10px;letter-spacing:2px;margin-bottom:13px; }.ar-pot b { color:#f0dcb0;font:25px Georgia,serif;letter-spacing:0;margin-left:7px; }
.ar-poker-message { color:#e0e6cf;font-size:11px;line-height:1.5;max-width:460px;margin:12px auto 0;min-height:33px; }
.ar-your-hand { font:14px Georgia,serif;color:#f0dcb0;margin-top:6px; }
.ar-poker-actions { display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:20px 0 12px; }
#arcade-screen .ar-poker-actions button { padding:10px 12px; }
.ar-raise { display:flex;align-items:center;gap:7px; }.ar-raise label { font-size:10px;color:#aebfce; }
.ar-raise input { display:block;width:86px;padding:5px 6px;border:1px solid #ffffff30;background:#101d30;color:#e8dfcf;border-radius:5px; }
.ar-poker-next { text-align:center;min-height:44px; }
.ar-hand-ranks { padding-left:20px;columns:2;column-gap:15px;font-size:11px;margin:15px 0; }.ar-hand-ranks li { break-inside:avoid;margin-bottom:4px; }
.ar-poker-log ol { padding-left:18px;max-height:210px;overflow:auto;font-size:11px; }
/* The hub preview art stays code-native, like the existing vignettes. */
.tdm-arcade-preview { height:160px;display:flex;gap:9px;align-items:center;justify-content:center;margin:auto 0;font-size:42px;color:#6b3c30; }
.tdm-arcade-preview[data-game=bubbles] span { width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 25%,#fff9e3,#d78284);box-shadow:0 4px 8px #482b3129;font-size:20px; }
.tdm-arcade-preview[data-game=bubbles] span:nth-child(2n) { background:radial-gradient(circle at 30% 25%,#fff9e3,#739aad);transform:translateY(22px); }
.tdm-arcade-preview[data-game=holdem] span { font:35px Georgia,serif;background:#fff5d9;border:1px solid #9267444f;padding:13px 10px;border-radius:5px;transform:rotate(-8deg);box-shadow:0 4px 8px #482b3129; }
.tdm-arcade-preview[data-game=holdem] span+span { transform:rotate(8deg);color:#a54a46; }
.tdm-arcade-preview[data-game=saber] span { padding:12px;background:#879d9755;border:2px solid #57756e;border-radius:6px; }.tdm-arcade-preview[data-game=saber] span:nth-child(2) { background:none;border:0;font-size:54px; }
.tdm-arcade-detail { color:#73523c;font-size:12px;line-height:1.6;margin:12px 0; }
@media (max-width:1000px) {
  .ar-shell { padding:20px; }.ar-header { gap:14px; }.ar-header>.ar-toolbar { gap:5px; }.ar-header .ar-kicker { letter-spacing:1px;font-size:8px; }
  .ar-poker-layout { grid-template-columns:minmax(0,1fr) 220px;gap:20px; }.ar-seat-1 { left:1%; }.ar-seat-3 { right:1%; }.ar-seat { padding:7px 4px;min-width:96px; }.ar-card { width:44px;height:65px; }
}
@media (max-width:760px) {
  .ar-shell { padding:15px; }.ar-header { flex-wrap:wrap;margin-bottom:16px;padding-bottom:15px;gap:13px; }.ar-header>button { order:0; }.ar-toolbar { order:1; }.ar-header>div:not(.ar-toolbar) { order:2;width:100%; }.ar-header h1 { font-size:30px; }.ar-header .ar-kicker { font-size:8px;letter-spacing:1.4px; }
  .ar-layout,.ar-layout-saber,.ar-poker-layout { grid-template-columns:1fr;gap:12px; }.ar-aside { padding:10px 0; }.ar-aside h2 { font-size:30px; }.ar-aside h2 br { display:none; }
  .ar-aside>.ar-kicker,.ar-aside>h2,.ar-aside>p:not(.ar-chip-note) { display:none; }.ar-stats { margin:4px 0 14px;padding:12px 0;justify-content:space-between; }.ar-stats b { font-size:26px; }
  .ar-playfield canvas { max-height:none;min-height:0; }.ar-layout-saber .ar-aside { grid-column:1;grid-row:3; }.ar-saber-touch { grid-row:2; }.ar-layout-saber .ar-playfield { grid-row:1; }
  .ar-status { min-height:0;margin:12px 0; }.ar-guide { margin-top:10px; }.ar-footer { font-size:12px; }.ar-footer span { display:none; }
  .ar-poker-table { height:510px;border-width:6px;border-radius:55px; }.ar-poker-meta { font-size:10px;margin:0 0 12px; }.ar-seat { min-width:84px; }.ar-seat-1 { left:1%;top:29px; }.ar-seat-3 { right:1%;top:29px; }.ar-seat-2 { top:5px; }
  .ar-card { width:39px;height:57px; }.ar-cards { gap:4px; }.ar-card b { font-size:12px;left:4px; }.ar-card i { font-size:25px;right:6px; }.ar-seat small { max-width:90px; }.ar-community { top:210px;width:96%; }.ar-poker-message { margin-inline:9px; }.ar-seat-0 { bottom:14px; }
  .ar-poker-actions { gap:6px;margin:16px 0 8px; }.ar-poker-actions .ar-raise { order:2;width:100%;justify-content:center; }.ar-raise label { display:flex;align-items:center;gap:9px; }.ar-hand-ranks { columns:2; }
}
@media (prefers-reduced-motion:reduce) { #arcade-screen * { scroll-behavior:auto;transition:none; } }
/* Keep the selected game's Play button visible while the longer library scrolls. */
@media (min-width:761px) {
  .tdm-lib { height:min(640px,calc(100dvh - 285px));min-height:350px; }
  .tdm-rail { overflow-y:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-color:#806746 transparent;scrollbar-width:thin; }
  .tdm-pane { overflow-y:auto; }
}
@media (max-width:760px) {
  .tdm-rail { max-height:200px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#806746 transparent;scrollbar-width:thin; }
  .tdm-panes { flex:none; }
  .tdm-arcade-preview { height:115px;margin:12px 0; }
  #arcade-screen .ar-header button { font-size:12px;padding:9px 10px; }
  #arcade-screen .ar-toolbar .tv-btn { width:43px;padding:0; }
}
.ar-poker-welcome { position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);z-index:1;width:90%;text-align:center; }
.ar-awaiting .ar-community { visibility:hidden; }
.ar-poker-message { text-align:center;min-height:18px;margin:15px auto 0; }
