:root{--coral-100: #ffe8e6;--coral-200: #ffc9c4;--coral-500: #f25c54;--coral-600: #e63946;--coral-700: #c42d39;--teal-500: #2a9d8f;--gold-500: #e9c46a;--violet-500: #7b6cf6;--green-500: #4c9f70;--blue-500: #4a90d9;--ink: #2b2d42;--ink-soft: #5a5d78;--paper: #fffdf9;--paper-sunk: #f5f1ea;--line: #e7e0d6;--success: #2a9d8f;--success-bg: #e4f4f1;--warn: #e9c46a;--danger: #e63946;--radius-sm: 10px;--radius: 16px;--radius-lg: 24px;--press-depth: 4px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--font-sans: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--shadow-card: 0 2px 0 var(--line);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--ink: #f4efe8;--ink-soft: #b9b3c4;--paper: #1c1b26;--paper-sunk: #14131c;--line: #33313f;--coral-100: #3a2422;--success-bg: #17352f;--shadow-card: 0 2px 0 var(--line)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--paper-sunk);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font-family:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.app-shell{max-width:560px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;background:var(--paper)}.screen-pad{padding:var(--space-5) var(--space-4)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:var(--radius);padding:var(--space-3) var(--space-5);font-size:var(--text-lg);font-weight:800;cursor:pointer;transition:transform .06s ease,filter .15s ease,opacity .15s ease;width:100%;color:#fff;background:var(--coral-500);box-shadow:0 var(--press-depth) 0 var(--coral-700)}.btn:active:not(:disabled){transform:translateY(var(--press-depth));box-shadow:0 0 0 var(--coral-700)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--success{background:var(--success);box-shadow:0 var(--press-depth) 0 #1f766b}.btn--ghost{background:transparent;color:var(--ink-soft);box-shadow:none;font-weight:700}.btn--muted{background:var(--paper-sunk);color:var(--ink);box-shadow:0 var(--press-depth) 0 var(--line)}.option{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-4);border-radius:var(--radius);border:2px solid var(--line);background:var(--paper);color:var(--ink);font-size:var(--text-base);font-weight:700;cursor:pointer;transition:border-color .12s ease,background .12s ease,transform .06s ease}.option:active:not(:disabled){transform:scale(.99)}.option[aria-pressed=true]{border-color:var(--coral-500);background:var(--coral-100)}.option--correct{border-color:var(--success);background:var(--success-bg)}.option--wrong{border-color:var(--danger);background:var(--coral-100)}.option:disabled{cursor:default}.tile{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:2px solid var(--line);background:var(--paper);color:var(--ink);font-weight:800;font-size:var(--text-lg);cursor:pointer;transition:transform .06s ease;min-height:52px}.tile:active:not(:disabled){transform:scale(.96)}.tile--placed{border-color:var(--coral-500);background:var(--coral-100)}.tile--ghost{opacity:.35;pointer-events:none}.slot-row,.tile-tray{display:flex;flex-wrap:wrap;gap:var(--space-2)}.slot{min-width:64px;min-height:52px;border-radius:var(--radius-sm);border:2px dashed var(--line);display:flex;align-items:center;justify-content:center}.feedback{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-weight:800}.feedback--correct{background:var(--success-bg);color:var(--success)}.feedback--wrong{background:var(--coral-100);color:var(--danger)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.anim-shake{animation:shake .35s ease}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}.anim-pop{animation:pop .25s ease}@keyframes ring-pulse{0%{box-shadow:0 0 0 0 var(--coral-200)}70%{box-shadow:0 0 0 10px #f25c5400}to{box-shadow:0 0 #f25c5400}}.pulse-ring{animation:ring-pulse 1.8s ease-out infinite}.cora{transform-origin:60px 88px}@keyframes cora-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}}.cora--idle{animation:cora-breathe 2.8s ease-in-out infinite}@keyframes cora-bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-2deg)}}.cora--happy{animation:cora-bob 1.1s ease-in-out infinite}@keyframes cora-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.cora--sad{animation:cora-wobble 2s ease-in-out infinite}@keyframes cora-celebrate{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(2px) scale(1.08,.92)}60%{transform:translateY(-8px) scale(.94,1.08)}}.cora--celebrate{animation:cora-celebrate .9s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.cora--idle,.cora--happy,.cora--sad,.cora--celebrate{animation:none}}.ekg-wipe{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--coral-500);display:flex;align-items:center;justify-content:center;pointer-events:none;animation:ekg-wipe-out .75s ease-in forwards}.ekg-wipe__line{width:80%;max-width:420px;height:80px}.ekg-wipe__line polyline{stroke-dasharray:200;stroke-dashoffset:200;animation:ekg-draw .5s ease-out forwards}@keyframes ekg-draw{to{stroke-dashoffset:0}}@keyframes ekg-wipe-out{0%,55%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media(prefers-reduced-motion:reduce){.ekg-wipe{display:none}}.stack{display:flex;flex-direction:column}.stack-2>*+*{margin-top:var(--space-2)}.stack-3>*+*{margin-top:var(--space-3)}.stack-4>*+*{margin-top:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3)}.spacer{flex:1}.muted{color:var(--ink-soft)}.center{text-align:center}
