@font-face{font-family:Inter;src:url('assets/inter.woff2') format('woff2');font-display:swap;font-weight:100 900}@font-face{font-family:Space;src:url('assets/space.woff2') format('woff2');font-display:swap;font-weight:300 700}
:root{--canvas:#efefef;--paper:#fff;--fog:#f5f5f5;--ink:#202020;--body:#4d4d4d;--muted:#6b6b6b;--line:#dedede;--accent:#ff682c;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}button{background:none;border:0}h1,h2,h3{font-family:Space,Inter,sans-serif;font-weight:500;letter-spacing:-.025em;margin:0;line-height:1.13}h1{font-size:clamp(32px,4vw,52px)}h2{font-size:27px}h3{font-size:20px}p{line-height:1.65;color:var(--body);margin:12px 0}small{line-height:1.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #816729;outline-offset:4px}input,select{border:1px solid #bdbdbd;border-radius:8px;padding:12px;min-height:46px;background:white;color:var(--ink);width:100%}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--ink);flex-shrink:0}label{font-size:13px;color:var(--body)}label>span{display:block;margin-bottom:7px}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:12px 23px;border-radius:30px;font-size:14px;font-weight:600;text-decoration:none}.primary{background:var(--ink);color:white;border:1px solid var(--ink)}.secondary{border:1px solid #a3a3a3;background:var(--paper)}.primary:hover{background:#3d3d3d}.secondary:hover{background:var(--fog)}.text-button{min-height:44px;padding:10px 0;text-decoration:underline;text-underline-offset:4px;font-size:13px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:30px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:600;color:var(--muted);text-transform:uppercase;margin:0 0 12px}.site-header{max-width:1320px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 36px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:21px;font-weight:600;letter-spacing:-.5px}.brand small{display:block;font-size:8px;letter-spacing:.13em;font-weight:500;margin-top:4px}.site-header nav{display:flex;background:#fff;border:1px solid var(--line);border-radius:200px;padding:5px;gap:3px}.site-header nav a{padding:12px 18px;border-radius:100px;text-decoration:none;font-size:12px;font-weight:500;white-space:nowrap}.site-header nav a[aria-current=page]{background:var(--fog);font-weight:600}.bonus-label{font-size:9px;color:var(--muted);letter-spacing:.1em}main{max-width:1200px;margin:auto;padding:28px 36px 55px;min-height:70vh}.intro{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:45px;align-items:center;margin:12px 0 42px}.intro p:not(.eyebrow){max-width:640px;font-size:15px}.companion{display:flex;gap:14px;align-items:center}.companion img{width:105px;height:105px;object-fit:contain}.companion strong{font-size:13px;font-weight:600}.companion p{font-size:12px;margin:6px 0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.intro .actions{margin-top:26px}.muted{color:var(--muted);font-size:12px}.test-home{display:grid;grid-template-columns:1.65fr 1fr;gap:22px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.section-top h2{font-size:23px}.step-list{margin:24px 0}.step-row{display:flex;align-items:flex-start;gap:16px;padding:18px 0;border-top:1px solid var(--line)}.step-number{width:34px;height:34px;display:grid;place-items:center;background:var(--fog);border-radius:100px;font-size:12px;flex-shrink:0}.step-row strong{font-size:14px}.step-row p{font-size:12px;margin:5px 0}.target-select{max-width:170px}.aside-note h3{font-size:22px}.aside-note p{font-size:13px}.inline-metrics{display:flex;gap:30px;padding:22px 0;border-top:1px solid var(--line);margin-top:20px}.inline-metrics strong{display:block;font-family:Space,sans-serif;font-size:27px}.inline-metrics span{font-size:10px;color:var(--muted)}.session-wrap{max-width:900px;margin:0 auto}.session-top{display:flex;gap:20px;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:20px}.session-top a{font-size:12px}.step-bar{height:3px;background:var(--line);border-radius:3px;margin:20px 0 30px}.step-bar span{display:block;height:3px;background:var(--accent);max-width:100%}.word-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 18px;margin:28px 0}.word-check{display:flex;align-items:center;gap:11px;padding:12px 8px;border-radius:8px;min-height:48px;color:var(--ink);font-size:15px;overflow-wrap:anywhere}.word-check:has(input:checked){background:var(--fog)}.word-check span{margin:0}.question-card{padding:36px 40px}.question-card h1{font-size:32px}.question-card .context{font-size:20px;color:var(--ink);line-height:1.55;padding:24px 0;white-space:pre-line}.options{display:grid;gap:10px}.option{width:100%;text-align:left;display:flex;align-items:center;gap:15px;min-height:62px;border:1px solid var(--line);border-radius:8px;padding:16px;font-size:14px;background:white}.option:hover{background:var(--fog);border-color:#828282}.option .letter{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;flex-shrink:0;font-size:11px}.question-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:22px}.result-head{display:grid;grid-template-columns:1fr 230px;gap:30px;align-items:center}.result-score{background:var(--fog);padding:24px;border-radius:8px;text-align:center}.result-score strong{font-family:Space,sans-serif;display:block;font-size:52px}.result-score span{font-size:11px;color:var(--muted)}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.score-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.mini-track{height:4px;background:var(--line);margin-top:10px}.mini-track span{background:var(--accent);height:4px;display:block;max-width:100%}.path-note{margin-top:22px}.review-answer{padding:20px 0;border-top:1px solid var(--line)}.review-answer p{font-size:13px;white-space:pre-line}.tag{display:inline-block;padding:5px 9px;background:var(--fog);border:1px solid var(--line);border-radius:20px;font-size:10px;color:var(--body)}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin-bottom:18px}.saved-filter{display:flex;align-items:center;gap:8px;min-height:44px}.saved-filter span{margin:0}.bank-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}.bank-list{display:grid;gap:10px}.entry-button{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;padding:19px 22px;border:1px solid var(--line);border-radius:8px;background:white}.entry-button[aria-pressed=true]{border-color:var(--ink)}.entry-button strong{font-size:16px;display:block;font-weight:500}.entry-button small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.entry-button .arrow{font-size:18px;color:var(--muted)}.entry-detail{position:sticky;top:20px}.entry-detail h2{font-size:27px;overflow-wrap:anywhere}.definition{font-size:14px}.pronunciation{font-size:11px;overflow-wrap:anywhere;color:var(--muted)}.entry-detail h3{font-family:Inter,sans-serif;font-size:11px;letter-spacing:.05em;margin:24px 0 9px;text-transform:uppercase}.examples{padding-left:18px;font-size:13px;color:var(--body);line-height:1.65}.examples li{margin:10px 0}.entry-detail .notice{font-size:12px;background:var(--fog);padding:15px;border-radius:8px}.pagination{display:flex;align-items:center;gap:15px;justify-content:center;margin-top:22px;font-size:12px}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.practice-grid p{font-size:14px}.training-card{max-width:740px;margin:auto;min-height:380px;text-align:center;padding:42px}.training-card .term{font-family:Space,sans-serif;font-size:clamp(28px,4vw,45px);letter-spacing:-.025em;margin:32px 0 20px;overflow-wrap:anywhere}.ratings{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:28px}.ratings button{border:1px solid var(--line);border-radius:8px;min-height:66px;padding:10px;font-size:13px}.ratings small{display:block;font-size:10px;color:var(--muted);margin-top:7px}.reveal{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.reveal p{text-align:left;font-size:14px}.feedback{padding:20px;background:var(--fog);border-top:3px solid var(--accent);text-align:left;margin-top:20px;border-radius:8px;font-size:13px}.feedback.correct{border-top-color:#816729}.typing{display:flex;gap:10px;margin-top:20px}.typing input{min-width:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.metric{padding:23px}.metric strong{font-family:Space,sans-serif;display:block;font-size:37px;margin-top:12px}.metric span{font-size:11px;color:var(--muted)}.history-list{display:grid;gap:10px;margin-top:18px}.history-button{display:flex;justify-content:space-between;gap:20px;align-items:center;text-align:left;padding:18px;border:1px solid var(--line);border-radius:8px;background:white;width:100%;font-size:13px}.history-button small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.progress-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:22px}.empty{padding:36px;text-align:center;background:white;border-radius:8px;border:1px solid var(--line)}.empty p{font-size:13px}.storage-tools{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.storage-tools .secondary{font-size:12px}footer{max-width:1200px;margin:auto;padding:25px 36px;display:flex;gap:18px;border-top:1px solid #d6d6d6;font-size:10px;color:var(--muted);align-items:center}footer span{flex:1}footer button{min-height:44px;font-size:10px;text-decoration:underline}#notice{max-width:1128px;margin:auto}.warning{background:white;border:1px solid #816729;padding:15px 20px;border-radius:8px;font-size:12px;line-height:1.6}.warning button{margin-left:10px;text-decoration:underline}.access-gate{min-height:100dvh;display:grid;place-items:center;padding:32px 20px}.unlock-card{max-width:470px;width:100%;padding:34px}.unlock-card .brand{justify-content:center}.unlock-card img.mascot{display:block;width:106px;height:106px;object-fit:contain;margin:28px auto 22px}.unlock-card h1{font-size:35px}.unlock-card p{font-size:13px}.unlock-card form{margin-top:24px}.unlock-card .primary{width:100%;margin-top:14px}.show-code{display:flex;gap:8px;align-items:center;margin-top:8px;min-height:40px}.show-code span{margin:0}.error{color:#9b2c22;font-size:13px;min-height:20px}.skip-link{position:absolute;left:15px;top:-70px;background:white;z-index:100;padding:14px}.skip-link:focus{top:10px}dialog{border:1px solid var(--line);border-radius:12px;max-width:600px;width:calc(100% - 32px);padding:30px;max-height:85dvh;overflow:auto}dialog::backdrop{background:#0005}dialog h2{font-size:25px}dialog p,dialog li{font-size:13px;line-height:1.7}dialog>.secondary{margin-top:20px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#202020;color:white;border-radius:8px;padding:14px 20px;font-size:12px;max-width:90vw;z-index:80;display:none}#toast.visible{display:block}[hidden]{display:none!important}
@media(max-width:1050px){.bonus-label{display:none}.site-header{padding:22px 28px}.intro{grid-template-columns:1fr 260px;gap:20px}.companion img{width:80px;height:80px}.bank-layout{grid-template-columns:1fr 320px}.filters{grid-template-columns:1fr 1fr}.site-header nav a{padding:12px 13px}}
@media(max-width:760px){.site-header{padding:20px;align-items:flex-start}.brand{font-size:19px}.brand small{font-size:7px}.site-header nav{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:480px;z-index:40;box-shadow:0 2px 9px #0001;justify-content:space-around;padding:6px}.site-header nav a{padding:14px 8px;font-size:11px;flex:1;text-align:center}main{padding:20px 20px 35px}.intro{grid-template-columns:1fr;margin:10px 0 28px;gap:12px}.intro p:not(.eyebrow){font-size:14px}.companion{background:#e8e8e8;border-radius:8px;padding:12px 16px}.companion img{width:58px;height:58px}.companion p{font-size:11px}.test-home,.result-grid,.practice-grid,.progress-grid{grid-template-columns:1fr}.panel{padding:23px}.aside-note{margin-top:0}.section-top{flex-wrap:wrap;gap:12px}.word-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 7px;margin:22px -5px}.word-check{font-size:13px;gap:8px;padding:13px 5px}.word-check input{width:18px;height:18px;min-height:18px}.session-top{gap:10px;font-size:10px;flex-wrap:wrap}.question-card{padding:25px 20px}.question-card h1{font-size:26px}.question-card .context{font-size:18px;padding:16px 0}.option{padding:13px;font-size:13px;gap:12px}.question-foot{flex-wrap:wrap}.result-head{grid-template-columns:1fr}.result-head h1{font-size:31px}.result-score{padding:20px}.result-score strong{font-size:43px}.bank-layout{grid-template-columns:1fr}.entry-detail{position:static;scroll-margin-top:18px}.filters{gap:10px}.filters label:first-child{grid-column:1/-1}.bank-list{gap:8px}.entry-button{padding:16px 18px}.entry-button strong{font-size:15px}.entry-button small{font-size:11px}.ratings{grid-template-columns:1fr 1fr}.training-card{padding:26px 20px;min-height:330px}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:19px}.metric strong{font-size:32px}.metric span{font-size:10px}.typing{flex-direction:column}.storage-tools>*{width:100%}footer{padding:20px 20px 108px;flex-wrap:wrap;gap:10px}footer span{flex-basis:100%;line-height:1.6}#notice{margin:0 20px}#toast{bottom:89px;width:max-content}.actions>.primary{flex-grow:1}.unlock-card{padding:27px}.unlock-card h1{font-size:30px}.history-button{gap:10px}.history-button strong{font-size:12px}.review-answer p{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.export-text{margin-top:22px}.export-text textarea{width:100%;font:11px/1.6 monospace;border:1px solid #aaa;border-radius:8px;padding:12px;resize:vertical;margin-top:10px}.export-text label{display:block;margin-top:15px}
