:root{--cream:#fff6e3;--ink:#111;--red:#e8431f;--yellow:#ffd23f;--teal:#2bb5a0;--white:#fff;--display:"Archivo Black", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--border:3px solid var(--ink);--shadow:5px 5px 0 var(--ink)}*{box-sizing:border-box}body{background:var(--cream);color:var(--ink);font-family:var(--mono);-webkit-text-size-adjust:100%;margin:0;font-size:14px;line-height:1.5}a{color:inherit}h1,h2{font-family:var(--display);margin:0;font-weight:400;line-height:1.15}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px}.page{padding-top:20px;padding-bottom:64px}.site-header{z-index:20;background:var(--white);border-bottom:var(--border);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;min-height:68px;display:flex}.brand{align-items:center;gap:10px;text-decoration:none;display:flex}.brand-badge{border:var(--border);background:var(--yellow);border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;display:flex;overflow:hidden}.brand-name{font-family:var(--display);letter-spacing:.5px;font-size:20px}.header-right{align-items:center;gap:10px;display:flex}.hello{align-items:flex-end;gap:10px;margin-bottom:24px;display:flex}.hello-avatar{border:var(--border);background:var(--white);border-radius:50%;flex:none;justify-content:center;align-items:center;width:66px;height:66px;display:flex;overflow:hidden}.bubble{border:var(--border);background:var(--white);box-shadow:4px 4px 0 var(--ink);flex:1;padding:10px 12px}.section-title{margin-bottom:16px;font-size:20px}.page-title{margin:12px 0 20px;font-size:34px}.back{align-items:center;min-height:44px;font-weight:700;text-decoration:none;display:inline-flex}.grid{grid-template-columns:1fr;gap:20px;display:grid}.card{border:var(--border);background:var(--white);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:14px;display:flex}.card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-title{font-family:var(--display);font-size:26px}.card-meta{font-size:12px;font-weight:500}.card-soon{box-shadow:none;background:0 0;border-style:dashed;justify-content:center}.soon-label{letter-spacing:1px;font-weight:700}.pill{border:2px solid var(--ink);white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:700}.pill-new{background:var(--teal)}.pill-foundation{background:var(--yellow)}.pill-deep{background:var(--teal)}.progress{border:var(--border);background:var(--cream);height:16px}.progress-fill{background:var(--red);border-right:var(--border);height:100%}.btn{border:var(--border);min-height:48px;font-family:var(--mono);cursor:pointer;align-items:center;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.btn-red{background:var(--red);color:var(--ink)}.btn-dark{background:var(--ink);color:var(--cream);display:inline-flex}.btn:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-2px,-2px)}.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.weeks{flex-direction:column;gap:20px;display:flex}.week-title{font-size:18px}.lessons{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lesson{border:2px solid var(--ink);background:var(--cream);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:10px 12px;text-decoration:none;display:flex}a.lesson:hover{background:var(--yellow)}.lesson-done{background:var(--white)}.tick{color:var(--teal);font-weight:700}.lesson-min{white-space:nowrap;font-weight:700}.notice{border:var(--border);background:var(--yellow);padding:10px 12px;font-weight:500}.center{text-align:center;flex-direction:column;align-items:center;gap:12px;padding-top:32px;display:flex}@media (width>=640px){.container{padding:0 24px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.page-title{font-size:44px}}@media (width>=960px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.btn:hover{transform:none}}.notice{margin:0 0 16px}.btn-white{background:var(--white);color:var(--ink);justify-content:center;width:100%}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.btn-compact{justify-content:center;width:100%;min-height:44px}.label{letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.input{border:var(--border);background:var(--cream);width:100%;min-height:48px;color:var(--ink);font-family:var(--mono);padding:0 12px;font-size:16px}.link-btn{min-height:44px;color:var(--ink);font-family:var(--mono);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:13px;font-weight:700;text-decoration:underline}.link-inline{min-height:0;font-size:inherit;display:inline}.menu{position:relative}.auth-slot{width:44px;height:44px}.btn-signin{border:var(--border);background:var(--ink);min-height:44px;color:var(--cream);font-family:var(--mono);letter-spacing:.5px;cursor:pointer;padding:0 16px;font-size:13px;font-weight:700}.btn-signin:hover,.btn-signin[aria-expanded=true]{background:var(--red);color:var(--ink)}.avatar{border:var(--border);background:var(--yellow);width:44px;height:44px;font-family:var(--display);color:var(--ink);border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.avatar-btn{cursor:pointer;padding:0}.avatar-btn:hover,.avatar-btn[aria-expanded=true]{background:var(--red)}.popover{z-index:30;border:var(--border);background:var(--white);width:min(340px,100vw - 32px);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:14px;display:flex;position:absolute;top:calc(100% + 10px);right:0}.popover-menu{width:min(260px,100vw - 32px)}.popover-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.popover-title{font-size:16px}.popover-sub{margin:0;font-size:12px}.popover-close{width:44px;height:44px;font-family:var(--display);cursor:pointer;color:var(--ink);background:0 0;border:0;margin:-8px -8px -8px 0;font-size:26px;line-height:1}.popover-form{flex-direction:column;gap:8px;display:flex}.popover-note{border:var(--border);background:var(--yellow);overflow-wrap:anywhere;margin:0;padding:8px 10px;font-size:12px;font-weight:500}.popover-error{background:var(--red)}.popover-who{flex-direction:column;gap:2px;margin:0;display:flex}.popover-who-label{letter-spacing:.5px;font-size:11px;font-weight:700}.popover-who-email{overflow-wrap:anywhere;font-size:13px}.divider{align-items:center;gap:10px;font-size:11px;font-weight:700;display:flex}.divider:before,.divider:after{content:"";border-top:2px solid var(--ink);flex:1}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lesson-head{flex-direction:column;gap:6px;margin:4px 0 16px;display:flex}.lesson-kicker{letter-spacing:.5px;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:12px;font-weight:700;display:flex}.lesson-title-h1{font-size:26px}.lesson-native{margin:0;font-size:16px;font-weight:500}.stepper{margin-bottom:16px}.stepper-bar{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.seg{border:2px solid var(--ink);background:var(--white);flex:1;height:12px}.seg-done{background:var(--ink)}.seg-now{background:var(--red)}.stepper-label{font-family:var(--mono);letter-spacing:.5px;margin:0;font-size:13px;font-weight:700}.stepper-label:focus{outline:none}.step{gap:14px}.step-stack{flex-direction:column;gap:20px;display:flex}.step-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.step-meta .progress{flex:1;max-width:160px}.progress-slim{height:12px}.step-title{font-family:var(--display);margin:0;font-size:20px;font-weight:400;line-height:1.2}.prose{white-space:pre-line;margin:0;line-height:1.6}.btn-small{border:var(--border);background:var(--white);min-height:44px;color:var(--ink);font-family:var(--mono);cursor:pointer;padding:0 12px;font-size:12px;font-weight:700}.btn-small:hover,.btn-small[aria-pressed=true]{background:var(--yellow)}.step-nav{gap:12px;margin-top:20px;display:flex}.step-nav .btn{flex:1}.flash{position:relative}.flash-face{border:var(--border);background:var(--cream);width:100%;min-height:220px;color:var(--ink);text-align:center;cursor:pointer;font-family:var(--mono);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 16px 24px;display:flex}.flash-face:hover{background:var(--yellow)}.flash-back,.flash-back:hover{background:var(--teal)}.flash-cat{background:var(--white);position:absolute;top:10px;left:10px}.flash-word{font-family:var(--display);overflow-wrap:anywhere;font-size:32px;line-height:1.15}.flash-sub{letter-spacing:.5px;font-size:12px;font-weight:700}.flash-listen{position:absolute;top:6px;right:6px}.rate-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.deck-done{border:var(--border);background:var(--teal);flex-direction:column;align-items:flex-start;gap:4px;padding:20px;display:flex}.listen{border:var(--border);background:var(--white);min-width:44px;min-height:44px;color:var(--ink);font-family:var(--mono);cursor:pointer;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.listen:hover{background:var(--yellow)}.examples{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.example{border:2px solid var(--ink);background:var(--cream);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.example-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.example-target{overflow-wrap:anywhere;font-size:16px;font-weight:700}.example-english{font-size:13px}.reveal{min-height:44px;font-family:var(--mono);cursor:pointer;color:var(--ink);background:0 0;border:0;align-self:flex-start;padding:0;font-size:12px;font-weight:700;text-decoration:underline}.note-culture,.note-pron{background:var(--cream)}.quiz-question{margin:0;font-size:18px;font-weight:700;line-height:1.4}.options{grid-template-columns:1fr;gap:10px;display:grid}.opt{border:var(--border);background:var(--white);min-height:52px;color:var(--ink);font-family:var(--mono);text-align:left;cursor:pointer;padding:8px 14px;font-size:15px;font-weight:700}.opt:hover:not([aria-disabled=true]){background:var(--yellow)}.opt[aria-disabled=true]{cursor:default}.opt-right{background:var(--teal)}.opt-wrong{background:var(--red)}.opt-dim{opacity:.55}.blank-form{flex-direction:column;gap:6px;display:flex}.blank-row{gap:10px;display:flex}.blank-row .input{flex:1;min-width:0}.feedback{min-height:0}.fb{border:var(--border);margin:0;padding:10px 12px;font-weight:700}.fb-right{background:var(--teal)}.fb-wrong{background:var(--red)}.result{text-align:center;align-items:center}.result-title{font-family:var(--display);margin:0;font-size:30px;font-weight:400}.result-score{margin:0;font-size:16px;font-weight:700}.result-actions{flex-direction:column;align-items:stretch;gap:10px;width:100%;max-width:360px;display:flex}.result-actions .link-btn{align-self:center}.save-line{min-height:20px;font-size:13px}@media (width>=640px){.lesson-title-h1{font-size:34px}.options{grid-template-columns:1fr 1fr}.flash-word{font-size:40px}}.goalbar-row{border-top:2px solid var(--ink);background:var(--cream)}.goalbar-wrap{position:relative}.goalbar{width:100%;min-height:44px;color:var(--ink);font-family:var(--mono);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:12px;font-weight:500;display:flex}.goalbar-time{white-space:nowrap}.goalbar-track{border:2px solid var(--ink);background:var(--white);flex:1;min-width:36px;height:12px;display:block}.goalbar-fill{background:var(--red);height:100%;transition:width .4s linear;display:block}.goalbar-met .goalbar-fill{background:var(--teal)}.goalbar-paused{background:var(--yellow);padding:1px 6px;font-size:10px}.goalbar-streak{white-space:nowrap;font-weight:700}.goal-popover{width:min(380px,100vw - 32px);top:calc(100% + 6px);left:0;right:auto}.goal-choices{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.goal-choice{border:var(--border);background:var(--white);min-height:48px;color:var(--ink);font-family:var(--display);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex}.goal-choice small{font-family:var(--mono);margin-top:2px;font-size:9px;font-weight:700}.goal-choice:hover{background:var(--yellow)}.goal-choice[aria-pressed=true]{background:var(--ink);color:var(--cream)}.goal-sub{font-family:var(--mono);letter-spacing:.5px;margin:4px 0 0;font-size:12px;font-weight:700}.week{grid-template-columns:repeat(7,1fr);align-items:end;gap:6px;margin:0;padding:0;list-style:none;display:grid}.day{flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:700;display:flex}.day-bar{border:2px solid var(--ink);background:var(--cream);align-items:flex-end;width:100%;height:72px;display:flex}.day-fill{background:var(--yellow);border-top:2px solid var(--ink);width:100%;display:block}.day-hit{background:var(--teal)}.day-today .day-bar{box-shadow:3px 3px 0 var(--ink)}.day-today .day-label{text-decoration:underline}.goal-note{margin:0;font-size:12px}@media (width<=380px){.goalbar{gap:8px;font-size:11px}}[hidden]{display:none!important}.page{overflow-x:clip}.link-btn:disabled{opacity:.45;cursor:not-allowed;text-decoration:none}.seg-toggle{align-items:center;gap:0;display:flex}.seg-wrap{flex-wrap:wrap;gap:6px}.seg-toggle-label{letter-spacing:.5px;white-space:nowrap;margin-right:8px;font-size:11px;font-weight:700}.seg-btn{border:var(--border);background:var(--white);min-height:44px;color:var(--ink);font-family:var(--mono);cursor:pointer;flex:1;padding:0 8px;font-size:12px;font-weight:700}.seg-toggle:not(.seg-wrap) .seg-btn+.seg-btn{margin-left:-3px}.seg-btn:hover{background:var(--yellow)}.seg-btn[aria-pressed=true]{background:var(--ink);color:var(--cream)}.setting{flex-direction:column;gap:2px;display:flex}.deck{padding-bottom:6px;position:relative}.deck-under{border:var(--border);background:var(--yellow);position:absolute;inset:8px -4px 0 8px}.flash{z-index:1;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;will-change:transform;cursor:grab;position:relative}.flash:active{cursor:grabbing}.flash-face{min-height:240px}.swipe-cue{z-index:2;border:var(--border);font-family:var(--display);pointer-events:none;padding:4px 10px;font-size:16px;position:absolute;top:44px}.swipe-got{background:var(--teal);left:12px;transform:rotate(-8deg)}.swipe-again{background:var(--red);right:12px;transform:rotate(8deg)}.deck-tools{justify-content:space-between;align-items:center;display:flex}.deck-tools .link-btn{align-self:center}.deck-done span{font-size:13px}.studybar{z-index:15;background:var(--white);border-top:var(--border);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.studybar-inner{grid-auto-columns:1fr;grid-auto-flow:column;max-width:1100px;margin:0 auto;display:grid}.studytab{border:0;border-left:2px solid var(--ink);background:var(--white);min-height:60px;color:var(--ink);font-family:var(--mono);letter-spacing:.5px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-size:10px;font-weight:700;display:flex}.studytab:first-child{border-left:0}.studytab:hover{background:var(--yellow)}.studytab-on,.studytab-on:hover{background:var(--ink);color:var(--cream)}.studytab:focus-visible{outline-offset:-6px}body.has-studybar .page{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.vq-prompt{border:var(--border);background:var(--cream);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:150px;padding:14px 12px;display:flex}.vq-prompt .label{margin:0}.vq-word{font-family:var(--display);overflow-wrap:anywhere;font-size:30px;line-height:1.15}.vq-ear{font-size:48px}.vq-after{gap:10px;display:flex}.vq-after .btn{flex:1}.vq-reveal{margin:0;font-weight:700}.opt{align-items:center;display:flex}.opt-key{border:2px solid var(--ink);background:var(--cream);flex:none;justify-content:center;align-items:center;width:24px;height:24px;margin-right:10px;font-size:11px;display:inline-flex}.blank-tools{justify-content:space-between;align-items:center;gap:12px;display:flex}.hint-line{letter-spacing:3px;align-items:center;min-height:44px;font-weight:700;display:inline-flex}.missed{text-align:left;flex-direction:column;gap:6px;width:100%;display:flex}.sheet-print-title{font-family:var(--display);font-size:20px;display:none}.sheet-groups{flex-direction:column;gap:16px;display:flex}.sheet-cat{background:var(--ink);color:var(--cream);font-family:var(--mono);letter-spacing:1px;justify-content:space-between;align-items:center;margin:0 0 6px;padding:4px 8px;font-size:11px;font-weight:700;display:flex}.sheet-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sheet-row{border:2px solid var(--ink);background:var(--cream);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;padding:4px 8px;display:grid}.sheet-row:nth-child(2n){background:var(--white)}.sheet-target{overflow-wrap:anywhere;font-size:15px;font-weight:700}.sheet-english{overflow-wrap:anywhere;font-size:13px}.sheet-listen{width:44px}.gap{border:2px dashed var(--ink);background:var(--white);width:100%;min-height:40px;color:var(--ink);font-family:var(--mono);letter-spacing:.5px;cursor:pointer;font-size:10px;font-weight:700}.gap:hover{background:var(--yellow)}@media (width>=640px){.study-panels,body.has-studybar .step-nav{max-width:680px;margin-left:auto;margin-right:auto}.studybar{border-left:var(--border);border-right:var(--border);width:min(680px,100%);left:50%;right:auto;transform:translate(-50%)}.vq-word{font-size:38px}.sheet-target{font-size:16px}.sheet-english{font-size:14px}.studytab{flex-direction:row;gap:8px;font-size:11px}}@media (height<=900px){.flash-face{min-height:190px;padding-top:44px;padding-bottom:16px}.vq-prompt{min-height:120px}}@media print{body{background:#fff}.site-header,.studybar,.no-print,.back,.stepper,.lesson-head,.step-nav{display:none!important}body.has-studybar .page{padding-bottom:0}.sheet-print-title{margin-bottom:8px;display:block}.card{box-shadow:none;border:0;padding:0}.sheet-row{break-inside:avoid}.sheet-cat{break-after:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
