/* GLIDE · Arcade Atelier. One visual system, one simple room picker. */
:root {
  --bg:#17182b;--surface:#20223a;--surface-2:#2b2e4b;--ink:#f7f3e8;--muted:#b5b9d0;--line:#3b3f5c;
  --board:#121425;--tile:#252840;--tile-2:#2a2e4b;--wall:#5f79ef;--wall-edge:#8ea5ff;
  --accent:#62e9c5;--accent-rgb:98,233,197;--accent-2:#b29aff;--accent2-rgb:178,154,255;
  --warm:#ffce58;--warm-rgb:255,206,88;--danger:#ff729d;
  --ui-accent:#83edd1;--ui-lilac:#c2afff;--ui-peach:#ffbd87;--ui-pink:#ff9dbd;
  --action:#ffce58;--action-ink:#33281a;--action-edge:#d29e37;--shadow:rgba(4,7,22,.26);
}
body[data-theme="prism"] {
  --bg:#241a35;--surface:#312542;--surface-2:#403151;--board:#1b132a;--tile:#3a2d4d;--tile-2:#423457;
  --line:#584567;--ink:#fff5ee;--muted:#d3bbdd;--ui-accent:#84ebd7;
}
body[data-theme="moon"] {
  color-scheme:light;--bg:#f4f0e7;--surface:#fffdf7;--surface-2:#e9e3d8;--board:#dad5ca;
  --tile:#f8f5ed;--tile-2:#fdfaf3;--line:#cfc7b9;--ink:#2a2d42;--muted:#5c6074;
  --ui-accent:#087263;--ui-lilac:#6d4aa0;--ui-peach:#8a4d18;--ui-pink:#a03462;--shadow:rgba(43,37,27,.11);
}
html,body,.app { background:var(--bg); }
body[data-theme] { --warm:#ffce58;--warm-rgb:255,206,88;--danger:#ff729d; }
body { -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility; }
body[data-theme] .app[data-chapter] { --accent:#62e9c5;--accent-rgb:98,233,197;--accent-2:#b29aff;--accent2-rgb:178,154,255; }
.ambient-canvas { opacity:.055; }
.world-art { display:none; }
button:focus-visible,.board:focus-visible,#assist-copy:focus-visible { outline:3px solid var(--ui-accent);outline-offset:4px; }
button { -webkit-tap-highlight-color:transparent; }
.ui-icon { stroke-linecap:round;stroke-linejoin:round; }

/* Wordmark, readable numbers, and a clearly named room picker. */
.topbar { gap:10px;padding-left:20px;padding-right:20px; }
.brand { gap:0; }
.brand-orb { display:none; }
.brand b { display:block;color:var(--ink);font:800 1.5rem/1 var(--display);letter-spacing:-.065em;text-transform:lowercase;transform:skewX(-7deg); }
.score-hud { min-width:36px;margin-right:2px;gap:3px; }
.score-hud small,.room-pill small { font:500 .62rem/1 var(--ui);letter-spacing:0;color:var(--muted); }
.score-hud b { color:var(--ink);font:650 1.08rem/1 var(--display);letter-spacing:-.02em; }
.room-pill { height:44px;flex:none;flex-direction:column;justify-content:center;gap:3px;min-width:41px;padding:0 5px;border:0;border-radius:0;background:none;box-shadow:none; }
.room-pill b { font:650 1.08rem/1 var(--display); }
.round-button { width:44px;height:44px;border:0;border-radius:14px;background:var(--surface-2);color:var(--ink);box-shadow:none; }
.rooms-button { display:flex;justify-content:center;gap:7px;width:auto;min-width:84px;padding:0 12px;background:var(--ink);color:var(--bg); }
.rooms-button b { font:600 .82rem var(--display);letter-spacing:0; }
.round-button .ui-icon { width:21px;height:21px; }
.sound[data-level="1"],.sound[data-level="2"] { color:var(--ui-accent); }
.chapter-line { height:26px;gap:7px;font:500 .72rem var(--ui);letter-spacing:0;color:var(--muted); }
.chapter-sigil { width:23px;height:23px;background:none;border:0;box-shadow:none;border-radius:0;color:var(--ui-lilac); }
.chapter-sigil .chapter-icon { width:20px;height:20px; }
.mode-label { font:600 .64rem var(--ui);letter-spacing:0;color:var(--ui-accent); }
.heading { margin-top:11px; }
.heading h1,.app[data-difficulty="hard"] .heading h1 { font:650 clamp(1.55rem,6.4vw,2.12rem)/1.09 var(--display);letter-spacing:-.045em; }
.heading p { font:400 .81rem/1.45 var(--ui);color:var(--muted);letter-spacing:0;margin-top:8px; }

/* Inlaid paths and original sculpted blue blocks. */
.board { border:0;border-radius:24px;background:var(--board);box-shadow:0 7px 0 var(--shadow); }
.board.aligned { box-shadow:0 7px 0 var(--shadow),0 0 0 2px rgba(var(--warm-rgb),.55); }
.board.win { box-shadow:0 7px 0 var(--shadow),0 0 0 2px var(--warm); }
.cell { border-radius:clamp(6px,calc(var(--board-size) / var(--n) * .19),13px);background:var(--tile);border:0;box-shadow:inset 0 1px rgba(255,255,255,.035); }
.cell.wall { border-radius:0;background:transparent url("assets/block-v27.webp") center/112% 112% no-repeat;box-shadow:none; }
.cell.wall::before,.cell.wall::after,.cell.item.collect::before,.cell.item.paint::before { content:none; }
.cell.item::after { width:65%;height:65%;border:1px solid rgba(var(--warm-rgb),.22);border-radius:10px; }
.cell.item.paint::after { border-color:rgba(255,114,157,.25);border-radius:50%; }
.piece-symbol { width:47%;height:47%; }
.cell.item.paint .piece-symbol { width:48%;height:48%;transform:translate(-50%,-50%); }
.cell.collected .piece-symbol,.cell.collected.paint .piece-symbol { opacity:.1;transform:translate(-50%,-50%) scale(.68); }
.cell.item.sequence::before { width:54%;height:54%;background:#ffce58;border-radius:10px;box-shadow:0 2px 0 #b58931; }
.cell.item.sequence::after { width:54%;height:54%;border:0;color:#33281a;font:650 clamp(.75rem,3vw,1rem) var(--display); }
.cell.item.sequence.listening { background:var(--tile);box-shadow:inset 0 0 0 2px rgba(var(--warm-rgb),.6); }
.cell.portal::before { width:64%;height:64%;border-radius:28%;border:4px solid #b29aff;background:none;box-shadow:none;transform:translate(-50%,-50%) rotate(45deg); }
.cell.portal::after { width:34%;height:34%;border:0;border-radius:18%;background:#b29aff;opacity:.35;animation:none;transform:translate(-50%,-50%) rotate(45deg); }
.cell.exit::before { width:63%;height:63%;border:3px solid var(--muted);border-radius:30%;background:none;box-shadow:none; }
.cell.exit::after { width:27%;height:27%;border:0;border-radius:7px;background:var(--muted);opacity:.3; }
.cell.exit.ready::before { border-color:var(--warm);background:rgba(var(--warm-rgb),.13);box-shadow:none; }
.cell.exit.ready::after { width:29%;height:29%;background:var(--warm);opacity:1;clip-path:none;border-radius:6px; }
.turn-marker::before { inset:13%;border-radius:10px;background:#ffce58;border:0;box-shadow:0 2px 0 #bd8d31; }
.turn-marker span { width:49%;height:49%;color:#33281a; }
.turn-marker svg { stroke-width:0; }
.cell.arrow { box-shadow:inset 0 0 0 1px rgba(var(--warm-rgb),.25); }
.player::before { width:64%;height:64%;background:transparent url("assets/nova-v27.webp") center/contain no-repeat;border-radius:0;box-shadow:none; }
.player::after { inset:17%;border:0;border-radius:50%;box-shadow:0 3px 4px rgba(0,0,0,.14);z-index:-1; }
.player-ring { display:none; }
.app[data-skin="pearl"] .player::before { background:transparent url("assets/nova-v27.webp") center/contain no-repeat;filter:hue-rotate(225deg) saturate(.8);box-shadow:none; }
.app[data-skin="prism"] .player::before { background:transparent url("assets/nova-v27.webp") center/contain no-repeat;filter:hue-rotate(105deg);box-shadow:none; }
.hint-path { stroke-width:2.7; }
.hint-path-glow { opacity:.25; }
.cell.suggested-stop { box-shadow:inset 0 0 0 2px var(--accent); }
.trail-dot::before { box-shadow:none; }
.gesture { font:500 .6rem var(--ui);letter-spacing:.02em;background:var(--surface-2);padding:8px 12px;border-radius:10px; }

/* Collected pieces click into visible sockets without another container. */
.objective-row { height:44px;margin-top:5px;margin-bottom:9px; }
.objective { gap:8px;padding:3px 0;background:none;border:0;border-radius:0; }
.objective i { width:29px;height:29px;border-radius:10px;background:var(--surface-2);border:0;box-shadow:inset 0 0 0 1px var(--line); }
.objective i::before { content:none; }
.objective i b,.objective[data-mode="collect"] i b,.objective[data-mode="paint"] i b { width:22px;height:22px;background:none;clip-path:none;transform:none;display:grid;place-items:center;font:650 .87rem var(--display); }
.objective .ui-icon { width:22px;height:22px;opacity:.2; }
.objective i.done { background:rgba(var(--warm-rgb),.13);box-shadow:inset 0 0 0 1px rgba(var(--warm-rgb),.55);border:0; }
.objective[data-mode="paint"] i.done { background:rgba(255,114,157,.13);box-shadow:inset 0 0 0 1px rgba(255,114,157,.55); }
.objective i.done .ui-icon,.objective i.next .ui-icon { opacity:1; }
.objective[data-mode="sequence"] i { color:var(--muted); }
.objective[data-mode="sequence"] i.done { color:var(--warm); }
.objective[data-mode="sequence"] i.next { background:#ffce58;color:#33281a;box-shadow:0 2px 0 #b58931; }
.move-data small { font:500 .65rem var(--ui);letter-spacing:0;text-transform:lowercase; }
.move-data b { font:650 1rem var(--display); }
.move-data em { font:500 .86rem var(--display); }
.room-status { font-size:.73rem; }
.flow-row { margin-top:8px;gap:10px; }
.flow-title { min-width:67px; }
.flow-title span { font:500 .62rem var(--ui);letter-spacing:0;text-transform:capitalize; }
.flow-title b { font:650 .8rem var(--display);color:var(--ui-accent); }
.flow-meter { height:5px;gap:5px; }
.flow-meter i { background:var(--surface-2);border-radius:3px;box-shadow:none; }
.flow-meter i.on { background:#62e9c5;box-shadow:none; }
.flow-meter i.on:nth-child(3),.flow-meter i.on:nth-child(4) { background:#b29aff; }
.flow-meter i.on:nth-child(5) { background:#ffce58; }

/* Bold optical-size icons. No boxed icon inside a boxed button. */
.controls { grid-template-columns:1fr 1fr 1.12fr;gap:8px; }
.controls button { height:54px;border-radius:15px;border:0;background:var(--surface-2);box-shadow:0 3px 0 var(--shadow);gap:7px;padding:0 10px;transition:transform .14s ease,background .14s ease; }
.controls b { font:600 .87rem var(--display);letter-spacing:0; }
.controls .control-icon { width:25px;height:25px;border:0;border-radius:0;background:none;box-shadow:none;color:var(--ink); }
.control-icon .ui-icon { width:23px;height:23px; }
.controls .hint { background:#ffce58;color:#33281a;border:0; }
.controls .hint .control-icon { background:none;border:0;color:#33281a; }
.controls button:disabled { opacity:.35;box-shadow:none; }
.controls button:active:not(:disabled),.primary-button:active { transform:translateY(2px) scale(.985);box-shadow:0 1px 0 var(--shadow); }
.controls button:active:not(:disabled) .control-icon { background:none; }
.assist-space { height:88px; }
.assist { border-radius:15px;border:0;border-left:3px solid var(--ui-accent);background:var(--surface);box-shadow:none;padding:10px;gap:9px; }
.assist-orb { width:25px;height:30px;background:none;border:0;border-radius:0;box-shadow:none;color:var(--ui-accent); }
.assist-orb .ui-icon { width:23px;height:23px; }
.assist p { min-width:0; }
.assist b { font:600 .84rem var(--display); }
.assist small { font-size:.73rem;line-height:1.4;max-height:4.2em;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y; }
.assist button { width:34px;height:44px;background:none;border:0;border-radius:9px; }
.assist button .ui-icon { width:18px;height:18px; }
.quiet-tip { font-size:.74rem;letter-spacing:0;opacity:1; }

/* A single room sheet, with the playable rooms first. */
.complete-card,.run-card,.dashboard-card { background:var(--surface);border-color:var(--line);box-shadow:none; }
.dashboard-card { padding-top:24px;border-radius:28px 28px 0 0; }
.dash-head h2 { font:650 2rem/1.05 var(--display);letter-spacing:-.045em; }
.eyebrow { font:600 .64rem var(--ui);letter-spacing:.09em;color:var(--ui-accent); }
.close-dashboard { width:44px;height:44px;border:0;border-radius:14px;background:var(--surface-2);color:var(--ink);box-shadow:none; }
.close-dashboard .ui-icon { width:22px;height:22px; }
.profile-strip { margin:18px 0 9px;padding:8px 0 15px;border-bottom:1px solid var(--line);gap:8px; }
.profile-progress,.profile-stat { background:none;border:0;border-radius:0;box-shadow:none; }
.profile-progress { padding:5px 0;gap:9px; }
.profile-progress>i { width:44px;height:44px;background:conic-gradient(#62e9c5 calc(var(--p)*1%),var(--surface-2) 0); }
.profile-progress>i::before { background:var(--surface); }
.profile-progress>i b { font:650 .93rem var(--display); }
.profile-progress span b { font:650 1.15rem var(--display); }
.profile-progress span small,.profile-stat small { font-size:.64rem;color:var(--muted);line-height:1.25; }
.profile-stat { grid-template-columns:20px auto;grid-template-rows:27px 17px;align-content:center;justify-content:center;gap:3px; }
.profile-stat-icon { color:#ffce58; }
.profile-stat-icon .ui-icon { width:19px;height:19px; }
.profile-stat>b { color:var(--ink);font:650 1.4rem var(--display); }
.profile-stat small { grid-column:1/-1;text-align:center; }
.streak-mark { color:var(--ui-peach); }
.dash-scroll { padding-top:2px; }
.section-label { margin-top:23px;gap:8px; }
.section-label span { font:600 .85rem var(--display);letter-spacing:0;text-transform:lowercase; }
.section-label small { font-size:.67rem;opacity:1;color:var(--muted); }
.rooms-label { margin-top:6px; }
.chapter-list { gap:9px; }
.chapter-card { padding:12px;border:0;border-radius:17px;background:var(--surface-2);box-shadow:none; }
.chapter-card.current { border:0; }
.chapter-card-head { min-height:45px; }
.chapter-badge { width:37px;height:37px;border-radius:11px;background:color-mix(in srgb,var(--chapter),transparent 82%);color:var(--chapter);border:0;box-shadow:none; }
.chapter-badge .chapter-icon { width:24px;height:24px; }
.chapter-card h3 { font:600 .97rem var(--display);letter-spacing:-.015em; }
.chapter-card h3>span { color:var(--muted);font:500 .62rem var(--ui);margin-right:5px; }
.chapter-card-head small { font:500 .77rem var(--display); }
.chapter-chevron { border-width:2px; }
.room-grid { gap:7px;margin-top:12px; }
.room-grid button { height:59px;padding-bottom:8px;border:0;border-radius:12px;color:var(--muted);background:var(--surface);box-shadow:0 2px 0 var(--shadow); }
.room-grid button.cleared { color:var(--ink);background:var(--surface); }
.room-grid button.playing { color:#33281a;background:#ffce58;box-shadow:0 3px 0 #bd8d31; }
.room-grid button.playing::after { content:none; }
.room-number,.app[data-difficulty="hard"] .room-number { font:650 1.03rem var(--display);letter-spacing:0; }
.room-stars { bottom:6px;gap:1px; }
.room-stars i { width:10px;height:10px;background:none;transform:none;border-radius:0; }
.room-stars .ui-icon { width:100%;height:100%; }
.room-grid button.playing .room-stars .ui-icon { filter:brightness(.45); }
.restoration-strip { background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 2px; }
.restoration-strip span { font:600 .66rem var(--ui);letter-spacing:.04em; }
.restoration-strip small { font-size:.68rem; }
.constellation i { border-radius:6px;border-color:var(--line);background:var(--surface-2);box-shadow:none; }
.constellation i.done { background:var(--ui-accent);box-shadow:none; }
.mode-card,.daily-card,.hard-card { background:var(--surface-2);border:0;border-radius:16px;box-shadow:none; }
.mode-card { padding:13px;grid-template-columns:30px minmax(0,1fr);gap:8px;min-height:106px; }
.mode-card.active,.daily-card.active,.hard-card.active { background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--ui-accent);border:0; }
.mode-icon,.daily-card>i,.hard-card>i { border:0;background:none;box-shadow:none;border-radius:0; }
.mode-icon { width:30px;height:34px;color:var(--ui-accent); }
.mode-icon .ui-icon { width:27px;height:27px; }
.rush .mode-icon { color:var(--ui-peach); }
.mode-card span b,.daily-card span b,.hard-card span b { font:600 .98rem var(--display);letter-spacing:-.01em; }
.mode-card span small { font-size:.67rem;line-height:1.45;margin-top:5px; }
.mode-card em { grid-column:1/-1;background:none;padding:5px 0 0;font:600 .6rem var(--ui);letter-spacing:.05em;color:var(--ui-accent); }
.daily-card,.hard-card { padding:13px;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;min-height:77px; }
.daily-card>i,.hard-card>i { width:32px;height:35px;color:var(--ui-peach); }
.hard-card>i { color:var(--ui-lilac); }
.daily-card .ui-icon,.hard-card .ui-icon { width:27px;height:27px; }
.daily-card span small,.hard-card span small { font-size:.7rem;line-height:1.4; }
.daily-card em { font:600 .64rem var(--display);letter-spacing:0;color:var(--ui-peach); }
.hard-card em { font:600 .85rem var(--display);color:var(--ui-lilac); }
.hard-card strong { font:600 .47rem var(--ui);letter-spacing:.05em;background:rgba(var(--accent2-rgb),.12);color:var(--ui-lilac); }
.hard-note { font-size:.67rem;line-height:1.4; }
.theme-picker button { height:57px;border:0;border-radius:13px;background:var(--surface-2);color:var(--muted);font:500 .78rem var(--display);gap:7px; }
.theme-picker button[aria-checked="true"] { color:var(--ink);border:0;background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--ui-accent); }
.theme-picker i { width:22px;height:22px;border-radius:7px;border:2px solid #b29aff;background:#17182b;box-shadow:none; }
.theme-picker [data-theme="moon"] i { background:#f4f0e7;border-color:#748ce0; }
.theme-picker [data-theme="prism"] i { background:#312542;border-color:#ff729d; }
.settings { border:0;border-radius:16px;background:var(--surface-2); }
.setting { padding:13px;min-height:77px;background:none;gap:10px; }
.setting>span b { font:600 .9rem var(--display);letter-spacing:0; }
.setting>span small { font-size:.69rem;line-height:1.4;margin-top:4px; }
.segmented { padding:3px;background:var(--surface);border-radius:11px; }
.segmented button { min-height:44px;padding:0 9px;border-radius:8px;font:500 .76rem var(--display); }
.segmented button.active { color:#33281a;background:#ffce58;box-shadow:none; }
.setting input { height:44px;width:48px; }
.switch { width:46px;height:28px;background:var(--surface);box-shadow:none;border:0; }
.switch::after { width:20px;height:20px;left:4px;top:4px;background:var(--muted);box-shadow:none; }
.setting input:checked+.switch { background:#62e9c5; }
.setting input:checked+.switch::after { background:#163d35; }
.skin-picker { gap:5px; }
.skin-picker button { width:39px;height:44px;border-radius:11px;background:var(--surface);border:0; }
.skin-picker button.active { background:var(--surface);box-shadow:inset 0 0 0 2px var(--ui-accent); }
.skin-picker i { width:26px;height:26px;border-radius:0;background:transparent url("assets/nova-v27.webp") center/contain no-repeat;box-shadow:none; }
.skin-picker [data-skin="pearl"] i { background:transparent url("assets/nova-v27.webp") center/contain no-repeat;filter:hue-rotate(225deg) saturate(.8); }
.skin-picker [data-skin="prism"] i { background:transparent url("assets/nova-v27.webp") center/contain no-repeat;filter:hue-rotate(105deg); }
.primary-button { background:#ffce58;color:#33281a;border:0;border-radius:16px;height:57px;box-shadow:0 3px 0 #bd8d31;font:650 .98rem var(--display); }
.primary-button span { font-size:inherit; }
.primary-button>.button-arrow { background:none;border:0;border-radius:0;color:#33281a;width:30px;height:30px; }
.primary-button>.button-arrow .ui-icon { width:24px;height:24px; }
.primary-button:hover { filter:none; }
.text-button { color:var(--muted);font-size:.78rem; }
.complete h2,.run-card h2 { font:650 2rem/1.08 var(--display);letter-spacing:-.04em; }
.celebration,.stars i.on { color:#ffce58; }
.celebration i,.celebration i:nth-child(3) { background:rgba(var(--warm-rgb),.1);box-shadow:none; }
.stats span { min-width:62px; }
.toast { border:0;border-radius:12px;background:var(--surface-2);font-size:.78rem; }
.chapter-arrival { background:var(--surface-2);border:0; }
.chapter-arrival small { font-size:.58rem; }
.chapter-arrival b { font:600 .99rem var(--display); }
.chapter-arrival span { font-size:.73rem; }

/* Light theme retains readable marks and the same recognizable game pieces. */
body[data-theme="moon"] .app { background:var(--bg); }
body[data-theme="moon"] .chapter-badge { color:#614bb1; }
body[data-theme="moon"] .room-stars .ui-icon,body[data-theme="moon"] .star-mark .ui-icon,body[data-theme="moon"] .stars .ui-icon { filter:brightness(.68); }
body[data-theme="moon"] .room-grid button.playing .room-stars .ui-icon { filter:brightness(.45); }
body[data-theme="moon"] .objective i.done { background:#ffdf94;box-shadow:inset 0 0 0 1px #b58a31; }
body[data-theme="moon"] .objective[data-mode="paint"] i.done { background:#ffd0e0;box-shadow:inset 0 0 0 1px #cd6c91; }
body[data-theme="moon"] .objective[data-mode="sequence"] i.done { color:#6a4b12; }
body[data-theme="moon"] .cell.item::after { border-color:#c4ad77; }
body[data-theme="moon"] .cell.item.paint::after { border-color:#d0a1b7; }
body[data-theme="moon"] .cell.exit.ready::before { border-color:#a57621;background:#ffdf94; }
body[data-theme="moon"] .cell.exit.ready::after { background:#9b6d1b; }
body[data-theme="moon"] .hint-path,body[data-theme="moon"] .hint-start { stroke:#238574; }
body[data-theme="moon"] .hint-start { fill:#238574; }
body[data-theme="moon"] .hint-end { fill:#9b6d1b; }
body[data-theme="moon"] .flow-title b { color:#087263; }
body[data-theme="moon"] .profile-progress>i { background:conic-gradient(#087263 calc(var(--p)*1%),var(--surface-2) 0); }
body[data-theme="moon"] .constellation i.done { background:#087263; }
body[data-theme="moon"] .complete,body[data-theme="moon"] .run-summary,body[data-theme="moon"] .dashboard { background:rgba(27,27,39,.3); }
body[data-theme="moon"] .fit-callout b,body[data-theme="moon"] .flow-flash span,body[data-theme="moon"] .reward-score em,body[data-theme="moon"] .run-score em { color:#93691d; }

@media(max-width:440px) {
  .topbar { padding-left:16px;padding-right:16px;gap:8px; }
  .brand b { display:block;font-size:1.45rem; }
  .score-hud { margin-right:0; }
  .rooms-button { min-width:81px;padding:0 10px; }
  .room-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media(max-width:359px) {
  .topbar { gap:6px;padding-left:13px;padding-right:13px; }
  .brand b { font-size:1.27rem; }
  .score-hud { min-width:33px; }
  .score-hud b,.room-pill b { font-size:1rem; }
  .room-pill { min-width:35px;padding:0 3px; }
  .rooms-button { min-width:73px;padding:0 8px;gap:5px; }
  .rooms-button b { font-size:.78rem; }
  .rooms-button .ui-icon { width:18px;height:18px; }
  .sound { width:40px; }
  .chapter-line { font-size:.64rem;gap:5px; }
  .mode-label { font-size:.58rem; }
  .controls { gap:6px; }
  .controls button { padding:0 5px;gap:5px; }
  .controls b { font-size:.8rem; }
  .control-icon,.control-icon .ui-icon { width:21px;height:21px; }
  .chapter-card { padding:10px; }
  .chapter-card h3 { font-size:.9rem; }
  .room-grid { gap:6px; }
  .hard-card strong { display:none; }
}
@media(hover:hover) {
  .rooms-button:hover { background:#ffce58;color:#33281a; }
  .controls button:hover:not(:disabled):not(:active) { transform:translateY(-1px);background:color-mix(in srgb,var(--surface-2),white 7%);border-color:transparent; }
  .controls .hint:hover:not(:disabled):not(:active),.primary-button:hover { background:#ffdc84; }
  .room-grid button:hover:not(:active) { transform:translateY(-2px); }
}
@media(orientation:landscape) and (max-height:600px) {
  .dashboard-card { height:100%;padding-top:16px; }
  .profile-strip { display:none; }
  .dash-head h2 { font-size:1.65rem; }
  .continue-button { height:48px; }
  .assist small { max-height:4.2em; }
  .controls button { height:45px; }
  .chapter-line { height:23px; }
  .heading { margin-top:0; }
  .heading h1,.app[data-difficulty="hard"] .heading h1 { font-size:1.5rem; }
}
@media(prefers-reduced-motion:reduce) { .controls button,.room-grid button,.round-button { transition:none; } }
