@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@property --ambient-hue{syntax:"<number>";inherits:true;initial-value:22}:root{--bg:#08080a;--ink:#f3f3f5;--ink-2:#a8a8b2;--ink-3:#8c8c97;--ink-fade:#8f8f9b;--line:#ffffff14;--line-2:#ffffff24;--glass:#18181e8c;--glass-2:#ffffff0f;--glass-strong:#121217b8;--glass-card:#16161cd1;--field:#0000004d;--sel:#ffffff14;--seg-on:#ffffff21;--track:#ffffff12;--switch-off:#ffffff29;--sheen:linear-gradient(140deg, #ffffff13, #fff0 40%);--rim:inset 0 1px 0 #ffffff17;--shadow:0 1px 1px #0000004d, 0 12px 32px -14px #000000b3;--shadow-lg:0 30px 80px -24px #000000d9;--accent:#ff6363;--accent-2:#ff9b58;--primary:#f3f3f5;--primary-ink:#0b0b0e;--primary-rim:inset 0 1px 0 #fff9;--good:#4ade80;--good-ink:#03210e;--good-bg:#4ade801f;--bad:#ff7a7a;--bad-ink:#2a0505;--bad-bg:#ff636321;--key-top:#ffffff1c;--key-bottom:#ffffff0a;--grid:#ffffff0d;--amb-l:62%;--amb-a:.42;--amb-b:.24;--amb-c:.2;--tab-l:72%;--tab-c:.15;--hue-ink-l:82%;--foot:#0000002e;--font:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-text:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius:14px;--radius-lg:20px;--ease:cubic-bezier(.2, .8, .2, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--blur:blur(22px) saturate(165%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f2f2f5;--ink:#111114;--ink-2:#4c4c56;--ink-3:#5f5f6a;--ink-fade:#4a4a55;--line:#14142817;--line-2:#14142829;--glass:#ffffff94;--glass-2:#ffffffb8;--glass-strong:#ffffffb8;--glass-card:#ffffffe0;--field:#ffffffd9;--sel:#1414280f;--seg-on:#fff;--track:#14142812;--switch-off:#14142829;--sheen:linear-gradient(140deg, #ffffffb3, #fff0 45%);--rim:inset 0 1px 0 #ffffffe6;--shadow:0 1px 1px #1414280a, 0 12px 32px -14px #14142838;--shadow-lg:0 30px 80px -24px #14142859;--accent:#c8283a;--accent-2:#e8603a;--primary:#131317;--primary-ink:#fff;--primary-rim:inset 0 1px 0 #ffffff29;--good:#13743a;--good-ink:#fff;--good-bg:#13743a1a;--bad:#c22a2a;--bad-ink:#fff;--bad-bg:#c22a2a14;--key-top:#fff;--key-bottom:#ececf1;--grid:#1414280e;--amb-l:80%;--amb-a:.6;--amb-b:.4;--amb-c:.35;--tab-l:60%;--tab-c:.16;--hue-ink-l:45%;--foot:#fff6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root[data-theme=system]{--bg:#f2f2f5;--ink:#111114;--ink-2:#4c4c56;--ink-3:#5f5f6a;--ink-fade:#4a4a55;--line:#14142817;--line-2:#14142829;--glass:#ffffff94;--glass-2:#ffffffb8;--glass-strong:#ffffffb8;--glass-card:#ffffffe0;--field:#ffffffd9;--sel:#1414280f;--seg-on:#fff;--track:#14142812;--switch-off:#14142829;--sheen:linear-gradient(140deg, #ffffffb3, #fff0 45%);--rim:inset 0 1px 0 #ffffffe6;--shadow:0 1px 1px #1414280a, 0 12px 32px -14px #14142838;--shadow-lg:0 30px 80px -24px #14142859;--accent:#c8283a;--accent-2:#e8603a;--primary:#131317;--primary-ink:#fff;--primary-rim:inset 0 1px 0 #ffffff29;--good:#13743a;--good-ink:#fff;--good-bg:#13743a1a;--bad:#c22a2a;--bad-ink:#fff;--bad-bg:#c22a2a14;--key-top:#fff;--key-bottom:#ececf1;--grid:#1414280e;--amb-l:80%;--amb-a:.6;--amb-b:.4;--amb-c:.35;--tab-l:60%;--tab-c:.16;--hue-ink-l:45%;--foot:#fff6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*,:before,:after{box-sizing:border-box}html{background-color:var(--bg);scrollbar-gutter:stable}body{min-height:100vh;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.6}h1,h2,h3{text-wrap:balance;margin:0;font-weight:650;line-height:1.15}h1{letter-spacing:-.035em;font-size:clamp(1.9rem,1.3rem + 2vw,2.5rem);font-weight:700}h2{letter-spacing:-.02em;font-size:1.2rem}h3{letter-spacing:-.01em;font-size:1rem}p{margin:0}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon{flex:none}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:.875rem}.num{font-variant-numeric:tabular-nums}.good-text{color:var(--good)}.bad-text{color:var(--bad)}.danger-text{color:var(--bad)!important}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:.75rem;font-weight:600}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar,.hero-search,.badge,.stat,.subject-card,.tabs,.panel,.result,.banner,.empty,.card-form,.card-list,.option,.note-item,.history,.review{background:var(--sheen), var(--glass);border:1px solid var(--line);box-shadow:var(--rim), var(--shadow)}.topbar,.hero-search,.stat,.subject-card,.tabs{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.app{min-height:100vh;position:relative}.ambient{--ambient-hue:22;z-index:-1;pointer-events:none;background:radial-gradient(70% 60% at 50% 0%, oklch(var(--amb-l) .2 var(--ambient-hue) / var(--amb-a)), transparent 75%), radial-gradient(45% 45% at 0% 25%, oklch(var(--amb-l) .17 calc(var(--ambient-hue) - 35) / var(--amb-b)), transparent 70%), radial-gradient(50% 50% at 100% 90%, oklch(var(--amb-l) .15 285 / var(--amb-c)), transparent 70%);transition:--ambient-hue .9s;position:fixed;inset:0}.ambient:after{content:"";background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-position:50% -1px;background-size:56px 56px;height:75vh;position:absolute;inset:0 0 auto;-webkit-mask-image:radial-gradient(80% 90% at 50% 0,#000 20%,#0000 75%);mask-image:radial-gradient(80% 90% at 50% 0,#000 20%,#0000 75%)}.topbar{top:max(10px, env(safe-area-inset-top,0px));z-index:20;width:min(992px,100% - 20px);margin:max(10px, env(safe-area-inset-top,0px)) auto 0;background:var(--sheen), var(--glass-strong);border-radius:18px;align-items:center;gap:6px;padding:6px 6px 6px 10px;display:flex;position:sticky}.brand{letter-spacing:-.015em;border-radius:10px;align-items:center;gap:10px;padding:4px 8px 4px 2px;font-size:1rem;font-weight:650;text-decoration:none;display:inline-flex}.brand-mark{background:linear-gradient(140deg,#ff8a5c,#ff4f64 55%,#e02f5c);border-radius:8px;flex:none;width:26px;height:26px;position:relative;box-shadow:inset 0 1px #ffffff73,inset 0 -1px #0000002e,0 4px 14px -4px #ff505ab3}.brand-mark:before,.brand-mark:after{content:"";border-radius:2.5px;position:absolute}.brand-mark:before{background:#ffffff80;width:12px;height:9px;top:6px;left:8.5px;transform:rotate(8deg)}.brand-mark:after{background:#fff;width:14px;height:10px;top:9.5px;left:5.5px;transform:rotate(-7deg);box-shadow:0 1px 2px #78001459}.topnav{align-items:center;gap:2px;display:flex}.topnav a{color:var(--ink-2);border-radius:11px;padding:7px 12px;font-size:.925rem;font-weight:550;text-decoration:none;transition:color .2s,background-color .2s}.topnav a.active{color:var(--ink);background:var(--sel);box-shadow:var(--rim)}.top-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.palette-trigger,.chip{border:1px solid var(--line);background:var(--glass-2);height:36px;box-shadow:var(--rim);color:var(--ink-2);font:inherit;cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:0 12px;font-size:.875rem;font-weight:500;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.palette-trigger{padding-right:6px}.pt-keys{gap:3px;margin-left:6px;display:inline-flex}.page{flex-direction:column;gap:28px;max-width:960px;margin:0 auto;padding:36px 16px 88px;display:flex}.narrow{max-width:640px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}kbd{min-width:22px;height:22px;font:600 .72rem/1 var(--font);color:var(--ink-2);background:linear-gradient(180deg, var(--key-top), var(--key-bottom));border:1px solid var(--line-2);box-shadow:var(--rim);border-bottom-width:2px;border-radius:6px;place-items:center;padding:0 6px;display:inline-grid}.btn{background:var(--primary);min-height:40px;color:var(--primary-ink);box-shadow:var(--primary-rim), 0 1px 2px #00000040, 0 8px 20px -10px #0009;font:inherit;cursor:pointer;transition:transform .18s var(--ease), box-shadow .25s var(--ease), background-color .2s, border-color .2s, opacity .2s;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.925rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn.ghost{background:var(--glass-2);color:var(--ink);border-color:var(--line-2);box-shadow:var(--rim)}.btn.danger,.btn.bad{background:var(--bad-bg);color:var(--bad);border-color:color-mix(in srgb, var(--bad) 35%, transparent);box-shadow:var(--rim)}.btn.good{background:var(--good-bg);color:var(--good);border-color:color-mix(in srgb, var(--good) 35%, transparent);box-shadow:var(--rim)}.btn.big-btn{border-radius:14px;min-height:50px;font-size:1rem}.btn kbd{min-width:20px;height:20px;color:inherit;border-color:color-mix(in srgb, currentColor 30%, transparent);box-shadow:none;opacity:.85;background:0 0}.link-btn{color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:4px;background:0 0;border:none;align-self:flex-start;padding:0;font-weight:600}.confirm{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.confirm-q{color:var(--bad);font-size:.9rem;font-weight:600}:where(input:not([type=checkbox],[type=file],[type=radio])),textarea{border:1px solid var(--line-2);background:var(--field);width:100%;min-width:0;color:var(--ink);font:inherit;border-radius:12px;padding:10px 14px;transition:border-color .2s,box-shadow .2s,background-color .2s;box-shadow:inset 0 1px 2px #0000001f}input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}input:focus,textarea:focus{border-color:color-mix(in srgb, var(--accent) 70%, transparent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}textarea{resize:vertical;line-height:1.6;font-family:var(--font-text)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.label{color:var(--ink-2);font-size:.875rem;font-weight:600}.toggle{color:var(--ink-2);cursor:pointer;align-items:center;gap:10px;font-size:.925rem;display:inline-flex}.toggle input{appearance:none;cursor:pointer;background:radial-gradient(circle closest-side, #fff 90%, transparent) 2px 50% / 20px 20px no-repeat, var(--switch-off);width:40px;height:24px;box-shadow:inset 0 0 0 1px var(--line), inset 0 1px 2px #00000040;transition:background-position .32s var(--spring), background-color .25s;border-radius:99px;flex:none;margin:0}.toggle+.toggle{margin-left:10px}.toggle input:checked{background-color:var(--accent);background-position:calc(100% - 2px)}.seg{background:var(--track);border:1px solid var(--line);border-radius:13px;flex-wrap:wrap;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--ink-2);font:inherit;cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:10px;padding:7px 16px;font-size:.9rem;font-weight:600;transition:background-color .2s,color .2s,box-shadow .2s}.seg button[aria-checked=true]{background:var(--seg-on);color:var(--ink);box-shadow:var(--rim), 0 2px 8px -2px #0000004d}.hero{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:26px 0 4px;display:flex}.badge{color:var(--ink-2);border-radius:99px;align-items:center;gap:8px;padding:5px 12px 5px 10px;font-size:.8rem;font-weight:550;display:inline-flex}.badge-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent), 0 0 12px var(--accent);border-radius:50%}.hero h1{letter-spacing:-.045em;max-width:15ch;padding-bottom:.06em;font-size:clamp(2.3rem,1.4rem + 3.6vw,3.6rem);line-height:1.05}@supports ((-webkit-background-clip:text) or (background-clip:text)){.hero h1{background:linear-gradient(180deg, var(--ink) 35%, var(--ink-fade));color:#0000;-webkit-background-clip:text;background-clip:text}}.hero-sub{text-wrap:balance;max-width:44ch;font-size:1.05rem}.hero-search{width:min(560px,100%);height:54px;color:var(--ink-3);font:inherit;text-align:left;cursor:text;box-shadow:var(--rim), var(--shadow), 0 0 0 0 transparent;transition:border-color .25s, box-shadow .3s var(--ease), transform .3s var(--ease);border-radius:16px;align-items:center;gap:12px;margin-top:10px;padding:0 12px 0 18px;font-size:1rem;display:flex}.hero-search .pt-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.stats{grid-template-columns:repeat(3,1fr);gap:12px;margin:0;display:grid}.stat{border-radius:var(--radius);flex-direction:column-reverse;gap:2px;padding:16px 18px;display:flex}.stat dt{color:var(--ink-3);font-size:.8rem;font-weight:500}.stat dd{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-size:1.85rem;font-weight:650;line-height:1.15}.stat small{color:var(--ink-3);letter-spacing:0;font-size:.55em;font-weight:500}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px;display:grid}.subject-card{isolation:isolate;border-radius:var(--radius-lg);transition:transform .4s var(--ease), border-color .25s, box-shadow .4s var(--ease);flex-direction:column;gap:6px;padding:18px;text-decoration:none;display:flex;position:relative;overflow:hidden}.subject-card:before{content:"";z-index:-1;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%), oklch(var(--tab-l) var(--tab-c) var(--hue) / .2), transparent 65%);opacity:0;transition:opacity .3s;position:absolute;inset:0}.subject-card:after{content:"";background:linear-gradient(90deg, transparent, oklch(var(--tab-l) var(--tab-c) var(--hue) / .8), transparent);height:1px;position:absolute;inset:0 12% auto}.card-top{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.go{color:var(--ink-3);opacity:0;transition:opacity .25s, transform .4s var(--ease);font-size:1.1rem;line-height:1;transform:translate(-4px,4px)}.subject-card h2{overflow-wrap:anywhere;font-size:1.15rem}.subject-icon{background:linear-gradient(140deg, oklch(68% .15 var(--hue)), oklch(48% .18 calc(var(--hue) + 35)));color:#fff;text-shadow:0 1px 2px #0000004d;width:40px;height:40px;box-shadow:inset 0 1px 0 #fff6, inset 0 -2px 4px #00000026, 0 8px 20px -8px oklch(55% .2 var(--hue) / .8);border-radius:12px;flex:none;place-items:center;font-size:1.2rem;font-weight:700;line-height:1;display:grid}.subject-icon.lg{border-radius:16px;width:54px;height:54px;font-size:1.55rem}.subject-icon.sm{border-radius:8px;width:28px;height:28px;font-size:.85rem;box-shadow:inset 0 1px #ffffff59}.meter{background:var(--track);border-radius:99px;height:5px;margin-top:8px;overflow:hidden}.meter span,.progress span{border-radius:inherit;background:linear-gradient(90deg, oklch(var(--tab-l) var(--tab-c) var(--hue,22)), oklch(var(--tab-l) var(--tab-c) calc(var(--hue,22) + 45)));height:100%;box-shadow:0 0 12px oklch(65% .2 var(--hue,22) / .55);display:block}.meter span{transform-origin:0;animation:grow .9s var(--ease) backwards;animation-delay:calc(.3s + var(--i,0) * 45ms)}.add-card{border-style:dashed;border-color:var(--line-2);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;gap:10px}.add-card:after{content:none}.add-icon{border:1px dashed var(--line-2);width:40px;height:40px;color:var(--ink-2);border-radius:12px;place-items:center;display:grid}.add-card label{letter-spacing:-.02em;font-size:1.15rem;font-weight:650}.subject-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.subject-title{align-items:center;gap:14px;min-width:0;display:flex}.subject-title h1{overflow-wrap:anywhere}.subject-head form input{max-width:320px}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:2px solid var(--bg);background:oklch(var(--tab-l) var(--tab-c) var(--hue));width:26px;height:26px;box-shadow:0 0 0 1px var(--line-2);cursor:pointer;transition:transform .2s var(--spring);border-radius:50%}.swatch[aria-checked=true]{box-shadow:0 0 0 2px var(--ink);transform:scale(1.1)}.tabs{scrollbar-width:none;border-radius:15px;gap:4px;width:fit-content;max-width:100%;margin:22px 0 26px;padding:4px;display:flex;overflow-x:auto}.tabs a{color:var(--ink-3);border-radius:11px;flex:none;align-items:center;gap:7px;padding:8px 14px;font-size:.925rem;font-weight:600;text-decoration:none;transition:color .2s,background-color .25s,box-shadow .25s;display:inline-flex}.tabs a.active{color:var(--ink);background:var(--seg-on);box-shadow:var(--rim), 0 2px 10px -2px #0000004d}.tabs a.active .icon{color:oklch(var(--hue-ink-l) .15 var(--hue))}.count{background:var(--track);min-width:20px;color:var(--ink-2);text-align:center;font-variant-numeric:tabular-nums;border-radius:99px;padding:1px 6px;font-size:.72rem;font-weight:600}.empty{border-style:dashed;border-color:var(--line-2);border-radius:var(--radius-lg);flex-direction:column;align-items:flex-start;gap:10px;padding:32px 26px;display:flex}.study{flex-direction:column;gap:18px;display:flex}.progress{background:var(--track);border-radius:99px;height:6px;overflow:hidden}.progress span{transition:width .5s var(--ease)}.flashcard{isolation:isolate;aspect-ratio:5/3;width:100%;max-width:640px;max-height:60vh;font:inherit;color:inherit;cursor:pointer;perspective:1600px;background:0 0;border:none;border-radius:24px;margin:8px auto 0;padding:0;position:relative}.flashcard:before{content:"";z-index:-1;background:radial-gradient(closest-side, oklch(62% .2 var(--hue) / .35), transparent);border-radius:50%;position:absolute;inset:10% 4% -10%}.card-inner{transform-style:preserve-3d;animation:card-in .5s var(--ease) backwards;position:absolute;inset:0}.face{background:var(--sheen), var(--glass-card);border:1px solid var(--line);box-shadow:var(--rim), var(--shadow-lg);backface-visibility:hidden;transition:transform .7s var(--ease);border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:52px 28px 48px;display:flex;position:absolute;inset:0;overflow:hidden}.face.back{background:var(--sheen), radial-gradient(120% 90% at 50% 0%, oklch(var(--tab-l) var(--tab-c) var(--hue) / .16), transparent 60%), var(--glass-card);transform:rotateY(180deg)}.flashcard.is-flipped .front{transform:rotateY(-180deg)}.flashcard.is-flipped .back{transform:rotateY(0)}.face-label{border:1px solid var(--line);background:var(--glass-2);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);border-radius:99px;padding:3px 10px;font-size:.7rem;font-weight:600;position:absolute;top:16px;left:18px}.back .face-label{color:oklch(var(--hue-ink-l) .14 var(--hue))}.face-text{letter-spacing:-.025em;text-align:center;overflow-wrap:anywhere;max-height:100%;font-size:clamp(1.4rem,4.6vw,2.3rem);font-weight:650;line-height:1.25;overflow:auto}.hint{text-align:center;color:var(--ink-3);padding:0 16px;font-size:.8rem;position:absolute;bottom:16px}.answer-row{grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:640px;margin:0 auto;display:grid}.answer-row .btn{border-radius:16px;min-height:54px;font-size:1rem}.result{text-align:center;border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.big{letter-spacing:-.045em;font-size:clamp(2.4rem,8vw,3.6rem);font-weight:700;line-height:1.05}.big small{color:var(--ink-3);letter-spacing:-.01em;font-size:.42em;font-weight:500}.question{overflow-wrap:anywhere;font-size:clamp(1.35rem,1rem + 1.6vw,1.8rem)}.options{gap:10px;display:grid}.option{text-align:left;width:100%;min-height:58px;font:inherit;color:var(--ink);cursor:pointer;overflow-wrap:anywhere;transition:border-color .2s, background-color .2s, box-shadow .3s var(--ease), opacity .25s;animation:rise .45s var(--ease) backwards;animation-delay:calc(80ms + var(--i,0) * 45ms);border-radius:16px;align-items:center;gap:14px;padding:12px 16px;display:flex}.option:disabled{opacity:.45;cursor:default}.opt-key{border-radius:8px;flex:none;min-width:30px;height:30px;font-size:.85rem}.option.is-correct{opacity:1;border-color:color-mix(in srgb, var(--good) 55%, transparent);background:var(--sheen), var(--good-bg);box-shadow:var(--rim), 0 12px 32px -14px color-mix(in srgb, var(--good) 60%, transparent);animation:pop .45s var(--spring)}.option.is-wrong{border-color:color-mix(in srgb, var(--bad) 55%, transparent);background:var(--sheen), var(--bad-bg);animation:shake .45s var(--ease)}.option.is-correct .opt-key{background:var(--good);color:var(--good-ink);border-color:#0000}.option.is-wrong .opt-key{background:var(--bad);color:var(--bad-ink);border-color:#0000}.feedback{animation:rise .35s var(--ease) backwards;padding-top:4px}.history ul,.review ul,.note-list,.card-list{margin:0;padding:0;list-style:none}.history,.review{border-radius:var(--radius-lg);flex-direction:column;gap:4px;margin-top:8px;padding:16px 18px 8px;display:flex}.history li{color:var(--ink-2);justify-content:space-between;padding:9px 0;display:flex}.history li+li,.review li+li{border-top:1px solid var(--line)}.review{gap:8px}.review li{overflow-wrap:anywhere;flex-direction:column;gap:2px;padding:12px 0;display:flex}.search{max-width:360px}.note-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px;margin-top:16px;display:grid}.note-item{border-radius:var(--radius);height:100%;transition:border-color .2s, transform .35s var(--ease);flex-direction:column;gap:6px;padding:16px 18px;text-decoration:none;display:flex}.note-item h2{font-size:1rem}.clamp{-webkit-line-clamp:3;white-space:pre-line;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.editor{flex-direction:column;gap:12px;display:flex}.note-title{letter-spacing:-.03em;box-shadow:none;background:0 0;border:none;padding-inline:0;font-size:clamp(1.5rem,1.1rem + 1.5vw,2rem);font-weight:700}.note-title:focus{box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--accent) 60%, transparent)}.note-body{border-radius:var(--radius-lg);background:var(--sheen), var(--glass-card);min-height:55vh;box-shadow:var(--rim), var(--shadow);padding:18px 20px;line-height:1.75}.cards-page{flex-direction:column;gap:16px;display:flex}.card-form{border-radius:var(--radius-lg);grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;padding:16px;display:grid}.bulk{flex-direction:column;gap:8px;display:flex}.section-title{margin-top:8px}.card-list{border-radius:var(--radius-lg);flex-direction:column;padding:2px 18px;display:flex}.card-list li+li{border-top:1px solid var(--line)}.card-row{grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px 0;display:grid}.card-text{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.card-edit{grid-template-columns:1fr 1fr auto;gap:8px;padding:12px 0;display:grid}.box-pill{border:1px solid var(--line);background:var(--track);color:var(--ink-2);white-space:nowrap;border-radius:99px;padding:3px 9px;font-size:.75rem;font-weight:600}.box-pill.mastered{background:var(--good-bg);color:var(--good);border-color:color-mix(in srgb, var(--good) 30%, transparent)}.settings{flex-direction:column;gap:16px;display:flex}.panel{border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:22px;display:flex}.file-btn{cursor:pointer}.steps{flex-direction:column;gap:4px;margin:0;padding-left:1.3em;display:flex}.more-btn{align-self:center}.banner{border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:14px 16px;display:flex}.banner p{flex:320px}.banner.bad{border-color:color-mix(in srgb, var(--bad) 45%, transparent);background:var(--sheen), var(--bad-bg), var(--glass)}.banner.info{border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.boot{min-height:60vh;color:var(--ink-2);opacity:0;justify-content:center;align-items:center;gap:12px;font-weight:600;animation:.25s .5s forwards fade;display:flex}.save-state{color:var(--ink-3)}.save-state.error,.save-state.memory,.save-state.reload{color:var(--bad);font-weight:600}.palette{width:min(640px,100% - 20px);max-width:none;max-height:min(560px,100dvh - 24px);color:var(--ink);border:1px solid var(--line-2);background:var(--sheen), var(--glass-strong);box-shadow:var(--rim), var(--shadow-lg);-webkit-backdrop-filter:blur(28px)saturate(170%);backdrop-filter:blur(28px)saturate(170%);border-radius:22px;margin:max(12px,12vh) auto auto;padding:0;overflow:hidden}.palette[open]{animation:pal-in .26s var(--ease) backwards}.palette::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04040880;animation:.25s backwards fade}:root[data-theme=light] .palette::backdrop{background:#e6e6ee73}@media (prefers-color-scheme:light){:root[data-theme=system] .palette::backdrop{background:#e6e6ee73}}:root:has(.palette[open]){overflow:hidden}.pal{max-height:inherit;flex-direction:column;display:flex}.pal-search{border-bottom:1px solid var(--line);color:var(--ink-3);align-items:center;gap:12px;padding:12px 12px 12px 18px;display:flex}.pal-search input{box-shadow:none;background:0 0;border:none;border-radius:0;flex:1;padding:8px 0;font-size:1.1rem}.pal-search input:focus{box-shadow:none}.pal-close{border:1px solid var(--line-2);background:linear-gradient(180deg, var(--key-top), var(--key-bottom));color:var(--ink-2);font:600 .75rem/1.4 var(--font);cursor:pointer;border-bottom-width:2px;border-radius:8px;padding:4px 9px}.on-touch{display:none}.pal-list{overscroll-behavior:contain;flex:1;padding:4px 8px 8px;overflow-y:auto}.pal-group{color:var(--ink-3);padding:12px 10px 6px;font-size:.72rem;font-weight:600}.pal-item{cursor:pointer;border-radius:12px;align-items:center;gap:12px;min-height:46px;padding:6px 10px;display:flex}.pal-item[aria-selected=true]{background:var(--sel);box-shadow:var(--rim)}.pal-icon{border:1px solid var(--line);background:var(--glass-2);width:28px;height:28px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:grid}.pal-icon.tinted{color:oklch(var(--hue-ink-l) .15 var(--hue));background:oklch(var(--tab-l) var(--tab-c) var(--hue) / .14)}.pal-title,.pal-sub{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.pal-title{font-weight:550}.pal-sub{color:var(--ink-3);flex:1;font-size:.85rem}.pal-tag{border:1px solid var(--line);background:var(--track);color:var(--ink-2);border-radius:99px;flex:none;margin-left:auto;padding:2px 8px;font-size:.72rem;font-weight:600}.pal-empty{text-align:center;color:var(--ink-2);padding:32px 20px}.pal-foot{border-top:1px solid var(--line);background:var(--foot);color:var(--ink-3);justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;font-size:.78rem;display:flex}.pal-brand{color:var(--ink-2);align-items:center;gap:6px;font-weight:600;display:flex}.pal-brand .brand-mark{margin:-4px;transform:scale(.72)}.pal-keys{gap:14px;display:flex}.pal-keys>span{align-items:center;gap:4px;display:inline-flex}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@keyframes card-in{0%{opacity:0;transform:translateY(16px)scale(.97)}}@keyframes pal-in{0%{opacity:0;transform:translateY(-10px)scale(.98)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes grow{0%{transform:scaleX(0)}}@keyframes pop{40%{transform:scale(1.025)}}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.hero>*,.stat,.subject-card,.subject-page>*,.settings>*,.page>.banner,.page>.empty{animation:rise .5s var(--ease) backwards}:is(.hero,.subject-page,.settings)>:nth-child(2){animation-delay:50ms}:is(.hero,.subject-page,.settings)>:nth-child(3){animation-delay:.1s}:is(.hero,.subject-page,.settings)>:nth-child(4){animation-delay:.15s}:is(.hero,.settings)>:nth-child(5){animation-delay:.2s}:is(.hero,.settings)>:nth-child(n+6){animation-delay:.25s}.stat{animation-delay:.14s}.stat+.stat{animation-delay:.18s}.stat+.stat+.stat{animation-delay:.22s}.subject-card{animation-delay:calc(.22s + var(--i,0) * 45ms)}@media (hover:hover){.topnav a:hover{color:var(--ink);background:var(--sel)}.palette-trigger:hover,.chip:hover{color:var(--ink);border-color:var(--line-2);background:var(--sel)}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.97)}.btn.ghost:hover:not(:disabled){background:var(--sel)}.hero-search:hover{border-color:var(--line-2);transform:translateY(-1px)}a.subject-card:hover{border-color:var(--line-2);box-shadow:var(--rim), var(--shadow), 0 22px 44px -22px oklch(60% .18 var(--hue) / .6);transform:translateY(-4px)}a.subject-card:hover:before{opacity:1}a.subject-card:hover .go{opacity:1;transform:none}.tabs a:hover{color:var(--ink)}.option:hover:not(:disabled,.is-correct,.is-wrong){border-color:var(--line-2);background:var(--sheen), var(--sel)}.note-item:hover{border-color:var(--line-2);transform:translateY(-2px)}.link-btn:hover{text-decoration-color:currentColor}}@media (hover:none){.pt-keys,.on-keyboard,.pal-foot,.answer-row kbd,.feedback kbd{display:none}.on-touch{display:inline}}@media (width<=640px){.page{gap:22px;padding:26px 14px 72px}.topbar{width:calc(100% - 16px);padding-left:8px}.topnav a{padding:7px 9px;font-size:.875rem}.palette-trigger{justify-content:center;width:36px;padding:0}.palette-trigger .pt-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.pt-keys,.chip .chip-label{display:none}.chip{justify-content:center;width:36px;padding:0}.hero{padding-top:12px}.hero-search{height:50px}.stats{gap:8px}.stat{padding:12px 14px}.stat dd{font-size:1.45rem}.card-form,.card-edit{grid-template-columns:1fr}.card-row{grid-template-columns:1fr auto}.card-row>.row{grid-column:1/-1}.flashcard{aspect-ratio:4/3}.face{padding:48px 18px 44px}.tabs{width:100%}.tabs a{padding:8px 11px}.palette{margin-top:max(10px, env(safe-area-inset-top,0px))}}@media (width<=420px){.brand-name{display:none}.brand{padding-right:2px}.tabs{gap:2px}.tabs a{flex:1 0 auto;justify-content:center;gap:5px;padding:8px;font-size:.85rem}.tabs a .icon{display:none}}@media (width<=380px){.tabs .count{display:none}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){:root{--glass:#18181eeb;--glass-strong:#121217f5}:root[data-theme=light]{--glass:#fffffff0;--glass-strong:#fffffff5}}@media (prefers-reduced-transparency:reduce){:root{--glass:#18181e;--glass-strong:#121217;--glass-card:#16161c}:root[data-theme=light]{--glass:#fff;--glass-strong:#fff;--glass-card:#fff}}@media (prefers-reduced-motion:reduce){*,:before,:after,.palette::backdrop{transition:none!important;animation:none!important}.boot{opacity:1}}
