@font-face{font-family:Patrick;src:url(/fonts/patrick-vi.woff2) format("woff2");font-display:swap;font-weight:400;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Patrick;src:url(/fonts/patrick-latin.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:Nunito;src:url(/fonts/nunito-400-vi.woff2) format("woff2");font-display:swap;font-weight:400;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;src:url(/fonts/nunito-400-latin.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:Nunito;src:url(/fonts/nunito-700-vi.woff2) format("woff2");font-display:swap;font-weight:700;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;src:url(/fonts/nunito-700-latin.woff2) format("woff2");font-display:swap;font-weight:700}:root{--paper:#faf3e6;--paper-2:#f4e5ca;--paper-3:#ebd8b6;--ink:#20150d;--ink-2:#4f4033;--ink-3:#725e4a;--red:#cf432b;--red-dark:#9f2f1c;--gold:#e3aa23;--green:#315a41;--green-soft:#dce9dd;--line:#332319;--shadow:5px 6px 0 #20150d20;--display:Patrick,"Bradley Hand",cursive;--body:Nunito,system-ui,sans-serif;--wrap:72rem;--gutter:clamp(1rem,4vw,3rem);--s1:.4rem;--s2:.75rem;--s3:1.15rem;--s4:1.8rem;--s5:2.8rem;--s6:4.5rem}*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:clamp(1rem,.97rem + .12vw,1.08rem);line-height:1.65;background-image:radial-gradient(#4e3e2b10 .65px,transparent .65px);background-size:7px 7px;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit;color:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:.18em}a:hover{color:var(--red-dark)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--red);outline-offset:3px}img,svg{display:block;max-width:100%;height:auto}h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.05;text-wrap:balance;margin:0 0 var(--s3)}h1{font-size:clamp(2.5rem,7vw,4.8rem)}h2{font-size:clamp(1.9rem,4vw,3rem)}h3{font-size:clamp(1.45rem,2.5vw,2rem)}p{margin:0 0 var(--s3);text-wrap:pretty}.wrap{width:min(100%,var(--wrap));margin-inline:auto;padding-inline:var(--gutter)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;z-index:100;left:1rem;top:-5rem;background:var(--paper);border:2px solid var(--ink);padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-head{position:relative;z-index:10;padding-top:.85rem;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px)}.site-head__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem;min-height:4.6rem}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}.brand__bubble{width:2.9rem;height:2.7rem;display:grid;place-items:center;background:#fff8e9;border:2.5px solid var(--red);font-family:var(--display);font-size:1.35rem;line-height:1;clip-path:polygon(0 0,100% 4%,96% 78%,60% 78%,42% 100%,45% 78%,4% 82%);transform:rotate(-3deg);padding-bottom:.3rem}.brand strong{font-family:var(--display);font-size:2rem;font-weight:400;line-height:.9;display:block}.brand small{display:block;color:var(--ink-3);font-size:.74rem;letter-spacing:.03em;margin-top:.2rem}.site-head nav{display:flex;align-items:center;gap:clamp(.55rem,2vw,1.6rem);font-family:var(--display);font-size:1.14rem}.site-head nav a{text-decoration:none;position:relative;padding:.35rem .15rem}.site-head nav a[aria-current=page]:after{content:"";position:absolute;left:-.15rem;right:-.15rem;bottom:-.05rem;border-top:3px solid var(--red);border-radius:50%;transform:rotate(-2deg)}.site-head nav b{font-family:var(--body);font-size:.68rem;background:var(--red);color:#fff;border-radius:999px;padding:.1rem .36rem;margin-left:.25rem}.nav-login{border:2px solid var(--line);padding:.32rem .72rem!important;box-shadow:2px 2px #20150d22;transform:rotate(1deg)}.ink-line{height:8px;background:linear-gradient(181deg,transparent 27%,var(--line) 30%,var(--line) 43%,transparent 46%);opacity:.72}main{min-height:calc(100vh - 12rem)}.site-foot{margin-top:var(--s6);border-top:2px solid var(--line);background:var(--paper-2)}.site-foot__inner{min-height:6rem;padding-block:1.4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem 3rem}.site-foot p{max-width:54rem;margin:0;color:var(--ink-2);font-size:.93rem}.eyebrow{font-family:var(--display);color:var(--red-dark);text-transform:uppercase;letter-spacing:.12em;font-size:1rem;margin-bottom:.65rem}.lead{font-size:clamp(1.08rem,1rem + .4vw,1.35rem);max-width:43rem;color:var(--ink-2)}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.1rem}.button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.9rem;background:var(--paper);border:2px solid var(--line);padding:.55rem 1rem .45rem;font-family:var(--display);font-size:1.2rem;line-height:1;text-decoration:none;cursor:pointer;box-shadow:3px 3px #20150d20;transform:rotate(-.35deg);transition:transform .15s,box-shadow .15s}.button:hover{color:var(--ink);transform:translate(-1px,-1px) rotate(.2deg);box-shadow:5px 5px #20150d20}.button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.button--primary{background:var(--red);color:#fff7e8;border-color:var(--red-dark)}.button--primary:hover{color:#fff}.button--record{background:var(--green);color:#fff;border-color:#173c27}.text-button{appearance:none;border:0;background:none;padding:.3rem .15rem;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:.2em;cursor:pointer}.danger{color:var(--red-dark)}.hero{padding-block:clamp(3rem,8vw,7rem);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);gap:clamp(2rem,7vw,7rem);align-items:center}.hero h1{max-width:16ch}.hero__note{position:relative;background:#fffaf0;border:2px solid var(--line);padding:2rem clamp(1.3rem,4vw,2.5rem);box-shadow:var(--shadow);transform:rotate(1.1deg)}.hero__note:after{content:"NHỚ RA > XEM LẠI";position:absolute;right:-1rem;bottom:-1.6rem;font-family:var(--display);font-size:1.2rem;color:var(--red-dark);transform:rotate(-5deg)}.hero__note ol{font-family:var(--display);font-size:1.5rem;line-height:1.35;margin:0 0 1.5rem;padding-left:1.4rem}.hero__note li+li{margin-top:.45rem}.tape{position:absolute;width:6.5rem;height:1.45rem;background:#e5c86f9c;left:50%;top:-.85rem;transform:translate(-50%) rotate(-2deg);clip-path:polygon(3% 4%,96% 0,100% 87%,5% 100%)}.episode-section{padding-block:var(--s5)}.section-title{display:flex;align-items:end;justify-content:space-between;gap:1rem;border-bottom:3px solid var(--line);margin-bottom:2rem}.episode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}.episode-card{position:relative;background:#fff9ed;border:2px solid var(--line);padding:1.7rem 1.7rem 1.45rem;box-shadow:var(--shadow);transform:rotate(var(--tilt));overflow:hidden}.episode-card:before{content:"";position:absolute;width:8rem;height:8rem;border:2px solid var(--gold);border-radius:50%;right:-4rem;top:-4rem}.episode-no{font-family:var(--display);font-size:2.5rem;color:var(--red);line-height:1}.episode-card h3{margin:.35rem 0}.episode-card p{color:var(--ink-3)}.dashboard-head{padding-block:var(--s5);display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,6vw,6rem);align-items:start}.dashboard-head h1{font-size:clamp(2.7rem,6vw,4.2rem)}.dashboard-head>div>p:last-child{max-width:44rem;color:var(--ink-2)}.progress-card{position:relative;background:var(--green);color:#fff8e9;border:2px solid #173c27;padding:1.4rem;box-shadow:var(--shadow);transform:rotate(.7deg)}.progress-card dl{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.progress-card div{border-left:2px solid #e1b64b;padding-left:.8rem}.progress-card dt{font-size:.72rem;color:#d9e5db;line-height:1.25}.progress-card dd{font-family:var(--display);font-size:2rem;margin:0;line-height:1.1}.review-callout{display:flex;justify-content:space-between;align-items:center;gap:2rem;background:var(--paper-3);border-block:2px solid var(--line);padding-block:1.35rem}.review-callout>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 .8rem}.review-callout h2{font-size:2rem;margin:0}.review-callout p{grid-column:2;margin:0}.scribble{font-family:var(--display);font-size:3rem;color:var(--red);line-height:1;transform:rotate(-5deg)}.auth-layout{padding-block:clamp(3rem,8vw,7rem);display:grid;grid-template-columns:1fr minmax(19rem,.8fr);gap:clamp(2rem,8vw,8rem);align-items:start}.auth-intro{position:sticky;top:2rem}.auth-intro h1{max-width:15ch}.auth-intro p:last-child{max-width:42rem;color:var(--ink-2)}.auth-panels{background:#fff9ee;border:2px solid var(--line);padding:clamp(1.2rem,4vw,2rem);box-shadow:var(--shadow);transform:rotate(.3deg)}.google-button{width:100%;background:#fff;transform:none;font-family:var(--body);font-size:1rem}.google-button span{font-family:var(--body);font-weight:700;color:#4285f4}.or{display:flex;align-items:center;gap:.8rem;color:var(--ink-3);font-size:.8rem;margin:1rem 0}.or:before,.or:after{content:"";flex:1;border-top:1px solid var(--paper-3)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:2px solid var(--line);margin-bottom:1.2rem}.auth-tabs button{border:0;background:none;padding:.65rem;font-family:var(--display);font-size:1.2rem;cursor:pointer}.auth-tabs button.is-active{background:var(--paper-3)}.paper-form{display:grid;gap:1rem}.paper-form label,.note-dialog>label{display:grid;gap:.35rem;font-weight:700}.paper-form label small{font-weight:400;color:var(--ink-3)}input,textarea,select{width:100%;background:#fffdf7;border:2px solid #8d765d;border-radius:2px;padding:.72rem .8rem;line-height:1.45}textarea{resize:vertical}.form-error{color:var(--red-dark);font-size:.9rem;min-height:1.2em;margin:0}.success-note{background:var(--green-soft);border-left:4px solid var(--green);padding:1rem}.success-note h2{font-size:2rem}.player{padding-block:clamp(2rem,6vw,4.5rem);max-width:62rem}.player-top{display:flex;align-items:end;justify-content:space-between;gap:1rem}.player-top h1{font-size:clamp(2.3rem,5vw,3.7rem);margin-bottom:.2rem}.player-tools{display:flex;align-items:center;gap:.8rem}.note-button{background:var(--paper-3);border:2px solid var(--line);font-family:var(--display);font-size:1.1rem;padding:.35rem .7rem;cursor:pointer;transform:rotate(-1.5deg)}.counter{font-family:var(--display);font-size:1.5rem;color:var(--ink-3)}.progress-line{height:.55rem;background:var(--paper-3);border:1px solid var(--line);margin:1rem 0 1.6rem;transform:rotate(-.15deg)}.progress-line span{height:100%;display:block;background:var(--red);transition:width .25s}.exercise-card{position:relative;background:#fffaf0;border:2px solid var(--line);padding:clamp(1.2rem,4vw,2.5rem);box-shadow:var(--shadow);min-height:26rem}.exercise-card:before{content:"";position:absolute;inset:.5rem;border:1px solid #59432d22;pointer-events:none}.exercise-prompt{position:relative}.exercise-prompt>p{font-family:var(--display);font-size:clamp(1.65rem,4vw,2.55rem);line-height:1.16;max-width:29ch;margin:1.2rem 0 1.6rem}.kind-stamp{display:inline-block;font-size:.72rem;letter-spacing:.14em;color:var(--red-dark);border:1px solid var(--red);padding:.2rem .45rem;transform:rotate(-1.5deg)}.anchor-art{width:min(100%,15rem);max-height:13rem;object-fit:contain;margin:1rem auto 1.7rem;filter:drop-shadow(4px 5px 0 #0001)}.answer-form{position:relative;max-width:46rem}.answer-form textarea{font-size:1.15rem;background:#fff;border-color:var(--line);box-shadow:inset 0 -1px #a98d6a}.hint{background:var(--paper-3);border-left:4px solid var(--gold);padding:.65rem .85rem;margin-top:1rem}.privacy-note{font-size:.78rem;color:var(--ink-3);text-align:center;margin-top:1rem}.audio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1rem 0 1.7rem}.audio-grid label{display:grid;gap:.35rem;background:var(--paper-2);border:1px solid #a78b67;padding:.65rem}.audio-grid label span{font-size:.75rem;color:var(--ink-3)}audio{width:100%;height:2.5rem}.choice-list{display:grid;gap:.75rem}.choice-list button{position:relative;text-align:left;background:#fff;border:2px solid #836b52;padding:.8rem 1rem .8rem 3.4rem;cursor:pointer;min-height:3.5rem}.choice-list button:hover{background:#f7e5c4;border-color:var(--red)}.choice-list button span{position:absolute;left:.8rem;top:.65rem;width:1.8rem;height:1.8rem;border:2px solid var(--line);border-radius:50%;display:grid;place-items:center;font-family:var(--display)}.word-answer{min-height:5rem;border-bottom:3px solid var(--line);padding:.8rem;display:flex;flex-wrap:wrap;gap:.45rem;align-content:flex-start;color:var(--ink-3)}.word-answer span,.word-bank button{background:#fff;border:1.5px solid var(--line);padding:.35rem .55rem;box-shadow:2px 2px #0001}.word-bank{display:flex;flex-wrap:wrap;gap:.55rem;padding-block:1.1rem}.word-bank button{cursor:pointer}.word-bank button:disabled{opacity:.25}.target-sentence{font-family:var(--display);font-size:1.8rem}.record-panel{background:var(--paper-2);border:2px dashed var(--line);padding:1.2rem}.record-panel fieldset{display:grid;gap:.45rem;border:1px solid #8d765d;margin-top:1rem}.record-panel fieldset label,.consent{display:flex;gap:.55rem;align-items:flex-start;font-size:.9rem}.record-panel input[type=checkbox]{width:auto;margin-top:.3rem}.record-status{margin-left:.7rem;color:var(--red-dark)}.result{position:relative;margin-top:2rem;padding:1.3rem;background:var(--green-soft);border-left:5px solid var(--green)}.result--wrong,.result--blank{background:#f4dfcc;border-color:var(--red)}.result h2{font-size:1.8rem}.expected{font-family:var(--display);font-size:1.5rem}.expected span{display:block;font-family:var(--body);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3)}.word-diff{display:flex;flex-wrap:wrap;gap:.3rem;margin:1rem 0}.word-diff span,.word-diff del,.word-diff ins{padding:.1rem .25rem}.word-diff del{background:#f0b4a8;text-decoration:none}.word-diff ins{background:#b8dfbf;text-decoration:none}.empty-state{padding-block:clamp(4rem,12vw,9rem);text-align:center;max-width:54rem}.empty-state h1{max-width:15ch;margin-inline:auto}.empty-state p{max-width:43rem;margin-inline:auto;color:var(--ink-2)}.big-check{display:grid;place-items:center;margin:0 auto 1.5rem;width:5rem;height:5rem;border:4px solid var(--green);border-radius:45% 55% 49% 51%;font-family:var(--display);font-size:3.2rem;color:var(--green);transform:rotate(-6deg)}.loading{padding-block:8rem;text-align:center;font-family:var(--display);font-size:2rem}.loading span{display:inline-block;width:1rem;height:1rem;border:2px solid var(--red);border-radius:50%;margin-left:.5rem;animation:pulse .8s infinite alternate}@keyframes pulse{to{transform:scale(1.7);opacity:.25}}.account{padding-block:var(--s5);max-width:62rem}.account>p:nth-of-type(2){color:var(--ink-3)}.verified{font-size:.72rem;background:var(--green-soft);color:#245034;padding:.16rem .42rem;margin-left:.4rem}.account .progress-card{max-width:32rem;margin:2rem 0}.account-section{margin-block:3rem;border-top:3px solid var(--line);padding-top:1.4rem}.recording-list{display:grid;gap:.8rem}.recording-list article{display:grid;grid-template-columns:1fr minmax(12rem,20rem) auto;gap:1rem;align-items:center;background:#fff9ee;border:1px solid #8d765d;padding:.8rem}.recording-list small{display:block;color:var(--ink-3)}dialog{width:min(calc(100% - 2rem),45rem);max-height:calc(100vh - 2rem);overflow:auto;background:#fff9ed;border:2px solid var(--line);box-shadow:8px 10px #0003;padding:clamp(1.2rem,4vw,2.2rem)}dialog::backdrop{background:#24170dae;backdrop-filter:blur(2px)}.dialog-close{position:sticky;z-index:2;top:0;float:right}.dialog-close button{width:2.4rem;height:2.4rem;border:2px solid var(--line);background:var(--paper);font-family:var(--display);font-size:1.8rem;cursor:pointer}.note-dialog>label{margin-top:1rem}.note-preview{margin-top:1rem;padding:1rem;background:var(--paper-2);border-left:4px solid var(--gold)}.note-preview:empty{display:none}.feedback-dialog{max-width:34rem}.toast{position:fixed;z-index:200;right:1rem;bottom:1rem;max-width:24rem;background:var(--green);color:#fff;padding:.8rem 1rem;border:2px solid #173c27;box-shadow:4px 4px #0003}.toast--bad{background:var(--red);border-color:var(--red-dark)}@media(max-width:760px){.site-head__inner{align-items:flex-start;flex-direction:column;padding-block:.55rem}.site-head nav{width:100%;justify-content:space-between;font-size:1.02rem}.brand small{display:none}.hero,.dashboard-head,.auth-layout{grid-template-columns:1fr}.hero{padding-top:3rem}.hero__note{margin-inline:.35rem}.episode-grid{grid-template-columns:1fr}.dashboard-head{gap:1.4rem}.auth-intro{position:static}.progress-card dl{grid-template-columns:1fr 1fr}.progress-card div:last-child{grid-column:1/-1}.review-callout{align-items:flex-start;flex-direction:column}.audio-grid{grid-template-columns:1fr}.player-top{align-items:flex-start}.player-tools{flex-direction:column;align-items:flex-end}.exercise-card{padding:1.2rem;min-height:24rem}.recording-list article{grid-template-columns:1fr}.site-foot__inner{align-items:flex-start;flex-direction:column}.site-foot{margin-top:3rem}}@media(max-width:420px){.site-head nav a span{display:none}.hero h1{font-size:3.2rem}.episode-card{padding:1.25rem}.choice-list button{padding-left:3rem}.progress-card dl{grid-template-columns:1fr}.progress-card div:last-child{grid-column:auto}.exercise-prompt>p{font-size:1.75rem}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
