@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-latin-400-normal-DSkA1yZt.woff2)format("woff2"),url(/assets/geist-latin-400-normal-BnFbi-1n.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-latin-500-normal-DJ9fwJi3.woff2)format("woff2"),url(/assets/geist-latin-500-normal-CIqOcbcu.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/geist-latin-600-normal-C4XfSTOc.woff2)format("woff2"),url(/assets/geist-latin-600-normal-CvyQaDJg.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/geist-latin-700-normal-CKFtLPQ7.woff2)format("woff2"),url(/assets/geist-latin-700-normal-BKs1SfBc.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/geist-latin-800-normal-D7Id04DE.woff2)format("woff2"),url(/assets/geist-latin-800-normal-Df2__d7t.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f7f3ed;--surface:#fffdf9;--surface-2:#f0ece4;--ink:#171612;--muted:#716c62;--line:#e4ded2;--charcoal:#25231f;--accent:#b85c55;--accent-2:#1f7a63;--blue:#2f6f91;--shadow:0 28px 70px #332c2029;background:var(--paper);color:var(--ink);font-family:Geist,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:radial-gradient(circle at 12% 12%, #b85c552e, transparent 30%), radial-gradient(circle at 86% 4%, #1f7a631f, transparent 28%), var(--paper);letter-spacing:0;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.42}svg{flex:none}mjx-container svg{fill:currentColor!important;stroke:none!important;width:auto!important;height:auto!important}mjx-container svg path,mjx-container svg use{stroke:none!important}.stage{place-items:center;min-height:100dvh;padding:28px 14px;display:grid}.phone-shell{width:min(414px,100vw);height:min(896px,100dvh - 56px);min-height:720px;box-shadow:var(--shadow);isolation:isolate;background:linear-gradient(#fffdf8,#f6f1e9);border:1px solid #25231f1a;border-radius:42px;position:relative;overflow:hidden}.ambient{pointer-events:none;filter:blur(18px);opacity:.45;border-radius:999px;width:240px;height:240px;position:absolute}.ambient-a{background:#b85c5547;top:-112px;right:-82px}.ambient-b{background:#1f7a6338;bottom:90px;left:-154px}.app-shell{z-index:1;height:100%;position:relative;overflow:hidden}.screen{padding:22px 22px calc(104px + env(safe-area-inset-bottom));scrollbar-width:none;overscroll-behavior:contain;position:absolute;inset:0;overflow:hidden auto}.screen::-webkit-scrollbar{display:none}.subject-rail::-webkit-scrollbar{display:none}.formula-preview::-webkit-scrollbar{display:none}.formula-row-formula::-webkit-scrollbar{display:none}.detail-formula::-webkit-scrollbar{display:none}.hero-head,.view-header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800;display:block}h1,h2{color:var(--ink);letter-spacing:-.05em;margin:0;font-weight:800;line-height:.9}h1{max-width:250px;font-size:clamp(2.45rem,12.2vw,3.65rem)}.view-header{align-items:center;padding-top:4px}.view-header h2{max-width:245px;font-size:2.65rem}.view-header span{color:var(--muted);font-size:.78rem;font-weight:700}.progress-ring{background:radial-gradient(circle, var(--surface) 58%, transparent 60%), conic-gradient(var(--accent-2) var(--progress), #e3dccf 0);border-radius:50%;flex:none;place-items:center;width:68px;height:68px;display:grid;box-shadow:inset 0 0 0 1px #25231f0f}.progress-ring span{color:var(--charcoal);font-size:.82rem;font-weight:800}.subject-rail{overscroll-behavior-inline:contain;scrollbar-width:none;align-items:center;gap:8px;height:58px;margin:12px -22px 10px;padding:4px 22px 8px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 22px calc(100% - 42px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 22px calc(100% - 42px),#0000 100%)}.subject-rail button{color:#565046;background:#fffdf994;border:1px solid #25231f14;border-radius:999px;grid-template-columns:auto auto;grid-auto-flow:column;justify-content:center;align-items:center;gap:7px;min-width:66px;height:44px;padding:0 13px;transition:color .22s,background .22s,border-color .22s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1);display:inline-grid;box-shadow:inset 0 1px #ffffff8f}.subject-rail button.active{background:var(--accent);color:#fffdf8;border-color:#b85c5529;transform:translateY(-2px);box-shadow:0 12px 28px #b85c552e}.subject-rail button:active{transform:translateY(0)scale(.98)}.subject-label{letter-spacing:-.01em;font-size:.72rem;font-weight:850}.subject-rail small{color:currentColor;opacity:.58;font-size:.68rem;font-weight:760}.mode-panel{background:#e9e2d7c7;border:1px solid #25231f14;border-radius:24px;grid-template-columns:1fr 1fr;gap:0;height:52px;margin-top:8px;padding:5px;display:grid}.mode-panel button{color:var(--charcoal);background:0 0;border:0;border-radius:19px;font-weight:800;position:relative}.mode-panel button span:not(.mode-indicator){z-index:1;position:relative}.mode-indicator{border-radius:inherit;background:var(--surface);position:absolute;inset:0;box-shadow:0 10px 26px #332c201a}.study-meta{min-height:30px;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:10px 0 0;font-size:.86rem;display:flex}.study-meta strong{color:var(--accent)}.flash-stack{perspective:900px;height:238px;margin-top:8px;position:relative}.stack-card{border-radius:30px;height:176px;position:absolute;top:7px;left:17px;right:17px}.stack-card.blue{background:var(--blue);transform:rotate(-2deg)}.stack-card.rose{background:var(--accent);top:22px;transform:rotate(2deg)}.flash-card{background:var(--charcoal);color:#fffdf8;border-radius:32px;min-height:198px;position:absolute;inset:30px 0 auto;overflow:hidden;box-shadow:0 22px 48px #25231f38}.card-open,.star-button{color:inherit;background:0 0;border:0}.card-open{text-align:left;width:100%;min-height:198px;padding:22px 24px 16px}.star-button{z-index:2;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:absolute;top:20px;right:20px}.star-button svg,.detail-favorite svg{width:24px;height:24px}.card-open>span{color:#fffdf89e;letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px;font-size:.72rem;font-weight:800;display:block}.card-open h2{color:#fffdf8;letter-spacing:-.04em;max-width:270px;font-size:1.48rem;line-height:.96}.formula-preview{color:#fffdf8;scrollbar-width:none;max-height:48px;margin:10px 0 8px;font-size:.78rem;overflow:auto}.math-fallback{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.math-rendered{display:block}.card-open p{color:#fffdf8c2;-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:292px;margin:0;font-size:.84rem;line-height:1.38;display:-webkit-box;overflow:hidden}.card-open strong{color:#fffdf8;margin-top:10px;font-size:.9rem;font-weight:850;display:inline-block}.card-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.primary-action,.secondary-action,.load-more,.pill-action,.danger-action{border:0;border-radius:20px;justify-content:center;align-items:center;gap:8px;min-height:52px;font-weight:850;transition:transform .15s,opacity .15s;display:inline-flex}.primary-action:active,.secondary-action:active,.load-more:active,.pill-action:active,.danger-action:active,.formula-row-card:active,.quiz-option:active,.card-open:active{transform:scale(.98)}.primary-action{background:var(--charcoal);color:#fffdf8}.secondary-action,.load-more,.pill-action{border:1px solid var(--line);color:var(--ink);background:#fffdf9e0}.formula-list{gap:11px;margin-top:22px;display:grid}.formula-row-card{border:1px solid var(--line);text-align:left;width:100%;color:var(--ink);background:#fffdf9d1;border-radius:24px;padding:16px 17px;position:relative;overflow:hidden}.row-kicker{color:var(--accent);letter-spacing:.07em;text-transform:uppercase;font-size:.7rem;font-weight:850}.formula-row-card strong{max-width:calc(100% - 74px);margin-top:3px;font-size:1rem;line-height:1.05;display:block}.formula-row-card small{color:var(--muted);margin-top:5px;font-weight:650;display:block}.formula-row-formula{color:#4f4a42;scrollbar-width:none;max-height:82px;margin:10px 0 0;font-size:.82rem;line-height:1.36;overflow:auto}.formula-row-formula .math-fallback{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.formula-row-formula mjx-container{text-align:left!important;margin:0!important}.row-status{min-width:58px;color:var(--muted);text-align:center;background:#eee7dc;border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:850;position:absolute;top:15px;right:15px}.row-status.learning{color:var(--accent);background:#b85c5524}.row-status.done{color:var(--accent-2);background:#1f7a6324}.search-field{color:var(--muted);gap:8px;margin-top:24px;font-size:.78rem;font-weight:800;display:grid}.search-field input{border:1px solid var(--line);width:100%;min-height:56px;color:var(--ink);background:#fffdf9eb;border-radius:22px;outline:0;padding:0 16px;font-size:1rem}.search-field input:focus{border-color:#b85c5585}.load-more{width:100%;margin-top:14px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;display:grid}.stat{border:1px solid var(--line);background:#fffdf9c7;border-radius:26px;align-content:space-between;min-height:106px;padding:16px;display:grid}.stat span{color:var(--muted);font-size:.78rem;font-weight:800}.stat strong{color:var(--ink);letter-spacing:-.06em;font-size:2rem}.settings-panel{border:1px solid var(--line);background:#fffdf9c7;border-radius:28px;gap:12px;margin-top:16px;padding:18px;display:grid}.settings-panel div{gap:4px;display:grid}.settings-panel strong{font-size:1rem}.settings-panel span{color:var(--muted);font-size:.85rem}.danger-action{background:var(--accent);color:#fffdf8}.empty-state{border:1px dashed var(--line);min-height:230px;color:var(--muted);text-align:center;border-radius:30px;align-content:center;place-items:center;gap:8px;margin-top:24px;display:grid}.empty-state svg{width:44px;height:44px;color:var(--accent)}.empty-state strong{color:var(--ink);font-size:1rem}.empty-state.compact{min-height:154px;margin-top:0}.bottom-nav{z-index:8;left:20px;right:20px;bottom:max(14px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf9e6;border:1px solid #25231f14;border-radius:28px;grid-template-columns:repeat(5,1fr);gap:4px;height:64px;padding:7px;display:grid;position:absolute;box-shadow:0 -12px 34px #332c2014}.bottom-nav button{min-width:0;color:var(--charcoal);background:0 0;border:0;border-radius:22px;position:relative}.bottom-nav svg{z-index:1;width:22px;height:22px;position:relative}.nav-pill{border-radius:inherit;background:var(--surface-2);position:absolute;inset:0}.detail-sheet{z-index:10;scrollbar-width:none;background:linear-gradient(#fffdf8,#f6f1e9);position:absolute;inset:0;overflow:auto}.detail-sheet::-webkit-scrollbar{display:none}.detail-band{background:linear-gradient(135deg, transparent 0 42%, #2f6f91f2 42% 59%, transparent 59%), linear-gradient(76deg, #d9b45f 0 56%, var(--accent) 56% 78%, #d9b45f 78%);border-bottom-right-radius:30px;border-bottom-left-radius:30px;justify-content:space-between;align-items:flex-start;min-height:102px;padding:22px;display:flex}.back-button,.detail-favorite{width:42px;height:42px;color:var(--ink);background:#fffdf9eb;border:0;border-radius:50%;place-items:center;display:grid}.detail-content{padding:20px 22px 108px}.detail-content h2{margin-top:6px;font-size:2.35rem;line-height:.95}.color-rule{background:linear-gradient(90deg, var(--accent) 0 34%, var(--blue) 34% 68%, #d9b45f 68%);border-radius:999px;height:4px;margin:18px 0 22px}.detail-block{gap:10px;margin-top:22px;display:grid}.detail-block>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:850}.detail-formula{border:1px solid var(--line);color:var(--ink);scrollbar-width:none;background:#fffdf9c7;border-radius:26px;padding:18px;overflow:auto}.detail-block p{color:#514b42;margin:0;line-height:1.48}.quiz-question{font-weight:720}.quiz-panel{gap:12px;display:grid}.quiz-topline,.quiz-question-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.quiz-topline span,.quiz-question-meta span{color:var(--muted);font-size:.76rem;font-weight:820}.quiz-topline strong{background:var(--surface-2);min-width:72px;color:var(--charcoal);text-align:center;border-radius:999px;padding:6px 10px;font-size:.74rem;font-weight:860}.quiz-stepper{grid-template-columns:repeat(5,1fr);gap:7px;display:grid}.quiz-stepper button{border:1px solid var(--line);height:36px;color:var(--muted);background:#fffdf9b3;border-radius:999px;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s,border-color .18s}.quiz-stepper button:active{transform:scale(.96)}.quiz-stepper button.done{color:var(--accent-2);background:#1f7a631a;border-color:#1f7a6347}.quiz-stepper button.active{color:var(--accent);background:#b85c5521;border-color:#b85c555c}.quiz-stepper span{font-size:.78rem;font-weight:880}.quiz-card{gap:12px;display:grid}.quiz-question-meta{padding-top:2px}.quiz-question-meta span:first-child{color:var(--accent);text-transform:uppercase;letter-spacing:.07em}.quiz-options{gap:10px;display:grid}.quiz-option{border:1px solid var(--line);min-height:60px;color:var(--ink);text-align:left;background:#fffdf9db;border-radius:22px;grid-template-columns:32px 1fr 22px;align-items:center;gap:10px;padding:12px 14px;display:grid}.quiz-option:disabled{cursor:default;opacity:1}.quiz-option span{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border-radius:50%;place-items:center;font-weight:850;display:grid}.quiz-option strong{line-height:1.2}.quiz-option.correct{background:#1f7a6317;border-color:#1f7a6361}.quiz-option.correct span{background:var(--accent-2);color:#fffdf8}.quiz-option.wrong{background:#b85c5517;border-color:#b85c5566}.quiz-option.wrong span{background:var(--accent);color:#fffdf8}.quiz-explanation{border:1px solid var(--line);background:#fffdf9b8;border-radius:22px;gap:5px;padding:13px 14px;display:grid}.quiz-explanation strong{font-size:.84rem}.quiz-explanation p{font-size:.88rem}.quiz-explanation.correct{background:#1f7a6314;border-color:#1f7a6347}.quiz-explanation.correct strong{color:var(--accent-2)}.quiz-explanation.wrong{background:#b85c5514;border-color:#b85c5552}.quiz-explanation.wrong strong{color:var(--accent)}.quiz-footer{gap:10px;display:grid}.quiz-next,.quiz-retake{width:100%;min-height:48px}.quiz-summary{border:1px solid var(--line);background:#fffdf9c7;border-radius:24px;gap:8px;padding:14px;display:grid}.quiz-summary strong{color:var(--ink)}.quiz-summary span{color:var(--muted);font-size:.88rem;line-height:1.38}.quiz-summary.mastered{border-color:#1f7a6347}.quiz-summary.review{border-color:#b85c554d}.variable-list{gap:8px;display:grid}.variable-list div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding-bottom:9px;display:flex}.variable-list strong{color:var(--accent)}.variable-list span{color:var(--ink);text-align:right}.toast{z-index:30;background:var(--charcoal);color:#fffdf8;border-radius:18px;padding:14px 16px;font-size:.88rem;font-weight:760;position:absolute;bottom:94px;left:24px;right:24px}@media (max-width:960px){.stage{padding:0;display:block}.phone-shell{width:100vw;height:100dvh;min-height:100dvh;box-shadow:none;border:0;border-radius:0}}@media (max-width:370px){.screen{padding-left:16px;padding-right:16px}h1{font-size:2.72rem}.view-header h2{font-size:2.3rem}.card-open{min-height:228px;padding-left:20px;padding-right:20px}.flash-stack{height:282px}.flash-card{min-height:228px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
