:root{color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;color:#172c3a;background:#f3e8cf;--paper: #f3e8cf;--sheet: #fff9eb;--ink: #172c3a;--muted: #596168;--blue: #175e8e;--tomato: #b83a32;--mustard: #d6a526;--leaf: #39704e;--line: #a69a83;--display: Georgia, Charter, "Times New Roman", serif;--shadow-blue: 5px 5px 0 #175e8e;--shadow-ink: 5px 5px 0 #172c3a;--measure: 68ch}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background-color:var(--paper);background-image:radial-gradient(rgb(23 44 58 / .075) .65px,transparent .8px);background-size:6px 6px;color:var(--ink);font-size:16px;line-height:1.55;text-rendering:optimizeLegibility}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{text-decoration-thickness:3px}img{max-width:100%;height:auto}p,h1,h2,h3{margin-block-start:0}h1,h2,h3{font-family:var(--display);line-height:1.08;text-wrap:balance}h2{font-size:clamp(2rem,5vw,3.25rem);letter-spacing:-.035em}h3{font-size:1.4rem}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.skip-link{position:fixed;z-index:100;top:8px;left:8px;min-height:44px;padding:10px 16px;translate:0 -160%;background:var(--sheet);border:2px solid var(--ink);color:var(--ink);font-weight:800}.skip-link:focus{translate:0}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1240px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 20px max(24px,env(safe-area-inset-left));border-bottom:2px solid var(--ink)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand h1{margin:0;font-size:1.25rem;letter-spacing:-.02em}.brand-mark{position:relative;width:42px;height:34px;flex:0 0 auto}.brand-mark i{position:absolute;width:29px;height:24px;border:2px solid var(--ink);background:var(--sheet)}.brand-mark i:first-child{left:2px;top:1px;rotate:-7deg;background:var(--tomato)}.brand-mark i:last-child{right:0;bottom:0;rotate:5deg}.site-header nav{display:flex;align-items:center;gap:8px}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:2px solid transparent;color:var(--ink);font-weight:760;text-decoration:none;white-space:nowrap}.nav-link:hover{border-bottom-color:var(--ink)}.nav-link.is-active{border-color:var(--ink);background:var(--sheet);box-shadow:3px 3px 0 var(--tomato)}.nav-count{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:6px;border-radius:50%;background:var(--tomato);color:#fff;font-size:.75rem}.offline-strip,.notice-strip{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 24px;background:var(--ink);color:#fff;font-weight:720;text-align:center}.offline-strip span{color:var(--mustard)}.notice-strip{background:var(--blue)}.notice-strip .icon-button{color:#fff;border-color:#fff}main{min-height:62vh}#main-content:focus{outline:none}.hero-grid,.queue-section,.method-note,.page-heading,.pair-group,.data-grid,.unlock-sheet,.practice-shell,.practice-empty,.result-sheet{width:min(1160px,calc(100% - 48px));margin-inline:auto}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.86fr);gap:clamp(32px,6vw,84px);align-items:center;padding-block:clamp(48px,8vw,96px) 40px}.hero-copy h2{max-width:15ch;margin-bottom:24px;font-size:clamp(2.65rem,6vw,5rem)}.eyebrow{margin-bottom:12px;color:var(--tomato);font-size:.78rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.lede{max-width:58ch;font-size:clamp(1.08rem,2vw,1.25rem);line-height:1.55}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.microcopy{margin:16px 0 0;color:var(--muted);font-size:.88rem}.hero-art{position:relative;margin:0;rotate:1.5deg}.hero-art:before{content:"";position:absolute;inset:18px -11px -12px 15px;z-index:-1;background:var(--blue);rotate:-3deg}.hero-art img{display:block;width:100%;border:2px solid var(--ink);filter:saturate(.94) contrast(1.03)}.hero-art figcaption{position:absolute;right:-12px;bottom:-18px;padding:8px 12px;border:2px solid var(--ink);background:var(--mustard);font-family:var(--display);font-size:.92rem;font-style:italic;font-weight:700;rotate:-2deg}.button,.button-link,.file-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 18px;border:2px solid var(--ink);border-radius:0;background:var(--sheet);color:var(--ink);font-weight:820;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:translate .15s ease,box-shadow .15s ease,background .15s ease}.button:hover,.button-link:hover,.file-button:hover{background:#fff}.button:active,.button-link:active,.file-button:active{translate:3px 3px;box-shadow:1px 1px 0 var(--ink)}.button.primary{background:var(--tomato);color:#fff}.button.secondary{background:var(--sheet)}.button.success{background:var(--leaf);color:#fff}.button.small{min-height:44px;padding:8px 12px;box-shadow:3px 3px #fff}.button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.text-action,.text-button{min-height:44px;padding:6px 0;border:0;background:transparent;color:var(--blue);font-weight:820;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.text-action span{display:inline-block;margin-left:8px;transition:translate .15s ease}.text-action:hover span{translate:5px 0}.text-button.danger{color:var(--tomato)}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid var(--ink);background:transparent;font-size:1.6rem;line-height:1;cursor:pointer}.status-ledger{display:grid;grid-template-columns:repeat(3,1fr);width:min(900px,calc(100% - 48px));margin:0 auto 80px;border-block:2px solid var(--ink)}.status-ledger div{display:flex;align-items:baseline;justify-content:center;gap:10px;padding:18px;border-right:1px solid var(--line)}.status-ledger div:last-child{border:0}.status-ledger strong{font-family:var(--display);font-size:2rem;font-variant-numeric:tabular-nums}.status-ledger span{color:var(--muted);font-weight:700}.empty-sheet{position:relative;width:min(760px,calc(100% - 48px));margin:0 auto 96px;padding:clamp(32px,6vw,64px);border:2px solid var(--ink);background:var(--sheet);box-shadow:var(--shadow-blue);text-align:center;rotate:-.6deg}.empty-sheet h2{margin-inline:auto;max-width:18ch}.empty-sheet p:not(.eyebrow){max-width:56ch;margin-inline:auto}.crop-mark:before,.crop-mark:after{content:"";position:absolute;width:34px;height:34px;border-color:var(--tomato)}.crop-mark:before{top:10px;left:10px;border-top:4px solid var(--tomato);border-left:4px solid var(--tomato)}.crop-mark:after{right:10px;bottom:10px;border-right:4px solid var(--tomato);border-bottom:4px solid var(--tomato)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h2{margin-bottom:0}.section-heading a{min-height:44px;display:inline-flex;align-items:center;font-weight:800}.queue-section{margin-bottom:96px}.pair-stack,.pair-list{display:grid;gap:16px;margin:0;padding:0;list-style:none}.pair-card{position:relative;padding:24px;border:2px solid var(--ink);background:var(--sheet);box-shadow:4px 4px 0 var(--tomato)}.pair-card:before{content:"";position:absolute;top:-2px;left:24px;width:58px;border-top:7px solid var(--mustard)}.pair-card.is-resolved{box-shadow:4px 4px 0 var(--leaf)}.pair-words{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:8px;font-family:var(--display);font-size:clamp(1.5rem,4vw,2.2rem);font-weight:700}.pair-words i{color:var(--tomato);font-size:1.1rem;font-style:normal}.pair-card>p{margin:0 0 16px;max-width:var(--measure)}.pair-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;color:var(--muted);font-size:.86rem;font-weight:700}.progress-dots{display:inline-flex;gap:5px}.progress-dots i{width:13px;height:13px;border:2px solid var(--ink);border-radius:50%;background:transparent}.progress-dots i.filled{background:var(--leaf)}.audio-tag{color:var(--blue)}.pair-actions{display:flex;gap:20px;margin-top:10px}.method-note{margin-bottom:96px;padding-top:48px;border-top:2px solid var(--ink)}.method-note>h2{max-width:16ch}.method-note ol{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:40px 0 0;padding:0;list-style:none}.method-note li{position:relative;padding:24px 0 0;border-top:8px solid var(--blue)}.method-note li:nth-child(2){border-color:var(--tomato)}.method-note li:nth-child(3){border-color:var(--mustard)}.method-note li>span{position:absolute;top:-38px;right:0;color:var(--muted);font-family:var(--display);font-size:1.2rem}.method-note strong{display:block;margin-bottom:6px;font-family:var(--display);font-size:1.45rem}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;padding-block:64px 48px;border-bottom:2px solid var(--ink)}.page-heading h2{margin-bottom:14px}.page-heading p:last-child{max-width:60ch;margin-bottom:0}.search-field{width:min(720px,calc(100% - 48px));margin:36px auto 48px}.search-field label,.field label,.answer-form label,.restore-license label{display:block;margin-bottom:6px;font-weight:820}input,textarea{width:100%;min-height:48px;padding:10px 12px;border:2px solid var(--ink);border-radius:0;background:#fffdf5;color:var(--ink)}textarea{resize:vertical}input::placeholder{color:#6b6e6b;opacity:1}.pair-group{padding-block:40px}.pair-group+.pair-group{border-top:2px solid var(--ink)}.pair-group .section-heading h2{font-size:2rem}.pair-group .section-heading h2 span{color:var(--muted);font-family:ui-sans-serif,system-ui,sans-serif;font-size:1rem}.pair-list{gap:24px}.quiet-empty,.search-empty{padding:32px;border:2px dashed var(--line);text-align:center}.attempt-history{margin-top:16px;border-top:1px solid var(--line)}.attempt-history summary{min-height:44px;padding:12px 0 4px;color:var(--blue);font-weight:800;cursor:pointer}.attempt-history ol{margin:8px 0 0;padding:0;list-style:none}.attempt-history li{display:grid;grid-template-columns:70px 1fr auto;gap:12px;padding:9px 0;border-top:1px dotted var(--line);font-size:.88rem}.attempt-history time{color:var(--muted);font-variant-numeric:tabular-nums}.attempt-result{font-weight:850}.attempt-result.pass{color:var(--leaf)}.attempt-result.miss{color:var(--tomato)}.practice-shell{padding-block:64px 96px}.practice-topline{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.practice-topline h2{margin-bottom:0}.practice-topline>span{padding:6px 10px;border:2px solid var(--ink);background:var(--mustard);font-weight:850}.practice-card{min-height:430px;padding:clamp(28px,6vw,64px);border:3px solid var(--ink);background:var(--sheet);box-shadow:8px 8px 0 var(--blue);text-align:center;animation:scrap-in .18s ease-out both}.practice-card.audio-text{box-shadow:8px 8px 0 var(--tomato)}.prompt-label{margin-inline:auto;max-width:44ch;color:var(--muted);font-weight:720}.word-prompt{margin:36px 0;font-family:var(--display);font-size:clamp(3rem,10vw,6.5rem);font-weight:700;letter-spacing:-.04em;overflow-wrap:anywhere}.route-icon{width:90px;height:110px;margin:0 auto 18px}.ear-icon{border:12px solid var(--blue);border-right-color:transparent;border-radius:65% 35% 55% 45%;rotate:-8deg}.listen-button{display:inline-flex;align-items:center;gap:12px;min-height:60px;margin:24px 0;padding:12px 22px;border:3px solid var(--ink);border-radius:999px;background:var(--blue);color:#fff;font-weight:850;cursor:pointer}.listen-button span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#fff;color:var(--blue)}.listen-button.compact{min-height:48px;margin:8px 0;padding:8px 16px}.listen-button:disabled{opacity:.5;cursor:not-allowed}.answer-form{max-width:610px;margin:24px auto 0;text-align:left}.answer-row{display:flex;align-items:stretch;gap:10px}.answer-row input{flex:1}.pair-hint{margin-top:24px;color:var(--muted)}.pair-hint span{color:var(--ink);font-family:var(--display);font-weight:700}.reference-panel{max-width:650px;margin:12px auto 0;padding-top:20px;border-top:2px solid var(--line)}.grade-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px}.contrast-slip{position:relative;max-width:720px;margin:-2px auto 0;padding:24px 28px;border:2px solid var(--ink);border-top:0;background:var(--mustard);rotate:-.5deg}.contrast-slip strong{font-family:var(--display);font-size:1.2rem}.contrast-slip p{margin:5px 0 0}.contrast-slip .mnemonic{font-style:italic}.practice-note{max-width:60ch;margin:32px auto 0;color:var(--muted);text-align:center}.practice-empty,.result-sheet{max-width:720px;margin-block:80px 120px;padding:clamp(36px,7vw,72px);border:3px solid var(--ink);background:var(--sheet);box-shadow:var(--shadow-blue);text-align:center}.practice-empty p:not(.eyebrow),.result-sheet p:not(.eyebrow){max-width:55ch;margin-inline:auto}.stamp{display:grid;place-items:center;width:82px;height:82px;margin:0 auto 24px;border:7px double currentColor;border-radius:50%;font-family:var(--display);font-size:2.5rem;font-weight:900;rotate:-7deg}.stamp.success{color:var(--leaf)}.stamp.miss{color:var(--tomato)}.result-sheet.correct .stamp{animation:stamp-in .22s ease-out both}.data-heading{border-bottom:0}.data-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.data-panel{position:relative;padding:32px;border:2px solid var(--ink);background:var(--sheet);box-shadow:5px 5px 0 var(--blue)}.data-panel:nth-child(2){box-shadow:5px 5px 0 var(--tomato)}.data-panel h2{font-size:2.1rem}.panel-number{position:absolute;top:12px;right:18px;color:var(--line);font-family:var(--display);font-size:2rem}.button-stack{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.file-button{position:relative;margin-top:16px;overflow:hidden}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.field-status{min-height:26px;margin:12px 0 0;color:var(--tomato);font-weight:720}.unlock-sheet{display:grid;grid-template-columns:190px 1fr;gap:clamp(24px,5vw,64px);align-items:start;margin-block:72px 112px;padding:clamp(28px,6vw,64px);border-block:3px solid var(--ink);background:#fff9eb94}.unlock-sheet h2{max-width:17ch}.unlock-sheet>div:last-child>p:not(.eyebrow,.microcopy,.legal-line,.license-good){max-width:70ch}.price-stamp{display:grid;place-items:center;aspect-ratio:1;border:8px double var(--tomato);border-radius:50%;color:var(--tomato);rotate:-8deg;text-align:center}.price-stamp span{font-family:var(--display);font-size:2.3rem;font-weight:900}.price-stamp small{display:block;margin-top:-24px;font-weight:850;text-transform:uppercase}.license-good{max-width:48ch;padding:16px;border-left:7px solid var(--leaf);background:var(--sheet);font-weight:780}.restore-license{max-width:680px;margin-top:28px;padding-top:16px;border-top:2px solid var(--line)}.restore-license summary{min-height:44px;padding:9px 0;color:var(--blue);font-weight:850;cursor:pointer}.restore-license form{margin-top:12px}.legal-line{margin-top:24px;color:var(--muted);font-size:.88rem}dialog{width:min(900px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:3px solid var(--ink);border-radius:0;background:var(--sheet);color:var(--ink);box-shadow:10px 10px 0 var(--blue)}dialog::backdrop{background:#172c3ac7}.pair-form{padding:clamp(24px,5vw,48px)}.dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.dialog-heading h2{margin-bottom:0;font-size:clamp(2rem,6vw,3.3rem)}.form-intro{max-width:58ch;margin-bottom:28px}.word-fields{display:grid;grid-template-columns:1fr 36px 1fr;gap:12px;align-items:end}.not-equal{padding-bottom:11px;color:var(--tomato);font-family:var(--display);font-size:1.5rem;font-weight:900;text-align:center}.field{margin-bottom:20px}.field-help{display:block;margin:-3px 0 7px;color:var(--muted);font-size:.82rem}.optional{color:var(--muted);font-size:.75rem;font-weight:600}.split-fields{display:grid;grid-template-columns:2fr 1fr;gap:16px}.recording-fieldset{margin:6px 0 18px;padding:20px;border:2px solid var(--ink)}.recording-fieldset legend{padding-inline:8px;font-family:var(--display);font-size:1.2rem;font-weight:800}.recording-fieldset>p{margin:0 0 16px;color:var(--muted);font-size:.88rem}.recording-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.recording-control{display:grid;gap:8px;align-content:start;min-width:0;padding:16px;border:1px dashed var(--line)}.record-button{min-height:48px;padding:8px 14px;border:2px solid var(--ink);background:var(--sheet);font-weight:800;cursor:pointer}.record-button span{display:inline-block;width:12px;height:12px;margin-right:7px;border-radius:50%;background:var(--tomato)}.recording-control audio{width:100%;min-height:44px}.record-status{min-height:24px;color:var(--blue);font-size:.82rem;font-weight:700}.form-error{min-height:26px;color:var(--tomato);font-weight:800}.dialog-actions{display:flex;justify-content:end;gap:12px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1240px;margin:0 auto;padding:28px max(24px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));border-top:2px solid var(--ink);color:var(--muted);font-size:.84rem}.site-footer p{margin:0}.site-footer p:last-child{display:flex;flex-wrap:wrap;gap:18px}.update-toast{position:fixed;z-index:20;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:16px;max-width:calc(100% - 40px);padding:14px 18px;border:2px solid #fff;background:var(--ink);color:#fff;box-shadow:5px 5px 0 var(--tomato);font-weight:750}.loading-page,.error-page{display:grid;place-items:center;align-content:center;min-height:100vh;padding:24px;text-align:center}.loading-mark{width:62px;height:44px;margin-bottom:18px;border:3px solid var(--ink);background:var(--tomato);box-shadow:8px 8px 0 var(--blue);animation:paper-breathe 1.3s ease-in-out infinite alternate}.error-page h1{font-size:clamp(2.5rem,7vw,4.5rem)}.error-page p{max-width:60ch}.legal-header{max-width:900px;margin:0 auto;padding:28px 24px;border-bottom:2px solid var(--ink)}.wordmark{color:var(--ink);font-family:var(--display);font-size:1.2rem;font-weight:800;text-decoration:none}.legal-page{max-width:760px;margin:0 auto;padding:64px 24px 100px}.legal-page h1{margin-bottom:24px;font-size:clamp(2.8rem,8vw,5rem)}.legal-page h2{margin-top:48px;font-size:1.8rem}.legal-page p{max-width:var(--measure)}.legal-page .button-link{margin-top:32px}@keyframes scrap-in{0%{opacity:0;transform:translateY(8px)}}@keyframes stamp-in{0%{opacity:0;transform:scale(1.25)}}@keyframes paper-breathe{to{transform:translateY(-5px)}}@media(max-width:820px){.site-header{align-items:flex-start;flex-direction:column;gap:14px;padding-inline:20px}.site-header nav{width:100%;overflow-x:auto;padding:2px 4px 6px;scrollbar-width:thin}.hero-grid{grid-template-columns:1fr;padding-top:52px}.hero-copy h2{font-size:clamp(2.8rem,12vw,4.6rem)}.hero-art{width:min(600px,100%);margin:12px auto 0}.method-note ol{grid-template-columns:1fr;gap:50px}.data-grid{grid-template-columns:1fr}.unlock-sheet{grid-template-columns:140px 1fr}.site-footer{align-items:flex-start;flex-direction:column}}@media(max-width:560px){body{font-size:16px}.site-header{padding-inline:16px}.brand h1{font-size:1.08rem}.nav-link{padding-inline:9px}.hero-grid,.queue-section,.method-note,.page-heading,.pair-group,.data-grid,.unlock-sheet,.practice-shell,.practice-empty,.result-sheet{width:min(100% - 32px,1160px)}.hero-grid{gap:42px;padding-block:44px 34px}.hero-copy h2{font-size:clamp(2.55rem,13vw,3.7rem)}.hero-actions,.hero-actions .button{width:100%}.hero-art{rotate:0deg}.hero-art:before{inset:12px 0 -8px 8px;rotate:0deg}.hero-art figcaption{right:0}.status-ledger{width:calc(100% - 32px);margin-bottom:56px}.status-ledger div{align-items:center;flex-direction:column;gap:0;padding:12px 6px;text-align:center}.status-ledger span{font-size:.75rem}.empty-sheet,.search-field{width:calc(100% - 32px)}.empty-sheet{margin-bottom:72px}.page-heading{align-items:stretch;flex-direction:column;padding-block:44px 32px}.page-heading .button{width:100%}.section-heading{align-items:flex-start;flex-direction:column;gap:8px}.pair-card{padding:20px}.pair-meta{align-items:flex-start;flex-direction:column;gap:8px}.attempt-history li{grid-template-columns:62px 1fr}.attempt-history time{grid-column:2}.practice-shell{padding-block:44px 72px}.practice-topline{align-items:flex-start}.practice-card{min-height:390px;padding:30px 18px;box-shadow:5px 5px 0 var(--blue)}.word-prompt{margin-block:28px}.answer-row{flex-direction:column}.answer-row .button{width:100%}.contrast-slip{padding:20px}.grade-actions .button{width:100%}.data-panel{padding:26px 22px}.button-stack,.button-stack .button{width:100%}.unlock-sheet{grid-template-columns:1fr}.price-stamp{width:145px}.word-fields,.split-fields,.recording-grid{grid-template-columns:1fr}.not-equal{padding:0}.dialog-actions{flex-direction:column-reverse}.dialog-actions .button{width:100%}.update-toast{align-items:stretch;flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skip-link:focus,.button:active,.button-link:active,.file-button:active,.text-action:hover span{translate:0}}
