@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/vt323-latin-400-normal-wDgJuOC9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:OpenDyslexic;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/OpenDyslexic-Regular-lDhYFwX0.woff2) format("woff2")}@font-face{font-family:OpenDyslexic;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/OpenDyslexic-Bold---3zZrhu.woff2) format("woff2")}:root{--shell-base: #E8650A;--shell-shadow: #C4500A;--shell-highlight: #FF8C3A;--bg: #1A0A2E;--lcd-bg: #0A0A0A;--lcd-text: #6EFF6E;--lcd-text-dim: #3A8A3A;--lcd-flash-text: #FFFFFF;--key-face: #F5E6D0;--key-side: #D4C4A8;--key-pressed-face: #E0D0B8;--key-text: #2A1A0A;--color-correct: #6EFF6E;--color-miss: #FF8C3A;--color-reveal: #FFD700;--focus-inner: #1A0A2E;--focus-outer: #FFFFFF;--font-lcd: "VT323", "Courier New", monospace;--font-ui: "Nunito", "Fredoka One", sans-serif;--font-dyslexia: "OpenDyslexic", "Lexend", "Comic Sans MS", system-ui, sans-serif;--text-lcd-min: clamp(1.5rem, 5vw, 2.5rem);--text-body-min: 1rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--key-size: 3rem;--key-radius: .375rem;--t-key-press: 80ms;--t-shake: .3s;--t-bounce: .6s;--t-reveal-gap: .12s;--t-fade: .2s;--t-flash: .15s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{background-color:var(--bg);font-family:var(--font-ui);font-size:var(--text-body-min);color:#fff;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow-x:hidden;overflow-y:auto}html[data-dyslexia-font=true] body,html[data-dyslexia-font=true] button:not(.key):not(.lcd-text),html[data-dyslexia-font=true] .shell-settings,html[data-dyslexia-font=true] .replay-btn,html[data-dyslexia-font=true] .mode-selector{font-family:var(--font-dyslexia);letter-spacing:.05em;word-spacing:.1em}:focus-visible{outline:2px solid var(--focus-inner);outline-offset:0;box-shadow:0 0 0 5px var(--focus-outer)}button{cursor:pointer;border:none;background:none;font-family:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html[data-reduced-motion=true] *,html[data-reduced-motion=true] *:before,html[data-reduced-motion=true] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.bg-particles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.bg-particles__dot{position:absolute;width:4px;height:4px;border-radius:50%;background:#ff8c3a40;animation:float var(--float-dur, 8s) var(--float-delay, 0s) ease-in-out infinite alternate}@keyframes float{0%{transform:translateY(0) translate(0)}to{transform:translateY(-20px) translate(10px)}}.toy-screen{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-md);width:100%;max-width:480px}.toy-shell{background:var(--shell-base);border-radius:1.5rem;padding:var(--space-lg) var(--space-lg) var(--space-xl);width:100%;box-shadow:0 2px 0 var(--shell-highlight) inset,0 -4px 0 var(--shell-shadow) inset,4px 0 0 var(--shell-highlight) inset,-4px 0 0 var(--shell-shadow) inset,0 8px 24px #0009,0 2px 4px #0006;display:flex;flex-direction:column;gap:var(--space-md)}.shell-settings{display:flex;justify-content:flex-end;gap:var(--space-sm)}.shell-icon-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--shell-base);color:#1a0a2e;font-size:1.2rem;transition:background var(--t-key-press) ease-in-out}.shell-icon-btn:hover,.shell-icon-btn:focus-visible{background:var(--shell-highlight);color:#1a0a2e}.shell-icon-btn[aria-pressed=true]{background:#1a0a2e;color:var(--lcd-text)}.lcd-strip{background:var(--lcd-bg);border-radius:.75rem;padding:var(--space-md) var(--space-lg);min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);box-shadow:0 2px 4px #000c inset,0 0 0 2px #000;position:relative;overflow:hidden}.lcd-strip:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.04) 0px,rgba(255,255,255,.04) 1px,transparent 1px,transparent 3px);pointer-events:none;border-radius:inherit}.lcd-text{font-family:var(--font-lcd);font-size:var(--text-lcd-min);color:var(--lcd-text);letter-spacing:.1em;text-transform:uppercase;text-align:center;line-height:1.2;position:relative;z-index:1}.lcd-text--dim{color:var(--lcd-text-dim);font-size:1rem}.lcd-text--flash{animation:lcd-flash var(--t-flash) ease-out forwards}@keyframes lcd-flash{0%{color:var(--lcd-flash-text)}to{color:var(--lcd-text)}}.lcd-attempt--shake{animation:lcd-shake var(--t-shake) ease-in-out}@keyframes lcd-shake{0%{transform:translate(0)}16%{transform:translate(-6px)}33%{transform:translate(6px)}50%{transform:translate(-4px)}66%{transform:translate(4px)}83%{transform:translate(-2px)}to{transform:translate(0)}}.ghost--bounce{animation:ghost-bounce var(--t-bounce) ease-in-out}@keyframes ghost-bounce{0%{transform:translateY(0)}20%{transform:translateY(-8px)}40%{transform:translateY(0)}60%{transform:translateY(-5px)}80%{transform:translateY(0)}90%{transform:translateY(-2px)}to{transform:translateY(0)}}.ghost--wobble{animation:ghost-wobble .3s ease-in-out}@keyframes ghost-wobble{0%{transform:rotate(0)}25%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}75%{transform:rotate(-3deg)}to{transform:rotate(0)}}.replay-btn{font-family:var(--font-ui);font-size:.875rem;font-weight:700;color:var(--key-text);background:var(--key-face);border-radius:2rem;padding:var(--space-xs) var(--space-md);min-height:44px;min-width:44px;display:flex;align-items:center;gap:var(--space-xs);box-shadow:0 3px 0 var(--key-side);transition:transform var(--t-key-press) ease-in-out,box-shadow var(--t-key-press) ease-in-out;align-self:center}.replay-btn:hover{background:var(--key-pressed-face)}.replay-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--key-side)}.replay-btn[hidden]{display:none}.splash{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);z-index:100;cursor:pointer;animation:splash-fade-in .4s ease-out}@keyframes splash-fade-in{0%{opacity:0}to{opacity:1}}.splash__title{font-family:var(--font-lcd);font-size:clamp(2.5rem,10vw,4rem);color:var(--lcd-text);letter-spacing:.15em;text-transform:uppercase;text-shadow:0 0 20px var(--lcd-text)}.splash__ghost{font-size:4rem}.splash__prompt{font-family:var(--font-ui);font-size:1.1rem;color:#ffffffb3;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@media(max-width:420px){.toy-screen{padding-left:8px;padding-right:8px}.toy-shell{padding-left:var(--space-sm);padding-right:var(--space-sm)}}.mode-selector{display:flex;gap:var(--space-sm);justify-content:center;width:100%}.mode-btn{flex:1;font-family:var(--font-ui);font-size:.9rem;font-weight:700;padding:var(--space-sm) var(--space-md);border-radius:.75rem;min-height:44px;color:var(--key-text);background:var(--key-face);box-shadow:0 3px 0 var(--key-side);transition:background var(--t-key-press) ease-in-out,transform var(--t-key-press) ease-in-out,box-shadow var(--t-key-press) ease-in-out}.mode-btn:hover{background:var(--key-pressed-face)}.mode-btn[aria-pressed=true]{background:#1a0a2e;color:var(--lcd-text);box-shadow:0 1px #000;transform:translateY(2px)}.keypad{display:flex;flex-direction:column;align-items:stretch;gap:clamp(2px,.5vw,var(--space-xs));width:100%}.keypad__row{display:grid;grid-template-columns:repeat(var(--row-cols, 7),1fr);gap:clamp(2px,.5vw,var(--space-xs));width:100%;justify-items:stretch}.key{width:100%;min-height:44px;border-radius:var(--key-radius);font-family:var(--font-ui);font-size:clamp(.75rem,2.2vw,1rem);font-weight:700;color:var(--key-text);text-transform:uppercase;background:var(--key-face);box-shadow:0 4px 0 var(--key-side),0 0 0 1px #0003;display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;transition:transform var(--t-key-press) ease-in-out,box-shadow var(--t-key-press) ease-in-out,background var(--t-key-press) ease-in-out}@media(min-width:480px){.key{min-height:48px}}.key.pressed,.key:active{transform:translateY(2px);box-shadow:0 2px 0 var(--key-side),0 0 0 1px #0003;background:var(--key-pressed-face)}.key:focus-visible{outline:2px solid var(--focus-inner);outline-offset:0;box-shadow:0 4px 0 var(--key-side),0 0 0 5px var(--focus-outer)}.key--wide{font-size:clamp(.7rem,2vw,.875rem)}@media(max-width:420px){.keypad,.keypad__row{gap:4px}}.screen{width:100%;display:flex;justify-content:center}.screen--fade{animation:screen-fade-in var(--t-fade) ease-out}@keyframes screen-fade-in{0%{opacity:0}to{opacity:1}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.big-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:48px;min-width:48px;padding:var(--space-sm) var(--space-md);border-radius:.75rem;font-family:var(--font-ui);font-size:1rem;font-weight:700;line-height:1.2;color:var(--key-text);background:var(--key-face);box-shadow:0 3px 0 var(--key-side);cursor:pointer;transition:transform var(--t-key-press) ease-in-out,box-shadow var(--t-key-press) ease-in-out,background var(--t-key-press) ease-in-out}.big-btn:hover{background:var(--key-pressed-face)}.big-btn:active,.big-btn.is-held{transform:translateY(2px);box-shadow:0 1px 0 var(--key-side)}.big-btn--primary{background:#1a0a2e;color:var(--lcd-text);box-shadow:0 3px #000}.big-btn--primary:hover{background:#2a1a40}.big-btn:disabled,.big-btn[disabled]{cursor:not-allowed;background:#e6dccb;color:#4a3a2a;box-shadow:none;border:2px dashed #4A3A2A}.btn-icon{font-size:1.25rem;line-height:1}.big-btn--file{position:relative}.big-btn--file:focus-within{outline:2px solid var(--focus-inner);outline-offset:0;box-shadow:0 3px 0 var(--key-side),0 0 0 5px var(--focus-outer)}.link-btn{min-height:48px;min-width:48px;padding:var(--space-sm) var(--space-xs);font-family:var(--font-ui);font-size:1rem;font-weight:700;color:var(--key-text);text-decoration:underline;text-underline-offset:3px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:50%;font-size:1.1rem;font-weight:700;color:var(--key-text);background:var(--key-face);box-shadow:0 2px 0 var(--key-side)}.icon-btn:hover{background:var(--key-pressed-face)}.text-input{min-height:48px;width:100%;padding:var(--space-sm) var(--space-md);border:2px solid #4A3A2A;border-radius:.5rem;background:#fffdf8;color:var(--key-text);font-family:var(--font-ui);font-size:1.125rem}.text-input:disabled{background:#e6dccb;cursor:not-allowed}.toy-area{display:flex;flex-direction:column;align-items:center;width:100%}.toy-bar{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-sm);width:100%;max-width:480px;padding:var(--space-md) var(--space-md) 0}.toy-mount{width:100%;display:flex;justify-content:center}.pack-picker{display:flex;flex-direction:column;gap:var(--space-xs);flex:1 1 200px}.pack-picker__label{font-size:1rem;font-weight:700;color:#fff}.pack-picker__select{min-height:48px;padding:var(--space-sm) var(--space-md);border-radius:.75rem;border:none;background:var(--key-face);color:var(--key-text);font-family:var(--font-ui);font-size:1rem;font-weight:700;box-shadow:0 3px 0 var(--key-side)}.parent-panel{position:relative;z-index:1;max-width:560px;margin:var(--space-md)}.panel-card{background:var(--key-face);color:var(--key-text);border-radius:1rem;padding:var(--space-lg);box-shadow:0 3px 0 var(--key-side) inset,0 2px 6px #00000059;display:flex;flex-direction:column;gap:var(--space-md)}.big-btn:focus-visible{box-shadow:0 3px 0 var(--key-side),0 0 0 5px var(--focus-outer)}.panel-title{font-family:var(--font-ui);font-size:1.5rem;font-weight:700;line-height:1.2}.panel-title:focus{outline:none}.panel-subtitle{font-size:1.25rem;font-weight:700}.panel-text,.notice{font-size:1rem;line-height:1.5}.notice{padding:var(--space-sm) var(--space-md);border-left:6px solid var(--shell-base);background:#fff6e8;border-radius:.5rem}.field-label{font-size:1rem;font-weight:700}.panel-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.status-line{min-height:1.5em;font-size:1rem;font-weight:700}.lcd-line{background:var(--lcd-bg);color:var(--lcd-text);font-family:var(--font-ui);font-size:1.0625rem;font-weight:700;line-height:1.4;padding:var(--space-sm) var(--space-md);border-radius:.5rem;box-shadow:0 2px 4px #000c inset}.lcd-line[hidden]{display:none}.lcd-line--busy:before{content:"👻 "}.pack-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.pack-list__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:.5rem;background:#fffdf8}.pack-list__name{flex:1 1 8rem;font-weight:700;overflow-wrap:anywhere}.parent-gate{display:flex;flex-direction:column;gap:var(--space-md)}.parent-gate__hold{min-height:64px;font-size:1.125rem;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.parent-gate__bar{height:16px;border-radius:8px;background:var(--lcd-bg);overflow:hidden;border:2px solid #4A3A2A}.parent-gate__fill{height:100%;width:0;background:var(--lcd-text);transition:width 50ms linear}.parent-gate__fill--steps{transition:none}.parent-gate__progress,.parent-gate__sum-msg{min-height:1.5em;font-weight:700}.parent-gate__sum{display:flex;flex-direction:column;gap:var(--space-sm)}.parent-gate__sum[hidden]{display:none}.parent-gate__sum-label{font-size:1.125rem;font-weight:700}.word-review{display:flex;flex-direction:column;gap:var(--space-sm)}.word-review__list{list-style:none;display:flex;flex-direction:column;gap:var(--space-xs);max-height:50vh;overflow-y:auto;padding:2px 6px 2px 2px}.word-review__row{display:flex;align-items:center;gap:var(--space-sm)}.word-review__add{display:flex;gap:var(--space-sm)}.word-review__full[hidden],.lcd-hint[hidden]{display:none}@media(max-width:420px){.panel-card{padding:var(--space-md)}.parent-panel{margin:var(--space-sm)}}html[data-dyslexia-font=true] .text-input,html[data-dyslexia-font=true] .pack-picker__select,html[data-dyslexia-font=true] .big-btn,html[data-dyslexia-font=true] .link-btn,html[data-dyslexia-font=true] .lcd-line{font-family:var(--font-dyslexia);letter-spacing:.05em;word-spacing:.1em}.progress{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.progress__select{width:100%;min-height:48px;font-size:1rem}.progress__body{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.progress__heading{font-size:1rem;font-weight:700}.progress__rows,.progress__words{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.progress__words{gap:var(--space-xs)}.progress__row{display:grid;grid-template-columns:1fr;gap:var(--space-xs)}.progress__label,.progress__words li{overflow-wrap:anywhere}.progress__bar{display:block;height:12px;border:2px solid #4A3A2A;border-radius:6px;background:#fffdf8;overflow:hidden}.progress__fill{display:block;height:100%;background:#1a0a2e}.progress__more{font-weight:700}.progress__reset{align-self:flex-start}.progress__reset[aria-disabled=true]{cursor:not-allowed}.mystery{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);width:100%;min-width:0}.mystery[hidden]{display:none}.mystery p{overflow-wrap:anywhere}.no-show{visibility:hidden}.mystery-message,.mystery-wrong,.mystery-left{min-height:1.2em}@media(max-width:420px){.mystery-message,.mystery-wrong{min-height:2.4em}}.mystery-word{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:100%;min-width:0}.mystery-cell{font-family:var(--font-lcd);font-size:var(--text-lcd-min);color:var(--lcd-text);letter-spacing:0;text-transform:uppercase;text-align:center;line-height:1.2;width:1.25em;box-sizing:border-box;height:1.5em;border-bottom:2px solid var(--lcd-text)}.mystery-cell--fixed{border-bottom:0;width:.75em}.mystery-cell--shown{border-bottom:5px double var(--lcd-text)}.ghost-wrapper.ghost--stage-0{opacity:.2}.ghost-wrapper.ghost--stage-1{opacity:.35}.ghost-wrapper.ghost--stage-2{opacity:.5}.ghost-wrapper.ghost--stage-3{opacity:.65}.ghost-wrapper.ghost--stage-4{opacity:.8}.ghost-wrapper.ghost--stage-5{opacity:.9}.ghost-wrapper.ghost--stage-6,.ghost-wrapper.ghost--cheer{opacity:1}html[data-reduced-motion=false] .ghost-wrapper{transition:opacity .15s linear}html[data-reduced-motion=true] .ghost-wrapper{transition:none}.key{position:relative}.key__mark{position:absolute;top:2px;right:4px;font-size:.75rem;line-height:1;color:var(--key-text);pointer-events:none}.key--hit{background:#fff3df;box-shadow:inset 0 0 0 2px var(--focus-inner),0 4px 0 var(--key-side)}.key--miss{background:repeating-linear-gradient(45deg,var(--key-face) 0,var(--key-face) 6px,#E9D8BF 6px,#E9D8BF 8px);box-shadow:0 2px 0 var(--key-side),0 0 0 1px #0003}.key[aria-disabled=true]{cursor:default}.key--wide[aria-disabled=true]{opacity:.55}.mode-selector{flex-wrap:wrap}.mode-btn{flex:1 1 auto;min-width:44px}@media(max-width:420px){.mode-btn{padding-left:var(--space-sm);padding-right:var(--space-sm)}}body,.splash{padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}@media(max-width:479px){.toy-bar{flex-wrap:nowrap;align-items:center;gap:8px;padding:6px 4px 0}.pack-picker{flex:1 1 0;min-width:0}.pack-picker__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pack-picker__select{width:100%;min-width:0;text-overflow:ellipsis}.toy-bar__parent{flex:0 0 auto}.toy-screen{padding:6px 4px 12px;gap:8px}.toy-screen>.toy-shell{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"lcd lcd" "settings replay" "keypad keypad";gap:8px;padding:8px 8px 12px}.toy-screen>.toy-shell>.lcd-strip{grid-area:lcd}.toy-screen>.toy-shell>.shell-settings{grid-area:settings;justify-content:flex-start}.toy-screen>.toy-shell>.replay-btn{grid-area:replay;justify-self:end;align-self:center;padding-left:12px;padding-right:12px}.toy-screen>.toy-shell>.keypad{grid-area:keypad}.lcd-strip{padding:8px;gap:6px;min-height:0}.ghost-svg{width:64px;height:51px}.mystery{gap:4px}.mystery-word{gap:2px}.mystery-cell{width:1em}.mystery-cell--fixed{width:.6em}.keypad{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.keypad__row{display:contents}}@media(max-width:359px){.keypad{grid-template-columns:repeat(6,minmax(0,1fr))}.toy-bar__parent{padding-left:0;padding-right:0;gap:0}.toy-bar__parent>:not(.btn-icon){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@media(max-width:479px)and (max-height:600px){.toy-bar{padding-top:4px}.toy-screen{padding-top:4px;gap:6px}.toy-screen>.toy-shell{gap:6px;padding:6px 8px 8px}.lcd-strip{padding:6px 8px;gap:4px}.ghost-svg{width:48px;height:38px}.mystery{gap:2px}.mystery-message,.mystery-wrong{min-height:1.2em}}
