:root{--blue-500:#0596d4;--blue-500-a90:#0596d4e6;--blue-500-a10:#0596d41a;--orange-500:#f90;--orange-500-a10:#ff99001a;--red-500:#f05555;--red-500-a10:#f055551a;--red-700:#c62828;--medal-gold:#d9a21b;--medal-gold-rim:#8a6410;--medal-silver:#adb5bd;--medal-silver-rim:#6c757d;--medal-bronze:#c87f4a;--medal-bronze-rim:#8a4f26;--medal-gold-light:#f2d27e;--medal-silver-light:#e1e6ea;--medal-bronze-light:#eab893;--seal-gold-mid:#e6be55;--seal-gold-core:#f6de9c;--flame-outer:#c9481a;--flame-core:var(--orange-500);--flame-inner:#ffda7a;--podium-ink-gold:#7d5a0e;--podium-ink-silver:#5a6169;--podium-ink-bronze:#7e4820;--white:#fff;--grey-100:#e9e9e9;--grey-200:#d9d9d9;--grey-500:#6b6b6b;--grey-700:#3c3c3c;--grey-850:#2c2c2c;--grey-900:#121212;--page-light:#f4f7fa;--panel-light:#e9edf1;--key-light:#fdfeff;--page-dark:#12171b;--panel-dark:#1b2126;--key-dark:#262d33;--panel-edge:#ffffffe6;--key-lift:0 1px 3px #14283c14;--cta-lift:0 3px 10px #0596d442;--dark-panel-edge:#ffffff21;--dark-key-lift:inset 0 1px 0 #ffffff29;--dark-cta-lift:0 3px 12px #00000073;--dark-surface:var(--page-dark);--dark-text:var(--grey-100);--dark-text-muted:#a8a8a8;--dark-tile-bg-selected:var(--grey-700);--dark-keypad-panel:var(--panel-dark);--dark-key-bg:var(--key-dark);--dark-hover-veil:#ffffff12;--dark-skeleton-sheen:#ffffff1a;--surface:var(--page-light);--text:var(--grey-700);--text-muted:var(--grey-500);--text-brand:var(--blue-500);--text-on-brand:var(--white);--text-expression:var(--orange-500);--link:var(--blue-500);--link-hover:var(--blue-500-a90);--border-brand:var(--blue-500);--surface-danger:var(--red-700);--text-danger:var(--red-700);--tile-bg-selected:var(--grey-200);--tile-outline-active:var(--orange-500);--skeleton-sheen:#ffffff73;--skeleton-sheen-width:120px;--keypad-panel:var(--panel-light);--key-bg:var(--key-light);--control-fg:var(--orange-500);--surface-edge:var(--panel-edge);--surface-key-lift:var(--key-lift);--surface-cta-lift:var(--cta-lift);--font-ui:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-wordmark:"Pacifico",cursive;--weight-thin:100;--weight-light:200;--weight-lighter:300;--weight-regular:400;--weight-medium:500;--weight-bold:700;--weight-black:900;--size-404:148px;--size-display:64px;--size-heading:48px;--size-title:24px;--size-label:20px;--size-nav:19px;--size-cta:19px;--size-body:16px;--size-caption:14px;--size-fine:12px;--size-verdict:18px;--size-mode-label:11px;--size-expression:min(6vw,22px);--line-height-expression:1.3;--expression-min-height:2.6em;--page-inline:28px;--tile-gap:8px;--tile-size:min(92px,calc(33.33333vw - var(--page-inline)*2/3 - var(--tile-gap)*2/3));--board-width:calc(var(--tile-size)*3 + var(--tile-gap)*2);--tile-ring:3px;--key-height:52px;--key-gap:8px;--submit-height:58px;--tap-target:44px;--new-puzzle-confirm-width:120px;--play-max-width:430px;--cta-max-width:450px;--cta-min-height:54px;--content-max-width:350px;--radius-none:0;--radius-key:12px;--radius-panel:26px;--radius-banner:10px;--radius-pill:30px;--duration-jiggle:240ms;--duration-sheet:240ms;--duration-press:120ms;--ease-standard:cubic-bezier(0.4,0,0.2,1);--state-disabled-opacity:0.38;--hover-veil:#0000000d;--press-scale:0.97;--scrim:#00000073;color-scheme:light}:root[data-theme=dark]{--surface:var(--dark-surface);--text:var(--dark-text);--text-muted:var(--dark-text-muted);--text-danger:var(--red-500);--podium-ink-gold:#e8c45a;--podium-ink-silver:#bec6cd;--podium-ink-bronze:#e0a177;--tile-bg-selected:var(--dark-tile-bg-selected);--keypad-panel:var(--dark-keypad-panel);--key-bg:var(--dark-key-bg);--hover-veil:var(--dark-hover-veil);--skeleton-sheen:var(--dark-skeleton-sheen);--surface-edge:var(--dark-panel-edge);--surface-key-lift:var(--dark-key-lift);--surface-cta-lift:var(--dark-cta-lift);color-scheme:dark}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--surface);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;min-height:100vh;min-height:100dvh;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}html[data-standalone=true],html[data-standalone=true] body{height:100%;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none;touch-action:manipulation}html[data-standalone=true] #root{height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{font-family:var(--font-ui);text-align:center}.column{display:flex;flex-direction:column}.row{display:flex;flex-direction:row}.karmel-visually-hidden{clip:rect(0 0 0 0);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@keyframes karmel-skeleton-sweep{0%{transform:translateX(0)}to{transform:translateX(100%)}}.karmel-skeleton{background:var(--tile-bg-selected);display:inline-block;overflow:hidden;position:relative}.karmel-skeleton:after{animation:karmel-skeleton-sweep 1.2s linear -.35s infinite;background-image:linear-gradient(90deg,#0000 0,var(--skeleton-sheen) 50%,#0000 100%);background-position:0 0;background-repeat:no-repeat;background-size:var(--skeleton-sheen-width) 100%;border-radius:inherit;bottom:0;content:"";left:calc(var(--skeleton-sheen-width)*-1);position:absolute;top:0;width:calc(100% + var(--skeleton-sheen-width))}@media (prefers-reduced-motion:reduce){.karmel-skeleton{opacity:.6}.karmel-skeleton:after{content:none}}.karmel-pressable,.karmel-pressable-text{transition:transform var(--duration-press) var(--ease-standard),box-shadow var(--duration-press) var(--ease-standard),background-color var(--duration-press) var(--ease-standard),color var(--duration-press) var(--ease-standard),opacity var(--duration-press) var(--ease-standard)}@media (hover:hover){.karmel-pressable:not(:disabled):hover{box-shadow:inset 0 0 0 999px var(--hover-veil)}.karmel-pressable-text:not(:disabled):hover{opacity:.72}}.karmel-key{box-shadow:var(--surface-key-lift)}.karmel-cta{box-shadow:var(--surface-cta-lift)}@media (hover:hover){.karmel-pressable.karmel-key:not(:disabled):hover{box-shadow:inset 0 0 0 999px var(--hover-veil),var(--surface-key-lift)}.karmel-pressable.karmel-cta:not(:disabled):hover{box-shadow:inset 0 0 0 999px var(--hover-veil),var(--surface-cta-lift)}}.karmel-cta:disabled,.karmel-key:disabled{box-shadow:none}.karmel-pressable-text:not(:disabled):active,.karmel-pressable:not(:disabled):active{transform:scale(var(--press-scale))}.karmel-pressable-text{-webkit-tap-highlight-color:transparent}.karmel-pressable-text:not(:disabled):active{opacity:.72}.karmel-pressable-text:focus-visible,.karmel-pressable:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}.karmel-prose{cursor:text;-webkit-user-select:text;user-select:text}.karmel-demo-overlay:focus-visible{outline:2px solid var(--blue-500);outline-offset:-4px}@media (prefers-reduced-motion:reduce){.karmel-pressable,.karmel-pressable-text{transition:none}.karmel-pressable-text:not(:disabled):active,.karmel-pressable:not(:disabled):active{transform:none}}.game-screen{--game-chrome-height:460px;--tile-size:max(44px,min(92px,calc(33.33333vw - var(--page-inline)*2/3 - var(--tile-gap)*2/3),calc(100dvh/3 - var(--game-chrome-height)/3 - var(--tile-gap)*2/3)));--board-width:calc(var(--tile-size)*3 + var(--tile-gap)*2);align-items:center;background-color:var(--surface);color:var(--text);display:flex;flex-direction:column;font-family:var(--font-ui);min-height:100vh;min-height:100dvh;text-align:center}html[data-standalone=true] .game-screen{height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none}html[data-standalone=true] .game-topbar{padding-top:calc(14px + env(safe-area-inset-top, 0px))}html[data-standalone=true] .static-page{padding-top:calc(6vh + env(safe-area-inset-top, 0px))}.keypad-panel{background:var(--keypad-panel);border-radius:var(--radius-panel) var(--radius-panel) 0 0;border-top:1px solid var(--surface-edge);box-sizing:border-box;margin-top:auto;padding:15px 14px 28px;width:100%}.game-screen .keypad-panel{margin-inline:auto;max-width:var(--play-max-width)}@media (min-width:430px){.game-screen .keypad-panel{border-left:1px solid var(--surface-edge);border-right:1px solid var(--surface-edge)}}.karmel-collapsible{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--duration-sheet) var(--ease-standard),opacity var(--duration-sheet) var(--ease-standard)}.karmel-collapsible[data-open=true]{grid-template-rows:1fr;opacity:1}.karmel-collapsible>*{min-height:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.karmel-collapsible{transition:none}}.game-topbar{align-items:center;box-sizing:border-box;display:grid;grid-template-columns:1fr auto 1fr;padding:14px 12px 0;width:100%}.game-home-link{color:var(--text-brand);font-family:var(--font-wordmark);font-size:var(--size-nav);font-weight:var(--weight-medium);gap:6px;justify-self:start;padding:0 4px;text-transform:none}.game-board-button,.game-home-link,.game-new-button{align-items:center;background:none;border:none;cursor:pointer;display:flex;height:var(--tap-target)}.game-board-button,.game-new-button{border-radius:calc(var(--tap-target)/2);justify-content:center;padding:0;position:relative;width:var(--tap-target)}.game-board-button{color:var(--blue-500);transition:transform var(--duration-press) var(--ease-standard),background-color var(--duration-press) var(--ease-standard)}.game-new-button{background:none;color:var(--orange-500);transition:width var(--duration-sheet) var(--ease-standard),background-color var(--duration-sheet) var(--ease-standard),color var(--duration-sheet) var(--ease-standard),transform var(--duration-press) var(--ease-standard)}.game-board-button-locked{color:var(--text-muted);cursor:default;opacity:var(--state-disabled-opacity)}.game-board-note{animation:karmel-note-in var(--duration-sheet) var(--ease-standard);background:var(--keypad-panel);border-radius:var(--radius-banner);box-shadow:0 6px 18px #00000029;color:var(--text-muted);font-family:var(--font-ui);font-size:var(--size-fine);font-weight:var(--weight-bold);line-height:1.35;max-width:62vw;padding:7px 11px;position:absolute;right:0;text-align:left;top:calc(100% + 6px);width:-webkit-max-content;width:max-content;z-index:5}@keyframes karmel-note-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.game-board-note{animation:none}}@media (hover:hover){.game-board-button:not(.game-board-button-locked):not(:disabled):hover{background:var(--blue-500-a10);box-shadow:none}.game-new-button:not(.game-new-button-confirming):not(:disabled):hover{box-shadow:inset 0 0 0 999px var(--orange-500-a10),var(--surface-key-lift)}.game-board-button-locked:not(:disabled):hover{background:none;box-shadow:none}}.game-board-button:not(.game-board-button-locked):not(:disabled):active{background:var(--blue-500-a10)}.game-board-button-locked:not(:disabled):active{background:none;transform:none}.game-new-button:not(.game-new-button-confirming):not(:disabled):active{box-shadow:inset 0 0 0 999px var(--orange-500-a10),var(--surface-key-lift)}.game-new-button-confirming{background:var(--red-500-a10);color:var(--text-danger);width:var(--new-puzzle-confirm-width)}.game-new-button-face{align-items:center;display:flex;font-family:var(--font-ui);font-size:13px;font-weight:var(--weight-black);inset:0;justify-content:center;position:absolute;transition:opacity var(--duration-sheet) var(--ease-standard);white-space:nowrap}.game-new-button-face-hidden{opacity:0}@media (prefers-reduced-motion:reduce){.game-board-button,.game-new-button,.game-new-button-face{transition:none}}.game-target-slot{margin-top:10px}.game-mode-label{color:var(--text-muted);font-size:var(--size-mode-label);font-weight:var(--weight-black);letter-spacing:.16em;white-space:nowrap}.game-topbar-title{align-items:center;display:flex;justify-content:center;min-width:0}.game-topbar-trailing{align-items:center;display:flex;gap:8px;justify-self:end;position:relative}.home-screen,.static-page{box-sizing:border-box;min-height:100vh;min-height:100dvh}html[data-standalone=true] .home-screen,html[data-standalone=true] .static-page{height:100vh;height:100dvh}html[data-standalone=true] .home-screen{overflow:hidden;overscroll-behavior:none}.static-page{align-items:center;color:var(--text);display:flex;flex-direction:column;font-family:var(--font-ui);padding:6vh var(--page-inline) 0;text-align:center}html[data-standalone=true] .static-page{-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}.page-bottom{align-items:center;display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-bottom:24px;padding-top:20px;width:100%}.page-heading{color:var(--text-brand);font-family:var(--font-ui);font-size:var(--size-heading);font-weight:var(--weight-black);line-height:1.1;margin:0;text-align:center}.game-verdict{align-items:center;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;min-height:74px;padding:0 var(--page-inline);width:100%}.karmel-expression{transition:font-size var(--duration-press) var(--ease-standard)}@media (prefers-reduced-motion:reduce){.karmel-expression{transition:none}}@keyframes karmel-jiggle{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}45%{transform:translateX(5px)}70%{transform:translateX(-3px)}}.karmel-tile-reject{animation:karmel-jiggle var(--duration-jiggle) var(--ease-standard);border-color:var(--red-500)!important}@media (prefers-reduced-motion:reduce){.karmel-jiggle{animation:none!important}.karmel-tile-reject{animation:none}}@keyframes karmel-tile-land{0%{background:#0000;border-color:#0000;opacity:0;transform:scale(.4)}55%{background:var(--tile-bg-selected);border-color:var(--orange-500);opacity:1;transform:scale(1.08)}to{background:var(--tile-bg-selected);border-color:#0000;opacity:1;transform:scale(1)}}.karmel-teaser-tile{animation:karmel-tile-land .42s var(--ease-standard) forwards;border:var(--tile-ring) solid #0000;border-radius:var(--radius-none);box-sizing:border-box;opacity:0;transform:scale(.4)}@keyframes karmel-tile-land-hold{0%{background:#0000;border-color:#0000;opacity:0;transform:scale(.4)}55%{background:var(--tile-bg-selected);border-color:var(--orange-500);opacity:1;transform:scale(1.08)}to{background:var(--tile-bg-selected);border-color:var(--orange-500);opacity:1;transform:scale(1)}}.karmel-teaser-tile-final{animation-name:karmel-tile-land-hold}@media (prefers-reduced-motion:reduce){.karmel-teaser-tile{animation:none;background:var(--tile-bg-selected);border-color:#0000;opacity:1;transform:none}.karmel-teaser-tile-final{border-color:var(--orange-500)}}@keyframes karmel-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes karmel-sheet-down{to{transform:translateY(110%)}}@keyframes karmel-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes karmel-backdrop-out{to{opacity:0}}.karmel-sheet-backdrop,.karmel-sheet-backdrop-closing{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#00000061}.karmel-sheet-backdrop{animation:karmel-backdrop-in var(--duration-sheet) var(--ease-standard)}.karmel-sheet-backdrop-closing{animation:karmel-backdrop-out var(--duration-sheet) var(--ease-standard) forwards}.karmel-sheet{animation:karmel-sheet-up var(--duration-sheet) var(--ease-standard)}.karmel-sheet-closing{animation:karmel-sheet-down var(--duration-sheet) var(--ease-standard) forwards}@media (prefers-reduced-motion:reduce){.karmel-sheet,.karmel-sheet-backdrop,.karmel-sheet-backdrop-closing,.karmel-sheet-closing{animation:none}.karmel-sheet-backdrop-closing,.karmel-sheet-closing{visibility:hidden}}.karmel-tile-reveal{animation:karmel-tile-land .42s var(--ease-standard) both}@media (prefers-reduced-motion:reduce){.karmel-tile-reveal{animation:none}}@keyframes karmel-toast-in{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.karmel-toast{animation:karmel-toast-in var(--duration-sheet) var(--ease-standard)}@media (prefers-reduced-motion:reduce){.karmel-toast{animation:none}}