.app-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;height:var(--app-nav-height-mobile);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid rgba(148,163,184,.35);background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-nav__inner{height:100%;display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr))}.app-nav__brand{display:flex;align-items:center;justify-content:center;padding:0 .5rem 0 .75rem;font-size:1.05rem;font-weight:900;letter-spacing:.06em;line-height:1}.app-nav__link{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;color:#475569;text-decoration:none;opacity:.7;transition:opacity .15s ease,transform .12s ease}.app-nav__link svg{width:1.35rem;height:1.35rem;flex-shrink:0}.app-nav__link span{font-size:.65rem;font-weight:600;letter-spacing:.01em;line-height:1}.app-nav__link.is-active{color:#111827;opacity:1;transform:translateY(-1px)}.app-nav__link:hover{text-decoration:none}@media(min-width:900px){.app-nav{top:0;bottom:auto;height:var(--app-nav-height-desktop);border-top:0;border-bottom:1px solid rgba(148,163,184,.35);padding-bottom:0}.app-nav__inner{max-width:64rem;margin:0 auto;padding:0 1rem;display:flex;align-items:center;gap:.25rem}.app-nav__brand{font-size:1.25rem;padding:0 1rem 0 .25rem;margin-right:auto}.app-nav__link{flex-direction:row;gap:.4rem;padding:0 .9rem;border-radius:.8rem;opacity:.88}.app-nav__link svg{width:1.1rem;height:1.1rem}.app-nav__link span{font-size:.9rem;font-weight:600}.app-nav__link.is-active{background:#0f172a14;transform:none}}.flashcard{width:100%;max-width:none;background:transparent;min-height:calc(100dvh - var(--app-nav-height-mobile) - env(safe-area-inset-bottom));display:flex;flex-direction:column;padding:calc(.75rem + env(safe-area-inset-top)) 1.25rem calc(1rem + env(safe-area-inset-bottom))}.flashcard__topbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.flashcard__back{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}.flashcard__back:active{background:#e2e8f0}.flashcard__counter{flex:1;font-size:.72rem;color:#94a3b8;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.flashcard__toggle{border:none;background:#f1f5f9;color:#64748b;border-radius:999px;padding:.35rem .6rem;font-size:.72rem;font-weight:700;cursor:pointer;transition:background-color .15s ease}.flashcard__toggle:active{background:#e2e8f0}.flashcard__prompt-label{margin:0;font-size:.72rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.flashcard__content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:.4rem 0 .2rem}.flashcard__prompt{margin:.45rem 0 0;font-size:clamp(4rem,20vw,7rem);font-weight:800;line-height:1;letter-spacing:-.03em}.flashcard__token{margin:.35rem 0 .75rem;font-size:.88rem;font-weight:700}.flashcard__question{margin:0 0 .75rem;color:#475569;font-size:.95rem}.flashcard__extra{margin-bottom:.35rem;min-height:4rem;display:grid;grid-template-rows:auto auto;align-content:start;gap:.25rem}.flashcard__token-legend{display:flex;flex-wrap:wrap;gap:.35rem .65rem;margin:0;min-height:1.35rem;align-items:flex-start;justify-content:center}.flashcard__token-legend.is-hidden{visibility:hidden}.flashcard__token-legend span{font-size:.72rem;font-weight:700}.flashcard__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(4.5rem,1fr));gap:.5rem;padding-top:.5rem;min-height:9.5rem}.flashcard__options--four,.flashcard__options--two{grid-template-columns:repeat(2,minmax(0,1fr))}.flashcard__option{border:none;border-radius:.7rem;background:#f8fafc;color:#1e293b;text-align:center;font-size:.92rem;font-weight:700;padding:.75rem .6rem;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background-color .15s ease}.flashcard__option:focus{outline:none}.flashcard__option:focus-visible{outline:2px solid #3b65b1;outline-offset:2px}.flashcard__option:active{transform:scale(.97)}.flashcard__option:disabled{cursor:default}.flashcard__option.is-selected{background:#e2e8f0;animation:option-press .18s ease-out}.flashcard__option.is-correct{background:#638f5e26;color:#166534;animation:option-settle-correct .26s ease-out}.flashcard__option.is-incorrect{background:#c6374b1a;color:#991b1b;animation:option-settle-wrong .26s ease-out}.flashcard__stats{margin-top:0;padding-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem .9rem;color:#94a3b8;font-size:.72rem;font-weight:600;min-height:1.6rem;align-items:center}@media(max-width:360px){.flashcard__options--two{grid-template-columns:repeat(2,minmax(0,1fr))}}@keyframes option-press{0%{transform:scale(1)}45%{transform:scale(.965)}to{transform:scale(1)}}@keyframes option-settle-correct{0%{transform:scale(.98)}55%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes option-settle-wrong{0%{transform:translate(0)}30%{transform:translate(-2px)}60%{transform:translate(2px)}to{transform:translate(0)}}@media(min-width:640px){.flashcard{min-height:44rem;max-height:52rem;width:min(100%,26rem);border:1px solid #e5e7eb;border-radius:1.25rem;box-shadow:0 8px 32px #0f172a0f;padding:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.flashcard__back,.flashcard__toggle{border:1px solid #e2e8f0;background:#fff}.flashcard__back:hover,.flashcard__toggle:hover{background:#f8fafc}.flashcard__option{border:1px solid #e2e8f0;background:#fff}.flashcard__option.is-selected{border-color:#94a3b8;background:#f8fafc}.flashcard__option.is-correct{border-color:#638f5e;background:#638f5e1a}.flashcard__option.is-incorrect{border-color:#c6374b;background:#c6374b14}}.dashboard-path{width:100%;padding:0}.learning-path-sections{width:100%;display:flex;flex-direction:column;gap:0}.learning-path-section{padding:1.25rem 1rem 1.5rem}.learning-path-section__header{position:relative;text-align:center;margin-bottom:.75rem}.unit-review-node{position:absolute;top:0;right:0;display:flex;align-items:center;gap:.35rem;border:none;border-radius:999px;background:#14b8a61f;color:#0d9488;padding:.4rem .65rem .4rem .5rem;font-size:.7rem;font-weight:700;cursor:pointer;transition:background-color .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.unit-review-node:hover{background:#14b8a62e;transform:translateY(-1px)}.unit-review-node:active{transform:translateY(0)}.unit-review-node__icon{width:1rem;height:1rem}.unit-review-node__label{text-transform:uppercase;letter-spacing:.04em}.learning-path-section__unit{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:1}.learning-path-section__title{margin:.15rem 0 0;font-size:1.1rem;font-weight:800}.learning-path-list{width:100%;max-width:24rem;margin:0 auto;display:grid;gap:0}.learning-path-step{position:relative;min-height:8.6rem;display:flex;align-items:flex-start;justify-content:center}.learning-path-step__node-wrap{position:relative;width:100%;display:grid;justify-items:center;gap:.38rem;z-index:2}.learning-path-step__text{width:min(10.5rem,42vw);padding:.2rem 0;text-align:center;display:flex;align-items:center;justify-content:center;gap:.38rem}.learning-path-step__text p{margin:0;font-size:.72rem;line-height:1.2;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.learning-path-step__preview-toggle{border:1px solid #cbd5e1;border-radius:999px;background:#ffffffdb;color:#64748b;width:1rem;height:1rem;font-size:.62rem;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.learning-path-step__preview{position:absolute;top:3.2rem;width:min(11.5rem,72vw);border:1px solid #dbe2ea;border-radius:.7rem;background:#fffffff0;box-shadow:0 10px 20px #0f172a1a;padding:.48rem .56rem;color:#334155;font-size:.69rem;line-height:1.3;opacity:0;pointer-events:none;transform:translateY(2px);transition:opacity .14s ease,transform .14s ease}.learning-path-step__preview.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.learning-path-step.side-left .learning-path-step__node-wrap{justify-items:start;padding-left:.8rem}.learning-path-step.side-left .learning-path-step__text{margin-left:2.3rem;text-align:left;justify-content:flex-start}.learning-path-step.side-left .learning-path-step__preview{left:2.3rem}.learning-path-step.side-right .learning-path-step__node-wrap{justify-items:end;padding-right:.8rem}.learning-path-step.side-right .learning-path-step__text{margin-right:2.3rem;text-align:right;justify-content:flex-end}.learning-path-step.side-right .learning-path-step__preview{right:2.3rem}.learning-path-step.side-center .learning-path-step__text{margin:0;text-align:center;justify-content:center}.learning-path-step.side-center .learning-path-step__preview{left:50%;transform:translate(-50%) translateY(2px)}.learning-path-step.side-center .learning-path-step__preview.is-open{transform:translate(-50%) translateY(0)}.learning-path-connector{position:absolute;left:50%;top:0;transform:translate(-50%);width:0;height:100%;z-index:1}.learning-path-connector__line{display:block;width:4px;height:100%;border-radius:999px;background:#cbd5e1}.learning-path-connector.is-active .learning-path-connector__line{background:#334155}.learning-path-node{--node-accent: #94a3b8;width:2.85rem;height:2.85rem;border-radius:999px;border:none;background:#fff;display:grid;place-items:center;padding:0;box-shadow:0 2px #0f172a40;transition:transform .1s ease,box-shadow .1s ease;position:relative}.learning-path-node:not([aria-disabled=true]):hover{transform:translateY(-1px);box-shadow:0 3px #0f172a4d}.learning-path-node:not([aria-disabled=true]):active{transform:translateY(1px);box-shadow:0 1px #0f172a40}.learning-path-node.is-large{width:3.8rem;height:3.8rem}.learning-path-node__icon{width:1.1rem;height:1.1rem;color:#cbd5e1}.learning-path-node.is-large .learning-path-node__icon{width:1.4rem;height:1.4rem}.learning-path-node__badge{position:absolute;right:-.2rem;bottom:-.2rem;width:1rem;height:1rem;border-radius:999px;background:#16a34a;color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px #0f172a33}.learning-path-node__badge svg{width:.7rem;height:.7rem}.learning-path-node.is-locked{background:#e2e8f0;box-shadow:0 2px #0f172a1f}.learning-path-node.is-locked .learning-path-node__icon{color:#94a3b8}.learning-path-node.is-available{background:#fff;box-shadow:0 2px 0 0 var(--node-accent)}.learning-path-node.is-available:hover{box-shadow:0 3px 0 0 var(--node-accent)}.learning-path-node.is-available:active{box-shadow:0 1px 0 0 var(--node-accent)}.learning-path-node.is-available .learning-path-node__icon{color:var(--node-accent)}.learning-path-node.is-current{background:var(--node-accent);box-shadow:0 2px #0f172a59;animation:pulse-node 2s ease-in-out infinite}.learning-path-node.is-current .learning-path-node__icon{color:#fff}.learning-path-node.is-completed{background:#16a34a;box-shadow:0 2px #15803d;animation:completed-bob 2.5s ease-in-out infinite}.learning-path-node.is-completed .learning-path-node__icon{color:#fff}.learning-path-node.is-shaking{animation:locked-shake .34s ease-in-out}.learning-path-node[aria-disabled=true]{cursor:not-allowed}@keyframes pulse-node{0%,to{box-shadow:0 2px #0f172a59,0 0 color-mix(in srgb,var(--node-accent) 40%,transparent)}50%{box-shadow:0 2px #0f172a59,0 0 0 5px color-mix(in srgb,var(--node-accent) 25%,transparent)}}@keyframes completed-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes locked-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}50%{transform:translate(2px)}75%{transform:translate(-1px)}}@media(min-width:900px){.dashboard-path{width:100%;padding:0}.learning-path-section{padding:1.5rem 1rem 1.75rem}.learning-path-list{max-width:28rem}.learning-path-step{min-height:9.2rem}.learning-path-step__text{width:11.2rem}}.dashboard-session-back{position:fixed;top:calc(.6rem + env(safe-area-inset-top));left:.75rem;z-index:12;border:1px solid #cbd5e1;border-radius:999px;background:#ffffffd1;color:#334155;font-size:.8rem;font-weight:700;padding:.45rem .7rem}@media(min-width:900px){.dashboard-session-back{top:calc(var(--app-nav-height-desktop) + .6rem);left:max(1rem,calc((100vw - 28rem)/2))}}.dashboard-result{position:relative;width:100%;min-height:calc(100dvh - var(--app-nav-height-mobile));padding:calc(1rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom));display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;overflow:hidden}.dashboard-result__content{text-align:center;z-index:2;padding:1.1rem 1rem;display:grid;gap:.3rem}.dashboard-result__content h2{margin:0;font-size:clamp(2.4rem,14vw,4rem);line-height:1;letter-spacing:-.03em}.dashboard-result__content p{margin:.55rem 0 0;color:#475569;font-size:1rem}.dashboard-result__actions{width:min(100%,28rem);margin-bottom:.6rem;display:grid;grid-template-columns:1fr 1fr;gap:.6rem;z-index:2}.dashboard-result__actions button{border:1px solid #cbd5e1;border-radius:.8rem;background:#ffffffeb;color:#0f172a;font-weight:700;padding:.76rem .6rem}@media(min-width:900px){.dashboard-result{min-height:calc(100dvh - var(--app-nav-height-desktop))}.dashboard-result__actions{margin-bottom:1.2rem;max-width:24rem}}.dashboard-result.is-celebrating .dashboard-result__ring{position:absolute;left:50%;top:50%;width:min(64vw,22rem);aspect-ratio:1 / 1;transform:translate(-50%,-50%);border-radius:999px;border:3px solid rgba(22,163,74,.58);animation:checkpoint-ring 1s ease-out forwards;pointer-events:none;z-index:2}.dashboard-result__confetti{position:absolute;width:.55rem;height:1rem;border-radius:2px;opacity:0;z-index:3}.dashboard-result.is-celebrating .dashboard-result__confetti{animation:confetti-fall 2.1s cubic-bezier(.22,.61,.36,1) forwards}.dashboard-result__confetti.confetti-1{left:8%;top:-6%;background:#eab308}.dashboard-result__confetti.confetti-2{left:20%;top:-8%;background:#16a34a;animation-delay:.04s}.dashboard-result__confetti.confetti-3{left:34%;top:-7%;background:#3b82f6;animation-delay:.08s}.dashboard-result__confetti.confetti-4{left:48%;top:-9%;background:#a855f7;animation-delay:.03s}.dashboard-result__confetti.confetti-5{left:62%;top:-6%;background:#ef4444;animation-delay:.06s}.dashboard-result__confetti.confetti-6{left:74%;top:-8%;background:#06b6d4;animation-delay:.11s}.dashboard-result__confetti.confetti-7{left:86%;top:-7%;background:#f97316;animation-delay:.15s}.dashboard-result__confetti.confetti-8{left:94%;top:-5%;background:#22c55e;animation-delay:.1s}@keyframes checkpoint-ring{0%{opacity:.9;transform:translate(-50%,-50%) scale(.95)}to{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-10px) rotate(0)}15%{opacity:1}to{opacity:0;transform:translateY(95dvh) rotate(450deg)}}.dashboard-path-celebration{pointer-events:none;position:fixed;inset:0;background:radial-gradient(circle at 18% 22%,rgba(234,179,8,.26),transparent 20%),radial-gradient(circle at 76% 18%,rgba(34,197,94,.22),transparent 20%),radial-gradient(circle at 52% 72%,rgba(59,130,246,.18),transparent 22%);animation:path-celebrate-fade 1.2s ease-out forwards;z-index:3}@keyframes path-celebrate-fade{0%{opacity:.9}to{opacity:0}}.mixed-review{width:100%;max-width:none;background:transparent;min-height:calc(100dvh - var(--app-nav-height-mobile) - env(safe-area-inset-bottom));display:flex;flex-direction:column;padding:calc(.75rem + env(safe-area-inset-top)) 1.25rem calc(1rem + env(safe-area-inset-bottom))}.mixed-review__topbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.mixed-review__back{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}.mixed-review__back:active{background:#e2e8f0}.mixed-review__counter{flex:1;font-size:.72rem;color:#94a3b8;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.mixed-review__toggle{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;transition:background-color .15s ease}.mixed-review__toggle:active{background:#e2e8f0}.mixed-review__content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:.4rem 0 .2rem}.mixed-review__content--finished{gap:.5rem}.mixed-review__mode-label{margin:0;padding:.25rem .6rem;border-radius:999px;background:#14b8a61f;color:#0d9488;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.mixed-review__prompt{margin:.45rem 0 0;font-size:clamp(4rem,20vw,7rem);font-weight:800;line-height:1;letter-spacing:-.03em}.mixed-review__prompt--sentence{font-size:clamp(2rem,9vw,3.1rem);line-height:1.15}.mixed-review__prompt .has-leading-gap{margin-left:.22em}.mixed-review__token{margin:.35rem 0 .75rem;font-size:.88rem;font-weight:700}.mixed-review__question{margin:0 0 .75rem;color:#475569;font-size:.95rem}.mixed-review__score{margin:0;font-size:clamp(2.5rem,14vw,4rem);font-weight:800;color:#0f172a}.mixed-review__accuracy{margin:0;font-size:1.1rem;color:#64748b;font-weight:600}.mixed-review__reading-passage{margin:.75rem 0;padding:.85rem;background:#f8fafc;border-radius:.75rem;font-size:clamp(1.4rem,6vw,1.9rem);font-weight:700;line-height:1.4;width:100%}.mixed-review__reading-translation{margin:0 0 .5rem;padding:.5rem .75rem;border:1px dashed #e2e8f0;border-radius:.5rem;background:transparent;color:#64748b;font-size:.85rem}.mixed-review__reading-progress{margin:0 0 .35rem;font-size:.72rem;color:#94a3b8;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.mixed-review__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(4.5rem,1fr));gap:.5rem;padding-top:.5rem;min-height:9.5rem}.mixed-review__options--two{grid-template-columns:repeat(2,minmax(0,1fr))}.mixed-review__option{border:none;border-radius:.7rem;background:#f8fafc;color:#1e293b;text-align:center;font-size:.92rem;font-weight:700;padding:.75rem .6rem;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background-color .15s ease}.mixed-review__option:focus{outline:none}.mixed-review__option:focus-visible{outline:2px solid #0d9488;outline-offset:2px}.mixed-review__option:active{transform:scale(.97)}.mixed-review__option:disabled{cursor:default}.mixed-review__option.is-selected{background:#e2e8f0;animation:mixed-option-press .18s ease-out}.mixed-review__option.is-correct{background:#638f5e26;color:#166534;animation:mixed-option-settle-correct .26s ease-out}.mixed-review__option.is-incorrect{background:#c6374b1a;color:#991b1b;animation:mixed-option-settle-wrong .26s ease-out}.mixed-review__answer{width:100%;min-height:5rem;margin-top:.75rem;border:2px dashed #e2e8f0;border-radius:.75rem;background:transparent;padding:.6rem;display:flex;flex-wrap:wrap;align-content:flex-start;gap:.4rem}.mixed-review__placeholder{margin:auto;color:#94a3b8;font-size:.84rem}.mixed-review__answer-token{border:none;border-radius:.5rem;background:#f1f5f9;color:#1e293b;font-size:.88rem;font-weight:700;padding:.4rem .55rem}.mixed-review__sentence-footer{margin-top:auto;padding-top:.85rem}.mixed-review__bank{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.mixed-review__bank-word{border:none;border-radius:.7rem;background:#f8fafc;color:#1e293b;min-height:3.5rem;padding:.6rem;font-size:.92rem;font-weight:700;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background-color .15s ease}.mixed-review__bank-word:active{transform:scale(.97);background:#e2e8f0}.mixed-review__bank-word.is-used{opacity:.35;background:#f1f5f9}.mixed-review__confirm{width:100%;margin-top:.6rem;border:0;border-radius:.65rem;padding:.85rem 1rem;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.mixed-review__confirm:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0d948840}.mixed-review__confirm:active{transform:translateY(0)}.mixed-review__confirm:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;box-shadow:none}.mixed-review__result{min-height:1.3rem;margin:.45rem 0 0;font-size:.84rem;font-weight:700;opacity:0;text-align:center}.mixed-review__result.is-visible{opacity:1}.mixed-review__result.is-good{color:#638f5e}.mixed-review__result.is-bad{color:#c6374b}.mixed-review__token-legend{display:flex;flex-wrap:wrap;gap:.35rem .65rem;margin:.5rem 0;min-height:1.35rem;align-items:flex-start;justify-content:center}.mixed-review__token-legend.is-hidden{visibility:hidden}.mixed-review__token-legend span{font-size:.72rem;font-weight:700}@keyframes mixed-option-press{0%{transform:scale(1)}45%{transform:scale(.965)}to{transform:scale(1)}}@keyframes mixed-option-settle-correct{0%{transform:scale(.98)}55%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes mixed-option-settle-wrong{0%{transform:translate(0)}30%{transform:translate(-2px)}60%{transform:translate(2px)}to{transform:translate(0)}}@media(min-width:640px){.mixed-review{min-height:44rem;max-height:52rem;width:min(100%,26rem);border:1px solid #e5e7eb;border-radius:1.25rem;box-shadow:0 8px 32px #0f172a0f;padding:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mixed-review__back,.mixed-review__toggle{border:1px solid #e2e8f0;background:#fff}.mixed-review__back:hover,.mixed-review__toggle:hover{background:#f8fafc}.mixed-review__option{border:1px solid #e2e8f0;background:#fff}.mixed-review__option.is-selected{border-color:#94a3b8;background:#f8fafc}.mixed-review__option.is-correct{border-color:#638f5e;background:#638f5e1a}.mixed-review__option.is-incorrect{border-color:#c6374b;background:#c6374b14}.mixed-review__answer{background:#ffffff80}.mixed-review__answer-token,.mixed-review__bank-word{border:1px solid #e2e8f0;background:#fff}}.primer{width:100%;max-width:none;background:transparent;min-height:calc(100dvh - var(--app-nav-height-mobile) - env(safe-area-inset-bottom));display:flex;flex-direction:column;padding:calc(.75rem + env(safe-area-inset-top)) 1.25rem calc(1rem + env(safe-area-inset-bottom))}.primer__topbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.primer__back{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}.primer__back:active{background:#e2e8f0}.primer__counter{flex:1;font-size:.72rem;color:#94a3b8;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.primer__toggle{border:none;background:#f1f5f9;color:#64748b;border-radius:999px;padding:.35rem .6rem;font-size:.72rem;font-weight:700;cursor:pointer;transition:background-color .15s ease}.primer__toggle:active{background:#e2e8f0}.primer__progress{height:4px;background:#e2e8f0;border-radius:2px;margin-bottom:1rem;overflow:hidden}.primer__progress-bar{height:100%;background:#3b65b1;border-radius:2px;transition:width .3s ease}.primer__header{margin-bottom:1.25rem}.primer__title{margin:0;font-size:1.5rem;font-weight:800;color:#1e293b;line-height:1.2}.primer__content{flex:1;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;padding-bottom:1rem}.primer__heading{margin:.5rem 0 0;font-size:1.1rem;font-weight:700;color:#334155}.primer__paragraph{margin:0;font-size:.95rem;color:#475569;line-height:1.6}.primer__example{background:#f8fafc;border-radius:.75rem;padding:1rem;border-left:4px solid #3b65b1}.primer__example-korean{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:#1e293b;line-height:1.3}.primer__example-romanization{margin:0 0 .35rem;font-size:.85rem;color:#64748b;font-style:italic}.primer__example-english{margin:0;font-size:.92rem;color:#475569;font-weight:500}.primer__callout{border-radius:.75rem;padding:.85rem 1rem}.primer__callout--tip{background:#638f5e1a;border-left:4px solid #638f5e}.primer__callout--note{background:#3b65b11a;border-left:4px solid #3b65b1}.primer__callout--warning{background:#c79e4c26;border-left:4px solid #c79e4c}.primer__callout-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}.primer__callout--tip .primer__callout-label{color:#638f5e}.primer__callout--note .primer__callout-label{color:#3b65b1}.primer__callout--warning .primer__callout-label{color:#c79e4c}.primer__callout-text{margin:0;font-size:.9rem;color:#475569;line-height:1.5}.primer__comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.primer__comparison-item{background:#f8fafc;border-radius:.75rem;padding:.85rem;text-align:center}.primer__comparison-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-bottom:.5rem}.primer__comparison-korean{margin:0 0 .25rem;font-size:1.25rem;font-weight:700;color:#1e293b}.primer__comparison-english{margin:0;font-size:.85rem;color:#64748b}.primer__character{background:#f8fafc;border-radius:.75rem;padding:1.25rem;text-align:center;position:relative}.primer__character--vowel{border-left:4px solid #ce6045}.primer__character--consonant{border-left:4px solid #3b65b1}.primer__character-badge{position:absolute;top:.75rem;right:.75rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .5rem;border-radius:999px}.primer__character--vowel .primer__character-badge{background:#ce604526;color:#ce6045}.primer__character--consonant .primer__character-badge{background:#3b65b126;color:#3b65b1}.primer__character-char{margin:0;font-size:5rem;font-weight:700;color:#1e293b;line-height:1}.primer__character-romanization{margin:.5rem 0 .25rem;font-size:1.25rem;font-weight:600;color:#475569}.primer__character-sound{margin:0;font-size:.9rem;color:#64748b;font-style:italic}.primer__syllable{background:#f8fafc;border-radius:.75rem;padding:1.25rem;text-align:center;border-left:4px solid #638f5e}.primer__syllable-parts{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.primer__syllable-part{font-size:2.5rem;font-weight:700;color:#64748b}.primer__syllable-plus,.primer__syllable-equals{font-size:1.5rem;font-weight:700;color:#94a3b8}.primer__syllable-result{font-size:3rem;font-weight:700;color:#1e293b}.primer__syllable-romanization{margin:0 0 .25rem;font-size:1.1rem;font-weight:600;color:#475569}.primer__syllable-english{margin:0;font-size:.9rem;color:#64748b}.primer__quiz{background:#f1f5f9;border-radius:.75rem;padding:1rem}.primer__quiz-question{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:#334155}.primer__quiz-options{display:flex;flex-direction:column;gap:.5rem}.primer__quiz-option{border:none;border-radius:.5rem;background:#fff;color:#1e293b;text-align:left;font-size:.9rem;font-weight:500;padding:.75rem 1rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background-color .15s ease}.primer__quiz-option:focus{outline:none}.primer__quiz-option:focus-visible{outline:2px solid #3b65b1;outline-offset:2px}.primer__quiz-option:active{transform:scale(.98)}.primer__quiz-option:disabled{cursor:default}.primer__quiz-option.is-selected{background:#e2e8f0}.primer__quiz-option.is-correct{background:#638f5e26;color:#166534}.primer__quiz-option.is-incorrect{background:#c6374b1a;color:#991b1b}.primer__footer{display:flex;gap:.75rem;padding-top:1rem;margin-top:auto}.primer__nav-button{flex:1;border:none;border-radius:.75rem;font-size:.95rem;font-weight:700;padding:.9rem 1rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background-color .15s ease,opacity .15s ease}.primer__nav-button:active{transform:scale(.98)}.primer__nav-button:disabled{opacity:.4;cursor:not-allowed}.primer__nav-button--prev{background:#f1f5f9;color:#64748b}.primer__nav-button--prev:active:not(:disabled){background:#e2e8f0}.primer__nav-button--next{background:#3b65b1;color:#fff}.primer__nav-button--next:active:not(:disabled){background:#2f5299}@media(min-width:640px){.primer{min-height:44rem;max-height:52rem;width:min(100%,32rem);border:1px solid #e5e7eb;border-radius:1.25rem;box-shadow:0 8px 32px #0f172a0f;padding:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.primer__back,.primer__toggle{border:1px solid #e2e8f0;background:#fff}.primer__back:hover,.primer__toggle:hover{background:#f8fafc}.primer__example{border:1px solid #e2e8f0;border-left:4px solid #3b65b1}.primer__callout{border:1px solid transparent}.primer__callout--tip{border-color:#638f5e33}.primer__callout--note{border-color:#3b65b133}.primer__callout--warning{border-color:#c79e4c4d}.primer__comparison-item,.primer__character{border:1px solid #e2e8f0}.primer__character--vowel{border-left:4px solid #ce6045}.primer__character--consonant{border-left:4px solid #3b65b1}.primer__syllable{border:1px solid #e2e8f0;border-left:4px solid #638f5e}.primer__quiz,.primer__quiz-option{border:1px solid #e2e8f0}.primer__quiz-option:hover:not(:disabled){background:#f8fafc}.primer__quiz-option.is-selected{border-color:#94a3b8}.primer__quiz-option.is-correct{border-color:#638f5e}.primer__quiz-option.is-incorrect{border-color:#c6374b}.primer__nav-button--prev{border:1px solid #e2e8f0;background:#fff}.primer__nav-button--prev:hover:not(:disabled){background:#f8fafc}.primer__nav-button--next:hover:not(:disabled){background:#2f5299}}.reading-comp{width:100%;max-width:none;background:transparent;min-height:calc(100dvh - var(--app-nav-height-mobile) - env(safe-area-inset-bottom));display:flex;flex-direction:column;padding:calc(.75rem + env(safe-area-inset-top)) 1.25rem calc(1rem + env(safe-area-inset-bottom))}.reading-comp__topbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.reading-comp__back{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}.reading-comp__back:active{background:#e2e8f0}.reading-comp__counter{flex:1;font-size:.72rem;color:#94a3b8;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.reading-comp__toggle{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;transition:background-color .15s ease}.reading-comp__toggle:active{background:#e2e8f0}.reading-comp__content{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:.4rem 0 .2rem}.reading-comp__content--finished{justify-content:center;gap:.5rem}.reading-comp__mode-label{margin:0;padding:.25rem .6rem;border-radius:999px;background:#7c3aed1f;color:#7c3aed;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.reading-comp__passage{margin:1rem 0;padding:1rem;background:#f8fafc;border-radius:.75rem;font-size:clamp(1.5rem,7vw,2.2rem);font-weight:700;line-height:1.4;width:100%}.reading-comp__token.has-leading-gap{margin-left:.22em}.reading-comp__token.is-highlighted{background:#7c3aed26;border-radius:.25rem;padding:.1em .15em}.reading-comp__translation-toggle{border:1px dashed #cbd5e1;border-radius:.5rem;background:transparent;color:#94a3b8;font-size:.85rem;padding:.5rem .75rem;cursor:pointer;transition:all .15s ease;margin-bottom:1rem}.reading-comp__translation-toggle:hover{border-color:#94a3b8}.reading-comp__translation-toggle.is-revealed{border-style:solid;border-color:#e2e8f0;background:#f8fafc;color:#475569}.reading-comp__question-area{width:100%;margin-top:auto}.reading-comp__question{margin:0 0 .75rem;color:#1e293b;font-size:1rem;font-weight:600}.reading-comp__options{display:grid;grid-template-columns:1fr;gap:.5rem}.reading-comp__option{border:none;border-radius:.7rem;background:#f8fafc;color:#1e293b;text-align:center;font-size:.92rem;font-weight:700;padding:.85rem .75rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background-color .15s ease}.reading-comp__option:focus{outline:none}.reading-comp__option:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.reading-comp__option:active{transform:scale(.98)}.reading-comp__option:disabled{cursor:default}.reading-comp__option.is-selected{background:#e2e8f0;animation:reading-option-press .18s ease-out}.reading-comp__option.is-correct{background:#638f5e26;color:#166534;animation:reading-option-settle-correct .26s ease-out}.reading-comp__option.is-incorrect{background:#c6374b1a;color:#991b1b;animation:reading-option-settle-wrong .26s ease-out}.reading-comp__explanation{margin:.75rem 0 0;padding:.6rem .75rem;background:#7c3aed14;border-radius:.5rem;color:#5b21b6;font-size:.84rem;text-align:left}.reading-comp__score{margin:0;font-size:clamp(2.5rem,14vw,4rem);font-weight:800;color:#0f172a}.reading-comp__accuracy{margin:0;font-size:1.1rem;color:#64748b;font-weight:600}.reading-comp__token-legend{display:flex;flex-wrap:wrap;gap:.35rem .65rem;margin:.5rem 0;min-height:1.35rem;align-items:flex-start;justify-content:center}.reading-comp__token-legend.is-hidden{visibility:hidden}.reading-comp__token-legend span{font-size:.72rem;font-weight:700}@keyframes reading-option-press{0%{transform:scale(1)}45%{transform:scale(.965)}to{transform:scale(1)}}@keyframes reading-option-settle-correct{0%{transform:scale(.98)}55%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes reading-option-settle-wrong{0%{transform:translate(0)}30%{transform:translate(-2px)}60%{transform:translate(2px)}to{transform:translate(0)}}@media(min-width:640px){.reading-comp{min-height:44rem;max-height:52rem;width:min(100%,26rem);border:1px solid #e5e7eb;border-radius:1.25rem;box-shadow:0 8px 32px #0f172a0f;padding:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.reading-comp__back,.reading-comp__toggle{border:1px solid #e2e8f0;background:#fff}.reading-comp__back:hover,.reading-comp__toggle:hover{background:#f8fafc}.reading-comp__passage{background:#fff;border:1px solid #e2e8f0}.reading-comp__option{border:1px solid #e2e8f0;background:#fff}.reading-comp__option.is-selected{border-color:#94a3b8;background:#f8fafc}.reading-comp__option.is-correct{border-color:#638f5e;background:#638f5e1a}.reading-comp__option.is-incorrect{border-color:#c6374b;background:#c6374b14}}.sentence-builder{width:100%;max-width:none;background:transparent;min-height:calc(100dvh - var(--app-nav-height-mobile) - env(safe-area-inset-bottom));display:flex;flex-direction:column;padding:calc(.75rem + env(safe-area-inset-top)) 1.25rem calc(1rem + env(safe-area-inset-bottom))}.sentence-builder__topbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.sentence-builder__back{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}.sentence-builder__back:active{background:#e2e8f0}.sentence-builder__counter{flex:1;font-size:.72rem;color:#94a3b8;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.sentence-builder__toggle{border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.35rem .6rem;cursor:pointer;transition:background-color .15s ease}.sentence-builder__toggle:active{background:#e2e8f0}.sentence-builder__content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.sentence-builder__label{margin:0;color:#94a3b8;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.sentence-builder__prompt{margin:.45rem 0 0;font-size:clamp(2rem,9vw,3.1rem);font-weight:800;line-height:1.15}.sentence-builder__prompt-token{display:inline-block}.sentence-builder__prompt-token.has-leading-gap{margin-left:.22em}.sentence-builder__token-legend{width:100%;margin:.55rem 0 .7rem;min-height:1.35rem;display:flex;flex-wrap:wrap;gap:.3rem .62rem;align-items:flex-start;justify-content:center}.sentence-builder__token-legend span{font-size:.72rem;font-weight:700}.sentence-builder__token-legend.is-hidden{visibility:hidden}.sentence-builder__answer{width:100%;min-height:6rem;border:2px dashed #e2e8f0;border-radius:.75rem;background:transparent;padding:.6rem;display:flex;flex-wrap:wrap;align-content:flex-start;gap:.4rem}.sentence-builder__placeholder{margin:auto;color:#94a3b8;font-size:.88rem}.sentence-builder__answer-token{border:none;border-radius:.5rem;background:#f1f5f9;color:#1e293b;font-size:.88rem;font-weight:700;padding:.4rem .55rem}.sentence-builder__footer{margin-top:auto;padding-top:.85rem}.sentence-builder__bank{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.sentence-builder__bank-word{border:none;border-radius:.7rem;background:#f8fafc;color:#1e293b;min-height:3.5rem;padding:.6rem;font-size:.92rem;font-weight:700;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background-color .15s ease}.sentence-builder__bank-word:active{transform:scale(.97);background:#e2e8f0}.sentence-builder__bank-word.is-used{opacity:.35;background:#f1f5f9}.sentence-builder__confirm{width:100%;margin-top:.6rem;border:0;border-radius:.65rem;padding:.85rem 1rem;background:linear-gradient(135deg,#3b65b1,#387da6);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.sentence-builder__confirm:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b65b140}.sentence-builder__confirm:active{transform:translateY(0)}.sentence-builder__confirm:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;box-shadow:none}.sentence-builder__result{min-height:1.3rem;margin:.45rem 0 0;font-size:.84rem;font-weight:700;opacity:0}.sentence-builder__result.is-visible{opacity:1}.sentence-builder__result.is-good{color:#638f5e}.sentence-builder__result.is-bad{color:#c6374b}@media(min-width:640px){.sentence-builder{min-height:44rem;max-height:52rem;width:min(100%,26rem);border:1px solid #e5e7eb;border-radius:1.25rem;box-shadow:0 8px 32px #0f172a0f;padding:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sentence-builder__back,.sentence-builder__toggle{border:1px solid #e2e8f0;background:#fff}.sentence-builder__back:hover,.sentence-builder__toggle:hover{background:#f8fafc}.sentence-builder__answer{background:#ffffff80}.sentence-builder__answer-token,.sentence-builder__bank-word{border:1px solid #e2e8f0;background:#fff}}.landing-page{min-height:100dvh;background:#fff}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transform:translateY(-100%);transition:transform .3s ease,border-color .3s ease}.landing-nav--visible{transform:translateY(0);border-bottom-color:#e2e8f0}.landing-nav__inner{max-width:64rem;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.landing-nav__logo{font-weight:700;font-size:1.125rem;background:linear-gradient(135deg,#c79e4c,#ce6045,#3b65b1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-nav__links{display:flex;align-items:center;gap:1.5rem}.landing-nav__link{font-size:.875rem;font-weight:500;color:#475569;text-decoration:none;transition:color .15s ease}.landing-nav__link:hover{color:#0f172a;text-decoration:none}.landing-btn{display:inline-block;padding:.875rem 1.75rem;border-radius:.75rem;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s ease;cursor:pointer;border:none}.landing-btn--primary{background:linear-gradient(135deg,#c79e4c,#ce6045,#3b65b1);color:#fff;box-shadow:0 4px 14px #ce60454d}.landing-btn--primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ce604566;text-decoration:none}.landing-btn--secondary{background:#f1f5f9;color:#334155}.landing-btn--secondary:hover{background:#e2e8f0;text-decoration:none}.landing-btn--large{padding:1rem 2.5rem;font-size:1.125rem}.landing-btn--small{padding:.5rem 1rem;font-size:.875rem;border-radius:.5rem}.landing-hero{min-height:85vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;background:linear-gradient(180deg,#fff,#f8fafc)}.landing-hero__content{max-width:36rem}.landing-hero__title{font-size:2.75rem;font-weight:800;line-height:1.15;margin:0 0 1.25rem;color:#0f172a}.landing-hero__title-accent{background:linear-gradient(135deg,#c79e4c,#ce6045,#3b65b1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-hero__subtitle{font-size:1.25rem;color:#475569;margin:0 0 2rem;line-height:1.5}.landing-hero__cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.landing-hero__visual{margin-top:3.5rem}.landing-hero__sentence{font-size:2.25rem;font-weight:700;display:flex;justify-content:center;gap:.125rem}.landing-hero__token{transition:transform .3s ease}.landing-hero__token:hover{transform:scale(1.1)}.landing-hero__translation{margin:.75rem 0 0;font-size:1rem;color:#64748b;font-style:italic}.landing-section{padding:5rem 1.5rem}.landing-section--alt{background:#f8fafc}.landing-section--everyday{background:linear-gradient(135deg,#fefce8,#fef3c7)}.landing-section--cta{background:linear-gradient(135deg,#0f172a,#1e293b);text-align:center}.landing-section__inner{max-width:56rem;margin:0 auto}.landing-section__title{font-size:2rem;font-weight:700;margin:0 0 1rem;color:#0f172a;text-align:center}.landing-section--cta .landing-section__title{color:#fff}.landing-section__description{font-size:1.125rem;color:#475569;text-align:center;margin:0 0 2.5rem;line-height:1.6}.landing-problem-solution{display:grid;gap:2rem}.landing-problem,.landing-solution{padding:1.5rem;border-radius:1rem;background:#fff;box-shadow:0 4px 12px #0f172a0d}.landing-problem p,.landing-solution p{margin:.75rem 0 0;font-size:1.125rem;line-height:1.6;color:#334155}.landing-label{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.landing-label--problem{background:#fee2e2;color:#b91c1c}.landing-label--solution{background:#dcfce7;color:#15803d}.landing-tokens__interactive{background:#fff;border-radius:1rem;padding:2rem;box-shadow:0 4px 12px #0f172a14;margin-bottom:2rem}.landing-tokens__toggle-wrap{display:flex;justify-content:center;margin-bottom:1.5rem}.landing-tokens__toggle{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem .5rem .5rem;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;cursor:pointer;transition:all .2s ease}.landing-tokens__toggle:hover{background:#f1f5f9}.landing-tokens__toggle.is-active{border-color:#c79e4c;background:linear-gradient(135deg,#c79e4c1a,#ce60451a)}.landing-tokens__toggle-track{width:2.5rem;height:1.5rem;background:#cbd5e1;border-radius:999px;position:relative;transition:background .2s ease}.landing-tokens__toggle.is-active .landing-tokens__toggle-track{background:linear-gradient(135deg,#c79e4c,#ce6045)}.landing-tokens__toggle-thumb{position:absolute;top:.2rem;left:.2rem;width:1.1rem;height:1.1rem;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.landing-tokens__toggle.is-active .landing-tokens__toggle-thumb{transform:translate(1rem)}.landing-tokens__toggle-label{font-size:.875rem;font-weight:600;color:#475569}.landing-tokens__sentence-demo{text-align:center}.landing-tokens__sentence-large{font-size:2rem;font-weight:700;margin:0 0 .75rem;line-height:1.4}.landing-tokens__sentence-large span{transition:color .3s ease}.landing-tokens__translation{font-size:1rem;color:#64748b;font-style:italic;margin:0}.landing-tokens__legend{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;transition:opacity .3s ease}.landing-tokens__legend.is-dimmed{opacity:.4}.landing-tokens__legend-item{display:flex;align-items:center;gap:.5rem}.landing-tokens__legend-dot{width:.75rem;height:.75rem;border-radius:50%;transition:background-color .3s ease}.landing-tokens__legend-label{font-size:.875rem;color:#475569}.landing-mid-cta{margin-top:2.5rem;text-align:center}.landing-builder{display:grid;gap:2rem;background:#fff;padding:2rem;border-radius:1rem;box-shadow:0 4px 12px #0f172a14}.landing-builder__mode{text-align:center}.landing-builder__direction{display:inline-block;padding:.375rem .875rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#f1f5f9;color:#475569;margin-bottom:1rem}.landing-builder__prompt{font-size:1.5rem;font-weight:600;margin-bottom:1rem}.landing-builder__prompt--english{color:#334155;font-style:italic}.landing-builder__answer{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.landing-builder__word{padding:.5rem 1rem;border-radius:.5rem;background:#f1f5f9;font-size:1rem;font-weight:500;color:#334155}.landing-builder__answer--korean .landing-builder__word{background:linear-gradient(135deg,#c79e4c26,#ce604526)}.landing-builder__divider{height:1px;background:#e2e8f0}.landing-path-tree{display:flex;flex-direction:column;align-items:center;margin-bottom:1.5rem;padding:2rem 1rem;background:#fff;border-radius:1rem;box-shadow:0 4px 12px #0f172a0d;max-width:32rem;margin-left:auto;margin-right:auto}.landing-path-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;gap:0}.landing-path-row__depth{display:flex;align-items:center;gap:.5rem}.landing-path-row__depth--left{justify-content:flex-end}.landing-path-row__depth--right{justify-content:flex-start}.landing-path-row__line{width:1.5rem;height:3px;background:#e2e8f0;border-radius:999px;flex-shrink:0}.landing-path-row__line--complete{background:#16a34a}.landing-path-row__line--partial{background:linear-gradient(90deg,#16a34a 50%,#e2e8f0 50%)}.landing-path-row__depth--left .landing-path-row__line--partial{background:linear-gradient(90deg,#e2e8f0 50%,#16a34a 50%)}.landing-path-row__dot{width:1rem;height:1rem;border-radius:999px;background:#e2e8f0;flex-shrink:0;box-shadow:0 1px #0f172a1a}.landing-path-row__dot--sm{width:.7rem;height:.7rem}.landing-path-row__dot--xs{width:.5rem;height:.5rem}.landing-path-row__dot--complete{background:#16a34a;box-shadow:0 1px #15803d}.landing-path-row__dot--current{background:#638f5e;animation:landing-pulse-dot 2s ease-in-out infinite}.landing-path-row__dot--locked{background:#cbd5e1}.landing-path-row__center{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:0 .75rem}.landing-path-row__node{--unit-color: #94a3b8;width:3rem;height:3rem;border-radius:999px;display:grid;place-items:center;background:#e2e8f0;box-shadow:0 2px #0f172a26}.landing-path-row__node svg{width:1.2rem;height:1.2rem;color:#94a3b8}.landing-path-row__node--complete{background:#16a34a;box-shadow:0 2px #15803d}.landing-path-row__node--complete svg{color:#fff}.landing-path-row__node--current{background:var(--unit-color);box-shadow:0 2px #0f172a40;animation:landing-pulse-node 2s ease-in-out infinite}.landing-path-row__node--current svg{color:#fff}.landing-path-row__node--locked{background:#e2e8f0;box-shadow:0 2px #0f172a1a}.landing-path-row__node--locked svg{color:#94a3b8}.landing-path-row__name{font-size:.8rem;font-weight:600;color:#334155;text-align:center;white-space:nowrap}.landing-path-row--locked .landing-path-row__name{color:#94a3b8}.landing-path-spine{width:3px;height:1.25rem;background:#e2e8f0;border-radius:999px}.landing-path-spine--active{background:#334155}.landing-path-legend{display:flex;flex-direction:column;gap:1rem;max-width:22rem;margin:0 auto 1.5rem;padding:1.25rem 1.5rem;background:#f8fafc;border-radius:.75rem;border:1px solid #e2e8f0}.landing-path-legend__item{display:flex;align-items:flex-start;gap:.875rem}.landing-path-legend__icon{flex-shrink:0;margin-top:.15rem}.landing-path-legend__icon--main{width:1.25rem;height:1.25rem;border-radius:999px;background:linear-gradient(135deg,#16a34a,#638f5e);box-shadow:0 2px #15803d66}.landing-path-legend__icon--depth{display:flex;align-items:center;gap:.25rem}.landing-path-legend__icon--depth:before,.landing-path-legend__icon--depth:after{content:"";width:.5rem;height:.5rem;border-radius:999px;background:#16a34a}.landing-path-legend__icon--depth:after{width:.375rem;height:.375rem;background:#cbd5e1}.landing-path-legend__text{display:flex;flex-direction:column;gap:.125rem}.landing-path-legend__text strong{font-size:.9rem;font-weight:700;color:#0f172a}.landing-path-legend__text span{font-size:.8rem;color:#64748b;line-height:1.4}.landing-path__note{text-align:center;font-size:.9375rem;color:#64748b;margin:0}@keyframes landing-pulse-node{0%,to{box-shadow:0 2px #0f172a40,0 0 color-mix(in srgb,var(--unit-color) 40%,transparent)}50%{box-shadow:0 2px #0f172a40,0 0 0 6px color-mix(in srgb,var(--unit-color) 20%,transparent)}}@keyframes landing-pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}.landing-daily{display:flex;justify-content:center;margin-bottom:2rem}.landing-daily__card{background:#fff;padding:1.5rem 2rem;border-radius:1rem;box-shadow:0 4px 12px #0f172a14;text-align:center;max-width:20rem;width:100%}.landing-daily__badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(135deg,#c79e4c,#ce6045);color:#fff;margin-bottom:1rem}.landing-daily__content{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-bottom:1.25rem}.landing-daily__korean{font-size:2.5rem;font-weight:700;line-height:1.2}.landing-daily__romanization{font-size:.875rem;color:#64748b;font-style:italic}.landing-daily__english{font-size:1.125rem;font-weight:600;color:#334155}.landing-daily__example{font-size:1.25rem;font-weight:600;margin:0 0 .375rem;line-height:1.4}.landing-daily__translation{font-size:.875rem;color:#64748b;font-style:italic;margin:0}.landing-everyday__pitch{text-align:center;font-size:1rem;color:#78716c;line-height:1.6;max-width:32rem;margin:0 auto}.landing-focus{display:grid;gap:1.5rem;margin-bottom:2rem}.landing-focus__pillar{padding:1.5rem;border-radius:1rem;background:#f8fafc;text-align:center}.landing-focus__icon{font-size:1.5rem;display:block;margin-bottom:.75rem}.landing-focus__pillar h3{margin:0 0 .5rem;font-size:1.125rem;font-weight:700;color:#0f172a}.landing-focus__pillar p{margin:0;font-size:.9375rem;color:#475569;line-height:1.5}.landing-focus__note{text-align:center;font-size:1rem;color:#64748b;line-height:1.6;margin:0}.landing-cta__title{font-size:2rem;font-weight:700;color:#fff;margin:0 0 2rem}.landing-cta__buttons{margin-bottom:1.5rem}.landing-cta__login{color:#94a3b8;font-size:.9375rem;margin:0}.landing-cta__login a{color:#fff;text-decoration:underline}.landing-footer{padding:2rem;text-align:center;background:#0f172a;border-top:1px solid #1e293b}.landing-footer p{margin:0;color:#64748b;font-size:.875rem}@media(max-width:479px){.landing-nav__link{display:none}.landing-hero{min-height:auto;padding:4rem 1rem 3rem}.landing-hero__title{font-size:2rem}.landing-hero__subtitle{font-size:1rem}.landing-hero__sentence{font-size:1.5rem}.landing-section{padding:3rem 1rem}.landing-section__title{font-size:1.5rem}.landing-section__description{font-size:1rem}.landing-tokens__interactive{padding:1.25rem 1rem}.landing-tokens__sentence-large{font-size:1.1rem;line-height:1.8}.landing-tokens__legend{gap:.5rem .75rem}.landing-tokens__legend-label{font-size:.75rem}.landing-path-tree{padding:1.5rem .75rem}.landing-path-row__node{width:2.5rem;height:2.5rem}.landing-path-row__node svg{width:1rem;height:1rem}.landing-path-row__name{font-size:.7rem}.landing-path-row__center{padding:0 .5rem}.landing-path-row__dot{width:.8rem;height:.8rem}.landing-path-row__dot--sm{width:.55rem;height:.55rem}.landing-path-row__dot--xs{width:.4rem;height:.4rem}.landing-path-row__line{width:1rem}.landing-path-row__depth{gap:.35rem}.landing-path-legend{padding:1rem 1.25rem;gap:.875rem}.landing-path-legend__text strong{font-size:.85rem}.landing-path-legend__text span{font-size:.75rem}.landing-daily__card{padding:1.25rem 1.5rem}.landing-daily__korean{font-size:2rem}.landing-daily__example,.landing-builder__prompt{font-size:1.1rem}.landing-builder__word{padding:.4rem .75rem;font-size:.875rem}}@media(min-width:480px)and (max-width:639px){.landing-nav__link{display:none}.landing-tokens__sentence-large{font-size:1.35rem;line-height:1.6}}@media(min-width:640px){.landing-hero__title{font-size:3.5rem}.landing-hero__sentence{font-size:2.75rem}.landing-problem-solution{grid-template-columns:1fr 1fr}.landing-focus{grid-template-columns:repeat(3,1fr)}.landing-builder{grid-template-columns:1fr auto 1fr;align-items:center}.landing-builder__divider{width:1px;height:100%}.landing-tokens__sentence-large{font-size:1.75rem}.landing-path-tree{padding:2.5rem 2rem}.landing-path-row__node{width:3.25rem;height:3.25rem}.landing-path-row__node svg{width:1.3rem;height:1.3rem}.landing-path-row__name{font-size:.85rem}.landing-path-row__dot{width:1.1rem;height:1.1rem}.landing-path-row__dot--sm{width:.8rem;height:.8rem}.landing-path-row__dot--xs{width:.55rem;height:.55rem}.landing-path-row__line{width:2rem}.landing-path-row__depth{gap:.6rem}.landing-path-spine{height:1.5rem}}@media(min-width:900px){.landing-section{padding:6rem 2rem}.landing-section__title{font-size:2.5rem}.landing-hero{min-height:90vh}.landing-hero__title{font-size:4rem}.landing-tokens__sentence-large{font-size:2rem}}@media(min-width:1100px){.landing-tokens__sentence-large{font-size:2.25rem}}.daily-page{min-height:100dvh;padding:1rem 1rem calc(var(--app-nav-height-mobile) + 2rem);background:#f8fafc}.daily-header{text-align:center;margin-bottom:1.5rem}.daily-header__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin:0 0 .25rem}.daily-header__theme{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:linear-gradient(135deg,#c79e4c,#ce6045);color:#fff}.daily-card{background:#fff;border-radius:1rem;padding:1.5rem;margin-bottom:1.25rem;box-shadow:0 4px 12px #0f172a14;text-align:center}.daily-card__badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#f1f5f9;color:#64748b;margin-bottom:1rem}.daily-card__word{font-size:3rem;font-weight:700;line-height:1.1;margin-bottom:.25rem}.daily-card__romanization{font-size:.9rem;color:#64748b;font-style:italic;margin-bottom:.125rem}.daily-card__english{font-size:1.25rem;font-weight:600;color:#334155}.daily-card__divider{height:1px;background:#e2e8f0;margin:1.25rem 0}.daily-card__example{font-size:1.35rem;font-weight:600;margin:0 0 .375rem;line-height:1.4}.daily-card__translation{font-size:.9rem;color:#64748b;font-style:italic;margin:0 0 1.25rem}.daily-card__btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#c79e4c,#ce6045);color:#fff;box-shadow:0 2px 8px #ce60454d;transition:transform .15s ease,box-shadow .15s ease}.daily-card__btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ce604566}.daily-card__btn:active{transform:translateY(0)}.daily-card__complete{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;font-size:.9rem;font-weight:600;background:#dcfce7;color:#16a34a}.daily-card__complete svg{width:1.1rem;height:1.1rem}.daily-progress{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.25rem;padding:.875rem 1rem;background:#fff;border-radius:.75rem;box-shadow:0 2px 6px #0f172a0d}.daily-progress__label{font-size:.8rem;font-weight:600;color:#64748b}.daily-progress__dots{display:flex;gap:.375rem}.daily-progress__dot{width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f1f5f9;font-size:.65rem;font-weight:600;color:#94a3b8}.daily-progress__dot.is-complete{background:#16a34a;color:#fff}.daily-progress__dot.is-complete svg{width:.9rem;height:.9rem}.daily-progress__dot.is-current{background:linear-gradient(135deg,#c79e4c,#ce6045);color:#fff;animation:pulse-dot 2s ease-in-out infinite}.daily-progress__count{font-size:.9rem;font-weight:700;color:#334155}@keyframes pulse-dot{0%,to{box-shadow:0 0 #ce604566}50%{box-shadow:0 0 0 4px #ce604526}}.daily-calendar{background:#fff;border-radius:1rem;padding:1.25rem;margin-bottom:1rem;box-shadow:0 2px 6px #0f172a0d}.daily-calendar__month{font-size:1.1rem;font-weight:700;color:#0f172a;text-align:center;margin:0 0 1rem}.daily-calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem}.daily-calendar__weekdays span{text-align:center;font-size:.7rem;font-weight:600;color:#94a3b8;text-transform:uppercase}.daily-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.daily-calendar__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;border-radius:.5rem;background:transparent;font-size:.85rem;font-weight:600;color:#334155;cursor:default;transition:background .15s ease,transform .1s ease}.daily-calendar__day--empty{background:transparent}.daily-calendar__day--completed{background:#16a34a;color:#fff;cursor:pointer}.daily-calendar__day--completed svg{width:1rem;height:1rem}.daily-calendar__day--completed:hover{background:#15803d;transform:scale(1.05)}.daily-calendar__day--completed.is-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #16a34a}.daily-calendar__day--today{background:linear-gradient(135deg,#c79e4c,#ce6045);color:#fff;cursor:pointer;animation:pulse-today 2s ease-in-out infinite}.daily-calendar__day--today:hover{transform:scale(1.05)}.daily-calendar__day--today.is-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #ce6045}@keyframes pulse-today{0%,to{box-shadow:0 0 #ce604566}50%{box-shadow:0 0 0 4px #ce604526}}.daily-calendar__day--future{color:#cbd5e1;background:#f8fafc}.daily-calendar__day--missed{color:#94a3b8;background:#f1f5f9;text-decoration:line-through}.daily-note{text-align:center;font-size:.8rem;color:#64748b;line-height:1.5;margin:0;padding:0 1rem}@media(min-width:480px){.daily-card__word{font-size:3.5rem}.daily-calendar__day{font-size:.95rem}}@media(min-width:640px){.daily-page{max-width:28rem;margin:0 auto;padding:2rem 1.5rem calc(var(--app-nav-height-mobile) + 2rem)}.daily-header__title{font-size:1.75rem}.daily-card{padding:2rem}.daily-card__word{font-size:4rem}}@media(min-width:900px){.daily-page{padding-top:calc(var(--app-nav-height-desktop) + 2rem);padding-bottom:2rem}}.auth-shell{min-height:100dvh;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 2.5rem) 1.25rem calc(env(safe-area-inset-bottom) + 1.5rem);background:linear-gradient(165deg,#c79e4c0f,#ce60450d,#3b65b10d,#638f5e0f,#fff0)}.auth-card{width:100%;max-width:24rem;margin:0 auto;background:transparent}.auth-card__header{margin-bottom:1.5rem}.auth-card__header h1{margin:0;font-size:1.75rem;font-weight:800;line-height:1.15;letter-spacing:-.025em;background:linear-gradient(135deg,#c79e4c,#ce6045,#3b65b1);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.auth-card__header p{margin:.5rem 0 0;color:#64748b;font-size:.95rem}.auth-card__footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.auth-card__footer p{margin:0;color:#64748b;font-size:.88rem;text-align:center}.auth-card__footer a{color:#3b65b1;font-weight:600}.auth-card__footer a:hover{color:#ce6045}@media(min-width:640px){.auth-shell{align-items:center;justify-content:center;padding:2rem}.auth-card{border:1px solid #e5e7eb;border-radius:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 32px #0f172a0f;padding:2rem}.auth-card__header h1{font-size:1.85rem}}.practice-setup{width:100%;max-width:32rem;margin:0 auto;padding:0;background:transparent}.practice-setup__header h1{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#c79e4c,#ce6045,#3b65b1);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.practice-setup__header p{margin:.45rem 0 0;color:#64748b;font-size:.92rem}.practice-setup__section{margin-top:1.25rem}.practice-setup__section h2{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}.practice-setup__grid{margin-top:.6rem;display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}.practice-setup__grid--modes{grid-template-columns:1fr}.practice-setup__card{min-height:5.2rem;border:none;border-radius:.7rem;background:#f8fafc;padding:.75rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.25rem;text-align:left;transition:background-color .15s ease,transform .1s ease}button.practice-setup__card{cursor:pointer;-webkit-tap-highlight-color:transparent}button.practice-setup__card:active{transform:scale(.98)}.practice-setup__card.is-selected{background:linear-gradient(135deg,#3b65b11f,#387da61a)}.practice-setup__card.is-selected .practice-setup__card-title{color:#3b65b1}.practice-setup__card.is-disabled{color:#94a3b8;background:#f1f5f9}.practice-setup__card-title{font-size:.9rem;font-weight:700;color:#1e293b}.practice-setup__card-text{font-size:.76rem;line-height:1.25;color:#64748b}.practice-setup__footer{margin-top:1.25rem}.practice-setup__start-button{width:100%;border:0;border-radius:.65rem;padding:.85rem 1rem;background:linear-gradient(135deg,#3b65b1,#387da6);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.practice-setup__start-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b65b140}.practice-setup__start-button:active{transform:translateY(0)}.practice-setup__start-button:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;box-shadow:none}@media(min-width:640px){.practice-setup{border:1px solid #e5e7eb;border-radius:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 32px #0f172a0f;padding:1.5rem}.practice-setup__card{border:1px solid #e2e8f0;background:#fff}.practice-setup__card.is-selected{border-color:#3b65b1}}.profile-page{min-height:calc(100dvh - var(--app-nav-height-mobile));display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 1.5rem) 1.25rem calc(env(safe-area-inset-bottom) + 1.5rem)}.profile-card{flex:1;display:flex;flex-direction:column}.profile-page h1{margin:0 0 1.25rem;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#c79e4c,#ce6045);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.profile-info{margin-bottom:1.5rem}.profile-info p{margin:0 0 .75rem;padding:.85rem 0;border-bottom:1px solid #f1f5f9;font-size:.95rem;color:#334155}.profile-info p:last-child{margin-bottom:0}.profile-info strong{display:block;margin-bottom:.25rem;font-size:.75rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.profile-placeholder{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;margin-bottom:1rem;border:1px dashed #e2e8f0;border-radius:.75rem;color:#94a3b8;font-size:.9rem;text-align:center}.logout-button{width:100%;margin-top:auto;border:1px solid #e2e8f0;border-radius:.65rem;padding:.8rem 1rem;background:transparent;color:#64748b;font-size:.92rem;font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease}.logout-button:hover{border-color:#c6374b;color:#c6374b}@media(min-width:640px){.profile-page{align-items:center;justify-content:center;padding:2rem}.profile-card{flex:0;width:100%;max-width:24rem;border:1px solid #e5e7eb;border-radius:1.25rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 32px #0f172a0f;padding:1.75rem}}.auth-form{display:grid;gap:.6rem}.auth-form label{font-size:.82rem;font-weight:600;color:#475569;letter-spacing:.01em}.auth-form input{width:100%;border:none;border-bottom:2px solid #e2e8f0;border-radius:0;background:transparent;color:#111827;padding:.7rem 0;font-size:1rem;transition:border-color .2s ease}.auth-form input:focus{outline:none;border-bottom-color:#3b65b1}.auth-form input::placeholder{color:#94a3b8}.auth-form button{margin-top:.75rem;border:0;border-radius:.65rem;padding:.85rem 1rem;background:linear-gradient(135deg,#3b65b1,#387da6);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.auth-form button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b65b140}.auth-form button:active{transform:translateY(0)}.auth-form button:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;box-shadow:none}.auth-form__error{background:#c6374b14;border-left:3px solid #c6374b;color:#991b1b;padding:.7rem .85rem;border-radius:.35rem;font-size:.88rem;font-weight:500}.auth-form__success{background:#638f5e1a;border-left:3px solid #638f5e;color:#166534;padding:.7rem .85rem;border-radius:.35rem;font-size:.88rem;font-weight:500}@media(min-width:640px){.auth-form input{border:1px solid #e2e8f0;border-radius:.6rem;padding:.75rem .9rem;background:#fff}.auth-form input:focus{border-color:#3b65b1;box-shadow:0 0 0 3px #3b65b11a}}*,*:before,*:after{box-sizing:border-box}:root{--app-nav-height-mobile: 4.25rem;--app-nav-height-desktop: 4rem;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#111827;background-color:#fff}html,body,#root{min-height:100%}body{position:relative;margin:0;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{position:relative;z-index:1}.app-shell{min-height:100dvh}.app-shell--with-nav{padding-bottom:calc(var(--app-nav-height-mobile) + env(safe-area-inset-bottom))}a{color:#0f172a;text-decoration:none}a:hover{text-decoration:underline}.dashboard-page{min-height:calc(100dvh - var(--app-nav-height-mobile));display:flex;align-items:center;justify-content:center;padding:0;background:transparent}.practice-page{min-height:calc(100dvh - var(--app-nav-height-mobile));display:flex;align-items:flex-start;justify-content:center;padding:calc(env(safe-area-inset-top) + 1rem) 1.25rem calc(env(safe-area-inset-bottom) + 1rem);background:transparent}.practice-back-button{position:fixed;top:calc(.6rem + env(safe-area-inset-top));left:.85rem;z-index:12;border:none;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:700;padding:.4rem .65rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}.practice-back-button:active{background:#e2e8f0}.shell-page{min-height:calc(100dvh - var(--app-nav-height-mobile));display:flex;align-items:center;justify-content:center;padding:1rem}.shell-panel{width:100%;max-width:24rem;border:1px solid #dbe2ea;border-radius:1rem;background:#fffc;padding:1rem;box-shadow:0 10px 28px #0f172a0f}.shell-panel h1{margin:0;font-size:1.4rem}.shell-panel p{margin:.6rem 0 0;color:#475569}@media(min-width:900px){.app-shell--with-nav{padding-bottom:0;padding-top:var(--app-nav-height-desktop)}.dashboard-page,.practice-page,.shell-page{min-height:calc(100dvh - var(--app-nav-height-desktop))}.practice-back-button{top:calc(var(--app-nav-height-desktop) + .6rem);left:max(1rem,calc((100vw - 64rem)/2 + 1rem));border:1px solid #e2e8f0;background:#fff}.practice-back-button:hover{background:#f8fafc}}
