@font-face{font-family:Krona One;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/krona-one-latin.woff2) format("woff2")}@font-face{font-family:Work Sans;font-style:normal;font-weight:300 600;font-display:block;src:url(/fonts/work-sans-latin.woff2) format("woff2")}:root{color-scheme:light;--bg-start: #fff7ea;--bg-mid: #f2ede4;--bg-end: #e8e0d6;--ink: #3b352f;--muted: #7d746b;--page-pad: clamp(14px, 3vw, 28px);--safe-top: env(safe-area-inset-top);--safe-right: env(safe-area-inset-right);--safe-bottom: env(safe-area-inset-bottom);--safe-left: env(safe-area-inset-left);--tile-bg: rgba(255, 255, 255, .4);--tile-hover: rgba(255, 255, 255, .5);--tile-border: rgba(30, 27, 23, .12);--accent: #b06b4a;--loop: #3aa66a;--loop-soft: rgba(255, 255, 255, .75);--tile-solved-bg: rgba(255, 255, 255, 1);--board-bg: rgba(255, 255, 255, .6);--tile-size: clamp(34px, 6vw, 68px);--font-body: "Work Sans", "Helvetica Neue", Arial, sans-serif;--font-heading: "Krona One", "Helvetica Neue", Arial, sans-serif}:root[data-theme=neumorphic]{--bg-start: #edf1f6;--bg-mid: #e7ecf2;--bg-end: #dfe5ec;--ink: #3a4653;--muted: #7a8796;--accent: #8b9dad;--loop: #8c9aa7;--loop-soft: rgba(255, 255, 255, .88);--tile-bg: #e3e9f0;--tile-hover: #eef2f6;--tile-border: rgba(120, 130, 140, .06);--tile-solved-bg: #f1f4f7;--neu-surface: #e7ecf2;--neu-surface-hi: #f2f6fa;--neu-surface-lo: #dbe1e8;--neu-surface-grad: linear-gradient(145deg, var(--neu-surface-hi), var(--neu-surface-lo));--neu-surface-grad-soft: linear-gradient(145deg, #f4f7fb, #e2e7ee);--board-bg: var(--neu-surface);--page-noise: .01;--neu-shadow: 12px 12px 22px rgba(60, 71, 83, .18), -12px -12px 22px rgba(255, 255, 255, .5);--neu-shadow-soft: 6px 6px 12px rgba(60, 71, 83, .16), -6px -6px 12px rgba(255, 255, 255, .5);--neu-shadow-inset: inset 6px 6px 12px rgba(60, 71, 83, .18), inset -6px -6px 12px rgba(255, 255, 255, .45);--neu-shadow-inset-soft: inset 3px 3px 6px rgba(60, 71, 83, .16), inset -3px -3px 6px rgba(255, 255, 255, .5);--surface-bg: var(--neu-surface-grad);--surface-shadow: var(--neu-shadow);--surface-border: none;--surface-backdrop: none;--control-bg: var(--neu-surface-grad-soft);--control-shadow: var(--neu-shadow-inset-soft);--control-border: none;--control-backdrop: none;--control-hover-bg: var(--neu-surface-grad-soft);--control-hover-shadow: var(--neu-shadow-inset);--control-active-bg: var(--neu-surface-grad-soft);--control-active-shadow: var(--neu-shadow-inset);--button-bg: var(--neu-surface-grad);--button-shadow: var(--neu-shadow-soft);--button-border: none;--button-text: var(--ink);--button-hover-bg: var(--neu-surface-grad);--button-hover-shadow: var(--neu-shadow-inset-soft);--button-hover-border: none;--tile-face-bg: var(--neu-surface-grad-soft);--tile-face-shadow: var(--neu-shadow-inset-soft);--tile-face-hover-bg: var(--neu-surface-grad-soft);--tile-face-hover-shadow: var(--neu-shadow-inset);--tile-empty-bg: var(--board-bg);--tile-empty-shadow: none}:root[data-theme=night-1]{--bg-start: #000000;--bg-mid: #000000;--bg-end: #000000;--ink: #d2d2d2;--muted: #a5a5a5;--accent: #d2d2d2;--loop: #dedede;--loop-soft: rgba(255, 255, 255, .22);--tile-bg: #1a1a1a;--tile-hover: #202020;--tile-border: rgba(255, 255, 255, .12);--tile-solved-bg: #272727;--board-bg: #000000;--page-noise: 0;--surface-bg: #181818;--surface-shadow: none;--surface-border: 1px solid #2b2b2b;--control-bg: #1e1e1e;--control-shadow: none;--control-border: 1px solid #353535;--control-hover-bg: #242424;--control-hover-shadow: none;--control-active-bg: #2a2a2a;--control-active-shadow: none;--button-bg: #1e1e1e;--button-shadow: none;--button-border: 1px solid #353535;--button-text: var(--ink);--button-hover-bg: #2a2a2a;--button-hover-shadow: none;--button-hover-border: 1px solid #404040;--tile-face-bg: #1d1d1d;--tile-face-shadow: inset 0 0 0 1px #2d2d2d;--tile-face-hover-bg: #242424;--tile-face-hover-shadow: inset 0 0 0 1px #363636;--tile-empty-bg: #000000;--tile-empty-shadow: none;--install-icon-filter: brightness(.62) saturate(.8);--install-icon-bg: #1a1a1a}:root[data-theme=night-2]{--bg-start: #000000;--bg-mid: #000000;--bg-end: #000000;--ink: #a4a4a4;--muted: #787878;--accent: #a4a4a4;--loop: #b0b0b0;--loop-soft: rgba(255, 255, 255, .14);--tile-bg: #111111;--tile-hover: #161616;--tile-border: rgba(255, 255, 255, .08);--tile-solved-bg: #1d1d1d;--board-bg: #000000;--page-noise: 0;--surface-bg: #0f0f0f;--surface-shadow: none;--surface-border: 1px solid #1f1f1f;--control-bg: #151515;--control-shadow: none;--control-border: 1px solid #2a2a2a;--control-hover-bg: #1a1a1a;--control-hover-shadow: none;--control-active-bg: #1f1f1f;--control-active-shadow: none;--button-bg: #151515;--button-shadow: none;--button-border: 1px solid #2a2a2a;--button-text: var(--ink);--button-hover-bg: #1f1f1f;--button-hover-shadow: none;--button-hover-border: 1px solid #353535;--tile-face-bg: #141414;--tile-face-shadow: inset 0 0 0 1px #222222;--tile-face-hover-bg: #1a1a1a;--tile-face-hover-shadow: inset 0 0 0 1px #2b2b2b;--tile-empty-bg: #000000;--tile-empty-shadow: none;--install-icon-filter: brightness(.58) saturate(.78);--install-icon-bg: #101010}:root[data-theme=night-3]{--bg-start: #000000;--bg-mid: #000000;--bg-end: #000000;--ink: #7a7a7a;--muted: #545454;--accent: #7a7a7a;--loop: #848484;--loop-soft: rgba(255, 255, 255, .08);--tile-bg: #090909;--tile-hover: #0e0e0e;--tile-border: rgba(255, 255, 255, .05);--tile-solved-bg: #141414;--board-bg: #000000;--page-noise: 0;--surface-bg: #080808;--surface-shadow: none;--surface-border: 1px solid #141414;--control-bg: #0d0d0d;--control-shadow: none;--control-border: 1px solid #1f1f1f;--control-hover-bg: #101010;--control-hover-shadow: none;--control-active-bg: #131313;--control-active-shadow: none;--button-bg: #0d0d0d;--button-shadow: none;--button-border: 1px solid #1f1f1f;--button-text: var(--ink);--button-hover-bg: #131313;--button-hover-shadow: none;--button-hover-border: 1px solid #2a2a2a;--tile-face-bg: #0d0d0d;--tile-face-shadow: inset 0 0 0 1px #171717;--tile-face-hover-bg: #111111;--tile-face-hover-shadow: inset 0 0 0 1px #202020;--tile-empty-bg: #000000;--tile-empty-shadow: none;--install-icon-filter: brightness(.54) saturate(.76);--install-icon-bg: #080808}:root[data-theme=clay]{--bg-start: #f6e7da;--bg-mid: #f1ddcd;--bg-end: #e7d0c0;--ink: #5b463c;--muted: #8a6f62;--accent: #d27a5c;--loop: #7bb38f;--loop-soft: rgba(255, 255, 255, .82);--tile-bg: #f3e4d7;--tile-hover: #f9ede3;--tile-border: rgba(140, 90, 70, .18);--tile-solved-bg: #fff6ef;--board-bg: #f3e4d7;--page-noise: .04;--surface-bg: linear-gradient(145deg, #f9efe6, #ead4c6);--surface-shadow: 12px 12px 24px rgba(161, 110, 84, .3), -10px -10px 20px rgba(255, 255, 255, .75);--surface-border: none;--control-bg: linear-gradient(145deg, #fbeee4, #f0dbcd);--control-shadow: inset 4px 4px 8px rgba(163, 112, 86, .25), inset -4px -4px 8px rgba(255, 255, 255, .7);--control-border: none;--control-hover-bg: linear-gradient(145deg, #fff3ea, #f2dccf);--control-hover-shadow: inset 6px 6px 12px rgba(163, 112, 86, .25), inset -6px -6px 12px rgba(255, 255, 255, .7);--control-active-bg: linear-gradient(145deg, #f0d6c7, #e7c9b7);--control-active-shadow: inset 6px 6px 12px rgba(163, 112, 86, .3), inset -6px -6px 12px rgba(255, 255, 255, .6);--button-bg: linear-gradient(145deg, #f6e3d6, #ebd3c5);--button-shadow: 8px 8px 16px rgba(165, 112, 87, .25), -6px -6px 12px rgba(255, 255, 255, .75);--button-border: none;--button-text: var(--ink);--button-hover-bg: linear-gradient(145deg, #f2dacb, #e6cbbb);--button-hover-shadow: inset 4px 4px 8px rgba(165, 112, 87, .25), inset -4px -4px 8px rgba(255, 255, 255, .75);--button-hover-border: none;--tile-face-bg: linear-gradient(145deg, #f6e7dc, #edd6c8);--tile-face-shadow: inset 3px 3px 6px rgba(165, 112, 87, .2), inset -3px -3px 6px rgba(255, 255, 255, .7);--tile-face-hover-bg: linear-gradient(145deg, #f9ede4, #efd9cb);--tile-face-hover-shadow: inset 5px 5px 10px rgba(165, 112, 87, .22), inset -5px -5px 10px rgba(255, 255, 255, .75);--tile-empty-bg: var(--board-bg);--tile-empty-shadow: none}:root[data-theme=glass]{--bg-start: #0b1324;--bg-mid: #101c33;--bg-end: #182a4a;--ink: #e9f2ff;--muted: #b3c5e0;--accent: #6ad5ff;--loop: #a77bff;--loop-soft: rgba(255, 255, 255, .9);--tile-bg: rgba(255, 255, 255, .14);--tile-hover: rgba(255, 255, 255, .22);--tile-border: rgba(255, 255, 255, .08);--tile-solved-bg: rgba(255, 255, 255, .28);--board-bg: rgba(255, 255, 255, .12);--page-noise: .02;--surface-bg: rgba(11, 19, 36, .78);--surface-shadow: 0 20px 45px rgba(5, 12, 25, .45), 0 0 30px rgba(103, 180, 255, .25);--surface-border: 1px solid rgba(255, 255, 255, .28);--surface-backdrop: blur(18px) saturate(140%);--control-bg: rgba(255, 255, 255, .16);--control-shadow: 0 10px 22px rgba(0, 0, 0, .35);--control-border: 1px solid rgba(255, 255, 255, .25);--control-backdrop: blur(14px) saturate(140%);--control-hover-bg: rgba(255, 255, 255, .2);--control-hover-shadow: 0 12px 24px rgba(0, 0, 0, .4);--control-active-bg: rgba(255, 255, 255, .22);--control-active-shadow: 0 12px 26px rgba(0, 0, 0, .45);--active-outline: rgba(255, 255, 255, .45);--active-glow: rgba(106, 213, 255, .35);--button-bg: rgba(255, 255, 255, .18);--button-shadow: 0 12px 22px rgba(0, 0, 0, .4), 0 0 18px rgba(120, 200, 255, .3);--button-border: 1px solid rgba(255, 255, 255, .32);--button-text: var(--ink);--button-hover-bg: rgba(255, 255, 255, .22);--button-hover-shadow: 0 10px 20px rgba(0, 0, 0, .4), 0 0 26px rgba(166, 110, 255, .35);--button-hover-border: 1px solid rgba(255, 255, 255, .35);--tile-face-bg: rgba(255, 255, 255, .18);--tile-face-shadow: none;--tile-face-hover-bg: rgba(255, 255, 255, .25);--tile-face-hover-shadow: 0 8px 18px rgba(0, 0, 0, .35);--tile-empty-bg: rgba(255, 255, 255, .08);--tile-empty-shadow: none}:root[data-theme=brutalist]{--bg-start: #f6f4ef;--bg-mid: #ffffff;--bg-end: #ede7de;--ink: #111111;--muted: #4a4a4a;--accent: #ff5a1f;--loop: #111111;--loop-soft: rgba(255, 255, 255, .7);--tile-bg: #f3f0ea;--tile-hover: #ece6db;--tile-border: #111111;--tile-solved-bg: #ffffff;--board-bg: #ffffff;--page-noise: 0;--surface-bg: #ffffff;--surface-shadow: none;--surface-border: 2px solid var(--ink);--control-bg: #ffffff;--control-shadow: none;--control-border: 2px solid var(--ink);--control-hover-bg: #ffffff;--control-hover-shadow: none;--control-active-bg: var(--accent);--control-active-shadow: none;--button-bg: var(--ink);--button-shadow: none;--button-border: 2px solid var(--ink);--button-text: #ffffff;--button-hover-bg: var(--accent);--button-hover-shadow: none;--button-hover-border: 2px solid var(--ink);--tile-face-bg: #f3f0ea;--tile-face-shadow: inset 0 0 0 2px #111111;--tile-face-hover-bg: #ece6db;--tile-face-hover-shadow: inset 0 0 0 2px #111111;--tile-empty-bg: #ffffff;--tile-empty-shadow: none}:root[data-theme=crt]{--bg-start: #07110d;--bg-mid: #0b1b14;--bg-end: #0f2219;--ink: #b8ffd6;--muted: #6dbf92;--accent: #21ff8a;--loop: #2cff9a;--loop-soft: rgba(33, 255, 138, .18);--tile-bg: #0f2218;--tile-hover: #122c1f;--tile-border: rgba(60, 255, 160, .25);--tile-solved-bg: #143022;--board-bg: #0d1b15;--page-noise: .06;--surface-bg: #0d1b15;--surface-shadow: 0 12px 24px rgba(0, 0, 0, .6), inset 0 0 0 1px rgba(10, 255, 140, .08);--surface-border: 1px solid rgba(60, 255, 160, .2);--control-bg: #0b1913;--control-shadow: inset 0 0 0 1px rgba(10, 255, 140, .1);--control-border: 1px solid rgba(60, 255, 160, .25);--control-hover-bg: #0f2218;--control-hover-shadow: 0 0 12px rgba(33, 255, 138, .22);--control-active-bg: #122c1f;--control-active-shadow: 0 0 16px rgba(33, 255, 138, .3);--button-bg: #0f2218;--button-shadow: 0 8px 16px rgba(0, 0, 0, .6);--button-border: 1px solid rgba(60, 255, 160, .25);--button-text: #b8ffd6;--button-hover-bg: #112a1e;--button-hover-shadow: 0 0 18px rgba(40, 255, 150, .25);--button-hover-border: 1px solid rgba(60, 255, 160, .35);--tile-face-bg: #0f2218;--tile-face-shadow: inset 0 0 0 1px rgba(60, 255, 160, .15);--tile-face-hover-bg: #122c1f;--tile-face-hover-shadow: 0 0 12px rgba(40, 255, 150, .25);--tile-empty-bg: #0a1711;--tile-empty-shadow: none}:root[data-theme=blueprint]{--bg-start: #081b33;--bg-mid: #0d2340;--bg-end: #123055;--ink: #d5e8ff;--muted: #8eb2d8;--accent: #5cc0ff;--loop: #7fd0ff;--loop-soft: rgba(92, 192, 255, .18);--tile-bg: #0c2343;--tile-hover: #0f2b52;--tile-border: rgba(120, 190, 255, .35);--tile-solved-bg: #13335f;--board-bg: #0f2a4f;--page-noise: 0;--surface-bg: #0f2a4f;--surface-shadow: 0 18px 30px rgba(5, 15, 30, .45);--surface-border: 1px solid rgba(120, 190, 255, .4);--control-bg: #0d2546;--control-shadow: inset 0 0 0 1px rgba(90, 160, 220, .2);--control-border: 1px solid rgba(120, 190, 255, .35);--control-hover-bg: #0f2d55;--control-hover-shadow: 0 0 14px rgba(92, 192, 255, .25);--control-active-bg: #103460;--control-active-shadow: 0 0 18px rgba(92, 192, 255, .35);--button-bg: #102d55;--button-shadow: 0 8px 16px rgba(5, 15, 30, .5);--button-border: 1px solid rgba(120, 190, 255, .45);--button-text: var(--ink);--button-hover-bg: #123462;--button-hover-shadow: 0 0 18px rgba(92, 192, 255, .35);--button-hover-border: 1px solid rgba(120, 190, 255, .55);--tile-face-bg: #0c2343;--tile-face-shadow: inset 0 0 0 1px rgba(100, 170, 230, .2);--tile-face-hover-bg: #0f2b52;--tile-face-hover-shadow: 0 0 10px rgba(90, 180, 255, .25);--tile-empty-bg: #0b1f3b;--tile-empty-shadow: none}:root[data-theme=paper]{--bg-start: #f7f1e8;--bg-mid: #f1e7da;--bg-end: #e6d8c8;--ink: #4c3a2f;--muted: #7a6556;--accent: #c26e4a;--loop: #9b6f55;--loop-soft: rgba(255, 255, 255, .85);--tile-bg: #fff7ec;--tile-hover: #fff1e4;--tile-border: rgba(140, 110, 90, .2);--tile-solved-bg: #fffdf8;--board-bg: #fffaf2;--page-noise: .12;--surface-bg: #fffaf2;--surface-shadow: 0 2px 0 #e6d7c6, 0 16px 28px rgba(92, 70, 50, .18);--surface-border: 1px solid #e6d7c6;--control-bg: #fff5ea;--control-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6);--control-border: 1px solid #e3d2c2;--control-hover-bg: #fff0e0;--control-hover-shadow: inset 0 0 0 1px rgba(255, 255, 255, .8);--control-active-bg: #ffe8d6;--control-active-shadow: inset 0 0 0 1px rgba(255, 255, 255, .8);--button-bg: #fff4e6;--button-shadow: 0 4px 0 #e4d4c4, 0 12px 20px rgba(90, 70, 50, .15);--button-border: 1px solid #dfcdbd;--button-text: var(--ink);--button-hover-bg: #fff0e0;--button-hover-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);--button-hover-border: 1px solid #dfcdbd;--tile-face-bg: #fff7ec;--tile-face-shadow: inset 0 0 0 1px rgba(233, 210, 193, .9);--tile-face-hover-bg: #fff1e4;--tile-face-hover-shadow: 0 6px 12px rgba(90, 70, 50, .12);--tile-empty-bg: #f5eadf;--tile-empty-shadow: none}:root[data-theme=synthwave]{--bg-start: #120526;--bg-mid: #2a0b5a;--bg-end: #3e0f6e;--ink: #f6e8ff;--muted: #c4a9ff;--accent: #ff5fdb;--loop: #5ed1ff;--loop-soft: rgba(94, 209, 255, .2);--tile-bg: #2b0e5c;--tile-hover: #33116d;--tile-border: rgba(255, 95, 219, .25);--tile-solved-bg: #3a1276;--board-bg: #200a40;--page-noise: .02;--surface-bg: linear-gradient(145deg, #2a0f5a, #1b083b);--surface-shadow: 0 22px 50px rgba(3, 0, 20, .6), 0 0 30px rgba(255, 95, 219, .25);--surface-border: 1px solid rgba(255, 255, 255, .08);--control-bg: linear-gradient(145deg, #2f0f63, #210844);--control-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), 0 0 18px rgba(94, 209, 255, .25);--control-border: 1px solid rgba(255, 255, 255, .08);--control-hover-bg: linear-gradient(145deg, #34106e, #24094b);--control-hover-shadow: 0 0 20px rgba(94, 209, 255, .35);--control-active-bg: linear-gradient(145deg, #3b127a, #2a0b55);--control-active-shadow: 0 0 26px rgba(255, 95, 219, .45);--button-bg: linear-gradient(145deg, #34106e, #23094b);--button-shadow: 0 12px 24px rgba(0, 0, 0, .55), 0 0 18px rgba(94, 209, 255, .35);--button-border: 1px solid rgba(255, 255, 255, .1);--button-text: #fff1ff;--button-hover-bg: linear-gradient(145deg, #3b127a, #2a0b55);--button-hover-shadow: 0 0 24px rgba(255, 95, 219, .45);--button-hover-border: 1px solid rgba(255, 255, 255, .16);--tile-face-bg: linear-gradient(145deg, #2b0e5c, #1c083c);--tile-face-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), 0 0 10px rgba(94, 209, 255, .25);--tile-face-hover-bg: linear-gradient(145deg, #33116d, #22094a);--tile-face-hover-shadow: 0 0 16px rgba(255, 95, 219, .4);--tile-empty-bg: #1b083b;--tile-empty-shadow: none}:root[data-theme=aurora]{--bg-start: #050b22;--bg-mid: #0b1640;--bg-end: #162960;--ink: #f0faff;--muted: #b8d2f0;--accent: #3ee6a9;--loop: #c46bff;--loop-soft: rgba(255, 255, 255, .18);--tile-bg: rgba(255, 255, 255, .08);--tile-hover: rgba(255, 255, 255, .16);--tile-border: rgba(255, 255, 255, .22);--tile-solved-bg: rgba(62, 230, 169, .22);--board-bg: transparent;--page-noise: 0;--surface-bg: #0a1535;--surface-shadow: none;--surface-border: 1px solid rgba(255, 255, 255, .12);--control-bg: #0c1a3f;--control-shadow: none;--control-border: 1px solid rgba(255, 255, 255, .14);--control-hover-bg: #122353;--control-hover-shadow: none;--control-active-bg: #182d68;--control-active-shadow: none;--button-bg: #0c1a3f;--button-shadow: none;--button-border: 1px solid rgba(255, 255, 255, .22);--button-text: #f0faff;--button-hover-bg: #122353;--button-hover-shadow: none;--button-hover-border: 1px solid rgba(255, 255, 255, .35);--tile-face-bg: rgba(255, 255, 255, .08);--tile-face-shadow: none;--tile-face-hover-bg: rgba(255, 255, 255, .16);--tile-face-hover-shadow: none;--tile-empty-bg: transparent;--tile-empty-shadow: none}:root[data-theme=aurora] .board-wrap{background:transparent;border:none;box-shadow:none}:root[data-theme=aurora] .theme-panel-card,:root[data-theme=aurora] .modal,:root[data-theme=aurora] .mode-card,:root[data-theme=aurora] .install-banner{background:#0a1535;border:1px solid rgba(255,255,255,.1);box-shadow:none}:root[data-theme=aurora] .modal-backdrop{background:#020512b3}:root[data-theme=aurora] #root:before,:root[data-theme=aurora] #root:after{content:"";position:fixed;inset:-25%;pointer-events:none;z-index:0;filter:blur(40px);opacity:.9}:root[data-theme=aurora] #root:before{background:radial-gradient(55% 90% at 20% 40%,rgba(62,230,169,.85),transparent 65%),radial-gradient(50% 85% at 80% 60%,rgba(196,107,255,.8),transparent 65%),radial-gradient(45% 75% at 50% 30%,rgba(120,200,255,.55),transparent 65%);animation:aurora-flow-a 14s ease-in-out infinite alternate}:root[data-theme=aurora] #root:after{background:radial-gradient(50% 80% at 70% 30%,rgba(196,107,255,.7),transparent 65%),radial-gradient(55% 85% at 30% 70%,rgba(62,230,169,.65),transparent 65%),radial-gradient(40% 70% at 90% 80%,rgba(120,200,255,.5),transparent 65%);animation:aurora-flow-b 18s ease-in-out infinite alternate;mix-blend-mode:screen}:root[data-theme=aurora] #root>.app{position:relative;z-index:1}@keyframes aurora-flow-a{0%{transform:translate3d(-8%,-5%,0) scale(1.1)}50%{transform:translate3d(6%,8%,0) scale(1.3)}to{transform:translate3d(10%,-4%,0) scale(1.15)}}@keyframes aurora-flow-b{0%{transform:translate3d(10%,6%,0) scale(1.2)}50%{transform:translate3d(-8%,-6%,0) scale(1)}to{transform:translate3d(-4%,8%,0) scale(1.25)}}@media (prefers-reduced-motion: reduce){:root[data-theme=aurora] #root:before,:root[data-theme=aurora] #root:after{animation:none}}body.perf-mode :root[data-theme=aurora] #root:before,body.perf-mode :root[data-theme=aurora] #root:after{animation:none}:root[data-theme=sakura]{--bg-start: #ffeef4;--bg-mid: #ffd9e6;--bg-end: #ffc4d8;--ink: #5b2240;--muted: #a06083;--accent: #e27da1;--loop: #c14c7f;--loop-soft: rgba(255, 255, 255, .8);--tile-bg: #fff4f8;--tile-hover: #ffe8f0;--tile-border: rgba(226, 125, 161, .25);--tile-solved-bg: #ffdce8;--board-bg: rgba(255, 255, 255, .55);--page-noise: .01;--surface-bg: linear-gradient(145deg, #fff4f8, #ffe1ec);--surface-shadow: 0 22px 50px rgba(160, 60, 110, .18);--surface-border: 1px solid rgba(255, 255, 255, .6);--control-bg: linear-gradient(145deg, #fff4f8, #ffe1ec);--control-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 6px 14px rgba(160, 60, 110, .16);--control-border: 1px solid rgba(255, 255, 255, .6);--control-hover-bg: linear-gradient(145deg, #ffe6ef, #ffd0de);--control-hover-shadow: 0 8px 18px rgba(160, 60, 110, .22);--control-active-bg: linear-gradient(145deg, #ffd9e6, #ffc4d8);--control-active-shadow: inset 0 2px 6px rgba(160, 60, 110, .25);--button-bg: linear-gradient(145deg, #e27da1, #c14c7f);--button-shadow: 0 10px 20px rgba(193, 76, 127, .35);--button-border: 1px solid rgba(255, 255, 255, .4);--button-text: #fff;--button-hover-bg: linear-gradient(145deg, #d56a93, #b04473);--button-hover-shadow: 0 12px 22px rgba(193, 76, 127, .45);--button-hover-border: 1px solid rgba(255, 255, 255, .5);--tile-face-bg: linear-gradient(145deg, #fff4f8, #ffe1ec);--tile-face-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);--tile-face-hover-bg: linear-gradient(145deg, #ffe6ef, #ffd0de);--tile-face-hover-shadow: 0 6px 12px rgba(160, 60, 110, .2);--tile-empty-bg: rgba(255, 255, 255, .4);--tile-empty-shadow: none}:root[data-theme=sakura] #root:before,:root[data-theme=sakura] #root:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(6px 4px at 12% 0%,rgba(226,125,161,.7),transparent 60%),radial-gradient(5px 3px at 35% 0%,rgba(226,125,161,.55),transparent 60%),radial-gradient(7px 5px at 58% 0%,rgba(193,76,127,.65),transparent 60%),radial-gradient(4px 3px at 78% 0%,rgba(226,125,161,.5),transparent 60%),radial-gradient(6px 4px at 92% 0%,rgba(193,76,127,.6),transparent 60%);background-repeat:no-repeat;background-size:100% 100%}:root[data-theme=sakura] #root:before{animation:sakura-fall-a 14s linear infinite}:root[data-theme=sakura] #root:after{animation:sakura-fall-b 18s linear infinite;animation-delay:-6s;background-image:radial-gradient(5px 3px at 22% 0%,rgba(226,125,161,.55),transparent 60%),radial-gradient(6px 4px at 48% 0%,rgba(193,76,127,.6),transparent 60%),radial-gradient(4px 3px at 68% 0%,rgba(226,125,161,.5),transparent 60%),radial-gradient(5px 4px at 85% 0%,rgba(193,76,127,.55),transparent 60%)}:root[data-theme=sakura] #root>.app{position:relative;z-index:1}@keyframes sakura-fall-a{0%{background-position:0 -10%}to{background-position:0 110%}}@keyframes sakura-fall-b{0%{background-position:0 -10%}to{background-position:0 110%}}@media (prefers-reduced-motion: reduce){:root[data-theme=sakura] #root:before,:root[data-theme=sakura] #root:after{animation:none}}body.perf-mode :root[data-theme=sakura] #root:before,body.perf-mode :root[data-theme=sakura] #root:after{animation:none}:root[data-theme=botanical]{--bg-start: #eaf4ec;--bg-mid: #ddece1;--bg-end: #cfe3d4;--ink: #2f4a3a;--muted: #6b8a76;--accent: #6fae6d;--loop: #5a9b66;--loop-soft: rgba(255, 255, 255, .85);--tile-bg: #eef6ef;--tile-hover: #f4faf5;--tile-border: rgba(80, 120, 95, .18);--tile-solved-bg: #f6fbf7;--board-bg: #edf5ef;--page-noise: .03;--surface-bg: #edf5ef;--surface-shadow: 0 18px 30px rgba(46, 80, 60, .18), -6px -6px 14px rgba(255, 255, 255, .7);--surface-border: 1px solid rgba(80, 120, 95, .12);--control-bg: #f3f8f4;--control-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);--control-border: 1px solid rgba(80, 120, 95, .12);--control-hover-bg: #eef6ef;--control-hover-shadow: 0 10px 18px rgba(46, 80, 60, .18);--control-active-bg: #e4f0e6;--control-active-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);--button-bg: #e8f2ea;--button-shadow: 0 8px 16px rgba(46, 80, 60, .18);--button-border: 1px solid rgba(80, 120, 95, .12);--button-text: var(--ink);--button-hover-bg: #e1edde;--button-hover-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);--button-hover-border: 1px solid rgba(80, 120, 95, .12);--tile-face-bg: #eef6ef;--tile-face-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6);--tile-face-hover-bg: #f4faf5;--tile-face-hover-shadow: 0 8px 16px rgba(46, 80, 60, .16);--tile-empty-bg: #e5efe7;--tile-empty-shadow: none}:root[data-theme=low-poly]{--bg-start: #ff9a5c;--bg-mid: #ffd56b;--bg-end: #6fd0ff;--ink: #2b2d42;--muted: #5a5d74;--accent: #ff6b6b;--loop: #2d70ff;--loop-soft: rgba(255, 255, 255, .82);--tile-bg: #fff2df;--tile-hover: #ffe2c2;--tile-border: rgba(200, 120, 80, .2);--tile-solved-bg: #fff8ef;--board-bg: #fff2df;--page-noise: .02;--surface-bg: linear-gradient(135deg, #fff2e0, #ffe4c4);--surface-shadow: 0 20px 35px rgba(160, 80, 40, .25);--surface-border: none;--control-bg: linear-gradient(135deg, #fff6ea, #ffe9d2);--control-shadow: 0 10px 20px rgba(160, 80, 40, .18);--control-border: none;--control-hover-bg: linear-gradient(135deg, #ffe9d2, #ffd7b3);--control-hover-shadow: 0 12px 22px rgba(160, 80, 40, .25);--control-active-bg: linear-gradient(135deg, #ffd7b3, #ffc28e);--control-active-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5);--button-bg: linear-gradient(135deg, #2d70ff, #4aa3ff);--button-shadow: 0 12px 24px rgba(45, 112, 255, .35);--button-border: none;--button-text: #ffffff;--button-hover-bg: linear-gradient(135deg, #ff6b6b, #ff8a5c);--button-hover-shadow: 0 12px 24px rgba(255, 107, 107, .35);--button-hover-border: none;--tile-face-bg: linear-gradient(135deg, #fff2df, #ffd8b7);--tile-face-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5);--tile-face-hover-bg: linear-gradient(135deg, #ffe2c2, #ffcfa1);--tile-face-hover-shadow: 0 8px 18px rgba(160, 80, 40, .25);--tile-empty-bg: #ffe9d2;--tile-empty-shadow: none}:root[data-theme=ink]{--bg-start: #f7f4ef;--bg-mid: #eee7de;--bg-end: #e1d7cc;--ink: #2f2a24;--muted: #6b5c52;--accent: #3f3a34;--loop: #3a342c;--loop-soft: rgba(255, 255, 255, .8);--tile-bg: #f6f1eb;--tile-hover: #f0e9e1;--tile-border: rgba(47, 42, 36, .12);--tile-solved-bg: #fbf9f6;--board-bg: #f8f4ee;--page-noise: .08;--surface-bg: #f9f6f1;--surface-shadow: 0 14px 26px rgba(40, 32, 24, .18);--surface-border: 1px solid rgba(47, 42, 36, .08);--control-bg: #f5f1eb;--control-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6);--control-border: 1px solid rgba(47, 42, 36, .1);--control-hover-bg: #f0e9e1;--control-hover-shadow: 0 8px 16px rgba(47, 42, 36, .18);--control-active-bg: #e9e1d7;--control-active-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6);--button-bg: #2f2a24;--button-shadow: 0 10px 18px rgba(47, 42, 36, .25);--button-border: none;--button-text: #f8f4ee;--button-hover-bg: #3a342c;--button-hover-shadow: 0 8px 16px rgba(47, 42, 36, .3);--button-hover-border: none;--tile-face-bg: #f6f1eb;--tile-face-shadow: inset 0 0 0 1px rgba(47, 42, 36, .08);--tile-face-hover-bg: #f0e9e1;--tile-face-hover-shadow: 0 8px 16px rgba(47, 42, 36, .2);--tile-empty-bg: #efe7de;--tile-empty-shadow: none}html{-webkit-text-size-adjust:100%;overscroll-behavior:none}*{box-sizing:border-box;touch-action:manipulation}button{font-family:inherit;color:inherit;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation}body{margin:0;font-family:var(--font-body);background:var(--bg-start);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}input,textarea,select,[contenteditable=true]{-webkit-user-select:text;user-select:text;touch-action:auto}img,svg{-webkit-user-drag:none;user-drag:none}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='80' height='80' filter='url(%23n)' opacity='0.4'/></svg>");opacity:var(--page-noise, .08);mix-blend-mode:normal;z-index:0}body.perf-mode:before{opacity:0}:root[data-theme^=night-] body:before{opacity:0}#root{min-height:100vh;min-height:100svh;min-height:100dvh;background:radial-gradient(circle at top,var(--bg-start) 0%,var(--bg-mid) 55%,var(--bg-end) 100%)}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100svh;min-height:100dvh;gap:clamp(10px,2vw,16px);padding:calc(var(--page-pad) + var(--safe-top)) calc(var(--page-pad) + var(--safe-right)) calc(var(--page-pad) + var(--safe-bottom)) calc(var(--page-pad) + var(--safe-left));position:relative;z-index:1}.app:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:0;z-index:0}.app.is-home{gap:0}.home-screen{flex:1;display:flex;flex-direction:column;align-items:center;gap:clamp(14px,3vw,24px);padding:clamp(16px,4vw,36px) 0;text-align:left}.home-stack{width:min(960px,100%);display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}.home-title{margin:0;font-family:var(--font-heading);font-size:2rem;letter-spacing:.08em;text-align:center;line-height:1}.home-modes{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:clamp(10px,3vw,22px)}@media (max-width: 760px){.home-modes{grid-template-columns:1fr;gap:14px}}.home-bottom{margin-top:auto;width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:left}.home-builder{width:min(100%,720px);margin:0 auto}.mode-card-builder{width:100%}.install-banner{--card-radius: 20px;--card-pad: 16px;width:min(960px,100%);background:var(--board-bg);border-radius:var(--card-radius);padding:var(--card-pad) 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 18px 40px #00000014}.analytics-banner{position:fixed;left:24px;right:24px;bottom:24px;background:var(--surface-bg, rgba(255, 255, 255, .94));border:1px solid rgba(30,27,23,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;padding:16px 18px;box-shadow:0 20px 45px #0000002e;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:20}.analytics-banner-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.analytics-banner-title{margin:0;font-family:var(--font-heading);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.analytics-banner-note{margin:0;font-size:12px;color:var(--muted);max-width:520px}.analytics-banner-actions{display:flex;gap:10px;flex-wrap:wrap}@media (max-width: 640px){.analytics-banner{left:12px;right:12px;bottom:12px;flex-direction:column;align-items:stretch}.analytics-banner-actions,.analytics-banner-actions .button{width:100%}}.install-lead{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.install-icon{width:92px;height:92px;border-radius:20px;overflow:hidden;flex-shrink:0;background:var(--install-icon-bg, var(--control-bg, rgba(255, 255, 255, .4)));border:var(--control-border, 1px solid rgba(0, 0, 0, .12));box-shadow:var(--control-shadow, none);display:grid;place-items:center}.install-icon img{width:100%;height:100%;object-fit:cover;filter:var(--install-icon-filter, none)}.install-copy{display:flex;flex-direction:column;gap:6px}.install-title{margin:0;font-family:var(--font-heading);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.install-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.install-tag{font-size:9px;letter-spacing:.18em;text-transform:uppercase;padding:4px 8px;border-radius:999px;border:var(--control-border, 1px solid rgba(0, 0, 0, .12));background:var(--control-bg, rgba(255, 255, 255, .4));color:var(--muted)}.install-note{margin:0;font-size:13px;color:var(--muted)}.install-platforms{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 0}.install-platform{width:52px;height:52px;border-radius:14px;border:var(--control-border, 1px solid rgba(0, 0, 0, .12));background:var(--control-bg, rgba(255, 255, 255, .4));color:var(--ink);display:grid;place-items:center}.install-platform svg{width:32px;height:32px;display:block}.install-actions{display:flex;flex-wrap:wrap;gap:10px}.pwa-toast{--card-radius: 16px;--card-pad: 14px;position:fixed;right:24px;bottom:24px;z-index:30;background:#fffffff2;border-radius:var(--card-radius);padding:var(--card-pad) 16px;box-shadow:0 20px 50px #0003;border:1px solid rgba(0,0,0,.08);display:grid;gap:12px;max-width:320px}.pwa-toast-copy{display:flex;flex-direction:column;gap:6px}.pwa-toast-title{margin:0;font-family:var(--font-heading);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.pwa-toast-note{margin:0;font-size:13px;color:var(--muted)}.pwa-toast-actions{display:flex;flex-wrap:wrap;gap:10px}@media (max-width: 720px){.install-banner{flex-direction:column;align-items:center}.install-lead{width:100%;flex-direction:column;align-items:center;text-align:center}.install-icon{width:72px;height:72px;border-radius:18px}.install-copy{align-items:center;text-align:center}.install-title-row,.install-platforms{justify-content:center}.install-platform{width:44px;height:44px;border-radius:12px}.install-actions{width:100%}.pwa-toast{left:16px;right:16px;bottom:16px;max-width:none}}.mode-card{--card-radius: 20px;--card-pad: 18px;border:none;border-radius:var(--card-radius);padding:var(--card-pad);background:var(--board-bg);box-shadow:0 20px 45px #00000014;display:grid;grid-template-columns:1fr;gap:14px;min-height:220px;text-align:left;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;position:relative;overflow:visible;align-items:center}.mode-card:hover{transform:translateY(-2px);box-shadow:0 22px 40px #0000001a;background:#ffffff2e}.mode-card:focus-visible{outline:3px solid #0b5bd3;outline-offset:3px}.mode-card:disabled{cursor:not-allowed;opacity:.6;box-shadow:none;transform:none}.mode-card:disabled:hover{border-color:#1e1b1724}.mode-card-no-graphic .mode-graphic{display:none}.mode-card-no-graphic{min-height:auto}.mode-graphic{display:grid;place-items:center;border-radius:18px;background:#fff3;--block-size: clamp(135px, 24vw, 225px);color:var(--accent);width:100%;max-width:none;aspect-ratio:16 / 9;padding:clamp(14px,3vw,24px);justify-self:stretch;overflow:hidden}.mode-graphic svg{width:100%;height:100%;display:block;margin:0 auto}.mode-graphic .loader{--loader-size: calc(var(--block-size) * .75);--loader-size-half: calc(var(--loader-size) / 2);--loader-size-half-neg: calc(var(--loader-size-half) * -1);--light-color: color-mix(in srgb, currentColor 38%, transparent);--dot-size: clamp(8px, 1.4vw, 12px);--dot-size-half: calc(var(--dot-size) / 2);--dot-size-half-neg: calc(var(--dot-size-half) * -1);display:block;position:relative;width:var(--loader-size);aspect-ratio:1 / 1;display:grid;place-items:center}.mode-graphic-endless .loader,.mode-graphic-progression .loader{color:var(--ink)}.mode-graphic .loader:before,.mode-graphic .loader:after{content:"";position:absolute}.mode-graphic .loader--3{--loader-size: calc(var(--block-size) * .55);--stroke: 3px;--ring-radius: calc(var(--loader-size-half) - (var(--stroke) / 2));--anim-duration: 3s;border:var(--stroke) solid var(--light-color);border-radius:50%;animation:loader-3 calc(var(--anim-duration) * 3) linear infinite;box-sizing:border-box}.mode-graphic .loader--3:before,.mode-graphic .loader--3:after{width:var(--dot-size);aspect-ratio:1 / 1;background:currentColor;border-radius:50%;top:50%;left:50%;margin:var(--dot-size-half-neg);animation:loader-3-dot var(--anim-duration) ease-in-out infinite;transform-origin:center center;transform:rotate(0) translateY(calc(var(--ring-radius) * -1))}.mode-graphic .loader--3:after{animation-delay:calc(var(--anim-duration) / 3 * -1)}.mode-graphic .loader--8{--loader-size: calc(var(--block-size) * .55);--anim-duration: 2.2s;--spin-duration: 8s;border:3px dashed currentColor;border-radius:50%;perspective:50vmin;transform-style:preserve-3d;transform:rotateX(45deg) rotateY(15deg);animation:loader-8-spin var(--spin-duration) linear infinite}.mode-graphic .loader--8:before,.mode-graphic .loader--8:after{animation:loader-8 var(--anim-duration) cubic-bezier(.39,.24,0,.99) infinite}.mode-graphic .loader--8:before{--z-dist: 8vmin;width:var(--dot-size);aspect-ratio:1 / 1;background:currentColor;border-radius:50%;top:calc(50% - var(--dot-size-half));left:calc(50% - var(--dot-size-half));animation-delay:calc(var(--anim-duration) / 4 * -1)}.mode-graphic .loader--8:after{--z-dist: 4vmin;width:65%;aspect-ratio:1 / 1;border-radius:50%;border:3px solid var(--light-color)}@keyframes loader-3{to{transform:rotate(1turn)}}@keyframes loader-3-dot{0%{transform:rotate(0) translateY(calc(var(--ring-radius) * -1))}to{transform:rotate(1turn) translateY(calc(var(--ring-radius) * -1))}}@keyframes loader-8{0%,to{transform:translateZ(calc(var(--z-dist) * -1)) scale(.6)}55%{transform:translateZ(var(--z-dist))}}@keyframes loader-8-spin{0%{transform:rotateX(45deg) rotateY(15deg) rotate(0)}to{transform:rotateX(45deg) rotateY(15deg) rotate(360deg)}}.mode-content{align-items:flex-start;text-align:left}.mode-graphic-progression{color:color-mix(in srgb,var(--accent) 40%,var(--ink))}.mode-content{display:flex;flex-direction:column;gap:8px;justify-content:center}.mode-title{font-family:var(--font-heading);font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase}.mode-copy{margin:0;color:var(--muted);font-size:.95rem;line-height:1.5}.mode-badge{position:absolute;top:12px;right:14px;left:auto;padding:6px 12px;border-radius:999px;background:var(--accent);color:#fff;font-family:var(--font-heading);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;box-shadow:0 12px 24px #0000002e;z-index:2}.mode-card:disabled .mode-badge{background:#1e1b1780}@media (max-width: 640px){.mode-card{grid-template-columns:1fr;--card-pad: 14px;gap:10px;min-height:180px}.mode-graphic{min-height:80px}}.home-footer{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-family:var(--font-heading);color:var(--muted);opacity:.5}.home-icon{padding:8px 16px}.home-icon:focus-visible{outline:3px solid #0b5bd3;outline-offset:3px}.home-icon svg{width:20px;height:20px}.success-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#0c0c0c99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:inherit;z-index:2;animation:success-scrim .5s ease-out both}.success-stack{display:flex;flex-direction:column;align-items:center;gap:16px;position:relative;z-index:2}.success-card{--card-radius: 20px;--card-pad: 24px;background:#ffffffeb;border-radius:var(--card-radius);padding:var(--card-pad);width:min(420px,90vw);text-align:center;box-shadow:0 30px 60px #0003;display:flex;flex-direction:column;gap:18px;position:relative;z-index:2;animation:success-card-in .52s ease-out both;animation-delay:.56s;opacity:0}.success-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.confetti-piece{position:absolute;left:var(--confetti-x, 50%);width:var(--confetti-size, 10px);height:calc(var(--confetti-size, 10px) * 1.4);background:var(--confetti-color, rgba(255, 255, 255, .9));border-radius:var(--confetti-radius, 2px);animation:confetti-fall var(--confetti-duration, 1.8s) ease-out forwards;animation-delay:var(--confetti-delay, 0ms)}.success-icon{display:grid;place-items:center;animation:success-in .5s ease-out both;animation-delay:.5s;opacity:0;margin-top:10px;margin-bottom:6px}.success-diamond{width:84px;height:84px;border-radius:20px;background:color-mix(in srgb,var(--accent) 28%,rgba(255,255,255,.96));transform:rotate(45deg);display:grid;place-items:center;position:relative;animation:success-diamond-in .9s cubic-bezier(.22,1,.36,1) both}.success-diamond svg{width:36px;height:36px;transform:rotate(-45deg);color:var(--accent-strong);position:relative;z-index:1}.success-title{margin:0;font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;animation:success-in .5s ease-out both;animation-delay:.7s;opacity:0}.success-unlock-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-radius:18px;border:1px solid var(--tile-border);background:#ffffffeb;width:min(420px,90vw);box-shadow:0 20px 45px #0000002e;animation:success-in .5s ease-out both;animation-delay:.82s;opacity:0}.success-unlock-copy{display:flex;flex-direction:column;gap:2px;text-align:left}.success-unlock-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.success-unlock-name{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.success-unlock-cta{white-space:nowrap}@media (max-width: 480px){.success-unlock-card{flex-direction:column;align-items:stretch;gap:12px}.success-unlock-copy{text-align:center}.success-unlock-cta{width:100%}}.success-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:4px}.success-actions--stacked{flex-direction:column;align-items:stretch}.success-actions--stacked .success-action{width:100%}.success-action{animation:success-in .5s ease-out both;opacity:0}.success-action:nth-child(1){animation-delay:.9s}.success-action:nth-child(2){animation-delay:1.1s}@keyframes success-scrim{0%{opacity:0}to{opacity:1}}@keyframes success-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes success-card-in{0%{opacity:0;transform:translateY(18px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes success-breathe{0%,to{transform:rotate(45deg) scale(1)}50%{transform:rotate(45deg) scale(1.05)}}@keyframes success-diamond-in{0%{transform:rotate(45deg) scale(.8)}55%{transform:rotate(390deg) scale(1.05)}to{transform:rotate(405deg) scale(1)}}@keyframes confetti-fall{0%{transform:translate(var(--confetti-drift, 0px)) translateY(-30%) rotate(var(--confetti-rotate, 0deg));opacity:1}to{transform:translate(calc(var(--confetti-drift, 0px) * -.4)) translateY(920%) rotate(calc(var(--confetti-rotate, 0deg) + 200deg));opacity:0}}.top-controls{display:flex;flex-direction:column;gap:12px;align-items:center}.header-title-row{width:min(100%,1100px);margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.header-title-row-game{justify-items:stretch}.header-title-row-game>.home-icon{justify-self:start}.header-title-row-game>.home-icon:last-child{justify-self:end}.header-title-row-game>.difficulty-inline-label,.header-title-row-game>.level-toggle{justify-self:center}.header-title-spacer{width:52px;height:36px}.app-title{margin:0;font-family:var(--font-heading);font-size:2rem;letter-spacing:.08em;text-align:center;text-transform:none;line-height:1}.logo-text{display:inline-flex;align-items:baseline;gap:0;font-family:inherit;letter-spacing:inherit}.logo-word,.logo-mark{display:inline-block;font:inherit;letter-spacing:inherit}.logo-mark{font-size:.9em;position:relative;top:-.02em}.title-cta{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;line-height:1;display:inline-flex;align-items:center}.header-controls{width:min(100%,1100px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.header-level-inline{flex:1 1 240px;display:flex;justify-content:center;align-items:center;min-width:0}.level-toggle{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;font-family:var(--font-heading);font-size:11px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 12px 24px #0000001f;appearance:none;-webkit-appearance:none;padding:8px 16px 8px 24px;border-radius:999px;display:inline-flex;align-items:center;gap:12px;line-height:1}.level-toggle:hover{filter:brightness(1.05)}.level-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}.level-toggle-label{display:inline-flex;align-items:center}.level-toggle-icon{position:relative;width:28px;height:28px;border-radius:50%;background:#ffffff2e;display:grid;place-items:center;flex:0 0 28px}.level-toggle-icon:before,.level-toggle-icon:after{content:"";position:absolute;left:7px;right:7px;height:2px;border-radius:999px;background:currentColor;transition:transform .22s ease,opacity .16s ease}.level-toggle-icon:before{top:8px}.level-toggle-icon:after{bottom:8px}.level-toggle-mid{position:absolute;left:7px;right:7px;top:50%;height:2px;border-radius:999px;background:currentColor;transform:translateY(-50%);transition:transform .22s ease,opacity .16s ease}.level-toggle.is-active .level-toggle-icon:before{top:50%;transform:translateY(-50%) rotate(45deg)}.level-toggle.is-active .level-toggle-icon:after{top:50%;bottom:auto;transform:translateY(-50%) rotate(-45deg)}.level-toggle.is-active .level-toggle-mid{opacity:0;transform:translateY(-50%) scaleX(.3)}.level-toggle.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.level-picker{width:100%;display:grid;justify-items:center;align-content:start;gap:16px}.level-picker-banner{width:min(100%,960px);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-radius:18px;border:1px solid var(--tile-border);background:#ffffffd9;box-shadow:0 16px 30px #0000001f}.level-picker-banner-copy{display:grid;gap:4px}.level-picker-banner-title{margin:0;font-family:var(--font-heading);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.level-picker-banner-text{margin:0;font-size:12px;color:var(--muted)}.level-grid{width:min(100%,960px);display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:10px;padding:clamp(6px,2vw,16px)}.level-card{--card-radius: 18px;--card-pad: 0px;position:relative;border:1px solid var(--tile-border);background:#fffc;border-radius:var(--card-radius);aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;padding:var(--card-pad);font-family:var(--font-heading);font-size:14px;color:var(--ink);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .2s ease}.level-card:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.level-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.level-card[data-state=available]:hover,.level-card[data-state=complete]:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0000001f;background:#fff}.level-card[data-state=complete]{border-color:var(--accent);background:#fffffff2}.level-number{font-size:13px}.level-check{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;box-shadow:0 6px 12px #0000001f}.level-check svg{width:12px;height:12px}.theme-lock-badge{width:20px;height:20px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;box-shadow:0 6px 12px #0000001f}.theme-lock-badge svg{width:11px;height:11px}.level-theme-lock{position:absolute;top:4px;right:4px}.header-controls-bottom{align-items:center;width:min(100%,1100px);margin:0 auto}.header-actions-right{margin-left:auto;justify-content:flex-end;flex:0 0 auto}.header-controls-bottom .header-actions{flex:0 0 auto}.header-actions{display:flex;gap:12px;align-items:center;justify-content:flex-start;flex:1 1 260px}.header-audio{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex:1 1 220px}.audio-controls,.info-controls{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.header-audio.audio-controls{justify-content:flex-end}@media (max-width: 720px){.header-controls{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.header-level-inline{flex:1 1 auto}.header-actions{justify-content:flex-start;width:auto;flex:0 0 auto}.header-actions-right{justify-content:flex-end}.header-audio{justify-content:flex-end;width:auto;flex:0 0 auto}.level-toggle{padding:6px 12px 6px 16px;font-size:10px;letter-spacing:.06em}.level-toggle-label{white-space:nowrap}.level-toggle-icon{width:24px;height:24px;flex:0 0 24px}.top-controls{gap:8px}}.noise-control{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-family:var(--font-heading)}.noise-control input[type=range]{accent-color:var(--accent);width:clamp(120px,26vw,200px)}.noise-value{min-width:36px;text-align:right}.theme-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding-top:6px}.theme-button{border:none;box-sizing:border-box;border-radius:14px;background:#fff;padding:10px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-heading);cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease,transform .2s ease;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;min-width:0}.theme-button:focus{outline:none}.theme-button:focus-visible{outline:none;box-shadow:0 0 0 3px #0b5bd3,0 0 0 6px #fffc}.theme-button:hover{color:var(--accent);background:#ffffffd9;transform:none}.theme-button:disabled,.theme-button.is-locked{cursor:not-allowed;opacity:.55;background:#ffffffbf;color:var(--muted)}.theme-button:disabled:hover,.theme-button.is-locked:hover{color:var(--muted);background:#ffffffbf}.theme-button.is-locked .theme-lock{color:var(--muted)}.theme-button.is-active{background:var(--accent);color:#fff}.theme-button.is-random{background:var(--ink);color:#fff}.theme-button.is-active .theme-label{color:inherit}.theme-button.is-active .theme-swatch{border-color:#ffffff80}.theme-button-wide{width:100%}.theme-button.is-full{grid-column:1 / -1}.theme-button.is-neumorphic{justify-content:flex-start}.theme-group-title{grid-column:1 / -1;margin-top:10px;font-size:10px;letter-spacing:.32em;text-transform:uppercase;font-family:var(--font-heading);color:var(--muted);opacity:.8;pointer-events:none}.theme-group-title--basic{margin-top:20px}.theme-group-header{grid-column:1 / -1;margin-top:32px;display:flex;flex-direction:column;gap:6px;pointer-events:none}.theme-group-header .theme-group-title{margin-top:0}.theme-group-header--night{margin-top:28px}.theme-night-row{grid-column:1 / -1;display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}.theme-night-card{flex:1 1 0;min-width:180px;position:relative}.theme-night-card.is-locked{opacity:.55}.theme-night-card.is-locked:hover{opacity:.75}.theme-lock-corner{position:absolute;top:8px;right:8px;display:inline-flex;color:var(--muted);pointer-events:none}.theme-button.is-night{justify-content:center;gap:0;text-align:center}.theme-sleep{display:inline-flex;align-items:center;justify-content:center;width:100%;flex:0 0 auto;color:var(--ink)}.theme-sleep-optic{display:flex;align-items:center;justify-content:center;width:100%;padding:0}.sleep-z-stack{display:inline-flex;align-items:flex-end;justify-content:center;gap:2px;width:auto;height:22px;color:var(--ink)}.sleep-z{position:relative;font-family:var(--font-heading);text-transform:uppercase;line-height:1;opacity:.9}.sleep-z-1{font-size:10px;transform:translateY(0)}.sleep-z-2{font-size:12px;transform:translateY(-2px)}.sleep-z-3{font-size:14px;transform:translateY(-4px)}@media (max-width: 720px){.theme-night-row{flex-direction:column}.theme-night-card{flex:0 0 auto}.theme-button.is-night{padding:12px 14px;min-height:72px}.sleep-z-stack{height:18px;gap:2px}.sleep-z-1{font-size:9px}.sleep-z-2{font-size:11px;transform:translateY(-2px)}.sleep-z-3{font-size:13px;transform:translateY(-4px)}}.theme-group-note{font-size:11px;color:var(--muted);letter-spacing:.02em}.theme-button.is-unlockable{justify-content:space-between}.theme-lock{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-family:var(--font-heading);color:var(--muted)}.theme-lock-icon{display:inline-flex;align-items:center;justify-content:center}.theme-lock-icon svg{width:16px;height:16px;display:block}:root[data-theme] .theme-button.is-active .theme-label,:root[data-theme] .theme-button.is-random .theme-label{color:var(--ink)}:root[data-theme] .theme-button.is-active .theme-lock,:root[data-theme] .theme-button.is-random .theme-lock{color:var(--ink)}@media (max-width: 720px){.theme-accordion.is-open{grid-template-columns:1fr}}.theme-label{text-align:left;flex:1;min-width:0;overflow-wrap:anywhere}.theme-label-hidden{display:none}.theme-swatches{display:inline-flex;gap:6px}.theme-swatches-night{align-items:center}.theme-swatches-night .theme-sleep{width:40px}.theme-swatch{width:1.5rem;height:1.5rem;border-radius:.55rem;border:1px solid rgba(0,0,0,.12);position:relative;overflow:hidden;background-clip:padding-box}.theme-swatch-random{background:conic-gradient(from 225deg,#f6d6a9 0% 35%,#c8e6c9 35%,#d6dacb 65%,#f8bcd1 65% 100%)}.label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-family:var(--font-heading)}.input{padding:8px 12px;border-radius:999px;border:1px solid var(--tile-border);background:#fff;font-size:16px;min-width:160px}.button{padding:8px 16px;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:#fff;letter-spacing:.04em;text-transform:uppercase;font-size:12px;cursor:pointer;font-family:var(--font-heading);display:inline-flex;align-items:center;justify-content:center}.button svg{width:20px;height:20px}.button:disabled{opacity:.5;cursor:not-allowed}.button.reset-spin svg{animation:reset-spin .42s ease;transform-origin:50% 50%}@keyframes reset-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button-ghost{background:transparent;color:var(--ink)}.button-ghost:hover{background:var(--accent);border-color:var(--accent);color:#fff}.button:hover{background:var(--accent);border-color:var(--accent)}.board-wrap{flex:1;overflow:hidden;padding:clamp(12px,3vw,24px);border-radius:clamp(18px,3vw,28px);background:var(--board-bg);box-shadow:0 20px 45px #00000014;position:relative;display:flex;flex-direction:column;align-items:center;width:min(100%,1100px);margin:0 auto}.board{--tile-gap: clamp(2px, .8vw, 6px);--tile-size-max: 68px;display:grid;gap:var(--tile-gap);margin:auto;width:100%;max-width:calc(var(--cols) * var(--tile-size-max) + (var(--cols) - 1) * var(--tile-gap));grid-template-columns:repeat(var(--cols),minmax(0,1fr));justify-content:center}@media (min-width: 600px){.board{--tile-size-max: 90px;max-width:min(calc(var(--cols) * var(--tile-size-max) + (var(--cols) - 1) * var(--tile-gap)),calc((100svh - 180px) / var(--rows) * var(--cols)))}}@media (min-width: 900px){.board{--tile-size-max: 100px}}.button-icon{height:40px;padding:0 14px;display:inline-flex;align-items:center;gap:8px;overflow:hidden}.button-icon svg{width:22px;height:22px}.tile{width:100%;aspect-ratio:1 / 1;height:auto;padding:0;border-radius:22%;border:none;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:transform .18s ease,background .22s ease;position:relative;touch-action:manipulation}.tile:hover{background:transparent}.tile-face{position:absolute;inset:0;border-radius:22%;background:var(--tile-bg);transition:background .32s ease;transform-origin:center;opacity:1;z-index:0;will-change:transform}.tile:hover .tile-face{background:var(--tile-hover)}.tile.tile-flash,.tile.tile-flash:hover{box-shadow:none}.tile-blank{background:transparent;border-color:transparent;cursor:default;box-shadow:none}.tile-blank:hover{transform:none;box-shadow:none;background:transparent}.tile-blank .tile-face{display:block;background:#ffffff1a}.tile-blank:hover .tile-face{background:#ffffff1a}.tile-graphic{width:92%;height:92%;display:grid;place-items:center;transition:transform .2s ease;position:relative;z-index:1;will-change:transform}.tile-stroke{color:var(--ink);transition:color .22s ease;opacity:.8}.tile-stroke-complete{color:var(--loop);stroke-width:10;filter:none;opacity:1}.tile-flash{animation:tile-flash .9s ease-out}@keyframes tile-flash{0%{transform:scale(1)}30%{transform:scale(1.02)}to{transform:scale(1)}}.tile-complete{background:transparent;box-shadow:none}.tile-complete:hover{background:transparent}.tile-complete .tile-face,.tile-complete:hover .tile-face{background:var(--loop-soft)}.tile-pulse .tile-face{animation:tile-pulse .26s ease;animation-delay:var(--pulse-delay, 0ms);transition-delay:var(--pulse-delay, 0ms)}@keyframes tile-pulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.tile-wave .tile-face{animation:tile-wave .9s cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--wave-delay, 0ms)}.tile-complete.tile-wave .tile-face{animation-name:tile-wave-complete}.tile-blank.tile-wave .tile-face{animation-name:tile-wave-blank;animation-duration:1s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}@keyframes tile-wave{0%{transform:scale(1);background:var(--tile-bg)}40%{transform:scale(1.06);background:var(--tile-bg)}to{transform:scale(1);background:var(--tile-solved-bg)}}@keyframes tile-wave-blank{0%{transform:scale(.96);background:#ffffff14;opacity:.45}45%{transform:scale(1.03);background:#ffffff52;opacity:.85}to{transform:scale(1);background:var(--tile-solved-bg);opacity:1}}@keyframes tile-wave-complete{0%{transform:scale(1);background:var(--loop-soft)}40%{transform:scale(1.06);background:var(--loop-soft)}to{transform:scale(1);background:var(--tile-solved-bg)}}.app.is-solved .tile-face{opacity:1;background:var(--tile-solved-bg)}.status-text{margin:0;text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-family:var(--font-heading)}.sound-panel{display:flex;flex-direction:column;gap:10px;padding-top:10px}.sound-panel-title{margin:0;text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-family:var(--font-heading)}.sound-panel-grid{display:grid;grid-template-columns:repeat(10,minmax(32px,1fr));gap:8px;justify-content:center}.sound-button{padding:8px 0;border-radius:12px;border:1px solid var(--tile-border);background:#fffc;color:var(--ink);font-size:12px;cursor:pointer;transition:transform .12s ease,box-shadow .16s ease}.sound-button.is-selected{border-color:var(--ink);background:#1e1b1714}.sound-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0000001f}.modal-backdrop{position:fixed;inset:0;background:#12100e66;display:grid;place-items:center;padding:24px;z-index:200}.modal{--card-radius: 20px;--card-pad: 24px;background:#fffdf9;border-radius:var(--card-radius);padding:var(--card-pad);max-width:520px;width:100%;box-shadow:0 20px 50px #0003;display:flex;flex-direction:column;gap:14px}.settings-panel{background:var(--board-bg);border-radius:20px;padding:24px;max-width:720px;width:min(100%,720px);margin:0 auto;box-shadow:0 20px 40px #00000014;display:flex;flex-direction:column;gap:16px}.floating-controls{--controls-top-pad: clamp(20px, 4vw, 36px);--controls-gap: 18px;display:flex;flex-direction:column;gap:var(--controls-gap);width:min(100%,720px);margin:0 auto;padding-top:var(--controls-top-pad)}.settings-title{margin:8px 0 10px;font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-family:var(--font-heading);color:var(--muted);text-align:center}.home-bottom .floating-controls{margin-top:14px}.settings-title{margin:0;font-size:20px;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-heading)}.settings-section{display:flex;flex-direction:column;gap:10px}.player-card{--card-radius: 20px;--card-pad: 18px;background:var(--board-bg);border-radius:var(--card-radius);padding:var(--card-pad);display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 45px #00000014}.player-card.is-subcard{--subcard-pad: 12px;--card-pad: var(--subcard-pad);background:#ffffff73;box-shadow:none;padding:var(--subcard-pad);border-radius:calc(var(--card-radius) - var(--subcard-pad))}.player-main{display:flex;flex-direction:column;gap:12px}.player-info{display:flex;flex-direction:column;gap:6px;min-width:0}.player-label{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);font-family:var(--font-heading)}.player-title{margin:0;font-size:18px;font-weight:600;overflow-wrap:anywhere}.player-controls{display:flex;align-items:center;justify-content:center;gap:12px}@media (min-width: 900px){.player-card{gap:14px}.player-main{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}}.player-button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(30,27,23,.15);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.credits-footer{text-align:center;font-size:12px;color:var(--muted);font-family:var(--font-body);display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}.player-card .credits-footer{text-align:left;font-size:11px;gap:4px;margin-top:2px}.player-button svg{width:20px;height:20px}.player-button-main{width:54px;height:54px;background:var(--ink);color:#fff;border:none;position:relative}.player-button-main.is-loading svg{opacity:.25}.player-button-main.is-loading:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;border-top-color:transparent;animation:player-spin .7s linear infinite}.player-button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.player-button.player-button-main:hover{background:#fff;color:var(--ink)}@keyframes player-spin{to{transform:rotate(360deg)}}.modal-title{margin:0;font-size:20px;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-heading)}.modal-subtitle{margin:0;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.modal-subtitle-spaced{margin:12px 0 10px}.modal-section+.modal-section{margin-top:14px}.theme-panel{display:flex;flex-direction:column;gap:10px}.theme-panel-card{--card-radius: 20px;--card-pad: 16px;background:var(--board-bg);border-radius:var(--card-radius);padding:var(--card-pad);display:flex;flex-direction:column;gap:10px;box-shadow:0 20px 45px #00000014}.sounds-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media (max-width: 640px){.sounds-controls{grid-template-columns:1fr}}.sound-pill{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-radius:999px;border:none;background:#fff6;color:var(--ink);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;font-size:11px;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease;min-width:0;flex-wrap:wrap}.sound-pill:hover{transform:translateY(-1px);background:#fff9}.sound-pill.is-muted{opacity:.55}.sound-pill-label{font-size:11px;min-width:0;overflow-wrap:anywhere}.sound-meter{display:inline-flex;gap:6px;align-items:center}.sound-dot{width:10.5px;height:10.5px;border-radius:999px;background:#1e1b172e}.sound-dot.is-on{background:var(--accent)}.sounds-card.theme-panel-card{padding-top:14px;padding-bottom:16px}:root[data-theme] .board-wrap,:root[data-theme] .theme-panel-card,:root[data-theme] .player-card,:root[data-theme] .settings-panel,:root[data-theme] .mode-card,:root[data-theme] .success-card,:root[data-theme] .install-banner,:root[data-theme] .modal,:root[data-theme] .pwa-toast,:root[data-theme] .builder-panel{background:var(--surface-bg, var(--board-bg));box-shadow:var(--surface-shadow, 0 20px 45px rgba(0, 0, 0, .08));border:var(--surface-border, none);-webkit-backdrop-filter:var(--surface-backdrop, none);backdrop-filter:var(--surface-backdrop, none)}:root[data-theme] .theme-summary,:root[data-theme] .sound-pill,:root[data-theme] .theme-button,:root[data-theme] .input,:root[data-theme] .builder-number,:root[data-theme] .builder-seed-code,:root[data-theme] .builder-level-seed,:root[data-theme] .builder-level-item,:root[data-theme] .builder-seed-input{background:var(--control-bg, var(--board-bg));border:var(--control-border, none);box-shadow:var(--control-shadow, none);-webkit-backdrop-filter:var(--control-backdrop, none);backdrop-filter:var(--control-backdrop, none)}:root[data-theme] .button,:root[data-theme] .button-ghost{background:var(--button-bg, var(--board-bg));border:var(--button-border, none);color:var(--button-text, var(--ink));box-shadow:var(--button-shadow, none)}:root[data-theme] .button:hover,:root[data-theme] .button-ghost:hover{background:var(--button-hover-bg, var(--button-bg, var(--board-bg)));border:var(--button-hover-border, var(--button-border, none));color:var(--button-hover-text, var(--button-text, var(--ink)));box-shadow:var(--button-hover-shadow, var(--button-shadow, none))}:root[data-theme] .theme-button:hover,:root[data-theme] .sound-pill:hover{background:var(--control-hover-bg, var(--control-bg, var(--board-bg)));color:var(--ink);transform:none;box-shadow:var(--control-hover-shadow, var(--control-shadow, none))}:root[data-theme] .theme-button.is-active,:root[data-theme] .theme-button.is-random{background:var(--control-active-bg, var(--control-bg, var(--board-bg)));color:var(--ink);box-shadow:var(--control-active-shadow, var(--control-shadow, none)),0 0 0 1px var(--active-outline, transparent),0 0 18px var(--active-glow, transparent)}:root[data-theme] .player-button{background:var(--button-bg, var(--board-bg));border:var(--button-border, none);color:var(--button-text, var(--ink));box-shadow:var(--button-shadow, none)}:root[data-theme] .player-button:hover{background:var(--button-hover-bg, var(--button-bg, var(--board-bg)));border:var(--button-hover-border, var(--button-border, none));color:var(--button-hover-text, var(--button-text, var(--ink)));box-shadow:var(--button-hover-shadow, var(--button-shadow, none))}:root[data-theme] .player-button-main{background:var(--control-active-bg, var(--control-bg, var(--board-bg)));color:var(--control-active-text, var(--button-text, var(--ink)));box-shadow:var(--control-active-shadow, var(--control-shadow, none))}:root[data-theme] .player-card.is-subcard{background:var(--control-bg, var(--board-bg));box-shadow:var(--control-shadow, none)}:root[data-theme] .level-card{background:var(--control-bg, var(--board-bg));border:var(--control-border, none);box-shadow:var(--control-shadow, none)}:root[data-theme] .level-card[data-state=available]:hover,:root[data-theme] .level-card[data-state=complete]:hover{background:var(--control-hover-bg, var(--control-bg, var(--board-bg)));transform:translateY(0);box-shadow:var(--control-hover-shadow, var(--control-shadow, none))}:root[data-theme] .tile-face{background:var(--tile-face-bg, var(--tile-bg));box-shadow:var(--tile-face-shadow, none)}:root[data-theme] .tile:hover .tile-face{background:var(--tile-face-hover-bg, var(--tile-hover));box-shadow:var(--tile-face-hover-shadow, var(--tile-face-shadow, none))}:root[data-theme] .tile-blank .tile-face,:root[data-theme] .tile-blank:hover .tile-face{background:var(--tile-empty-bg, var(--board-bg));box-shadow:var(--tile-empty-shadow, none)}:root[data-theme=glass] .theme-button:focus-visible,:root[data-theme=glass] .sound-pill:focus-visible,:root[data-theme=glass] .button:focus-visible,:root[data-theme=glass] .button-ghost:focus-visible{box-shadow:0 0 0 2px #6ad5ff99,0 0 0 6px #a77bff66}:root[data-theme=brutalist] .theme-panel-card,:root[data-theme=brutalist] .player-card,:root[data-theme=brutalist] .board-wrap,:root[data-theme=brutalist] .settings-panel,:root[data-theme=brutalist] .mode-card,:root[data-theme=brutalist] .success-card,:root[data-theme=brutalist] .install-banner,:root[data-theme=brutalist] .modal,:root[data-theme=brutalist] .pwa-toast,:root[data-theme=brutalist] .builder-panel,:root[data-theme=brutalist] .theme-summary,:root[data-theme=brutalist] .sound-pill,:root[data-theme=brutalist] .theme-button,:root[data-theme=brutalist] .input,:root[data-theme=brutalist] .button,:root[data-theme=brutalist] .button-ghost,:root[data-theme=brutalist] .player-button{border-radius:6px}:root[data-theme=brutalist] .theme-button.is-active,:root[data-theme=brutalist] .theme-button.is-random{color:#fff}:root[data-theme=crt] body:before{background-image:linear-gradient(#07110d00 50%,#00000059 50%),linear-gradient(90deg,#21ff8a0f,#21ff8a05);background-size:100% 2px,3px 100%;opacity:.25;mix-blend-mode:screen}:root[data-theme=crt] .settings-title,:root[data-theme=crt] .theme-title,:root[data-theme=crt] .player-label,:root[data-theme=crt] .app-title{text-shadow:0 0 12px rgba(33,255,138,.35)}:root[data-theme=blueprint] body:before{background-image:linear-gradient(rgba(92,192,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(92,192,255,.08) 1px,transparent 1px);background-size:24px 24px;opacity:.35;mix-blend-mode:screen}:root[data-theme=synthwave] .settings-title,:root[data-theme=synthwave] .theme-title,:root[data-theme=synthwave] .player-label,:root[data-theme=synthwave] .app-title{text-shadow:0 0 18px rgba(255,95,219,.55),0 0 24px rgba(94,209,255,.45)}:root[data-theme=synthwave] .tile-stroke-complete{color:#b45cff}:root[data-theme=neumorphic] .tile-stroke-complete{color:#3a4653}.advanced-settings-btn{width:100%;justify-content:center}.build-footer{text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;letter-spacing:.12em;font-family:var(--font-heading);color:var(--ink);margin:8px 0 22px}.build-footer-studio{text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.2}.build-footer-studio-prefix{font-size:10px;opacity:.8}.build-footer-studio-name{font-size:13px;letter-spacing:.14em}.build-footer-privacy{all:unset;cursor:pointer;font-size:11px;letter-spacing:.08em;color:var(--ink);text-decoration:underline;text-underline-offset:2px;transition:color .15s}.build-footer-privacy:hover{color:var(--accent, var(--ink))}.theme-unlock-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.theme-unlock-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--ink) 5%,transparent)}.theme-unlock-swatch{width:18px;height:18px;border-radius:50%;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);flex-shrink:0}.theme-unlock-name{flex:1;font-family:var(--font-heading);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);min-width:0}.theme-unlock-input{width:5ch;padding:6px 8px;border-radius:8px;border:1px solid color-mix(in srgb,var(--muted) 40%,transparent);background:var(--board-bg);color:var(--ink);font-family:var(--font-heading);font-size:13px;text-align:center}.theme-unlock-input:focus{outline:none;border-color:var(--accent, var(--ink))}.theme-unlock-input::-webkit-outer-spin-button,.theme-unlock-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.game-settings-sheet .theme-panel-card,.game-settings-sheet .sounds-card{background:color-mix(in srgb,#1a1a1a 5%,transparent);box-shadow:none}.game-settings-sheet .player-card{background:color-mix(in srgb,#1a1a1a 8%,transparent);box-shadow:none}.game-status-row{display:flex;justify-content:center;width:min(100%,1100px);margin:0 auto;padding:4px 0 8px}.difficulty-inline-label{all:unset;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;border-radius:999px;background:color-mix(in srgb,var(--ink) 4%,transparent);color:var(--ink);transition:background .15s}.difficulty-inline-label:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.difficulty-inline-name{font-family:var(--font-heading);font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;line-height:1.1}.difficulty-inline-hint{font-size:9px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;opacity:.7;line-height:1}.board-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;flex-shrink:0;margin-bottom:clamp(12px,3vw,24px)}.board-toolbar-icon{width:38px;height:38px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.board-toolbar-icon svg{width:18px;height:18px}.board-toolbar-primary{font-family:var(--font-heading);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:8px 16px;border-radius:999px;white-space:nowrap;flex-shrink:0}.theme-fab{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));right:calc(20px + env(safe-area-inset-right,0px));width:52px;height:52px;border-radius:50%;border:0;background:var(--ink);color:var(--bg-start, #fff);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 25px #0000002e;z-index:100;transition:transform .15s}.theme-fab:hover{transform:scale(1.05)}.theme-fab:active{transform:scale(.95)}.theme-switcher-groups{display:flex;flex-direction:column;gap:14px}.theme-switcher-group{display:flex;flex-direction:column;gap:8px}.theme-switcher-group-label{margin:0;font-family:var(--font-heading);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.theme-switcher-grid{display:flex;flex-wrap:wrap;gap:8px}.theme-switcher-chip{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid transparent;white-space:nowrap;font-family:var(--font-heading);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);transition:background .15s,border-color .15s;flex-shrink:0}.theme-switcher-chip:hover{background:color-mix(in srgb,var(--ink) 12%,transparent)}.theme-switcher-chip.is-active{background:var(--ink);color:var(--bg-start, #fff);border-color:var(--ink)}.theme-switcher-unlock{align-self:flex-start}.theme-switcher-unlock.is-active{background:var(--ink);color:var(--bg-start, #fff);border-color:var(--ink)}.theme-switcher-chip-swatch{width:14px;height:14px;border-radius:50%;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);flex-shrink:0}.bottom-sheet-backdrop{align-items:flex-end!important;padding:0!important}.bottom-sheet{width:100%!important;max-width:720px!important;max-height:90vh;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;padding-top:12px!important;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))!important;overflow-y:auto;animation:bottom-sheet-slide-up .22s ease-out}@keyframes bottom-sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-handle{width:40px;height:4px;border-radius:999px;background:color-mix(in srgb,var(--ink) 22%,transparent);margin:0 auto 12px;flex-shrink:0}.level-picker-sheet .level-picker-banner{width:100%}.level-picker-sheet .level-grid{width:100%;padding:0}.level-picker-title{text-align:center}.level-picker-blurb{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:-4px auto 8px;font-size:12px;font-weight:400;color:var(--ink);opacity:.45;text-align:center;align-self:center}.level-picker-blurb .theme-lock-badge{flex:0 0 auto}.bottom-sheet-grab{position:relative;cursor:grab;touch-action:none}.bottom-sheet-grab:before{content:"";position:absolute;inset:-16px -40%}.bottom-sheet-grab:active{cursor:grabbing}.bottom-sheet .modal-actions{margin-top:16px;justify-content:center}.bottom-sheet .modal-actions .button{min-width:120px;justify-content:center}.difficulty-sheet .modal-title{text-align:center;margin-bottom:8px}.difficulty-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.difficulty-option{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;gap:14px;width:100%;padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--ink) 4%,transparent);border:1px solid transparent;transition:background .15s,border-color .15s,opacity .15s}.difficulty-option:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.difficulty-option.is-locked{opacity:.5}.difficulty-option.is-locked:hover{opacity:.7}.difficulty-option-icon{flex:0 0 auto;color:var(--ink);overflow:hidden}.difficulty-option-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.difficulty-option-label{font-family:var(--font-heading);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.difficulty-option-desc{font-size:13px;color:var(--muted);line-height:1.35}@keyframes ripple-flow{0%{transform:translate(0)}to{transform:translate(-8px)}}.ripple-wave{animation:ripple-flow 4s linear infinite}@media (prefers-reduced-motion: reduce){.ripple-wave{animation:none}}.app.is-perf .ripple-wave{animation:none}.difficulty-unlock-row{display:flex;justify-content:center;margin:10px 0 6px}.theme-accordion .difficulty-unlock-row{margin-top:32px;margin-bottom:12px}.difficulty-unlock-cta{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--ink);color:var(--bg-start, #fff);font-family:var(--font-heading);font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:transform .1s,opacity .15s}.difficulty-unlock-cta:hover{opacity:.9}.difficulty-unlock-cta:active{transform:scale(.97)}.difficulty-unlock-icon{flex:0 0 auto}.settings-sheet{gap:0!important;padding:20px!important}.settings-sheet .modal-title{margin-bottom:16px}.settings-sheet .theme-panel-card,:root[data-theme] .settings-sheet .theme-panel-card{background:none;border-radius:0;box-shadow:none;padding:14px 4px;border:none;border-bottom:1px solid color-mix(in srgb,var(--muted) 15%,transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.settings-sheet .theme-panel-card:last-of-type,:root[data-theme] .settings-sheet .theme-panel-card:last-of-type{border-bottom:none}.settings-sheet .perf-row{flex-wrap:nowrap}.settings-sheet .purchases-actions{flex-direction:column;align-items:flex-end}.settings-sheet .perf-label{font-size:12px;letter-spacing:.15em}.settings-sheet .modal-actions{margin-top:16px;justify-content:center}.settings-sheet .modal-actions .button{min-width:120px;justify-content:center}.settings-version{margin:8px 0 0;font-size:11px;color:var(--muted);text-align:center;letter-spacing:.02em;opacity:.6}.theme-title{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);font-family:var(--font-heading)}.theme-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.theme-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;border:none;border-radius:14px;padding:10px 12px;background:#fff6;flex-wrap:wrap;min-width:0}.dev-badge{position:fixed;top:12px;right:12px;z-index:99;font-family:var(--font-heading);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:#000000a6;color:#fff;border:1px solid rgba(255,255,255,.3);pointer-events:none}.theme-summary .theme-label{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.05em}.theme-accordion{display:grid;gap:10px;max-height:0;opacity:0;overflow:hidden;pointer-events:none;visibility:hidden;margin:0;padding:0;transform:translateY(-6px);transition:max-height .26s ease,opacity .24s ease,transform .24s ease}.theme-accordion.is-open{max-height:2000px;opacity:1;transform:translateY(0);grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;pointer-events:auto;visibility:visible;margin-top:6px;padding-bottom:2px}@media (max-width: 768px){.theme-accordion.is-open{grid-template-columns:1fr}}.theme-toggle{align-self:flex-start}.theme-toggle-full{align-self:stretch;text-align:center;justify-content:center}.perf-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.perf-copy{display:flex;flex-direction:column;gap:4px}.perf-label{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);font-family:var(--font-heading)}.perf-note{margin:0;font-size:12px;color:var(--ink);opacity:.85}.perf-toggle.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.modal-list{display:flex;flex-direction:column;gap:8px}.modal-actions{display:flex;gap:10px;flex-wrap:wrap}.modal-item{margin:0;font-size:14px;color:var(--ink)}.privacy-backdrop{padding:0;align-items:flex-end}.privacy-sheet{width:100%;max-width:600px;max-height:92vh;background:#f2f2f7;border-radius:12px 12px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:privacy-slide-up .3s ease-out}@keyframes privacy-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.privacy-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:.5px solid rgba(60,60,67,.12);background:#f2f2f7;flex-shrink:0}.privacy-header-spacer{width:52px}.privacy-nav-title{margin:0;font-size:17px;font-weight:600;font-family:-apple-system,"SF Pro Text",var(--font-body);color:#000;letter-spacing:-.01em}.privacy-done{border:none;background:none;color:#007aff;font-size:17px;font-weight:600;font-family:-apple-system,"SF Pro Text",var(--font-body);padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;letter-spacing:-.01em}.privacy-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px 32px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}.privacy-updated{margin:16px 0 4px;font-size:13px;color:#8e8e93;text-align:center;font-family:-apple-system,"SF Pro Text",var(--font-body)}.privacy-group-header{margin:24px 0 6px 16px;font-size:13px;font-weight:400;color:#6d6d72;text-transform:uppercase;letter-spacing:.02em;font-family:-apple-system,"SF Pro Text",var(--font-body)}.privacy-group{background:#fff;border-radius:10px;overflow:hidden}.privacy-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;font-size:15px;line-height:1.4;color:#1c1c1e;font-family:-apple-system,"SF Pro Text",var(--font-body)}.privacy-row+.privacy-row{border-top:.5px solid rgba(60,60,67,.12);margin-left:16px;padding-left:0}.privacy-row-icon{flex-shrink:0;font-size:18px;line-height:1.35}.privacy-row+.privacy-row .privacy-row-icon{margin-left:-12px}.privacy-row-text{flex:1;min-width:0}.privacy-row-service{flex-direction:column;gap:2px}.privacy-row-label{font-weight:500;color:#1c1c1e}.privacy-row-detail{font-size:13px;color:#8e8e93;line-height:1.35}.paywall-title{text-align:center}.paywall-subtitle{text-align:center;margin-top:-10px}.paywall-features{list-style:none;margin:4px 0 8px;padding:0;display:flex;flex-direction:column;gap:10px}.paywall-features li{position:relative;padding-left:26px;font-size:15px;color:var(--ink);line-height:1.4}.paywall-features li:before{content:"";position:absolute;left:4px;top:.45em;width:14px;height:14px;border-radius:50%;background:color-mix(in srgb,var(--ink) 12%,transparent);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M3 6.2l2 2 4-4.4' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:center;background-size:10px 10px;color:var(--ink)}.paywall-actions{flex-direction:column;gap:8px;margin-top:4px}.paywall-button{width:100%;justify-content:center}.paywall-error{color:var(--accent-bad, #c33);text-align:center}.modal-link{color:var(--ink);text-decoration:underline}.footer-controls{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.footer-left,.footer-right{display:flex;align-items:center;gap:12px}@media (max-width: 900px){:root{--tile-size: min(14vw, 64px);--page-pad: 14px}.board-wrap{padding:12px}.sound-panel-grid{grid-template-columns:repeat(5,minmax(32px,1fr))}}@media (min-width: 900px){.board-wrap{padding:clamp(14px,2vw,22px) clamp(20px,4vw,48px)}}.app.is-perf .success-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}.app.is-perf{--board-bg: rgba(255, 255, 255, .3)}.app.is-perf .success-confetti{display:none}.app.is-perf .tile-pulse .tile-face,.app.is-perf .tile-wave .tile-face,.app.is-perf .tile-flash,.app.is-perf .button.reset-spin svg,.app.is-perf .success-card,.app.is-perf .success-icon,.app.is-perf .success-diamond{animation:none}.app.is-perf .success-card,.app.is-perf .success-icon{opacity:1}.app.is-perf .board-wrap,.app.is-perf .player-card,.app.is-perf .theme-panel-card,.app.is-perf .settings-panel,.app.is-perf .modal{box-shadow:none}.builder-subhead{margin:0;font-size:14px;color:var(--muted);text-align:center}.builder-layout{width:min(100%,1200px);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(16px,3vw,28px);align-items:start}.builder-board{width:100%}.builder-board-stack{width:100%;display:grid;gap:14px;justify-items:center}.builder-level-nav{display:inline-flex;align-items:center;gap:12px}.builder-level-title{pointer-events:none}.builder-level-title.is-missing{background:#b34a4f;border-color:#b34a4f;color:#fff;box-shadow:0 14px 26px #b34a4f4d}.builder-level-step{width:44px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}.builder-level-step svg{width:18px;height:18px}.builder-panel{background:var(--board-bg);border-radius:clamp(18px,3vw,24px);padding:clamp(16px,3vw,24px);box-shadow:0 18px 40px #00000014;display:flex;flex-direction:column;gap:28px}.builder-footer{margin-top:clamp(16px,3vw,28px)}.builder-map-panel{width:100%}.builder-section{display:flex;flex-direction:column;gap:10px}.builder-section-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.builder-chip{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-heading);color:var(--accent)}.builder-mode-toggle{display:inline-flex;border-radius:999px;background:#0000000f;padding:3px;gap:2px}.builder-mode-button{-webkit-appearance:none;appearance:none;border:none;background:transparent;padding:5px 12px;border-radius:999px;font-size:11px;font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;color:#0000008c;cursor:pointer;transition:background-color .15s ease,color .15s ease}.builder-mode-button:hover{color:#000c}.builder-mode-button.is-active{background:var(--accent);color:#fff}.builder-seed-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.builder-seed-code,.builder-level-seed{padding:6px 12px;border-radius:999px;border:1px solid var(--tile-border);background:#fffc;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.builder-seed-input{flex:1 1 220px}.builder-seed-input:focus{outline:none;box-shadow:0 0 0 2px #0b5bd333}.builder-note{margin:0;font-size:12px;color:var(--muted)}.builder-sliders{gap:14px}.builder-slider{display:grid;gap:6px}.builder-slider-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.builder-slider-value{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:8px}.builder-number{width:56px;padding:4px 6px;border-radius:10px;border:1px solid var(--tile-border);background:#fffc;font-size:12px;color:var(--ink)}.builder-number:focus{outline:none;box-shadow:0 0 0 2px #0b5bd333}.builder-value-suffix{white-space:nowrap}.builder-slider input[type=range]{width:100%;accent-color:var(--accent)}.builder-input-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.builder-input-label{font-size:11px;color:var(--muted)}.builder-slider-note{margin:0;font-size:11px;color:var(--muted)}.builder-assign-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.builder-levels-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.builder-count{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:2px;font-family:var(--font-heading);letter-spacing:.08em}.builder-count-input{all:unset;width:4ch;text-align:center;font-family:inherit;font-size:inherit;letter-spacing:inherit;color:var(--ink);border-bottom:1px solid color-mix(in srgb,var(--muted) 40%,transparent);padding:2px 4px;cursor:text}.builder-count-input:focus{border-bottom-color:var(--accent, var(--ink))}.builder-count-input::-webkit-outer-spin-button,.builder-count-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.builder-level-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-height:none;overflow:visible}.builder-level-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:16px;border:1px solid var(--tile-border);background:#ffffffb3}.builder-level-item.is-duplicate{border-color:#c0392b8c;box-shadow:0 0 0 2px #c0392b26}.builder-level-number{font-family:var(--font-heading);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.builder-level-seed{font-size:11px;color:var(--ink)}.builder-level-seed.is-invalid{border-color:#c0392b;box-shadow:0 0 0 2px #c0392b26}.builder-level-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.builder-export-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.builder-action{padding:6px 10px;font-size:10px;letter-spacing:.04em}.builder-error{margin:0 0 8px;padding:8px 10px;border-radius:12px;font-size:11px;color:#a63a3a;background:#c0392b1f;border:1px solid rgba(192,57,43,.35)}.builder-empty{margin:0;font-size:12px;color:var(--muted)}@media (max-width: 980px){.builder-layout{grid-template-columns:1fr}.builder-level-item{grid-template-columns:1fr;align-items:start}.builder-level-actions{justify-content:flex-start}.level-picker-banner{align-items:flex-start;flex-direction:column}}@media (max-width: 720px),(pointer: coarse){body:before{opacity:0}.success-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}.success-confetti{display:none}.board-wrap,.player-card,.theme-panel-card,.settings-panel,.modal{box-shadow:none}}@media (prefers-reduced-motion: reduce){.confetti-piece,.tile-pulse .tile-face,.tile-wave .tile-face,.tile-flash,.button.reset-spin svg,.success-card,.success-icon,.success-diamond,.player-button-main.is-loading:after{animation:none!important}.success-card,.success-icon{opacity:1}.tile,.tile-graphic,.tile-face{transition-duration:.01ms!important}}@media (max-width: 640px){.app-title{font-size:1.5rem;letter-spacing:.06em}.theme-summary{align-items:flex-start}.sound-pill{gap:8px}.sound-meter{margin-left:auto}}.purchases-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.paywall-inline-cta{margin-top:14px;align-self:center}.level-paywall-cta{all:unset;grid-column:1 / -1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;margin:8px auto;padding:14px 22px;border-radius:999px;background:var(--ink);color:var(--bg-start, #fff);font-family:var(--font-heading);font-size:13px;letter-spacing:.12em;text-transform:uppercase;transition:transform .1s,opacity .15s}.level-paywall-cta:hover{opacity:.9}.level-paywall-cta:active{transform:scale(.97)}.level-paywall-icon{flex:0 0 auto}
