.practice-page{max-width:820px}.practice-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 14px;display:grid}.practice-stat{border:2px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.practice-stat b{font:800 34px/1 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums}.practice-stat span{color:var(--ink-2);font:600 15px/1.3 var(--sans)}.practice-stat--week{border-color:var(--sun);background:var(--sun-soft)}.practice-week{gap:4px;margin-top:6px;display:flex}.practice-week span{background:var(--surface);border:2px solid var(--line);width:26px;height:26px;color:var(--muted);font:800 14px/1 var(--sans);border-radius:50%;place-items:center;display:grid}.practice-week span.is-done{color:#fff;background:oklch(62% .15 145);border-color:oklch(53% .14 145)}.practice-week span.is-today{outline:2px solid var(--ink);outline-offset:1px}.practice-goal{background:var(--line-2);border-radius:999px;height:12px;margin:0 0 28px;overflow:hidden}.practice-goal span{background:linear-gradient(90deg,var(--mint),oklch(62% .15 145));width:0;height:100%;transition:width .6s var(--ease-out);border-radius:999px;display:block}.practice-levels{border:0;margin:0 0 22px;padding:0}.practice-levels legend{font:800 16px/1.2 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}.practice-level-options{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.practice-level{border:2px solid var(--lv-soft);background:var(--surface);cursor:pointer;transition:transform .14s var(--ease-bounce),border-color .14s ease;border-radius:16px;flex-direction:column;gap:2px;padding:12px 14px;display:flex;position:relative}.practice-level:hover{border-color:var(--lv);transform:translateY(-2px)}.practice-level input{opacity:0;pointer-events:none;position:absolute}.practice-level b{font:800 22px/1 var(--sans);color:var(--lv-deep)}.practice-level span{color:var(--ink-2);font-size:15px}.practice-level:has(input:checked){border-color:var(--lv-deep);background:var(--lv);box-shadow:0 4px 0 var(--lv-deep)}.practice-level:has(input:checked) b,.practice-level:has(input:checked) span{color:#fff}.practice-level:has(input:focus-visible){outline:3px solid var(--focus-ring);outline-offset:3px}.practice-help{color:var(--ink-2);margin:10px 0 0;font-size:16px}.practice-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;margin:8px 0 22px;display:flex}.practice-start,.practice-check,.practice-secondary{border:2px solid var(--ink);min-height:56px;font:800 19px/1.1 var(--sans);cursor:pointer;transition:transform .14s var(--ease-bounce),box-shadow .14s ease;border-radius:16px;padding:12px 28px}.practice-start,.practice-check{color:#fff;background:oklch(55% .15 145);border-color:oklch(42% .13 145);box-shadow:0 5px oklch(42% .13 145)}.practice-start:hover,.practice-check:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px oklch(42% .13 145)}.practice-start:active,.practice-check:active:not(:disabled){transform:translateY(5px);box-shadow:0 0 #0000}.practice-start:disabled,.practice-check:disabled{opacity:.45;cursor:not-allowed}.practice-secondary{background:var(--surface);color:var(--ink);box-shadow:0 4px 0 var(--ink)}.practice-start:focus-visible,.practice-check:focus-visible,.practice-secondary:focus-visible,.practice-quit:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.practice-continue{border:2px solid var(--line);border-left:7px solid var(--lv);background:var(--surface);color:var(--ink);border-radius:16px;align-items:center;gap:12px;margin:0 0 22px;padding:16px 20px;text-decoration:none;display:flex}.practice-continue span{color:var(--ink-2);font:600 15px/1.3 var(--sans)}.practice-continue strong{font:600 19px/1.3 var(--serif);flex:1}.practice-continue:hover{border-color:var(--lv)}.practice-privacy{border:2px dashed var(--line);color:var(--ink-2);border-radius:14px;padding:14px 16px}.practice-privacy summary{cursor:pointer;font:700 16px/1.3 var(--sans);color:var(--ink)}.practice-privacy p{margin:10px 0;font-size:16px}.practice-reset{background:var(--surface);color:oklch(42% .14 27);font:700 15px/1.2 var(--sans);cursor:pointer;border:2px solid oklch(50% .15 27);border-radius:12px;padding:8px 14px}.practice-session-top{align-items:center;gap:14px;margin:0 0 22px;display:flex}.practice-quit{background:var(--paper-2);width:44px;height:44px;color:var(--ink-2);font:700 20px/1 var(--sans);cursor:pointer;border:0;border-radius:50%;flex:none}.practice-progress{background:var(--line-2);border-radius:999px;flex:1;height:16px;overflow:hidden}.practice-progress span{width:0;height:100%;transition:width .4s var(--ease-out);background:oklch(62% .15 145);border-radius:999px;display:block}.practice-count{color:var(--ink-2);font:700 16px/1 var(--sans);font-variant-numeric:tabular-nums;flex:none}.practice-card{border:2px solid var(--line);border-top:7px solid var(--lv);border-radius:var(--radius-card);background:var(--surface);animation:practice-in .3s var(--ease-out);padding:26px 26px 20px}.practice-kind{color:var(--lv-deep);font:800 15px/1.2 var(--sans);letter-spacing:.05em;text-transform:uppercase;margin:0 0 8px}.practice-prompt{font:600 clamp(22px,3vw,28px)/1.35 var(--serif);outline:none;margin:0 0 20px}.practice-options{gap:10px;display:grid}.practice-chips{flex-wrap:wrap;gap:10px;display:flex}.practice-option{border:2px solid var(--ink);border-radius:var(--radius-key);background:var(--surface);min-height:56px;color:var(--ink);font:700 19px/1.3 var(--sans);text-align:left;cursor:pointer;box-shadow:0 4px 0 var(--ink);transition:transform .12s var(--ease-bounce),box-shadow .12s ease,background-color .12s ease;align-items:center;gap:12px;padding:12px 16px;display:flex}.practice-chips .practice-option{min-height:48px}.practice-option kbd{border:2px solid var(--line);width:28px;height:28px;color:var(--ink-2);font:700 14px/1 var(--sans);border-radius:8px;flex:none;place-items:center;display:inline-grid}.practice-option:hover:not(:disabled){box-shadow:0 6px 0 var(--ink);background:var(--lv-tint);transform:translateY(-2px)}.practice-option.is-selected{box-shadow:0 0 0 var(--ink);background:var(--lv);color:#fff;border-color:var(--lv-deep);transform:translateY(4px)}.practice-option.is-correct{color:oklch(34% .12 145);background:oklch(95% .045 145);border-color:oklch(53% .14 145);transform:none;box-shadow:0 4px oklch(53% .14 145)}.practice-option.is-wrong{color:oklch(43% .15 27);background:oklch(95% .05 27);border-color:oklch(56% .19 27);transform:none;box-shadow:0 4px oklch(56% .19 27)}.practice-option.is-correct:after{content:"✓";margin-left:auto;font-weight:800}.practice-option.is-wrong:after{content:"✗";margin-left:auto;font-weight:800}.practice-option:disabled{cursor:default}.practice-build-line{border:2px dashed var(--lv-soft);background:var(--lv-tint);border-radius:16px;flex-wrap:wrap;gap:8px;min-height:64px;margin:0 0 14px;padding:8px;display:flex}.practice-build-line.is-correct{background:oklch(95% .045 145);border-style:solid;border-color:oklch(53% .14 145)}.practice-build-line.is-wrong{background:oklch(95% .05 27);border-style:solid;border-color:oklch(56% .19 27)}.practice-input{border:3px solid var(--ink);width:100%;max-width:340px;min-height:56px;font:700 22px/1.2 var(--sans);letter-spacing:.04em;border-radius:14px;padding:10px 14px}.practice-input:focus{outline:3px solid var(--focus-ring);outline-offset:2px}.practice-input.is-correct{background:oklch(95% .045 145);border-color:oklch(53% .14 145)}.practice-input.is-wrong{background:oklch(95% .05 27);border-color:oklch(56% .19 27)}.practice-from{color:var(--muted);margin:18px 0 0;font-size:15px}.practice-feedback{animation:practice-in .3s var(--ease-bounce);border-radius:16px;margin:16px 0 0;padding:16px 18px}.practice-feedback.is-correct{color:oklch(34% .12 145);background:oklch(95% .045 145)}.practice-feedback.is-wrong{color:oklch(43% .15 27);background:oklch(95% .05 27)}.practice-verdict{font:800 20px/1.3 var(--sans);margin:0}.practice-explain{margin:6px 0 0;font-size:17px;line-height:1.5}.practice-explain:empty{display:none}.practice-session-actions{justify-content:flex-end;margin-top:18px;display:flex}.practice-summary{text-align:center;position:relative}.practice-summary .practice-stats{margin:22px 0}.practice-summary-title{font:600 clamp(32px,5vw,44px)/1.1 var(--serif);outline:none;margin:0}.practice-summary .practice-actions{justify-content:center}.practice-review{text-align:left;margin:0 0 20px}.practice-review h3{font:700 18px/1.3 var(--sans);margin:0 0 8px}.practice-review ul{margin:0;padding-left:20px}.practice-review a{color:var(--lv-deep);font-weight:600}.practice-burst{pointer-events:none;position:absolute;top:30%;left:50%}.practice-burst span{background:var(--sun);border-radius:3px;width:11px;height:11px;animation:1s ease-out forwards practice-spark;position:absolute}.practice-burst span:nth-child(3n){background:var(--mint);border-radius:50%}.practice-burst span:nth-child(3n+1){background:var(--coral)}.practice-note{background:var(--paper-2);border-radius:12px;padding:14px}@keyframes practice-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes practice-spark{0%{opacity:1;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(var(--x),var(--y)) scale(1) rotate(200deg)}}@media (width<=600px){.practice-card{padding:20px 16px}.practice-option{font-size:17px}.practice-start,.practice-check,.practice-secondary{width:100%}.practice-session-actions{position:sticky;bottom:12px}}@media (prefers-reduced-motion:reduce){.practice-card,.practice-feedback,.practice-option,.practice-level,.practice-start,.practice-check{transition:none;animation:none}}
