@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Nunito Variable,ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.themed{--step: calc(1rem * var(--fs, 1));min-height:100dvh;position:relative;color:var(--text);background:var(--bg);font-size:calc(16px * var(--fs, 1));line-height:1.45;font-weight:600;transition:background-color .35s ease,color .35s ease}h1{font-size:1.9rem;font-weight:900;line-height:1.15}h2{font-size:1.25rem;font-weight:800;margin-bottom:.5rem}.muted{color:var(--text-2)}.hint{color:var(--text-2);font-size:.875rem;font-weight:700}.hint.ok,.ok{color:var(--success)}.center{text-align:center;margin-inline:auto}.primary{color:var(--primary)}.accent{color:var(--accent)}.kicker{color:var(--text-2);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.kicker.gold{color:var(--gold)}.big{font-size:1.25rem;font-weight:800}.row{display:flex;gap:.6rem;align-items:center}.row.between{justify-content:space-between}.link{background:none;border:0;padding:.25rem 0;color:var(--primary);font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link.center{display:block}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.blob{position:absolute;border-radius:50%;filter:blur(2px);opacity:.75}.blob-a{width:520px;height:520px;top:-200px;right:-140px;background:var(--primary-light)}.blob-b{width:560px;height:560px;bottom:-260px;left:-180px;background:var(--accent-light)}.decor{position:absolute;opacity:.22;animation:drift 7s ease-in-out infinite;-webkit-user-select:none;user-select:none}[data-band=champion] .decor{opacity:.13}@keyframes drift{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-14px) rotate(6deg)}}.shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;z-index:3;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:2px solid var(--border)}.brand{display:flex;align-items:center;gap:.75rem;padding:0 .5rem}.brand strong{display:block;font-size:1.3rem;font-weight:900;color:var(--primary);line-height:1.1}.brand span{font-size:.85rem;color:var(--text-2)}.sidebar nav{display:flex;flex-direction:column;gap:.35rem}.nav-item{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border-radius:var(--radius);border:2px solid transparent;color:var(--text-2);font-weight:800;text-decoration:none;transition:background .15s,transform .1s}.nav-item:hover{background:var(--surface-alt)}.nav-item.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.nav-emoji{font-size:1.5rem}.main{position:relative;z-index:1;padding:2rem clamp(1rem,4vw,3rem) 4rem;min-width:0}.page{max-width:860px;margin-inline:auto;display:flex;flex-direction:column;gap:1rem;animation:rise .35s ease both}.page.narrow{max-width:640px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@media(max-width:899px){.shell{display:block}.sidebar{position:fixed;inset:auto 0 0 0;top:auto;height:auto;padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));border-right:0;border-top:2px solid var(--border);flex-direction:row;gap:0}.brand{display:none}.sidebar nav{flex-direction:row;width:100%;justify-content:space-around}.nav-item{flex-direction:column;gap:.1rem;padding:.35rem .9rem;font-size:.75rem}.nav-emoji{font-size:1.45rem}.main{padding:1.25rem 1rem calc(6rem + env(safe-area-inset-bottom))}}.btn{--edge: var(--primary-dark);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--tap);padding:.55rem 1.4rem;border-radius:var(--radius);border:2px solid var(--edge);background:var(--primary);color:var(--on-primary);font-size:1.05rem;font-weight:900;box-shadow:0 5px 0 var(--edge);transition:transform .08s,box-shadow .08s,filter .15s;text-align:center}.btn-block{width:100%}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--edge)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{--edge: var(--accent);background:var(--accent);color:#fff}.btn-outline{--edge: var(--primary);background:var(--surface);color:var(--primary);box-shadow:0 5px 0 var(--border);border-color:var(--primary)}.btn-danger{--edge: var(--danger);background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--primary);border-color:transparent;box-shadow:none}.spinner{width:1.2em;height:1.2em;border-radius:50%;border:3px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;display:inline-block}.spinner.big{width:2.6rem;height:2.6rem;color:var(--primary)}.loading{display:grid;place-items:center;padding:4rem 0}@keyframes spin{to{transform:rotate(360deg)}}.card{display:block;width:100%;text-align:left;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:0 6px 18px -8px var(--shadow);color:var(--text)}.card-highlight{background:linear-gradient(135deg,var(--surface),var(--primary-light));border-color:var(--primary)}.card-click{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}.card-click:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:0 12px 24px -10px var(--shadow)}.card-click:active{transform:translateY(0)}.stack{display:flex;flex-direction:column;gap:.7rem}.meter{height:14px;border-radius:999px;background:var(--surface-alt);border:1px solid var(--border);overflow:hidden}.meter-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--success),color-mix(in srgb,var(--success) 70%,#fff));transition:width .6s cubic-bezier(.2,.9,.3,1.2)}.steps{display:flex;gap:5px}.steps span{flex:1;height:12px;border-radius:6px;background:var(--border);transition:background .3s}.steps .done{background:var(--success)}.steps .now{background:var(--primary)}.counter,.timer{font-size:.9rem;font-weight:800;color:var(--text-2)}.timer{color:var(--accent)}.page-title p{color:var(--text-2);margin-top:.25rem}.segmented{display:flex;padding:4px;gap:4px;border-radius:999px;background:var(--surface-alt);border:2px solid var(--border)}.segmented button{flex:1;border:0;border-radius:999px;padding:.5rem .8rem;background:transparent;color:var(--text-2);font-weight:800;transition:background .15s,color .15s}.segmented button.active{background:var(--primary);color:var(--on-primary);box-shadow:0 3px 0 var(--primary-dark)}.error-note{background:var(--danger-light);color:var(--danger);border-radius:var(--radius);padding:.8rem 1rem;font-weight:800}.mascot{display:block;flex:none;overflow:visible}.mascot-animated{animation:pop .5s cubic-bezier(.2,1.4,.4,1) both,bob 3.2s ease-in-out .5s infinite}@keyframes pop{0%{transform:scale(.8)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.says{display:flex;align-items:center;gap:.75rem}.bubble{position:relative;flex:1;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:.9rem 1.1rem;font-size:1.15rem;font-weight:800}.bubble:before{content:"";position:absolute;left:-9px;top:50%;width:16px;height:16px;background:inherit;border-left:2px solid var(--border);border-bottom:2px solid var(--border);transform:translateY(-50%) rotate(45deg)}.hello{font-size:clamp(1.7rem,4vw,2.3rem)}.grid-2,.stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1rem}.stat .emoji{font-size:2rem}.stat b{font-size:2.2rem;font-weight:900;line-height:1.1}.action{display:flex;flex-direction:column;gap:.25rem;padding:1.4rem;color:var(--text)}.action strong{font-size:1.3rem;font-weight:900}.action span:last-child{color:var(--text-2)}.action-emoji{font-size:2.6rem;line-height:1}.action.practice{border-color:var(--primary)}.action.duel{border-color:var(--accent)}.weekly{display:flex;flex-direction:column;gap:.6rem}.level-card{display:flex;align-items:center;gap:1rem}.level-avatar-box{flex:none;width:84px;display:grid;place-items:center}.level-info{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0}.level-info strong{font-size:1.25rem;font-weight:900}.level-avatar{object-fit:contain;display:block}.level-emoji{display:inline-block;line-height:1}.level-emoji.moving{animation:bob 2.6s ease-in-out infinite}.level-emoji.egg.moving{animation:wobble 1s ease-in-out infinite}@keyframes wobble{0%,to{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem}.topic{display:flex;flex-direction:column;gap:.15rem}.topic strong{font-size:1.1rem;font-weight:900}.topic span{color:var(--text-2);font-size:.9rem}.topic.all strong{color:var(--primary)}.question{display:flex;flex-direction:column;gap:.9rem}.question-body p{font-size:1.3rem;font-weight:800;line-height:1.5}.question-body img{display:block;max-width:100%;max-height:240px;margin:.8rem auto 0;border-radius:12px}.options{display:grid;gap:.7rem}.option{display:flex;align-items:center;gap:.9rem;min-height:var(--tap);padding:.7rem 1rem;text-align:left;background:var(--surface);border:2px solid var(--border);border-bottom-width:5px;border-radius:var(--radius);font-size:1.1rem;font-weight:800;transition:transform .08s,border-color .12s,background .12s}.option:hover:not(:disabled){border-color:var(--primary);transform:translateY(-1px)}.option .letter{flex:none;width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:50%;background:var(--primary-light);color:var(--primary);font-weight:900}.option.picked{border-color:var(--primary);background:var(--primary-light)}.option.right{border-color:var(--success);background:var(--success-light);animation:pop .4s ease both}.option.wrong{border-color:var(--danger);background:var(--danger-light);animation:shake .4s ease both}.option:disabled{cursor:default}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.explain{display:flex;flex-direction:column;gap:.4rem}.result{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;padding:1.6rem}.result .earned{color:var(--success);font-size:1.5rem;font-weight:900}.numpad{display:flex;flex-direction:column;gap:.6rem;max-width:420px;width:100%;margin-inline:auto}.numpad-display{min-height:var(--tap);display:flex;align-items:center;padding:0 1.1rem;background:var(--surface);border:2px solid var(--primary);border-radius:var(--radius);font-size:1.9rem;font-weight:900}.numpad-display.empty{color:var(--text-3)}.numpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.numpad-grid button{height:calc(var(--tap) - 4px);font-size:1.6rem;font-weight:900;background:var(--surface);border:2px solid var(--border);border-bottom-width:4px;border-radius:var(--radius);transition:transform .08s}.numpad-grid button:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px}.duel-actions{align-items:stretch}.create-duel{display:flex;flex-direction:column;align-items:center;gap:.8rem;text-align:center}.join-form{display:flex;flex-direction:column;gap:.6rem;height:100%;justify-content:center}.join-form label{color:var(--text-2);font-weight:800}input,.code-input{min-height:var(--tap);width:100%;padding:0 1rem;background:var(--surface);color:var(--text);border:2px solid var(--border);border-radius:var(--radius);font-weight:700}input::placeholder,.code-input::placeholder{text-transform:none;letter-spacing:0;font-size:1rem}input::placeholder{color:var(--text-3);font-weight:600;letter-spacing:0}.code-input{font-size:1.3rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase}input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 22%,transparent)}.duel-list{display:grid;gap:.7rem}.duel-row.turn{border-color:var(--accent)}.code-tag{color:var(--primary);font-weight:900;letter-spacing:.15em}.status{color:var(--text-2);font-size:.9rem}.status.turn{color:var(--accent);font-weight:900}.duel-code-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.35rem}.big-code{background:none;border:0;color:var(--primary);font-size:clamp(2.4rem,8vw,3.4rem);font-weight:900;letter-spacing:.25em;padding-left:.25em}.waiting,.duel-result{display:flex;flex-direction:column;align-items:center;gap:.8rem;text-align:center}.duel-result.win{border-color:var(--gold);background:linear-gradient(160deg,var(--surface),var(--gold-light))}.scoreboard{list-style:none;padding:0;margin:0;width:100%;display:grid;gap:.5rem}.scoreboard li,.board li{display:flex;align-items:center;gap:.8rem;padding:.75rem 1rem;border-radius:calc(var(--radius) - 4px);background:var(--surface-alt);text-align:left}.scoreboard li>div,.board li>div{flex:1;display:flex;flex-direction:column}.scoreboard li span,.board li div span{color:var(--text-2);font-size:.85rem}.scoreboard li b,.board li>b{font-size:1.6rem;font-weight:900;color:var(--primary)}.scoreboard li.me,.board li.me{background:var(--primary-light);outline:2px solid var(--primary)}.board{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.board .rank{width:2.6rem;text-align:center;font-size:1.6rem;font-weight:900}.board li>b small{display:block;font-size:.7rem;color:var(--text-2);font-weight:700;text-align:right}.ladder{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}.rung{display:flex;align-items:center;gap:1rem}.rung.now{border-color:var(--primary);background:var(--primary-light)}.rung.locked{opacity:.5}.rung-art{width:72px;display:grid;place-items:center;flex:none}.rung-text{flex:1;display:flex;flex-direction:column}.rung-text strong{font-size:1.15rem;font-weight:900}.rung-state{color:var(--text-2);font-weight:800;font-size:.9rem}.rung.now .rung-state{color:var(--primary)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}.badge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem}.badge-emoji{font-size:2.8rem;line-height:1.1}.badge strong{font-weight:900}.badge span{color:var(--text-2);font-size:.88rem}.badge em{font-style:normal;font-size:.8rem;font-weight:800;color:var(--success)}.badge.locked{opacity:.45;filter:grayscale(.7)}.badge.earned{border-color:var(--gold)}section h2{margin-top:.8rem}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem}.emoji-row{display:flex;flex-wrap:wrap;gap:.35rem;font-size:1.7rem}.footer-actions{display:grid;gap:.8rem;justify-items:center;margin-top:.5rem}.footer-actions .btn{max-width:420px}.code-box{align-self:center;background:var(--primary-light);color:var(--primary);border:2px dashed var(--primary);border-radius:var(--radius);padding:.7rem 1.4rem;font-size:2rem;font-weight:900;letter-spacing:.3em;padding-left:calc(1.4rem + .3em)}.lang-switch{display:inline-flex;flex-wrap:wrap;gap:.4rem}.lang-switch button:disabled{opacity:.45;cursor:not-allowed}.lang-switch button small{font-weight:600;opacity:.75}.lang-chip{display:inline-block;padding:.1rem .6rem;border-radius:999px;background:var(--surface-2, var(--surface));border:1.5px solid var(--border);font-size:.8rem;font-weight:800}.lang-switch button{min-height:44px;padding:0 1.1rem;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);font-weight:800}.lang-switch button.active{background:var(--primary);border-color:var(--primary-dark);color:var(--on-primary)}.lang-switch.compact button{min-height:36px;padding:0 .8rem;font-size:.85rem}.welcome,.solo{position:relative;min-height:100dvh;padding:1.25rem 1rem 3rem}.welcome-top{position:relative;z-index:2;display:flex;justify-content:flex-end;max-width:560px;margin:0 auto .5rem}.welcome-card,.solo-card{position:relative;z-index:1;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:1rem;animation:rise .4s ease both}.solo-card{gap:.9rem}.tagline{text-align:center;color:var(--text-2);font-weight:800}.form{display:flex;flex-direction:column;gap:1rem;padding:1.4rem}.form label,.form legend{display:flex;flex-direction:column;gap:.35rem;font-weight:800;color:var(--text-2);font-size:.95rem}.form fieldset{border:0;padding:0;margin:0}.grade-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}.chip{width:3.4rem;height:3.4rem;border-radius:var(--radius);border:2px solid var(--border);border-bottom-width:4px;background:var(--surface);font-size:1.3rem;font-weight:900;transition:transform .08s,background .15s}.chip:hover{border-color:var(--primary)}.chip.active{background:var(--primary);border-color:var(--primary-dark);color:var(--on-primary);transform:translateY(-2px)}.form label.check{flex-direction:row;align-items:center;gap:.75rem;color:var(--text);font-weight:700}.check input{width:1.7rem;height:1.7rem;min-height:0;accent-color:var(--primary);flex:none}.policy p{color:var(--text-2)}.app-status{position:fixed;top:.75rem;left:50%;transform:translate(-50%);z-index:45;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:calc(100vw - 1.5rem);pointer-events:none}.app-status .pill{pointer-events:auto;display:inline-flex;align-items:center;gap:.6rem;padding:.45rem .9rem;border-radius:999px;font-size:.9rem;font-weight:800;background:var(--surface);color:var(--text);border:2px solid var(--border);box-shadow:0 8px 24px -10px var(--shadow);animation:rise .25s ease both}.app-status .pill.offline{border-color:var(--gold);background:var(--gold-light)}.app-status .pill.update{border-color:var(--primary)}.app-status .pill button{border:0;border-radius:999px;padding:.3rem .8rem;background:var(--primary);color:var(--on-primary);font-weight:900}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1rem;background:#0f122899;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .2s ease both}.modal{position:relative;overflow:hidden;width:min(420px,100%);display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center;padding:1.6rem 1.4rem;background:var(--surface);border:3px solid var(--primary);border-radius:var(--radius);box-shadow:0 30px 60px -20px #00000080;animation:pop-in .35s cubic-bezier(.2,1.3,.4,1) both}.modal-gold{border-color:var(--gold)}.modal>*{position:relative}.modal .btn{max-width:320px}.celebrate-art{min-height:7rem;display:grid;place-items:center}.celebrate-art.big-emoji{font-size:5rem;animation:pop .6s cubic-bezier(.2,1.6,.4,1) both}@keyframes fade{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.85) translateY(20px)}}.confetti{position:absolute!important;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-12px;border-radius:2px;animation:confetti-fall linear infinite}@keyframes confetti-fall{to{transform:translateY(520px) rotate(540deg);opacity:.8}}.toast{position:fixed;left:50%;bottom:calc(5.5rem + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;padding:.7rem 1.3rem;border-radius:999px;background:var(--text);color:var(--bg);font-weight:800;box-shadow:0 10px 30px -10px #00000080;animation:rise .25s ease both}@media(max-width:719px){.grid-2{grid-template-columns:1fr}.says .mascot{width:84px;height:84px}h1{font-size:1.6rem}.badge-grid{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.confetti{display:none}}
