:root{--paper:#fff8ec;--paper-raised:#fff;--paper-sunken:#f7edd9;--ink:#2b2440;--ink-soft:#7d7396;--line:#2b24401f;--gold:#ffc233;--gold-ink:#3a2800;--teal:#17d6ac;--teal-ink:#04271f;--brick:#ff6f76;--brick-ink:#400f13;--violet:#8f72f7;--violet-ink:#241154;--correct:#2ed573;--incorrect:#ff6b6b;--on-strong:#fff;--shadow:0 14px 28px -16px #2b24402e;--accent:var(--teal);--accent-ink:var(--teal-ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1c1828;--paper-raised:#262032;--paper-sunken:#140f1c;--ink:#f6f1ff;--ink-soft:#b6accf;--line:#f6f1ff24;--gold:#ffd166;--gold-ink:#2e2000;--teal:#35e8bc;--teal-ink:#00291f;--brick:#ff9098;--brick-ink:#3b0508;--violet:#b49cff;--violet-ink:#1d0f45;--correct:#4ee08a;--incorrect:#ff8a8a;--shadow:0 16px 32px -14px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#1c1828;--paper-raised:#262032;--paper-sunken:#140f1c;--ink:#f6f1ff;--ink-soft:#b6accf;--line:#f6f1ff24;--gold:#ffd166;--gold-ink:#2e2000;--teal:#35e8bc;--teal-ink:#00291f;--brick:#ff9098;--brick-ink:#3b0508;--violet:#b49cff;--violet-ink:#1d0f45;--correct:#4ee08a;--incorrect:#ff8a8a;--shadow:0 16px 32px -14px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding-block:22px 48px;padding-inline:16px;font-family:Archivo,ui-sans-serif,system-ui,sans-serif;position:relative}body[data-mode=admin]{--accent:var(--brick);--accent-ink:var(--brick-ink)}body[data-mode=student]{--accent:var(--teal);--accent-ink:var(--teal-ink)}body:before,body:after{content:"";z-index:-1;pointer-events:none;opacity:.45;filter:blur(65px);background-repeat:no-repeat;position:fixed;inset:-10%}body:before{background:radial-gradient(40% 32% at 15% 10%, color-mix(in srgb, var(--teal) 50%, transparent), transparent), radial-gradient(34% 28% at 88% 80%, color-mix(in srgb, var(--gold) 48%, transparent), transparent);animation:22s ease-in-out infinite driftA}body:after{background:radial-gradient(32% 26% at 90% 6%, color-mix(in srgb, var(--brick) 42%, transparent), transparent), radial-gradient(36% 30% at 8% 94%, color-mix(in srgb, var(--violet) 40%, transparent), transparent);animation:27s ease-in-out infinite driftB}@keyframes driftA{0%,to{transform:translate(0)scale(1)}50%{transform:translate(3%,4%)scale(1.08)}}@keyframes driftB{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-4%,-3%)scale(1.06)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}h1,h2,h3,p{text-wrap:balance;margin:0}button{font:inherit}.page{z-index:1;flex-direction:column;gap:20px;max-width:520px;margin:0 auto;display:flex;position:relative}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page>*{animation:.6s cubic-bezier(.2,.7,.3,1) both riseIn}.page>:first-child{animation-delay:0s}.page>:nth-child(2){animation-delay:80ms}.page>:nth-child(3){animation-delay:.16s}.page>:nth-child(4){animation-delay:.24s}.header{flex-direction:column;gap:10px;display:flex}.brandrow{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:10px;display:flex}@keyframes brandBreathe{0%,to{transform:rotate(-4deg)scale(1)}50%{transform:rotate(2deg)scale(1.05)}}.brand-mark{background:var(--ink);width:40px;height:40px;color:var(--paper);transform-origin:50%;box-shadow:var(--shadow);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-family:Fraunces,serif;font-size:1.15rem;font-weight:600;animation:6s ease-in-out infinite brandBreathe;display:flex}.brand-text{flex-direction:column;line-height:1.05;display:flex}.brand-text .name{letter-spacing:-.01em;font-family:Fraunces,serif;font-size:1.5rem;font-weight:600}.brand-text .tag{text-transform:uppercase;letter-spacing:.11em;color:var(--ink-soft);margin-top:3px;font-family:JetBrains Mono,monospace;font-size:.62rem}.mode-toggle{border:1px solid var(--line);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-end;align-items:center;gap:6px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:.66rem;transition:border-color .2s,color .2s,background .2s,transform .15s;display:inline-flex}.mode-toggle:hover{border-color:var(--accent);color:var(--ink);background:var(--paper-raised);transform:translateY(-1px)}.mode-toggle:active{transform:scale(.96)}.mode-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mode-toggle .arrow{opacity:.55}.mode-toggle .current{color:var(--ink-soft);opacity:.75}.postcard{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:22px 20px 20px;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s;position:relative;overflow:hidden}.postcard:hover{transform:translateY(-3px);box-shadow:0 20px 34px -16px #23261f66}.postcard:before{content:"";border:1px dashed var(--line);pointer-events:none;border-radius:12px;position:absolute;inset:6px}.stamp{letter-spacing:.06em;color:var(--gold-ink);background:var(--gold);box-shadow:var(--shadow);text-align:center;text-transform:uppercase;transform-origin:70% 30%;border-radius:6px;padding:6px 8px;font-family:JetBrains Mono,monospace;font-size:.6rem;line-height:1.35;animation:5s ease-in-out infinite stampWobble;position:absolute;top:14px;right:16px}@keyframes stampWobble{0%,to{transform:rotate(5deg)}50%{transform:rotate(1deg)}}.postcard-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:10px;padding-right:76px;font-family:JetBrains Mono,monospace;font-size:.68rem}.postcard-es{margin-bottom:10px;padding-right:70px;font-family:Fraunces,serif;font-size:1.5rem;font-style:italic;font-weight:500;line-height:1.28}.postcard-arrow{color:var(--accent);align-items:baseline;gap:8px;font-weight:700;transition:color .3s;display:flex}.postcard-en{font-family:Fraunces,serif;font-size:1.12rem;font-weight:600}.postcard-literal{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:12px;padding-top:12px;font-size:.82rem}.postcard-literal b{color:var(--ink);font-weight:600}.postcard-empty{color:var(--ink-soft);font-family:Fraunces,serif;font-style:italic}.section{flex-direction:column;gap:12px;display:flex}.section-title{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-title h2{font-family:Fraunces,serif;font-size:1.1rem;font-weight:600}.section-title .count{color:var(--ink-soft);font-family:JetBrains Mono,monospace;font-size:.72rem}.flip-scene{perspective:1400px}.flip-card{width:100%;min-height:190px;transform-style:preserve-3d;cursor:pointer;transition:transform .5s cubic-bezier(.65,0,.35,1);position:relative}.flip-card.flipped{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;text-align:center;border:1px solid var(--line);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:26px 22px;display:flex;position:absolute;inset:0}.flip-front{background:var(--paper-raised);box-shadow:var(--shadow)}.flip-back{background:var(--accent);color:var(--accent-ink);border-color:#0000;transition:background-color .3s,color .3s;transform:rotateY(180deg)}.flip-tag{text-transform:lowercase;letter-spacing:.04em;opacity:.7;border:1px solid;border-radius:999px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:.64rem}.flip-word{text-wrap:balance;font-family:Fraunces,serif;font-size:1.7rem;font-weight:600}.flip-example{opacity:.85;text-wrap:balance;font-family:Fraunces,serif;font-size:.88rem;font-style:italic}.flip-hint{text-transform:uppercase;letter-spacing:.1em;opacity:.55;font-family:JetBrains Mono,monospace;font-size:.6rem;animation:2.2s ease-in-out infinite hintPulse}@keyframes hintPulse{0%,to{opacity:.4}50%{opacity:.85}}.flip-card:hover:not(.flipped){transform:rotateY(-6deg)}.deck-controls{justify-content:space-between;align-items:center;gap:10px;display:flex}.deck-nav{gap:8px;display:flex}.iconbtn{border:1px solid var(--line);background:var(--paper-raised);width:38px;height:38px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:background .2s,transform .15s;display:flex}.iconbtn:hover{background:var(--paper-sunken);transform:translateY(-2px)}.iconbtn:active{transform:scale(.94)}.iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.deck-count{color:var(--ink-soft);font-family:JetBrains Mono,monospace;font-size:.78rem}.search{background:var(--paper-raised);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:9px 12px;display:flex}.search input{color:var(--ink);background:0 0;border:0;outline:0;width:100%;font-family:Archivo,sans-serif;font-size:.92rem}.search input::placeholder{color:var(--ink-soft)}.search svg{color:var(--ink-soft);flex-shrink:0}.entries{flex-direction:column;display:flex}@keyframes entryIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.entry{border-bottom:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:13px 2px;transition:background-color .2s,padding-left .2s;animation:.35s both entryIn;display:flex}.entry:hover{background:var(--paper-sunken);padding-left:8px}.entry:last-child{border-bottom:0}.entry-main{flex-direction:column;gap:3px;min-width:0;display:flex}.entry-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.entry-es{font-family:Fraunces,serif;font-size:1.06rem;font-weight:600}.entry-star{color:var(--gold);font-size:.85rem}.entry-tag{color:var(--ink-soft);border:1px solid var(--line);text-transform:lowercase;border-radius:999px;padding:1px 7px;font-family:JetBrains Mono,monospace;font-size:.62rem}.entry-en{color:var(--accent);font-family:Archivo,sans-serif;font-size:.9rem;font-weight:600;transition:color .3s}.entry-example{color:var(--ink-soft);font-family:Fraunces,serif;font-size:.82rem;font-style:italic}.entry-actions{flex-shrink:0;gap:6px;display:flex}.entry-actions button{border:1px solid var(--line);background:var(--paper-raised);width:30px;height:30px;color:var(--ink-soft);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:flex}.entry-actions button:hover{background:var(--paper-sunken);color:var(--ink)}.entry-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.entry-actions button.starred{color:var(--gold-ink);background:var(--gold);border-color:var(--gold)}.entry-actions button.starred:hover{color:var(--gold-ink);background:var(--gold);filter:brightness(1.08)}.entry-actions .danger:hover{color:var(--brick);border-color:var(--brick)}.empty-note{color:var(--ink-soft);text-align:center;padding:18px 2px;font-family:Fraunces,serif;font-size:.94rem;font-style:italic}.panel{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:12px;padding:18px;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:.68rem;display:flex}.panel-title .swatch{background:var(--accent);border-radius:50%;width:8px;height:8px;transition:background-color .3s;animation:2.4s ease-in-out infinite pulseSwatch}@keyframes pulseSwatch{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 0%, transparent)}}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--ink-soft);font-size:.76rem;font-weight:600}.field input,.field select,.field textarea{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;outline:0;width:100%;padding:10px 11px;font-family:Archivo,sans-serif;font-size:.94rem;transition:border-color .2s}.field textarea{resize:vertical;min-height:60px;font-family:Fraunces,serif;font-style:italic}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field-row{gap:10px;display:flex}.field-row .field{flex:1;min-width:0}.field-row .field.narrow{max-width:150px}.btn{cursor:pointer;background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 70%, black 12%));color:var(--accent-ink);box-shadow:0 10px 22px -10px color-mix(in srgb, var(--accent) 75%, transparent);border:0;border-radius:10px;padding:12px 16px;font-family:Archivo,sans-serif;font-size:.9rem;font-weight:700;transition:filter .2s,transform .15s,background .3s,color .3s,box-shadow .3s}.btn:hover{filter:brightness(1.08);box-shadow:0 14px 26px -10px color-mix(in srgb, var(--accent) 85%, transparent);transform:translateY(-2px)}.btn:active{transform:scale(.97)translateY(0)}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn.ghost{color:var(--ink-soft);border:1px solid var(--line);box-shadow:none;background:0 0}.btn-row{gap:10px;display:flex}.btn-row .btn{flex:1}@keyframes statusPop{0%{opacity:0;transform:translateY(3px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.status-line{color:var(--ink-soft);min-height:1.2em;font-family:JetBrains Mono,monospace;font-size:.7rem}.status-line:not(:empty){animation:.28s cubic-bezier(.2,.7,.3,1) both statusPop}.status-line.ok{color:var(--teal)}.status-line.err{color:var(--brick)}.field-hint{color:var(--ink-soft);margin-top:-4px;font-size:.76rem}.confetti-layer{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{width:8px;height:14px;transform:rotate(var(--rotate,0deg));border-radius:2px;animation:linear forwards confettiFall;position:absolute;top:-12px}@keyframes confettiFall{to{transform:translate(var(--drift,0), 112vh) rotate(calc(var(--rotate,0deg) + 480deg));opacity:.85}}.quiz-section .section-title h2{color:var(--violet)}.quiz-progress-track{background:var(--paper-sunken);border-radius:999px;height:8px;overflow:hidden}.quiz-progress-fill{background:linear-gradient(90deg, var(--violet), var(--teal));border-radius:999px;height:100%;transition:width .4s cubic-bezier(.2,.7,.3,1)}.quiz-intro{background:var(--paper-raised);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.quiz-intro-lead{font-family:Fraunces,serif;font-size:1.05rem;font-weight:600}.quiz-intro-hint{color:var(--ink-soft);font-size:.86rem}.btn-quiz{background:linear-gradient(135deg, var(--violet), color-mix(in srgb, var(--violet) 60%, black 18%));color:var(--on-strong);box-shadow:0 10px 24px -10px color-mix(in srgb, var(--violet) 80%, transparent);animation:2.6s ease-in-out infinite quizGlow}@keyframes quizGlow{0%,to{box-shadow:0 10px 24px -10px color-mix(in srgb, var(--violet) 70%, transparent)}50%{box-shadow:0 10px 30px -6px color-mix(in srgb, var(--violet) 95%, transparent)}}.quiz-card{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:14px;padding:20px;animation:.35s cubic-bezier(.2,.7,.3,1) both riseIn;display:flex}.quiz-question{font-family:Fraunces,serif;font-size:1.2rem;font-weight:600;line-height:1.35}.quiz-options{flex-direction:column;gap:10px;display:flex}.quiz-option{text-align:left;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-family:Archivo,sans-serif;font-size:.95rem;font-weight:600;transition:border-color .2s,background .2s,transform .15s;display:flex}.quiz-option:hover:not(:disabled){border-color:var(--violet);transform:translateY(-1px)}.quiz-option:disabled{cursor:default}.quiz-option.correct{background:color-mix(in srgb, var(--correct) 18%, var(--paper));border-color:var(--correct);color:var(--ink);animation:.35s correctPop}.quiz-option.incorrect{background:color-mix(in srgb, var(--incorrect) 16%, var(--paper));border-color:var(--incorrect);color:var(--ink);animation:.4s shake}.quiz-icon{font-weight:800}.quiz-option.correct .quiz-icon{color:var(--correct)}.quiz-option.incorrect .quiz-icon{color:var(--incorrect)}@keyframes correctPop{0%{transform:scale(1)}40%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.quiz-result{text-align:center;align-items:center}.quiz-score{font-variant-numeric:tabular-nums;color:var(--violet);font-family:Fraunces,serif;font-size:2.4rem;font-weight:700}.quiz-result-message{color:var(--ink-soft)}.prize-card{background:linear-gradient(160deg, color-mix(in srgb, var(--gold) 30%, var(--paper-raised)), var(--paper-raised));border:1.5px solid var(--gold);width:100%;box-shadow:0 0 0 4px color-mix(in srgb, var(--gold) 18%, transparent);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:18px;animation:1.8s ease-in-out infinite prizeGlow;display:flex}@keyframes prizeGlow{0%,to{box-shadow:0 0 0 4px color-mix(in srgb, var(--gold) 14%, transparent)}50%{box-shadow:0 0 0 9px color-mix(in srgb, var(--gold) 24%, transparent)}}.prize-emoji{font-size:2rem}.prize-label{text-transform:uppercase;letter-spacing:.1em;color:var(--gold-ink);font-family:JetBrains Mono,monospace;font-size:.68rem}.prize-text{text-align:center;font-family:Fraunces,serif;font-size:1.2rem;font-style:italic;font-weight:600}.panel-quiz .panel-title{color:var(--violet)}.panel-quiz .swatch{background:var(--violet)!important}.quiz-option-input{align-items:center;gap:10px;display:flex}.quiz-option-input input[type=radio]{width:18px;height:18px;accent-color:var(--violet);flex-shrink:0}.quiz-option-input input[type=text]{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;outline:0;flex:1;padding:9px 11px;font-family:Archivo,sans-serif;font-size:.9rem}.quiz-option-input input[type=text]:focus{border-color:var(--violet)}.quiz-entry-options{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.quiz-chip{border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:.68rem}.quiz-chip.correct{border-color:var(--correct);color:var(--correct);font-weight:600}[hidden]{display:none!important}
