@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-standard-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-standard-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-standard-normal-DY7AcnAa.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}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-vietnamese-400-normal-65jA92mZ.woff2)format("woff2"),url(/assets/patrick-hand-vietnamese-400-normal-CZjY324Y.woff)format("woff");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:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-latin-ext-400-normal-Dno5CMlI.woff2)format("woff2"),url(/assets/patrick-hand-latin-ext-400-normal-C2ywpnn3.woff)format("woff");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:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-latin-400-normal-B7HHA2Vw.woff2)format("woff2"),url(/assets/patrick-hand-latin-400-normal-Df9_VoRQ.woff)format("woff");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}*,:before,:after{box-sizing:border-box}*{margin:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{-webkit-font-smoothing:antialiased;line-height:1.5}img,picture,svg,canvas,video{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3{overflow-wrap:break-word}:root{--paper:#f8f8f7;--ink:#120f5a;--ink-soft:#3a3778;--cta:#282782;--on-cta:#fff;--rule:#c4c3e4;--rule-faint:#f0f0f8;--rule-grid:#f4f4f9;--margin:#ec8a85;--pen:#cc2219;--row:26.6px;--ruling:linear-gradient(to bottom, transparent calc(var(--row) - 1px), var(--rule) calc(var(--row) - 1px)), linear-gradient(to bottom, transparent calc(var(--row) / 4 - 1px), var(--rule-faint) calc(var(--row) / 4 - 1px)), linear-gradient(to right, transparent calc(var(--row) - 1px), var(--rule-grid) calc(var(--row) - 1px));--ruling-size:100% var(--row), 100% calc(var(--row) / 4), var(--row) 100%;--gutter:23px;--font-ui:"Archivo Variable", system-ui, sans-serif;--narrow:90%;--font-pen:"Patrick Hand", cursive;--label-frame:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23120f5a'%3E%3Cpath stroke-width='1.25' d='M9 1H51A8 8 0 0 0 59 9V51A8 8 0 0 0 51 59H9A8 8 0 0 0 1 51V9A8 8 0 0 0 9 1Z'/%3E%3Cpath stroke-width='0.8' d='M10 5H50A5 5 0 0 0 55 10V50A5 5 0 0 0 50 55H10A5 5 0 0 0 5 50V10A5 5 0 0 0 10 5Z'/%3E%3C/g%3E%3C/svg%3E")}:root[data-theme=dark]{--paper:#15132b;--ink:#ecebf8;--ink-soft:#c3c1e4;--cta:#c9c6ff;--on-cta:#15132b;--rule:#35326b;--rule-faint:#1f1d42;--rule-grid:#1b1a3a;--margin:#b4524e;--pen:#ff5a4f;--label-frame:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23ecebf8'%3E%3Cpath stroke-width='1.25' d='M9 1H51A8 8 0 0 0 59 9V51A8 8 0 0 0 51 59H9A8 8 0 0 0 1 51V9A8 8 0 0 0 9 1Z'/%3E%3Cpath stroke-width='0.8' d='M10 5H50A5 5 0 0 0 55 10V50A5 5 0 0 0 50 55H10A5 5 0 0 0 5 50V10A5 5 0 0 0 10 5Z'/%3E%3C/g%3E%3C/svg%3E")}html{background:var(--paper);color:var(--ink);font-family:var(--font-ui);caret-color:var(--pen);scrollbar-color:var(--rule) transparent}::selection{background:color-mix(in srgb, var(--pen) 22%, transparent);color:var(--ink)}:focus-visible{outline:2px solid var(--cta);outline-offset:2px;border-radius:4px}a{color:inherit;text-underline-offset:.2em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.study{flex-direction:column;min-height:100dvh;display:flex}.study-top{justify-content:space-between;align-items:flex-start;height:52px;padding:9px 9px 0 0;display:flex}.icon-btn{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.icon-btn:hover{background:var(--rule-faint)}.label{margin:0 var(--gutter);border:14px solid #0000;border-image:var(--label-frame) 14 / 14px stretch;background:var(--paper);padding:7px 14px 0}.label h1{font-size:17.4px;font-stretch:var(--narrow);letter-spacing:-.005em;overflow-wrap:anywhere;font-weight:500;line-height:1.35}.label p{color:var(--ink);margin-top:2px;font-size:12.5px}.steps{border-block:1px solid var(--rule);grid-template-columns:repeat(4,1fr);margin-top:9px;display:grid}.step{min-height:74px;color:var(--ink);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:1px;padding:4px 2px 6px;font-size:14.5px;line-height:1.2;display:flex}.step+.step{border-left:1px solid var(--rule)}.step:hover{background:color-mix(in srgb, var(--rule-faint) 60%, transparent)}.step-label{padding-bottom:6px;position:relative}.step[aria-selected=true] .step-label:after{content:"";background:url(/assets/pen-underline-CcjY7qk3.png) 50%/100% 100% no-repeat;height:18px;position:absolute;bottom:-5px;left:-20%;right:-20%}.step-mark{flex:none;margin-top:2px}.step-state{flex-direction:column;align-items:center;gap:0;display:flex}.step-status{color:var(--ink-soft);margin-top:2px;font-size:12px}.page{background-color:var(--paper);background-image:var(--ruling);background-size:var(--ruling-size);background-position:0 -7px;flex:1;padding:0 46px 112px 51px;position:relative}.page:before{content:"";border-inline:1px solid var(--margin);width:6px;position:absolute;top:0;bottom:0;left:27px}.due{width:fit-content;min-width:150px;height:51px;font-family:var(--font-pen);color:var(--pen);justify-content:center;align-items:center;margin:2px -40px 0 auto;padding:0 18px 2px;font-size:19.5px;line-height:1;text-decoration:none;display:flex;position:relative}.due:before{content:"";background:url(/assets/due-circle-CCBKBOxE.png) 50%/100% 100% no-repeat;animation:.7s cubic-bezier(.16,1,.3,1) .15s backwards pen-draw;position:absolute;inset:4px 2px 3px 4px}.page h2{font-size:25px;font-weight:700;line-height:calc(var(--row) * 2);letter-spacing:-.01em;margin-top:12px}.due+h2{margin-top:-6px}.prose{font-size:17.7px;line-height:var(--row);text-wrap:pretty;max-width:65ch}.prose p,.prose ul,.prose ol{margin-bottom:var(--row)}.prose ul,.prose ol{padding-left:27px}.prose li{margin-bottom:8px;padding-left:2px}.prose li::marker{font-size:.9em}.prose h3{font-size:19px;font-weight:600;line-height:calc(var(--row) * 1.5)}.prose strong{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:url(/assets/term-underline-oFXF17KF.png) 0 100%/100% .42em no-repeat;padding-bottom:.32em;font-weight:500}.thumb{height:calc(80px + env(safe-area-inset-bottom));padding:5px 15px env(safe-area-inset-bottom) 12px;background:var(--paper);grid-template-columns:1fr 46px;align-items:start;gap:12px;display:grid;position:fixed;inset:auto 0 0}.cta{background:var(--cta);height:44px;color:var(--on-cta);letter-spacing:.01em;cursor:pointer;border:0;border-radius:5px;justify-content:center;align-items:center;gap:7px;margin-top:6px;font-size:17px;font-weight:600;display:flex}.cta:hover{background:color-mix(in srgb, var(--cta) 88%, var(--paper))}.cta:disabled{opacity:.55;cursor:progress}.chat-btn{color:var(--ink);cursor:pointer;background:0 0;border:0;justify-items:center;gap:2px;font-size:12px;display:grid}.chat-btn span:first-child{border:1.5px solid var(--ink);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.text-btn{min-height:44px;color:var(--ink);font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 4px;font-size:15px;text-decoration:underline;display:inline-flex}.empty-note{font-size:16px;line-height:var(--row);color:var(--ink-soft)}.pen-note{font-family:var(--font-pen);font-size:20px;line-height:var(--row);color:var(--pen)}.state-note{padding-top:var(--row);justify-items:start;gap:4px;display:grid}.writing{font-size:17.7px;font-style:italic;line-height:var(--row);color:var(--ink)}.writing:after{content:"";vertical-align:.25em;background:currentColor;width:.5em;height:2px;margin-left:4px;animation:1.1s ease-in-out infinite nib;display:inline-block}@keyframes nib{50%{transform-origin:0;transform:scaleX(3)}}.mindmap{font-size:17px;font-stretch:var(--narrow);line-height:var(--row)}.mindmap-root{border:1.5px solid var(--ink);border-radius:4px;padding:0 10px;font-weight:600;font-stretch:100%;display:inline-block}.mindmap ul{margin-left:10px;padding-left:0;list-style:none}.mindmap li{padding-left:30px;position:relative}.mindmap li:before{content:"";border-left:1.5px solid var(--ink);position:absolute;top:0;bottom:0;left:0}.mindmap li:last-child:before{height:calc(var(--row) / 2);bottom:auto}.mindmap li:after{content:"";left:0;top:calc(var(--row) / 2);border-top:1.5px solid var(--ink);width:24px;position:absolute}.mindmap .depth-1{font-weight:600}.mindmap .depth-3{color:var(--ink-soft)}.flash{gap:12px;padding-top:8px;display:grid}.flash-count{color:var(--ink-soft);font-size:14px}.flash-card{min-height:calc(var(--row) * 8);border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transform-style:preserve-3d;border-radius:6px;padding:0;transition:transform .45s cubic-bezier(.2,.8,.2,1);display:grid;position:relative}.flash-card.is-flipped{transform:perspective(900px)rotateY(180deg)}.flash-face{font-size:19px;line-height:var(--row);backface-visibility:hidden;grid-area:1/1;align-content:center;padding:18px 20px;display:grid}.flash-front{font-weight:500}.flash-back{font-stretch:var(--narrow);transform:rotateY(180deg)}.flash-hint{color:var(--ink-soft);font-size:14px}.grades{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.grade{border:1.5px solid var(--ink);background:var(--paper);min-height:52px;color:var(--ink);font:inherit;cursor:pointer;border-radius:5px;justify-items:center;gap:2px;padding:6px 2px;font-size:15px;font-weight:500;display:grid}.grade kbd{font:inherit;color:var(--ink-soft);font-size:11px}.grade-again{border-color:var(--pen);color:var(--pen)}.grade:hover{background:var(--rule-faint)}@media (prefers-reduced-motion:reduce){.flash-card{transition:none}.writing:after{animation:none}}.quiz ol{padding-left:0;list-style:none}.quiz li+li{margin-top:var(--row)}.quiz fieldset{border:0;min-width:0;margin:0;padding:0}.quiz legend{font-size:17.7px;font-weight:500;line-height:var(--row);padding:0}.option{min-height:44px;font-size:16.5px;font-stretch:var(--narrow);cursor:pointer;grid-template-columns:30px 1fr;align-items:center;gap:8px;line-height:1.35;display:grid}.option input{opacity:0;pointer-events:none;position:absolute}.bubble{border:1.5px solid var(--ink);border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:600;font-stretch:100%;display:grid}.option input:checked+.bubble{background:var(--ink);color:var(--paper)}.option input:focus-visible+.bubble{outline:2px solid var(--cta);outline-offset:2px}.option.right .bubble{background:var(--ink);color:var(--paper)}.option.wrong .bubble{border-color:var(--pen);color:var(--pen);background:0 0;text-decoration:line-through;text-decoration-thickness:2px}.explain{font-family:var(--font-pen);color:var(--pen);margin:4px 0 0 38px;font-size:18px;line-height:1.3}.score{width:120px;height:56px;font-family:var(--font-pen);color:var(--pen);place-items:center;margin:-6px -20px 6px auto;font-size:30px;display:grid;position:relative}.score:before{content:"";background:url(/assets/due-circle-CCBKBOxE.png) 50%/100% 100% no-repeat;position:absolute;inset:0}.quiz-submit{width:100%;margin-top:var(--row)}.scrim{z-index:9;background:color-mix(in srgb, var(--ink) 22%, transparent);animation:.2s ease-out fade-in;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.sheet{z-index:10;background:var(--paper);border-top:1.5px solid var(--ink);height:min(78dvh,640px);box-shadow:0 -8px 28px color-mix(in srgb, var(--ink) 16%, transparent);border-radius:12px 12px 0 0;grid-template-rows:auto 1fr auto;animation:.28s cubic-bezier(.2,.8,.2,1) sheet-in;display:grid;position:fixed;inset:auto 0 0}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@keyframes sheet-side{0%{opacity:0;transform:translate(24px)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:6px 6px 6px 20px;display:flex}.sheet-head h2{font-size:18px;font-weight:600}.sheet-log{align-content:start;gap:14px;padding:14px 20px;display:grid;overflow-y:auto}.msg-user p{border:1.5px solid var(--ink);border-radius:10px 10px 2px;width:fit-content;max-width:85%;margin-left:auto;padding:8px 12px;font-size:16px;line-height:1.45}.msg-assistant .prose{text-align:start;font-size:16.5px}.msg-assistant .prose p,.msg-assistant .prose ul{margin-bottom:8px}.sheet-input{padding:10px 14px max(14px, env(safe-area-inset-bottom));border-top:1px solid var(--rule);grid-template-columns:1fr 44px;align-items:end;gap:8px;display:grid}.sheet-input textarea{resize:none;field-sizing:content;border:1.5px solid var(--ink);background:var(--paper);min-height:44px;max-height:140px;color:var(--ink);border-radius:8px;padding:10px 12px;font-size:16px;line-height:1.4}.sheet-input textarea::placeholder{color:var(--ink-soft);opacity:.8}.send{background:var(--cta);color:var(--on-cta)}.send:disabled{opacity:.45}@media (width>=768px){.study{grid-template-rows:auto auto 1fr auto;grid-template-columns:180px minmax(0,1fr);max-width:960px;margin:0 auto;display:grid}.study-top,.label{grid-column:1/-1}.label{max-width:560px}.label h1{font-size:22px}.steps{border:0;border-right:1px solid var(--rule);background-image:var(--ruling);background-size:var(--ruling-size);background-position:0 -7px;grid-row:3;grid-template-columns:1fr;align-content:start;margin-top:18px}.step{text-align:left;flex-direction:row;justify-content:flex-start;gap:10px;height:auto;min-height:52px;padding:8px 16px}.step+.step{border-left:0;border-top:1px solid var(--rule-faint)}.step-state{flex-direction:row-reverse;gap:5px;margin-left:auto}.page{grid-row:3;margin-top:18px;padding-bottom:32px;padding-right:48px}.thumb{grid-area:4/2;width:auto;max-width:calc(65ch + 78px);padding-left:78px;position:sticky;bottom:0}}@media (width>=1280px){.sheet{border-top:0;border-left:1.5px solid var(--ink);border-radius:0;width:400px;height:auto;animation-name:sheet-side;inset:0 0 0 auto}}.library{max-width:1080px;padding:8px var(--gutter) 48px;margin:0 auto}.today{border-bottom:1px solid var(--rule);justify-items:start;gap:10px;padding:8px 0 22px;display:grid}.today-date{color:var(--ink-soft);font-size:15px}.today-date:first-letter{text-transform:uppercase}.today .cta{width:100%;max-width:420px}.today-clear{font-size:17px;line-height:var(--row);max-width:40ch}.due-big{min-width:210px;height:64px;margin:0 0 0 -14px;font-size:26px}.shelf-title{margin:22px 0 12px;font-size:22px;font-weight:700}.shelf{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:0;list-style:none;display:grid}.notebook{aspect-ratio:3/4;border:1.5px solid var(--ink);background-color:var(--paper);background-image:linear-gradient(to right, transparent 9px, var(--rule) 9px, var(--rule) 10px, transparent 10px, transparent 13px, var(--rule) 13px, var(--rule) 14px, transparent 14px);width:100%;color:var(--ink);font:inherit;text-align:center;cursor:pointer;border-radius:4px 8px 8px 4px;align-content:center;justify-items:center;gap:10px;padding:14px 10px;text-decoration:none;transition:transform .2s cubic-bezier(.2,.8,.2,1);display:grid;position:relative}.notebook:hover{transform:translateY(-2px)rotate(-.4deg)}@media (prefers-reduced-motion:reduce){.notebook{transition:none}.notebook:hover{transform:none}}.notebook-label{border:10px solid #0000;border-image:var(--label-frame) 14 / 10px stretch;gap:4px;width:100%;padding:6px 8px;display:grid}.notebook-name{text-wrap:balance;-webkit-line-clamp:4;font-size:15px;font-weight:500;font-stretch:var(--narrow);overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.notebook small{color:var(--ink-soft);font-size:12px}.notebook-state{color:var(--ink-soft);font-size:13px}.notebook-state.is-failed{font-size:12.5px;line-height:1.3}.notebook-due{width:54px;height:36px;font-family:var(--font-pen);color:var(--pen);place-items:center;font-size:19px;display:grid;position:absolute;top:6px;right:6px}.notebook-due:before{content:"";background:url(/assets/due-circle-CCBKBOxE.png) 50%/100% 100% no-repeat;position:absolute;inset:0}.notebook-new{color:var(--ink);background-image:none;border-style:dashed}.notebook-new span{font-size:17px;font-weight:600}.notebook-new small{max-width:16ch}.notebook-new:disabled{cursor:progress;opacity:.6}.shelf-empty{margin-top:14px}@media (width>=900px){.shelf{grid-template-columns:repeat(5,1fr)}}.menu-anchor{position:relative}.menu{z-index:20;background:var(--paper);border:1.5px solid var(--ink);min-width:210px;box-shadow:0 10px 24px color-mix(in srgb, var(--ink) 18%, transparent);border-radius:6px;padding:6px;display:grid;position:absolute;top:46px;right:4px}.menu button{min-height:44px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 12px;font-size:15px}.menu button:hover{background:var(--rule-faint)}.menu .danger{color:var(--pen);font-weight:600}.app-header{max-width:1080px;padding:12px var(--gutter);border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 auto;font-size:14px;display:flex}.app-header .brand{letter-spacing:-.01em;margin-right:auto;font-size:19px;font-weight:700;text-decoration:none}.app-header label{color:var(--ink-soft);align-items:center;gap:6px;display:flex}.app-header select{border:1px solid var(--rule);background:var(--paper);min-height:36px;color:var(--ink);border-radius:4px;padding:0 6px}.app-header button{border:1px solid var(--ink);min-height:36px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:0 10px}.auth{max-width:400px;padding:0 var(--gutter);margin:32px auto}.auth h1{margin-bottom:18px;font-size:26px;font-weight:700}.auth form{gap:14px;display:grid}.auth form>div{gap:4px;display:grid}.auth label{font-size:14px;font-weight:500}.auth input{border:1.5px solid var(--ink);background:var(--paper);min-height:46px;color:var(--ink);border-radius:6px;padding:0 12px;font-size:16px}.auth input[aria-invalid=true]{border-color:var(--pen)}.auth form p{color:var(--pen);font-size:14px}.auth button[type=submit]{background:var(--cta);min-height:48px;color:var(--on-cta);font:inherit;cursor:pointer;border:0;border-radius:5px;margin-top:6px;font-size:17px;font-weight:600}.auth button[type=submit]:disabled{opacity:.55;cursor:progress}.auth>p,.auth form+p{margin-top:16px;font-size:15px}.review{max-width:560px}.review .icon-btn{margin-left:-10px}@keyframes pen-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.step-mark circle,.step-mark path{transition:fill .5s cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion:reduce){.due:before{animation:none}.step-mark circle,.step-mark path{transition:none}}
