:root{--paper:#f1ede2;--paper-raised:#fbf9f3;--paper-sunken:#e8e3d5;--ink:#16211d;--ink-soft:#4c554e;--ink-faint:#5b6257;--pine:#114b3e;--pine-deep:#0c3a30;--pine-tint:#e0ebe4;--signal:#c1791b;--signal-tint:#f6e9d2;--slate:#2f5a70;--slate-tint:#dfe9ef;--haze:#d7d0bf;--haze-soft:#e6e0d1;--right:#15633c;--right-tint:#d9eadf;--wrong:#a83535;--wrong-tint:#f3ddd9;--warn:#7a540c;--shadow-1:0 1px 2px rgba(20,30,25,0.06),0 1px 1px rgba(20,30,25,0.04);--shadow-2:0 6px 20px rgba(18,40,32,0.10),0 2px 6px rgba(18,40,32,0.06);--shadow-focus:0 0 0 3px rgba(47,90,112,0.35);--font-display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;--font-body:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"SF Mono","JetBrains Mono","Roboto Mono",Menlo,Consolas,monospace;--r-sm:7px;--r-md:11px;--r-lg:16px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--tap:44px;--maxw:720px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#101310;--paper-raised:#191d17;--paper-sunken:#0a0d0a;--ink:#e9e5d9;--ink-soft:#a7a99c;--ink-faint:#8f9285;--pine:#57c39c;--pine-deep:#3f9d7c;--pine-tint:#17251f;--signal:#e0a53f;--signal-tint:#2a2113;--slate:#7aa9c2;--slate-tint:#16232b;--haze:#2c3128;--haze-soft:#232720;--right:#4cc088;--right-tint:#16281f;--wrong:#e0736b;--wrong-tint:#2c1a18;--warn:#e0a53f;--shadow-1:0 1px 2px rgba(0,0,0,0.4);--shadow-2:0 8px 26px rgba(0,0,0,0.5),0 2px 6px rgba(0,0,0,0.4);--shadow-focus:0 0 0 3px rgba(122,169,194,0.4);color-scheme:dark}}:root[data-theme=dark]{--paper:#101310;--paper-raised:#191d17;--paper-sunken:#0a0d0a;--ink:#e9e5d9;--ink-soft:#a7a99c;--ink-faint:#8f9285;--pine:#57c39c;--pine-deep:#3f9d7c;--pine-tint:#17251f;--signal:#e0a53f;--signal-tint:#2a2113;--slate:#7aa9c2;--slate-tint:#16232b;--haze:#2c3128;--haze-soft:#232720;--right:#4cc088;--right-tint:#16281f;--wrong:#e0736b;--wrong-tint:#2c1a18;--warn:#e0a53f;--shadow-1:0 1px 2px rgba(0,0,0,0.4);--shadow-2:0 8px 26px rgba(0,0,0,0.5),0 2px 6px rgba(0,0,0,0.4);--shadow-focus:0 0 0 3px rgba(122,169,194,0.4);color-scheme:dark}*,:after,:before{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%}body{min-height:100dvh;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--slate);text-underline-offset:2px}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;letter-spacing:-.01em;color:var(--ink)}h1{font-size:clamp(1.7rem,1.2rem + 2.2vw,2.4rem)}h2{font-size:clamp(1.3rem,1.05rem + 1.1vw,1.6rem)}h3{font-size:1.12rem}.pp-lede{font-size:1.08rem;color:var(--ink-soft)}.pp-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pp-muted{color:var(--ink-soft)}.pp-faint{color:var(--ink-faint)}.pp-kicker{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pine);display:inline-flex;align-items:center;gap:var(--sp-2)}.pp-kicker:before{content:"";width:16px;height:2px;background:var(--signal);display:inline-block}.pp-rule{height:0;border:0;border-top:1.5px dashed var(--haze);margin:var(--sp-5) 0}.pp-container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--sp-4)}.pp-stack{gap:var(--sp-4)}.pp-stack,.pp-stack-sm{display:flex;flex-direction:column}.pp-stack-sm{gap:var(--sp-2)}.pp-cluster{flex-wrap:wrap;gap:var(--sp-2)}.pp-between,.pp-cluster{display:flex;align-items:center}.pp-between{justify-content:space-between;gap:var(--sp-3)}.pp-grid{display:grid;grid-gap:var(--sp-3);gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.pp-app{min-height:100dvh;display:flex;flex-direction:column}.pp-appbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--haze)}.pp-appbar-inner{max-width:var(--maxw);margin-inline:auto;padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.pp-brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-display);font-weight:600;font-size:1.16rem;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.pp-brand-mark{width:26px;height:26px;flex:none}.pp-main{flex:1 1;padding-block:var(--sp-5) calc(var(--sp-7) + 64px)}.pp-tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;background:color-mix(in srgb,var(--paper-raised) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--haze);padding-bottom:env(safe-area-inset-bottom,0)}.pp-tabbar-inner{max-width:var(--maxw);margin-inline:auto;display:grid;grid-template-columns:repeat(5,1fr)}.pp-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:var(--sp-2) 0 var(--sp-3);display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-faint);text-decoration:none;font-size:.66rem;letter-spacing:.04em;cursor:pointer;position:relative;min-height:var(--tap)}.pp-tab[data-active=true]{color:var(--pine)}.pp-tab[data-active=true]:after{content:"";position:absolute;top:0;width:22px;border-top:2px dashed var(--signal)}.pp-tab svg{width:22px;height:22px}.pp-btn{--btn-bg:var(--pine);--btn-ink:#fbfaf4;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:var(--r-md);background:var(--btn-bg);color:var(--btn-ink);font-weight:600;font-size:.98rem;padding:0 var(--sp-5);min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);cursor:pointer;transition:transform .06s ease,box-shadow .15s ease,background .15s ease;box-shadow:var(--shadow-1);text-decoration:none}.pp-btn:hover{box-shadow:var(--shadow-2)}.pp-btn:active{transform:translateY(1px)}.pp-btn[aria-disabled=true],.pp-btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}.pp-btn--full{width:100%}:root[data-theme=dark] .pp-btn:not(.pp-btn--ghost):not(.pp-btn--quiet):not(.pp-btn--danger){--btn-ink:#0b140f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pp-btn:not(.pp-btn--ghost):not(.pp-btn--quiet):not(.pp-btn--danger){--btn-ink:#0b140f}}.pp-btn--signal{--btn-bg:var(--signal);--btn-ink:#2a1806}.pp-btn--ghost{--btn-bg:transparent;--btn-ink:var(--ink);border-color:var(--haze);box-shadow:none}.pp-btn--ghost:hover{background:var(--paper-sunken);box-shadow:none}.pp-btn--quiet{--btn-bg:transparent;--btn-ink:var(--pine);box-shadow:none;padding-inline:var(--sp-3)}.pp-btn--quiet:hover{background:var(--pine-tint);box-shadow:none}.pp-btn--sm{min-height:34px;font-size:.86rem;padding-inline:var(--sp-4)}.pp-btn--danger{--btn-bg:transparent;--btn-ink:var(--wrong);border-color:color-mix(in srgb,var(--wrong) 45%,transparent);box-shadow:none}.pp-btn--danger:hover{background:var(--wrong-tint);box-shadow:none}.pp-card{background:var(--paper-raised);border:1px solid var(--haze);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-1)}.pp-card--flush{padding:0;overflow:hidden}.pp-card--pine{border-top:3px solid var(--pine)}.pp-card--interactive{cursor:pointer;transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease;text-align:left;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;text-decoration:none}.pp-card--interactive:hover{text-decoration:none;box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--pine) 40%,var(--haze));transform:translateY(-1px)}.pp-tag{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-sunken);border:1px solid var(--haze);border-radius:var(--r-sm);padding:2px 7px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.pp-tag--pine{color:var(--pine);background:var(--pine-tint);border-color:transparent}.pp-tag--signal{color:var(--warn);background:var(--signal-tint);border-color:transparent}.pp-tag--slate{color:var(--slate);background:var(--slate-tint);border-color:transparent}.pp-tag--right{color:var(--right);background:var(--right-tint);border-color:transparent}.pp-tag--wrong{color:var(--wrong);background:var(--wrong-tint);border-color:transparent}.pp-field{display:flex;flex-direction:column;gap:6px}.pp-label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.pp-input,.pp-select{width:100%;min-height:var(--tap);background:var(--paper-raised);border:1px solid var(--haze);border-radius:var(--r-md);padding:0 var(--sp-4);transition:border-color .12s ease,box-shadow .12s ease}textarea.pp-input{padding:var(--sp-3) var(--sp-4);min-height:96px;resize:vertical;line-height:1.5}.pp-input:focus,.pp-select:focus{outline:none;border-color:var(--slate);box-shadow:var(--shadow-focus)}.pp-input::placeholder{color:var(--ink-faint)}.pp-option{display:flex;gap:var(--sp-3);align-items:flex-start;width:100%;text-align:left;background:var(--paper-raised);border:1.5px solid var(--haze);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;transition:border-color .12s ease,background .12s ease}.pp-option:hover:not([disabled]){border-color:color-mix(in srgb,var(--slate) 55%,var(--haze))}.pp-option[data-state=selected]{border-color:var(--slate);background:var(--slate-tint)}.pp-option[data-state=correct]{border-color:var(--right);background:var(--right-tint)}.pp-option[data-state=incorrect]{border-color:var(--wrong);background:var(--wrong-tint)}.pp-option[data-state=missed]{border-color:var(--right);border-style:dashed}.pp-option[disabled]{cursor:default}.pp-option-key{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid;display:grid;place-items:center;font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--ink-soft)}.pp-option[data-state=selected] .pp-option-key{color:var(--slate)}.pp-option[data-state=correct] .pp-option-key{color:var(--right);background:var(--right);border-color:var(--right)}.pp-option[data-state=correct] .pp-option-key,.pp-option[data-state=incorrect] .pp-option-key{color:#fff}.pp-option[data-state=incorrect] .pp-option-key{background:var(--wrong);border-color:var(--wrong)}.pp-option-body{flex:1 1;padding-top:2px}.pp-note{border:1px solid var(--haze);border-left:3px solid var(--slate);background:var(--paper-raised);border-radius:var(--r-md);padding:var(--sp-4)}.pp-note--right{border-left-color:var(--right)}.pp-note--wrong{border-left-color:var(--wrong)}.pp-note--signal{border-left-color:var(--signal);background:var(--signal-tint)}.pp-meter{height:8px;border-radius:var(--r-pill);background:var(--paper-sunken);overflow:hidden}.pp-meter>span{display:block;height:100%;border-radius:inherit;background:var(--pine);transition:width .4s ease}.pp-meter--signal>span{background:var(--signal)}.pp-meter--slate>span{background:var(--slate)}.pp-readout{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em;line-height:1}.pp-empty{text-align:center;padding:var(--sp-7) var(--sp-4);color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.pp-empty svg{width:54px;height:54px;opacity:.7}.pp-skeleton{background:linear-gradient(100deg,var(--paper-sunken) 30%,var(--haze-soft) 50%,var(--paper-sunken) 70%);background-size:200% 100%;animation:pp-shimmer 1.3s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes pp-shimmer{to{background-position:-200% 0}}.pp-seg{display:inline-flex;background:var(--paper-sunken);border-radius:var(--r-md);padding:3px;gap:3px;border:1px solid var(--haze);flex-wrap:wrap}.pp-seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;border-radius:calc(var(--r-md) - 3px);padding:7px 14px;font-size:.86rem;font-weight:600;color:var(--ink-soft);cursor:pointer;min-height:36px}.pp-seg button[data-active=true]{background:var(--paper-raised);color:var(--pine);box-shadow:var(--shadow-1)}.pp-toast{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom, 0px));transform:translateX(-50%);z-index:40;background:var(--ink);color:var(--paper);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-pill);box-shadow:var(--shadow-2);font-size:.9rem;max-width:calc(100% - 32px)}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--r-sm)}.pp-sr{width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pp-skip,.pp-sr{position:absolute}.pp-skip{left:-9999px;top:0;z-index:100;background:var(--pine);color:#fff;padding:var(--sp-2) var(--sp-4);border-radius:0 0 var(--r-md) 0}.pp-skip:focus{left:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.pp-hr-soft{border:0;border-top:1px solid var(--haze)}.pp-hidden{display:none!important}.pp-center{text-align:center}.pp-grow{flex:1 1}.pp-wrap-anywhere{overflow-wrap:anywhere}