/* OurMinds Games Zone */
[hidden]{display:none!important}
.gz-hero{border-radius:15px;padding:22px 26px;color:#fff;background:radial-gradient(520px 240px at 92% 0%,#22c08b44,transparent 60%),radial-gradient(420px 220px at 10% 120%,#ef43b744,transparent 60%),linear-gradient(105deg,#07152f,#1b2d63);box-shadow:0 7px 20px #122b5510;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.gz-hero h1{margin:0 0 4px;font-size:26px;letter-spacing:-.6px}
.gz-hero p{margin:0;color:#d5def7;max-width:520px}
.gz-join{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.gz-join label{font-size:12px;color:#c9d5f2;width:100%}
.gz-code-input{width:170px;padding:11px 14px;border-radius:11px;border:1px solid #526b9d;background:#172e58;color:#fff;font:inherit;font-size:20px;font-weight:800;letter-spacing:5px;text-transform:uppercase;text-align:center}
.gz-code-input::placeholder{color:#7f93c0;letter-spacing:3px}
.gz-btn{border:0;border-radius:10px;padding:10px 15px;background:linear-gradient(100deg,#1b76ff,#8057ff);color:#fff;font:inherit;font-weight:750;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;text-decoration:none;line-height:1.2}
.gz-btn:hover{filter:brightness(1.08)}
.gz-btn.secondary{background:var(--surface-2);color:var(--link)}
.gz-btn.ghost{background:transparent;color:var(--link);border:1px solid var(--border)}
.gz-btn.danger{background:var(--danger-soft);color:var(--danger)}
.gz-btn.small{padding:6px 10px;font-size:12px;border-radius:8px}
.gz-btn.big{padding:13px 22px;font-size:16px;border-radius:12px}
.gz-btn:disabled{opacity:.5;cursor:not-allowed;filter:none}
.gz-section{margin-top:14px;padding:16px 18px}
.gz-section h2{font-size:16px;margin:0 0 10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gz-muted{color:var(--muted);font-size:12px}
.gz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.gz-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface);display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}
.gz-card.live{border-color:#cfdcff;box-shadow:0 6px 18px #1769ff12}
.gz-card svg.gz-art{width:64px;height:64px}
.gz-card h3{margin:0;font-size:16px}
.gz-card p{margin:0;color:var(--text-muted);font-size:13px;flex:1}
.gz-tag{font-size:10px;font-weight:800;padding:3px 8px;border-radius:99px;background:var(--surface-2);color:var(--link);align-self:flex-start}
.gz-tag.soon{background:var(--surface-2);color:#6b4fd8}
.gz-tag.live{background:var(--success-soft);color:var(--success)}
.gz-list{display:flex;flex-direction:column;gap:7px}
.gz-item{display:flex;gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface);flex-wrap:wrap}
.gz-item.unread{border-color:#b9a6ff;background:#f7f4ff}
.gz-item .gz-grow{flex:1;min-width:150px}
.gz-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:2px;background:var(--surface-2);color:var(--link);border-radius:7px;padding:2px 7px}
.gz-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.gz-tab{border:1px solid var(--line);background:var(--surface);color:var(--text-muted);border-radius:99px;padding:7px 14px;font:inherit;font-weight:700;font-size:13px;cursor:pointer}
.gz-tab[aria-selected="true"]{background:linear-gradient(100deg,#1b76ff,#8057ff);border-color:transparent;color:#fff}
.gz-table{width:100%;border-collapse:collapse;font-size:13px}
.gz-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}
.gz-table td{padding:8px;border-bottom:1px solid #f0f3fa}
.gz-table td.num,.gz-table th.num{text-align:right}
.gz-rank{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-2);color:var(--link);font-weight:800;font-size:12px}
.gz-rank.r1{background:#ffe9a8;color:#8a5a00}.gz-rank.r2{background:#e7ecf5;color:#4b5875}.gz-rank.r3{background:#ffdcc7;color:#8f4313}
.gz-two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px}
.gz-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;flex-shrink:0;display:inline-grid;place-items:center;background:#e6eaff;color:#4238a5;font-weight:800;font-size:13px}
.gz-empty{padding:18px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}

@media(max-width:780px){.gz-two{grid-template-columns:1fr}.gz-hero{padding:18px}.gz-hero h1{font-size:22px}}

/* ----- room page ------------------------------------------------------ */
.gr-page .layout{grid-template-columns:195px minmax(0,1fr)!important}
@media(max-width:1250px){.gr-page .layout{grid-template-columns:175px minmax(0,1fr)!important}}
@media(max-width:780px){.gr-page .layout{display:block!important}}
.gr-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:15px;color:#fff;background:linear-gradient(105deg,#07152f,#1b2d63)}
.gr-top h1{font-size:19px;margin:0;flex:1;min-width:120px;display:flex;align-items:center;gap:8px}
.gr-codebox{display:flex;align-items:center;gap:6px;background:#ffffff14;border:1px solid #ffffff30;border-radius:11px;padding:5px 6px 5px 11px}
.gr-codebox span{font-size:11px;color:#c5d2ef}
.gr-codebox b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px;letter-spacing:3px}
.gr-top .gz-btn.secondary{background:#ffffff1c;color:#fff}
.gr-top .gz-btn.ghost{color:#fff;border-color:#ffffff45}
.gr-banner{margin-top:10px;padding:10px 14px;border-radius:11px;background:#fff7e6;color:#8a5a00;border:1px solid #ffe2a6;font-weight:650}
.gr-banner.bad{background:var(--danger-soft);color:#b4233f;border-color:#ffc9d3}
.gr-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;margin-top:12px;align-items:start}
.gr-main{padding:14px;min-height:300px}
.gr-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:84px}
.gr-side .panel{padding:12px}
.gr-side h3{margin:0 0 8px;font-size:13px;display:flex;justify-content:space-between;align-items:center}
.gr-players{display:flex;flex-direction:column;gap:6px}
.gr-player{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:10px;border:1px solid var(--line);font-size:13px}
.gr-player.turn{border-color:#8057ff;background:#f6f3ff;box-shadow:0 0 0 2px #8057ff22}
.gr-player .gz-grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gr-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 2px #ffffff90}
.gr-badge{font-size:10px;font-weight:800;padding:2px 7px;border-radius:99px;background:var(--surface-2);color:var(--link);white-space:nowrap}
.gr-badge.ok{background:var(--success-soft);color:var(--success)}
.gr-badge.warn{background:#fff3db;color:#8a5a00}
.gr-badge.off{background:#f2f4f8;color:#6a7491}
.gr-chat{display:flex;flex-direction:column;height:340px}
.gr-chat-feed{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:5px;padding:2px;font-size:13px}
.gr-chat-feed .msg b{color:var(--link);margin-right:4px}
.gr-chat-feed .msg.private{color:var(--success)}
.gr-chat-feed .msg.sys{color:var(--muted);font-style:italic}
.gr-chat form{display:flex;gap:6px;margin-top:8px}
.gr-chat input{flex:1;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:9px;font:inherit}
.gr-seats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:12px 0}
.gr-seat{border:1px solid var(--line);border-radius:13px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:var(--surface-2);min-height:140px;justify-content:center}
.gr-seat.empty{border-style:dashed;color:var(--muted);background:var(--surface)}
.gr-seat .gz-avatar{width:46px;height:46px;font-size:18px}
.gr-seat strong{overflow-wrap:anywhere}
.gr-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.gr-settings{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:10px 0;font-size:13px}
.gr-settings select,.gr-settings input{padding:7px 9px;border:1px solid var(--border);border-radius:8px;font:inherit}
.gr-hint{font-size:12px;color:var(--muted);margin-top:8px}
.gr-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:2000;background:#172344;color:#fff;padding:10px 16px;border-radius:11px;box-shadow:0 10px 30px #0004;font-weight:650;max-width:calc(100vw - 32px);text-align:center}
.gr-over{text-align:center;padding:16px}
.gr-over h2{margin:6px 0 12px;font-size:22px}
.gr-over ol{list-style:none;padding:0;margin:0 auto 14px;max-width:360px;display:flex;flex-direction:column;gap:6px}
.gr-over li{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;text-align:left}
.gr-screen{text-align:center;padding:40px 16px}
.gr-screen h2{margin:0 0 6px}
dialog.gr-dialog{border:0;border-radius:15px;padding:0;width:min(460px,calc(100vw - 24px));box-shadow:0 20px 60px #0b1a3a55}
dialog.gr-dialog::backdrop{background:#07152f88}
.gr-dialog header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.gr-dialog header h3{margin:0;font-size:16px}
.gr-dialog .gr-dialog-body{padding:14px 16px;max-height:65vh;overflow-y:auto}
.gr-dialog input[type=search],.gr-dialog select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:9px;font:inherit;margin-bottom:8px}
.gr-close{border:0;background:var(--surface-2);border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:18px;color:var(--text-muted)}
@media(max-width:980px){.gr-body{grid-template-columns:1fr}.gr-side{position:static}.gr-chat{height:280px}}
@media(max-width:780px){.gr-top{padding:10px}.gr-top h1{font-size:17px;width:100%}.gr-main{padding:10px}.gr-codebox b{font-size:17px}}

/* ----- Ludo ------------------------------------------------------------- */
.ludo-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}
.ludo-board{width:100%;max-width:min(640px,calc(100vh - 230px));min-width:260px;aspect-ratio:1;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.ludo-board svg{width:100%;height:100%;display:block;filter:drop-shadow(0 8px 20px #10285222)}
.ludo-piece{transition:transform .28s ease}
.ludo-piece.can{cursor:pointer}
.ludo-piece .ring{fill:none;stroke:#fff;stroke-width:3;opacity:0}
.ludo-piece.can .ring{opacity:1;animation:ludo-pulse 1s ease-in-out infinite}
@keyframes ludo-pulse{0%,100%{stroke-width:2.5;r:17}50%{stroke-width:4.5;r:19.5}}
.ludo-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;width:100%;max-width:640px}
.ludo-status{flex:1;min-width:180px;font-weight:700;font-size:15px}
.ludo-status small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.ludo-die{width:68px;height:68px;border-radius:16px;border:0;background:var(--surface);box-shadow:0 6px 16px #10285226,inset 0 -4px 0 #e2e8f5;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:10px;cursor:pointer;flex-shrink:0}
.ludo-die:disabled{cursor:default}
.ludo-die.mine{box-shadow:0 0 0 4px var(--turn,#8057ff),0 6px 16px #10285226,inset 0 -4px 0 #e2e8f5;animation:ludo-nudge 1.4s ease-in-out infinite}
.ludo-die.rolling{animation:ludo-roll .55s ease}
.ludo-die i{width:11px;height:11px;border-radius:50%;background:#172344;place-self:center;visibility:hidden}
.ludo-die i.on{visibility:visible}
@keyframes ludo-roll{0%{transform:rotate(0) scale(1)}30%{transform:rotate(200deg) scale(.85)}70%{transform:rotate(330deg) scale(1.08)}100%{transform:rotate(360deg) scale(1)}}
@keyframes ludo-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.ludo-timer{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden;width:100%;max-width:640px}
.ludo-timer span{display:block;height:100%;background:linear-gradient(90deg,#22c08b,#ffb020,#ff5d73);border-radius:99px;transform-origin:left;transition:transform .25s linear}
@media(prefers-reduced-motion:reduce){.ludo-piece,.ludo-die.rolling,.ludo-die.mine,.ludo-piece.can .ring{transition:none;animation:none}}
.gr-main h2{margin:0;font-size:19px}

/* ----- Scribble --------------------------------------------------------- */
.gr-settings label.wide{flex-basis:100%;display:flex;flex-direction:column;gap:4px}
.gr-settings textarea{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;resize:vertical;min-height:44px}
.sc-wrap{display:flex;flex-direction:column;gap:10px}
.sc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sc-round{font-size:12px;font-weight:800;color:#6b4fd8;background:var(--surface-2);border-radius:99px;padding:5px 10px;white-space:nowrap}
.sc-word{flex:1;min-width:160px;text-align:center;font-weight:750;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.sc-word.known b{color:var(--success);font-size:20px;letter-spacing:.5px}
.sc-word small{color:var(--muted);font-weight:600}
.sc-mask{display:inline-flex;gap:5px;flex-wrap:wrap;justify-content:center}
.sc-mask i{font-style:normal;width:17px;height:26px;border-bottom:3px solid #172344;display:grid;place-items:center;font-size:19px;font-weight:850;text-transform:uppercase;line-height:1}
.sc-mask i.hint{color:#8057ff}
.sc-mask i.gap{border:0;width:10px}
.sc-timer{font-weight:800;font-variant-numeric:tabular-nums;background:var(--surface-2);color:var(--link);border-radius:99px;padding:5px 11px;min-width:64px;text-align:center}
.sc-timer.low{background:var(--danger-soft);color:var(--danger);animation:ludo-nudge .9s ease-in-out infinite}
.sc-stage{position:relative;width:100%;max-width:min(900px,calc((100vh - 250px) * 4 / 3));min-width:260px;margin:0 auto;aspect-ratio:4/3}
.sc-canvas{width:100%;height:100%;display:block;border-radius:14px;border:1px solid var(--border);background:var(--surface);box-shadow:0 6px 18px #10285214;touch-action:manipulation}
.sc-canvas.sc-live{touch-action:none;border-color:#b9a6ff;box-shadow:0 0 0 3px #8057ff22,0 6px 18px #10285214}
.sc-overlay{position:absolute;inset:0;border-radius:14px;background:#ffffffe8;backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center}
.sc-overlay h3{margin:0;font-size:20px}
.sc-reveal-word{font-size:30px!important;color:#8057ff;text-transform:capitalize}
.sc-choices{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.sc-choices .gz-btn{text-transform:capitalize}
.sc-gains{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;font-weight:650}
.sc-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center;padding:8px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.sc-tools.off{opacity:.45;pointer-events:none}
.sc-palette{display:grid;grid-template-columns:repeat(8,26px);gap:5px}
.sc-swatch{width:26px;height:26px;border-radius:8px;border:2px solid #fff;box-shadow:0 0 0 1px #d8e0ef;cursor:pointer;padding:0}
.sc-swatch.on{box-shadow:0 0 0 3px #172344}
.sc-sizes,.sc-actions{display:flex;gap:5px}
.sc-size,.sc-tool{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);cursor:pointer;display:grid;place-items:center;font-size:18px;padding:0}
.sc-size span{display:block;border-radius:50%;background:#172344}
.sc-size.on,.sc-tool.on{border-color:#8057ff;background:var(--surface-2);box-shadow:0 0 0 2px #8057ff33}
.sc-guess{display:flex;gap:8px;max-width:900px;width:100%;margin:0 auto}
.sc-guess input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:16px}
@media(max-width:780px){.sc-palette{grid-template-columns:repeat(8,24px)}.sc-swatch{width:24px;height:24px}.sc-size,.sc-tool{width:34px;height:34px}.sc-word{order:3;flex-basis:100%}.sc-reveal-word{font-size:24px!important}}
.gr-kick{padding:4px 8px}
.gr-settings label.wide small{font-weight:500}

/* ----- Office Trivia ------------------------------------------------------ */
.tv-wrap,.tt-wrap,.ty-wrap{display:flex;flex-direction:column;gap:12px;max-width:820px;margin:0 auto;width:100%}
.tv-wrap .ludo-timer,.tt-wrap .ludo-timer{max-width:none}
.tv-cat{flex:1;text-align:center;font-size:12px;font-weight:800;color:var(--success);text-transform:uppercase;letter-spacing:.6px}
.tv-question{font-size:21px!important;line-height:1.35;text-align:center;margin:8px 0 4px!important;min-height:2.7em;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere}
.tv-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tv-opt{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;border:2px solid transparent;font:inherit;font-size:16px;font-weight:700;text-align:left;cursor:pointer;color:var(--text);background:#f4f7ff;min-height:64px;transition:transform .12s ease,box-shadow .12s ease}
.tv-opt:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 6px 16px #10285218}
.tv-opt:disabled{cursor:default}
.tv-opt.c0{background:#eaf1ff}.tv-opt.c1{background:var(--danger-soft)}.tv-opt.c2{background:#e8f8f1}.tv-opt.c3{background:#fff6e0}
.tv-letter{flex-shrink:0;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;font-weight:850;font-size:14px}
.tv-opt.c0 .tv-letter{background:#3d7bff}.tv-opt.c1 .tv-letter{background:#ff5d73}.tv-opt.c2 .tv-letter{background:#22c08b}.tv-opt.c3 .tv-letter{background:#ffb020}
.tv-text{flex:1;overflow-wrap:anywhere}
.tv-count{font-size:12px;font-weight:800;background:var(--surface);border-radius:99px;padding:2px 9px;color:var(--text-muted)}
.tv-opt.picked{border-color:#8057ff;box-shadow:0 0 0 3px #8057ff33}
.tv-opt.right{border-color:#22c08b;background:#dcf7ea;box-shadow:0 0 0 3px #22c08b33}
.tv-opt.wrong{border-color:#ff5d73;background:#ffe1e6}
.tv-opt.dim{opacity:.55}
.tv-status{text-align:center;margin:2px 0 0;min-height:1.4em;color:var(--text-muted);font-weight:600}
.tv-good{color:var(--success)}.tv-bad{color:var(--danger)}

/* ----- Two Truths and a Lie ----------------------------------------------- */
.tt-form{display:flex;flex-direction:column;gap:10px}
.tt-row{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.tt-row input:not([type]){flex:1;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:9px;font:inherit;font-size:15px}
.tt-num{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--link);font-weight:850;font-size:13px}
.tt-lie{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--danger);white-space:nowrap;cursor:pointer}
.tt-lie input{width:18px;height:18px;accent-color:#d02c4a}
.tt-vote{display:flex;flex-direction:column;gap:10px}
.tt-card{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px;border-radius:14px;border:2px solid var(--border);background:var(--surface);font:inherit;font-size:16px;font-weight:650;text-align:left;cursor:pointer;color:var(--text)}
.tt-card:not(:disabled):hover{border-color:#8057ff;box-shadow:0 6px 16px #10285214}
.tt-card:disabled{cursor:default}
.tt-text{flex:1;min-width:150px;overflow-wrap:anywhere}
.tt-tag{font-size:11px;font-weight:850;letter-spacing:.6px;padding:3px 9px;border-radius:99px;background:var(--success-soft);color:var(--success)}
.tt-card.lie,.tt-card.mine-lie{border-color:#ff5d73;background:#fff4f6}
.tt-card.lie .tt-tag,.tt-card.mine-lie .tt-tag{background:#ffe1e6;color:var(--danger)}
.tt-card.picked{box-shadow:0 0 0 3px #8057ff44;border-color:#8057ff}
.tt-voters{flex-basis:100%;color:var(--muted);font-weight:600;padding-left:38px}

/* ----- Typing Race -------------------------------------------------------- */
.ty-stats{font-size:14px!important;color:var(--text-muted)}
.ty-lanes{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.ty-lane{display:grid;grid-template-columns:minmax(70px,140px) 1fr 70px;gap:10px;align-items:center;font-size:13px}
.ty-lane.me .ty-name{font-weight:800;color:var(--link)}
.ty-lane.flagged{opacity:.55}
.ty-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ty-track{position:relative;height:12px;border-radius:99px;background:var(--surface-2)}
.ty-fill{position:absolute;left:0;top:0;bottom:0;border-radius:99px;transition:width .25s linear}
.ty-car{position:absolute;top:-6px;font-style:normal;font-size:16px;line-height:1;transition:left .25s linear}
.ty-wpm{text-align:right;font-weight:750;font-variant-numeric:tabular-nums;color:var(--text-muted)}
.ty-stage{position:relative}
.ty-passage{margin:0;padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);font-size:19px;line-height:1.7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#9aa5c0;user-select:none;-webkit-user-select:none;overflow-wrap:anywhere}
.ty-done{color:var(--success)}
.ty-bad{background:#ffd0d8;color:#b4233f;border-radius:3px}
.ty-cur{color:var(--text);border-bottom:3px solid #8057ff;background:#f1edff}
.ty-rest{color:var(--text-muted)}
.ty-count{position:absolute;inset:0;display:grid;place-items:center;border-radius:14px;background:#ffffffd9;font-size:64px;font-weight:900;color:#8057ff}
.ty-input{padding:13px 14px;border:2px solid #b9a6ff;border-radius:12px;font:inherit;font-size:18px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ty-input:focus{outline:none;box-shadow:0 0 0 3px #8057ff33}
.ty-input.bad{border-color:#ff5d73;background:#fff4f6}
.ty-input:disabled{background:var(--surface-2);border-color:var(--border)}
@media(max-width:780px){.tv-options{grid-template-columns:1fr}.tv-question{font-size:18px!important}.tv-opt{min-height:52px;padding:11px}.ty-passage{font-size:16px;padding:12px}.ty-lane{grid-template-columns:80px 1fr 56px;gap:6px}.tt-row{flex-wrap:wrap}.tt-row input:not([type]){flex-basis:calc(100% - 40px)}.tt-lie{margin-left:36px}}
@media(prefers-reduced-motion:reduce){.tv-opt,.ty-fill,.ty-car{transition:none}}

/* ----- Jackaroo ----------------------------------------------------------- */
.jk-wrap{display:flex;flex-direction:column;gap:10px;align-items:center}
.jk-wrap .sc-head,.jk-wrap .ludo-timer{width:100%;max-width:680px}
.jk-turn{font-size:15px!important}
.jk-board{width:100%;max-width:min(680px,calc(100vh - 260px));min-width:260px;aspect-ratio:1;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.jk-board svg{width:100%;height:100%;display:block;filter:drop-shadow(0 8px 20px #10285222)}
.jk-marble{transition:transform .35s ease;outline:none}
.jk-marble .ring{fill:none;stroke:#8057ff;stroke-width:0}
.jk-marble.can{cursor:pointer}
.jk-marble.can .ring{stroke-width:5;animation:jk-pulse 1s ease-in-out infinite}
.jk-marble.focus .ring{stroke:#172344;stroke-width:6;animation:none}
.jk-marble.moved:not(.can) .ring{stroke:#ffd023;stroke-width:4}
.jk-marble:focus-visible .ring{stroke:#172344;stroke-width:6}
@keyframes jk-pulse{0%,100%{r:19}50%{r:24}}
.jk-num{fill:#fff;font-size:15px;font-weight:850;pointer-events:none}
.jk-seatname{font-size:30px;font-weight:850}
.jk-pile{font-size:46px;font-weight:900;fill:#172344}
.jk-pile.red{fill:#d02c4a}
.jk-centre{font-size:22px;font-weight:750;fill:#6b5d43}
.jk-prompt{margin:0;font-weight:700;text-align:center;min-height:1.4em}
.jk-hand{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.jk-card{width:58px;height:82px;border-radius:10px;border:1px solid #d8cdb6;background:var(--surface);box-shadow:0 4px 10px #10285214;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;color:var(--text);cursor:pointer;transition:transform .12s ease}
.jk-card b{font-size:22px;line-height:1}
.jk-card span{font-size:20px;line-height:1}
.jk-card.red{color:var(--danger)}
.jk-card:not(:disabled):hover{transform:translateY(-4px)}
.jk-card.on{transform:translateY(-8px);border-color:#8057ff;box-shadow:0 0 0 3px #8057ff55,0 8px 16px #10285222}
.jk-card:disabled{opacity:.5;cursor:default}
.jk-options{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:680px}
.jk-log{list-style:none;margin:0;padding:0;width:100%;max-width:680px;display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--text-muted)}
.jk-log li{border-left:4px solid var(--border);padding:3px 9px;background:var(--surface-2);border-radius:0 8px 8px 0}
@media(max-width:780px){.jk-card{width:48px;height:68px}.jk-card b{font-size:18px}.jk-card span{font-size:16px}}
@media(prefers-reduced-motion:reduce){.jk-marble,.jk-card{transition:none}.jk-marble.can .ring{animation:none}}
