@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/a128116a0bc3fa8c-s.0cbqbgn.0b1sm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/9db33c57cd4391b8-s.0j8hzus97z-h~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/8010b10db0d5feb2-s.p.0j~~wvhvc~~2a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/167cd0713aa75522-s.0j1f760ks3~7e.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/e455bcff747f0d5e-s.0lukgm0wyhr0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/791bf8c4bb753ed6-s.p.0524igg32t-c1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_46a7abbc-module__1x5ALa__className{font-family:Fraunces,Fraunces Fallback}.fraunces_46a7abbc-module__1x5ALa__variable{--font-fraunces:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.0m9hhkgdlzukj.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.0juuwbcf7uz~t.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.0qg7j5o.yrclm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0hkrq11n-dhos.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.07ig5l8azj~hy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.0_n_qwbzcushi.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.07r2ragk8ph~z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.0787d67~10694.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.0dgq8lqrj3gc_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.0o14nraug8u5s.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_cf6d1b8a-module__5IIxIa__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_cf6d1b8a-module__5IIxIa__variable{--font-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--paper:#faf7f2;--paper-deep:#f0ebe1;--paper-raised:#fff;--rule:#d8cfbf;--rule-strong:#b9ad95;--ink:#1a1a1a;--ink-soft:#4a4a4a;--ink-faint:#6a6356;--marigold:#e8b423;--marigold-deep:#c2901a;--marigold-text:#846011;--marigold-wash:#fde9a8;--leaf:#7fb069;--leaf-deep:#4a7539;--leaf-wash:#e1efd6;--leaf-soft:#bcdba6;--ink-red:#d64545;--ink-red-text:#a81f17;--ink-red-wash:#fde0e0;--azure:#2563c4;--font-serif:var(--font-fraunces), "Iowan Old Style", "Hoefler Text", Georgia, serif;--font-mono:var(--font-plex-mono), ui-monospace, "SF Mono", Menlo, monospace;--font-system:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--background:var(--paper);--foreground:var(--ink)}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;overflow-x:clip}body{color:var(--ink);background:var(--paper);font-family:var(--font-serif);font-feature-settings:"ss01" on, "ss02" on, "kern" on, "liga" on;font-variant-numeric:oldstyle-nums proportional-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.55;position:relative}body:before{content:"";z-index:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 320 320' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.08 0 0 0 0 0.05 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:320px 320px;position:fixed;inset:0}a{color:var(--azure);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--azure) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--azure) 40%, transparent);transition:text-decoration-color .16s}a:hover{-webkit-text-decoration-color:var(--azure);text-decoration-color:var(--azure)}main{z-index:1;max-width:52rem;margin:0 auto;padding:3rem 2rem 4rem;position:relative}::selection{background:var(--marigold-wash);color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 4px color-mix(in srgb, var(--marigold) 55%, transparent);border-radius:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--paper-deep)}::-webkit-scrollbar-thumb{background:var(--rule-strong);border:2px solid var(--paper-deep);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.lesson-shell{max-width:58rem;padding-top:2rem}.lesson-topbar{z-index:40;border-bottom:1px solid var(--rule);background:color-mix(in srgb, var(--paper-deep) 45%, var(--paper));padding:.85rem 1.5rem;position:sticky;top:0}.lesson-breadcrumb{color:var(--ink-faint);font-family:var(--font-mono);align-items:center;gap:.5rem;font-size:.78rem;display:flex}.lesson-breadcrumb [aria-current=page]{color:var(--ink-soft)}.lesson-phase-header{border-bottom:1px solid var(--rule);margin-bottom:1.5rem;padding-bottom:1.5rem}.lesson-kicker{color:var(--marigold-text);font-family:var(--font-mono);font-size:.78rem;font-weight:600}.lesson-phase-header h1{margin:.25rem 0 .6rem;font-size:clamp(2.25rem,5vw,4rem);line-height:1.05}.lesson-phase-header p:last-child{color:var(--ink-soft)}.lesson-xp-header,.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.lesson-xp-header{border-bottom:1px solid var(--rule);color:var(--ink-soft);font-family:var(--font-mono);padding-bottom:1rem;font-size:.82rem}.dev-toolbar{z-index:80;font-family:var(--font-mono);flex-direction:column;align-items:flex-end;gap:.45rem;font-size:.72rem;display:flex;position:fixed;bottom:1rem;right:1rem}.dev-toolbar button,.dev-toolbar select{border:1px solid var(--ink);background:var(--paper-raised);min-height:2rem;color:var(--ink);font:inherit;box-shadow:2px 2px 0 var(--ink);border-radius:6px;padding:.35rem .55rem;font-weight:700}.dev-toolbar button:disabled,.dev-toolbar select:disabled{color:var(--ink-faint);border-color:var(--rule-strong);box-shadow:none}.dev-toolbar-toggle[aria-pressed=true]{background:var(--leaf-wash);border-color:var(--leaf-deep);color:var(--leaf-deep)}.dev-toolbar-panel{border:1px solid var(--rule-strong);background:color-mix(in srgb, var(--paper-raised) 96%, var(--marigold-wash));max-width:min(28rem,100vw - 2rem);box-shadow:0 .5rem 1.5rem color-mix(in srgb, var(--ink) 18%, transparent);border-radius:6px;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;padding:.55rem;display:flex}.dev-toolbar-status,.dev-toolbar-error{background:var(--paper-deep);color:var(--ink-soft);border-radius:4px;align-self:center;padding:.25rem .4rem}.dev-toolbar-hint{background:var(--paper-raised);color:var(--ink-faint);border-radius:6px;margin:0;padding:.3rem .5rem;font-style:italic}.dev-toolbar-error{background:var(--ink-red-wash);color:var(--ink-red-text)}.dev-scoring-panel{border:1px solid var(--rule);background:var(--paper-raised);max-height:min(18rem,45vh);color:var(--ink-soft);border-radius:6px;flex-basis:100%;padding:.45rem;overflow:auto}.dev-scoring-panel ul{gap:.25rem;list-style:none;display:grid}.lesson-stepper{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.5rem;margin:1rem 0 1.25rem;display:grid}.lesson-step{border:1px solid var(--rule);background:var(--paper-raised);min-height:4.25rem;color:var(--ink);border-radius:6px;align-content:center;gap:.2rem;padding:.7rem;text-decoration:none;display:grid}.lesson-step small{color:var(--ink-faint);font-family:var(--font-mono);font-size:.72rem}.lesson-step-current{border-color:var(--marigold-deep);box-shadow:inset 0 0 0 2px var(--marigold-wash)}.lesson-step-locked{color:var(--ink-faint);background:var(--paper-deep)}.lesson-gating-hint{border:1px solid var(--rule-strong);background:color-mix(in srgb, var(--marigold-wash) 55%, var(--paper));color:var(--ink-soft);border-radius:6px;margin-bottom:1rem;padding:.7rem .9rem .7rem 2.1rem;position:relative}.lesson-gating-hint:before{content:"🔒";filter:grayscale();opacity:.7;font-size:.85rem;line-height:1;position:absolute;top:.72rem;left:.8rem}.lesson-node-list{gap:1rem;padding:0;list-style:none;display:grid}.lesson-prose-node{gap:.5rem;display:grid}.lesson-node,.lesson-complete-shell,.lesson-item-placeholder{border:1px solid var(--rule);background:var(--paper-raised);border-radius:6px;padding:1.25rem}.lesson-node h2,.lesson-complete-shell h2,.lesson-item-placeholder h2{margin-bottom:.5rem;font-size:1.35rem}.lesson-complete-shell{margin-bottom:1.5rem}.lesson-button{border:1px solid var(--marigold-deep);background:var(--marigold);color:var(--ink);font-family:var(--font-mono);border-radius:4px;margin-top:1rem;padding:.65rem .9rem;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-block}.lesson-item-placeholder blockquote{background:var(--paper-deep);color:var(--ink-soft);border-radius:6px;margin-top:.75rem;padding:.85rem 1rem;font-style:italic}.lesson-mini-panel,.lesson-passage,.lesson-walkthrough li,.lesson-item,.lesson-writing-item{gap:.75rem;display:grid}.lesson-mini-panel,.lesson-passage,.lesson-walkthrough li{border:1px solid var(--rule);background:color-mix(in srgb, var(--paper-deep) 55%, var(--paper));border-radius:6px;padding:.95rem 1.1rem}.lesson-choice-grid{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.65rem;display:grid}.lesson-table{margin:0;overflow-x:auto}.lesson-table figcaption{margin-bottom:.5rem;font-weight:600}.lesson-table table{border-collapse:collapse;width:100%}.lesson-table th,.lesson-table td{border:1px solid var(--rule);text-align:left;vertical-align:top;padding:.6rem .75rem}.lesson-table th{background:color-mix(in srgb, var(--paper-deep) 55%, var(--paper))}.lesson-choice{border:1px solid var(--rule);background:var(--paper);min-height:3.25rem;color:var(--ink);cursor:pointer;font:inherit;text-align:left;border-radius:6px;padding:.75rem}.lesson-choice:hover:not(:disabled),.lesson-choice-selected{border-color:var(--marigold-deep);background:var(--marigold-wash)}.lesson-choice-correct,.lesson-choice-correct:hover:not(:disabled){border-color:var(--leaf);background:var(--leaf-wash)}.lesson-choice-incorrect,.lesson-choice-incorrect:hover:not(:disabled){border-color:var(--ink-red);background:var(--ink-red-wash)}.lesson-choice:disabled,.lesson-writing-input:disabled{cursor:not-allowed;opacity:.72}.lesson-classify-sample,.lesson-transfer-prompt{border:1px solid var(--rule);background:var(--paper);border-radius:6px;padding:.9rem}.lesson-comparison-pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:.75rem;display:grid}.lesson-comparison-option{border:1px solid var(--rule);background:var(--paper);border-radius:6px;gap:.7rem;padding:1rem;display:grid}.lesson-comparison-option-interactive{cursor:pointer;transition:border-color .14s,background .14s,box-shadow .14s}.lesson-comparison-option-interactive:hover,.lesson-comparison-option-interactive:focus-visible{border-color:var(--marigold-deep);background:var(--marigold-wash);box-shadow:0 0 0 3px color-mix(in srgb, var(--marigold) 18%, transparent);outline:none}.lesson-comparison-option-selected{border-color:var(--marigold-deep);background:var(--marigold-wash)}.lesson-comparison-option-correct,.lesson-comparison-option-correct.lesson-comparison-option-interactive:hover{border-color:var(--leaf);background:var(--leaf-wash)}.lesson-comparison-option-incorrect,.lesson-comparison-option-incorrect.lesson-comparison-option-interactive:hover{border-color:var(--ink-red);background:var(--ink-red-wash)}.lesson-comparison-label{color:var(--ink-soft);font-family:var(--font-mono);align-items:center;gap:.6rem;font-size:.76rem;font-weight:600;display:flex}.lesson-comparison-label span{border:1px solid var(--marigold-deep);background:var(--marigold-wash);width:1.75rem;height:1.75rem;color:var(--ink);border-radius:50%;place-items:center;display:inline-grid}.lesson-comparison-option p{font-size:1.02rem;line-height:1.62}.lesson-writing-input{resize:vertical;border:1px solid var(--rule);background:var(--paper);width:100%;min-height:10rem;color:var(--ink);font:inherit;border-radius:6px;padding:.85rem;line-height:1.55}.lesson-writing-input[readonly]{cursor:text;opacity:1}.lesson-writing-input-submitted{border-color:var(--rule-strong);background:color-mix(in srgb, var(--paper-deep) 60%, var(--paper))}.lesson-writing-state{color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:600}.lesson-template{border:1px solid var(--rule);background:color-mix(in srgb, var(--paper-deep) 35%, var(--paper));border-radius:6px;gap:1.15rem;padding:1.25rem 1.3rem;display:grid}.lesson-template-step{gap:.55rem;display:grid}.lesson-template-line{color:var(--ink);font-size:1.05rem;line-height:1.7}.lesson-template-position{background:var(--marigold-wash);box-shadow:inset 0 -2px 0 var(--marigold-deep);border-radius:3px;padding:0 .4rem;font-weight:650;display:inline-block}.lesson-template-select{appearance:none;vertical-align:baseline;border:1px solid var(--rule-strong);background:var(--paper-raised);min-width:10.5rem;color:var(--ink);cursor:pointer;font:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23846011' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:calc(100% - .7rem);background-repeat:no-repeat;background-size:.625rem .375rem;border-radius:6px;margin-inline:.15rem;padding:.35rem 2rem .35rem .75rem;font-weight:600;transition:border-color .14s,box-shadow .14s;display:inline-block}.lesson-template-select:hover:not(:disabled),.lesson-template-select:focus-visible{border-color:var(--marigold-deep);box-shadow:0 0 0 3px color-mix(in srgb, var(--marigold) 22%, transparent);outline:none}.lesson-template-select:disabled{cursor:default;opacity:1;background-color:color-mix(in srgb, var(--paper-deep) 45%, var(--paper))}.lesson-template-textarea{border:1px solid var(--rule);background:var(--paper-raised);color:var(--ink);font:inherit;resize:vertical;border-radius:6px;width:100%;min-height:5.5rem;padding:.65rem .7rem;line-height:1.55}.lesson-template-textarea::placeholder{color:var(--ink-faint)}.lesson-template-textarea:focus-visible{border-color:var(--marigold-deep);box-shadow:0 0 0 3px color-mix(in srgb, var(--marigold) 22%, transparent);outline:none}.lesson-template-textarea[readonly]{cursor:text;background:color-mix(in srgb, var(--paper-deep) 45%, var(--paper))}.lesson-writing-footer,.lesson-item-status{color:var(--ink-faint);font-family:var(--font-mono);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;font-size:.78rem;display:flex}.lesson-writing-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.lesson-writing-footer .lesson-button{margin-top:0}.lesson-button:disabled{cursor:not-allowed;opacity:.65}.lesson-button.dashboard-status-locked,.lesson-button[aria-disabled=true]{cursor:not-allowed;border-color:var(--rule-strong);background:var(--paper-deep);color:var(--ink-faint);opacity:.7}.lesson-button-secondary{border-color:var(--rule-strong);background:var(--paper);color:var(--ink-soft)}.lesson-item-status{justify-content:flex-start}.lesson-feedback-note{border:1px solid var(--rule-strong);background:var(--paper-deep);color:var(--ink-soft);border-radius:6px;padding:.7rem .9rem;font-size:.95rem;line-height:1.5}.lesson-feedback-note-correct{border-color:color-mix(in srgb, var(--leaf) 55%, var(--rule));background:var(--leaf-wash)}.lesson-feedback-note-incorrect{border-color:color-mix(in srgb, var(--ink-red) 45%, var(--rule));background:var(--ink-red-wash)}.lesson-verdict{border:1px solid var(--rule-strong);background:var(--paper-raised);color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.01em;border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .75rem .3rem .45rem;font-size:.78rem;font-weight:600;animation:.32s cubic-bezier(.2,.7,.2,1) both lesson-verdict-in;display:inline-flex}.lesson-verdict-correct{border-color:color-mix(in srgb, var(--leaf) 60%, var(--rule));background:var(--leaf-wash);color:var(--leaf-deep)}.lesson-verdict-incorrect{border-color:color-mix(in srgb, var(--ink-red) 50%, var(--rule));background:var(--ink-red-wash);color:var(--ink-red-text)}.lesson-verdict-icon{background:color-mix(in srgb, currentColor 16%, transparent);width:1.4rem;height:1.4rem;color:inherit;border-radius:50%;place-items:center;display:inline-grid}.lesson-verdict-correct .lesson-verdict-icon{color:var(--leaf-deep)}.lesson-verdict-incorrect .lesson-verdict-icon{color:var(--ink-red-text)}.lesson-verdict-icon svg{display:block}.lesson-verdict-stroke{stroke-dasharray:26;stroke-dashoffset:26px;animation:.42s ease-out .12s forwards lesson-verdict-draw}@keyframes lesson-verdict-in{0%{opacity:0;transform:translateY(4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes lesson-verdict-draw{to{stroke-dashoffset:0}}.lesson-grading{color:var(--marigold-text);font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:.6rem;font-size:.8rem;font-weight:600;display:inline-flex}.lesson-grading-compact{font-size:.78rem}.lesson-grading-mark{color:var(--marigold-deep);display:inline-flex}.lesson-grading-mark svg{display:block}.lesson-grading-stroke{stroke-dasharray:70;stroke-dashoffset:70px;animation:1.4s ease-in-out infinite lesson-grading-sweep}.lesson-grading-label{color:var(--marigold-text)}.lesson-grading-dots{gap:.2rem;display:inline-flex}.lesson-grading-dots span{background:var(--marigold-deep);border-radius:50%;width:.3rem;height:.3rem;animation:1.2s ease-in-out infinite lesson-grading-pulse}.lesson-grading-dots span:nth-child(2){animation-delay:.18s}.lesson-grading-dots span:nth-child(3){animation-delay:.36s}@keyframes lesson-grading-sweep{0%{stroke-dashoffset:70px}55%{stroke-dashoffset:0}to{stroke-dashoffset:-70px}}@keyframes lesson-grading-pulse{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}.dashboard-course-index{width:min(100%,58rem)}.dashboard-header{border-bottom:1px solid var(--rule);margin-bottom:1.5rem;padding-bottom:1.25rem}.dashboard-header h1{font-size:clamp(2.25rem,5vw,4rem);line-height:1.05}.dashboard-header p:last-child{color:var(--ink-soft);font-family:var(--font-mono);font-size:.86rem}.dashboard-lesson-grid{gap:1rem;display:grid}.dashboard-lesson-card{border:1px solid var(--rule);background:var(--paper-raised);border-radius:6px;gap:1.25rem;padding:1.25rem;display:grid}.dashboard-lesson-card h2{margin:.2rem 0 .45rem;font-size:1.55rem}.dashboard-lesson-card p{color:var(--ink-soft)}.dashboard-status{font-family:var(--font-mono);font-size:.75rem;font-weight:600}.dashboard-status-passed{color:var(--leaf-deep)}.dashboard-status-in_progress,.dashboard-status-locked{color:var(--marigold-text)}.dashboard-card-footer{color:var(--ink-faint);font-family:var(--font-mono);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;font-size:.82rem;display:flex}.auth-shell{align-items:center;min-height:calc(100vh - 4rem);display:flex}.auth-card{border:1px solid var(--rule);background:var(--paper-raised);width:min(100%,48rem);box-shadow:0 1px 0 var(--paper-deep), 0 16px 40px -20px #1a1a1a2e;border-radius:6px;margin:0 auto;padding:2.25rem 2rem}.auth-kicker{color:var(--marigold-text);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem;font-size:.72rem;font-weight:600}.auth-card h1{font-family:var(--font-serif);font-variation-settings:"opsz" 96;letter-spacing:-.01em;margin-bottom:1rem;font-size:clamp(2.2rem,4vw,3.4rem);font-weight:700;line-height:1.05}.auth-card h2{margin-bottom:.45rem;font-size:1.1rem;font-weight:600}.auth-lede{color:var(--ink-soft);margin-bottom:1.5rem;font-size:1.05rem;line-height:1.65}.auth-actions{flex-wrap:wrap;align-items:center;gap:.85rem 1rem;margin-bottom:1.25rem;display:flex}.auth-button{background:var(--ink);color:var(--paper);font-family:var(--font-serif);border-radius:999px;justify-content:center;align-items:center;padding:.85rem 1.4rem;font-weight:600;text-decoration:none;transition:transform .14s,background .14s;display:inline-flex}.auth-button:hover{background:#000;transform:translateY(-1px)}.auth-button-disabled{background:var(--rule-strong);cursor:not-allowed}.auth-button-disabled:hover{background:var(--rule-strong);transform:none}.auth-status,.auth-note,.auth-debug{border:1px solid #0000;border-radius:6px;margin-bottom:1rem;padding:.95rem 1.1rem}.auth-status[data-tone=success]{background:var(--leaf-wash);border-color:color-mix(in srgb, var(--leaf) 55%, var(--rule))}.auth-status[data-tone=warning]{background:color-mix(in srgb, var(--marigold-wash) 70%, var(--paper));border-color:color-mix(in srgb, var(--marigold) 60%, var(--rule))}.auth-status[data-tone=danger]{background:var(--ink-red-wash);border-color:color-mix(in srgb, var(--ink-red) 50%, var(--rule))}.auth-status p,.auth-note,.auth-debug p,.auth-meta{color:var(--ink-soft)}.auth-note{background:var(--paper-deep);border-color:var(--rule-strong)}.auth-debug{background:color-mix(in srgb, var(--marigold-wash) 60%, var(--paper));border-color:var(--marigold-deep);border-style:dashed}.auth-debug-error{white-space:pre-wrap;font-family:var(--font-mono);color:var(--ink-red-text);margin-top:.75rem;font-size:.88rem}@media (max-width:720px){.auth-card{padding:1.4rem}.auth-shell{min-height:auto}}.lesson-workspace{color:var(--ink);counter-reset:lesson-phase;gap:2.5rem;animation:.48s cubic-bezier(.2,.7,.2,1) both workspace-enter;display:grid}@keyframes workspace-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lesson-heading{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-end;gap:2rem;padding-bottom:1.75rem;display:flex;position:relative}.lesson-heading>div:first-child{flex:1;min-width:0}.lesson-kicker{border-top:1px solid var(--marigold);color:var(--marigold-text);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.85rem;padding-top:.5rem;font-size:.72rem;font-weight:600;display:inline-block}.lesson-heading h1{font-family:var(--font-serif);font-variation-settings:"opsz" 144;letter-spacing:-.02em;color:var(--ink);background-image:linear-gradient(to right, var(--marigold) 0%, var(--marigold) 98%, transparent 100%);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 88%;background-repeat:no-repeat;background-size:100% .32em;padding-bottom:.05em;font-size:clamp(2.4rem,5.2vw,3.6rem);font-style:italic;font-weight:700;line-height:1.02;display:inline}.lesson-content{gap:2.25rem;display:grid}.lesson-phase{counter-increment:lesson-phase;border-bottom:1px solid var(--rule);padding-bottom:1.5rem;padding-left:2.75rem;position:relative}.lesson-phase:last-child{border-bottom:none;padding-bottom:0}.lesson-phase:before{content:counter(lesson-phase, upper-roman) ".";font-family:var(--font-serif);font-variation-settings:"opsz" 36;color:var(--marigold-text);font-size:1.4rem;font-style:italic;font-weight:500;line-height:1;position:absolute;top:.1em;left:0}.lesson-phase h2,.writing-prompt h2{font-family:var(--font-serif);font-variation-settings:"opsz" 36;letter-spacing:-.005em;color:var(--ink);margin-bottom:.75rem;font-size:1.45rem;font-weight:600;line-height:1.2}.lesson-phase p,.writing-prompt p{font-family:var(--font-serif);font-variation-settings:"opsz" 12;color:var(--ink-soft);margin-bottom:.75rem;font-size:1.0625rem;line-height:1.7}.lesson-phase p:last-child,.writing-prompt p:last-child{margin-bottom:0}.lesson-phase>p:first-of-type:first-letter,.lesson-phase>h2+p:first-letter{font-family:var(--font-serif);font-variation-settings:"opsz" 144;float:left;color:var(--ink);margin:.08em .12em 0 -.04em;font-size:3.4em;font-weight:700;line-height:.86}.lesson-phase h3{font-family:var(--font-serif);font-variation-settings:"opsz" 24;color:var(--ink);margin:1rem 0 .4rem;font-size:1.1rem;font-weight:600}.lesson-phase ul,.writing-prompt ul{margin:.6rem 0 .9rem;padding-left:1.5rem;list-style:none}.lesson-phase li,.writing-prompt li{font-family:var(--font-serif);color:var(--ink-soft);margin-bottom:.4rem;padding-left:.25rem;font-size:1.0625rem;line-height:1.7;position:relative}.lesson-phase li:before,.writing-prompt li:before{content:"§";color:var(--marigold-text);font-size:.95em;font-weight:600;position:absolute;top:0;left:-1.25rem}.lesson-callout{border:1px solid color-mix(in srgb, var(--leaf) 50%, var(--rule));background:var(--leaf-wash);font-family:var(--font-serif);font-variation-settings:"opsz" 14;color:var(--ink-soft);border-radius:6px;margin:1.1rem 0;padding:.9rem 1.1rem;font-size:1rem;font-style:italic;line-height:1.6}.lesson-callout-warn{border-color:color-mix(in srgb, var(--marigold) 55%, var(--rule));background:color-mix(in srgb, var(--marigold-wash) 75%, var(--paper))}.writing-surface{background:var(--paper-raised);border:1px solid var(--rule);box-shadow:0 1px 0 var(--paper-deep), 0 22px 50px -32px #1a1a1a2e;border-radius:6px;gap:1.25rem;margin-top:1rem;padding:2rem 2.25rem;display:grid;position:relative}.writing-surface:before{content:"";background:linear-gradient(135deg, var(--paper-deep) 0%, var(--paper-deep) 50%, transparent 50%);border-top:1px solid var(--rule);border-left:1px solid var(--rule);border-bottom-right-radius:4px;width:28px;height:28px;position:absolute;top:-1px;left:-1px}.writing-prompt{gap:.5rem;display:grid}.task-guidance{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:.75rem;font-size:.78rem;font-weight:500}.response-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--marigold-text);margin-top:.5rem;font-size:.72rem;font-weight:600}.response-textarea{resize:vertical;border:1px solid var(--rule);background:var(--paper);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(1.7em - 1px), color-mix(in srgb, var(--rule) 55%, transparent) calc(1.7em - 1px), color-mix(in srgb, var(--rule) 55%, transparent) 1.7em);width:100%;min-height:16rem;color:var(--ink);font-family:var(--font-serif);font-variation-settings:"opsz" 14;background-position:0 1.1rem;border-radius:4px;padding:1.1rem 1.2rem;font-size:1.0625rem;line-height:1.7;transition:border-color .16s,box-shadow .16s,background-color .16s}.response-textarea::placeholder{color:var(--ink-faint);font-style:italic}.response-textarea:focus{border-color:var(--marigold-deep);background-color:var(--paper-raised);box-shadow:0 0 0 3px color-mix(in srgb, var(--marigold) 22%, transparent);outline:none}.workspace-status{color:var(--ink-soft);font-family:var(--font-serif);font-variation-settings:"opsz" 14;gap:.35rem;padding-top:.25rem;display:grid}.workspace-status p{font-size:.98rem}.workspace-status p:nth-child(2){color:var(--ink-faint);font-size:.92rem;font-style:italic}.workspace-error{color:var(--ink-red-text);background:var(--ink-red-wash);border:1px solid color-mix(in srgb, var(--ink-red) 45%, var(--rule));border-radius:6px;margin-top:.25rem;padding:.6rem .8rem;font-style:normal;font-weight:600}.workspace-actions{justify-content:flex-end;margin-top:.5rem;display:flex}.feedback-panel{border-top:1px solid var(--rule);gap:1.5rem;margin-top:.5rem;padding-top:1.5rem;animation:.52s cubic-bezier(.2,.7,.2,1) both workspace-enter;display:grid}.feedback-group{gap:.9rem;display:grid}.feedback-group h3{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf-deep);border-bottom:1px solid var(--leaf);padding-bottom:.4rem;font-size:.74rem;font-weight:600;display:inline-block}.feedback-item{border-bottom:1px solid var(--rule);gap:.4rem;padding:.85rem 0 .85rem 1.25rem;animation:.36s ease-out both feedback-enter;display:grid;position:relative}.feedback-item:first-child{animation-delay:0s}.feedback-item:nth-child(2){animation-delay:60ms}.feedback-item:nth-child(3){animation-delay:.12s}.feedback-item:nth-child(4){animation-delay:.18s}.feedback-item:nth-child(5){animation-delay:.24s}.feedback-markdown-list{margin:0;padding-left:1.2rem}.feedback-markdown-list li+li{margin-top:.25rem}.feedback-item code{font-family:var(--font-mono);font-size:.95em}@keyframes feedback-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.feedback-item:before{content:"";background:var(--marigold);border-radius:50%;width:6px;height:6px;position:absolute;top:1.25rem;left:0}.feedback-item:last-child{border-bottom:none}.feedback-item h4{font-family:var(--font-serif);font-variation-settings:"opsz" 18;color:var(--ink);font-size:1.05rem;font-weight:600}.feedback-item p{font-family:var(--font-serif);font-variation-settings:"opsz" 14;color:var(--ink-soft);font-size:1.02rem;line-height:1.65}.app-header{z-index:2;border-bottom:1px solid var(--rule);background:color-mix(in srgb, var(--paper-deep) 45%, var(--paper));justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.5rem;display:flex;position:relative}.app-header-identity{font-family:var(--font-mono);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.app-header form{flex-shrink:0;margin:0}.primary-action,.secondary-action{min-height:2.75rem;font-family:var(--font-serif);letter-spacing:.005em;cursor:pointer;border:1px solid #0000;border-radius:999px;font-size:1rem;font-weight:600;transition:transform .14s,background .16s,box-shadow .16s,border-color .16s}.primary-action{color:var(--ink);background:var(--marigold);border-color:var(--marigold-deep);box-shadow:0 1px 0 var(--marigold-deep), 0 8px 18px -10px #e8b42399;padding:.7rem 1.4rem}.primary-action:hover:not(:disabled){background:color-mix(in srgb, var(--marigold) 92%, white);box-shadow:0 2px 0 var(--marigold-deep), 0 14px 24px -12px #e8b423a6;transform:translateY(-1px)}.primary-action:active:not(:disabled){box-shadow:0 1px 0 var(--marigold-deep);transform:translateY(0)}.secondary-action{color:var(--ink);border-color:var(--rule-strong);background:0 0;padding:.6rem 1.2rem}.secondary-action:hover:not(:disabled){background:var(--paper-deep);border-color:var(--ink);transform:translateY(-1px)}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.5;box-shadow:none;transform:none}@media (max-width:720px){main{padding:1.75rem 1.25rem 3rem}.lesson-heading{align-items:stretch;gap:1.5rem;display:grid}.lesson-heading h1{font-size:clamp(2rem,7vw,2.6rem)}.lesson-phase{padding-left:2rem}.lesson-phase:before{font-size:1.1rem}.writing-surface{padding:1.4rem 1.25rem}.workspace-actions{justify-content:stretch}.primary-action,.secondary-action{width:100%}}@media (max-width:540px){.lesson-phase>p:first-of-type:first-letter,.lesson-phase>h2+p:first-letter{float:none;margin:0;font-size:1em}}@media (prefers-reduced-motion:reduce){.lesson-workspace,.feedback-panel,.feedback-item,.lesson-verdict,.lesson-verdict-stroke,.lesson-grading-stroke,.lesson-grading-dots span{animation:none}.lesson-verdict-stroke,.lesson-grading-stroke{stroke-dashoffset:0}.lesson-grading-dots span{opacity:1}.primary-action,.secondary-action,.auth-button{transition:none}}.lesson-phase-stream{flex-direction:column;gap:0;display:flex}.lesson-phase-section{border-bottom:1px solid var(--rule);padding:1.5rem 0 3.5rem;scroll-margin-top:4.25rem}.lesson-phase-section:last-of-type{border-bottom:0}.lesson-phase-section-title{font-family:var(--font-serif);letter-spacing:-.005em;margin:0 0 1.25rem;font-size:1.75rem;font-weight:500;line-height:1.15}.lesson-phase-index-fab{z-index:30;background:var(--paper);border:1px solid var(--rule);height:2.75rem;font-family:var(--font-mono);color:var(--ink-soft,var(--ink));letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:999px;align-items:center;gap:.55rem;margin:0 0 1rem;padding:0 .85rem;font-size:.74rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex;position:sticky;top:4rem;box-shadow:0 1px 2px #0000000a}.lesson-phase-index-fab:hover{background:var(--paper-deep,var(--paper));color:var(--ink);border-color:var(--rule-strong,var(--rule))}.lesson-phase-index-progress{font-family:var(--font-mono);color:var(--ink-faint,var(--ink));font-weight:500}.lesson-phase-index-panel{z-index:31;background:var(--paper);border:1px solid var(--rule);opacity:0;pointer-events:none;border-radius:8px;width:18rem;max-height:70vh;padding:.75rem;transition:opacity .18s,transform .18s;position:fixed;top:7.25rem;left:1.5rem;overflow-y:auto;transform:translateY(-6px);box-shadow:0 8px 28px -12px #0000002e,0 2px 6px #0000000d}.lesson-phase-index-panel[data-open=true]{opacity:1;pointer-events:auto;transform:none}.lesson-phase-index-panel h2{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint,var(--ink));margin:.25rem .5rem .5rem;font-size:.66rem;font-weight:600}.lesson-phase-index-panel ul{margin:0;padding:0;list-style:none}.lesson-phase-index-panel a,.lesson-phase-index-panel span[aria-disabled]{color:var(--ink);font-family:var(--font-serif);border-radius:4px;grid-template-columns:1.5rem 1fr;align-items:baseline;gap:.5rem;padding:.5rem .6rem;font-size:.95rem;line-height:1.3;text-decoration:none;transition:background .12s;display:grid}.lesson-phase-index-panel a:hover{background:var(--paper-deep,var(--paper))}.lesson-phase-index-panel a.active{background:var(--marigold-wash)}.lesson-phase-index-panel .locked{color:var(--ink-faint,var(--ink));cursor:not-allowed}.lesson-phase-index-panel .num{font-family:var(--font-mono);color:var(--ink-faint,var(--ink));text-align:right;font-size:.74rem;font-weight:500}.lesson-phase-index-panel a.passed .num{color:var(--leaf-deep)}.lesson-phase-index-panel .reading .num{border:1px solid var(--rule-strong);background:var(--paper);border-radius:999px;place-self:center end;width:.7rem;height:.7rem}.lesson-phase-index-panel a.read .num{background:var(--leaf-soft);border-color:var(--leaf)}.lesson-phase-index-panel .locked .num{color:var(--rule)}@media (max-width:720px){.lesson-phase-index-fab{top:4rem}.lesson-phase-index-panel{width:auto;left:1rem;right:1rem}}.lesson-continue-row{justify-content:center;margin:2rem 0 0;display:flex}.lesson-continue-button{border:1px solid var(--ink-soft,var(--ink));min-height:2.75rem;color:var(--ink-soft,var(--ink));font-family:var(--font-mono);cursor:pointer;text-transform:uppercase;letter-spacing:.08em;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.25rem;font-size:.78rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.lesson-continue-button:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.lesson-phase-rail{display:none}@media (min-width:1080px){.lesson-phase-rail{z-index:20;width:14rem;max-height:calc(100vh - 7rem);padding-right:.5rem;display:block;position:fixed;top:5rem;left:2rem;overflow-y:auto}.lesson-phase-index-fab,.lesson-phase-index-panel{display:none}main:has(.lesson-phase-rail){max-width:min(58rem,100vw - 18rem);margin-left:16rem;margin-right:auto}}.lesson-phase-rail h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 1rem;padding-left:.5rem;font-size:.66rem;font-weight:600}.lesson-phase-rail ol{margin:0;padding:0;list-style:none}.lesson-phase-rail li{position:relative}.lesson-phase-rail li:before{content:"";background:var(--rule);width:1px;position:absolute;top:1.55rem;bottom:-.35rem;left:.78rem}.lesson-phase-rail li:last-child:before{display:none}.lesson-phase-rail a,.lesson-phase-rail span[aria-disabled]{color:var(--ink-soft);font-family:var(--font-serif);border-radius:4px;grid-template-columns:1.55rem 1fr;align-items:baseline;gap:.6rem;padding:.5rem .5rem .5rem 0;font-size:.92rem;line-height:1.3;text-decoration:none;transition:color .12s;display:grid}.lesson-phase-rail a:hover{color:var(--ink)}.lesson-phase-rail .dot{z-index:1;background:var(--paper);border:1px solid var(--rule-strong);width:1.1rem;height:1.1rem;font-family:var(--font-mono);color:var(--ink-faint);border-radius:999px;justify-content:center;justify-self:center;align-items:center;font-size:.62rem;font-weight:600;line-height:1;display:inline-flex;position:relative}.lesson-phase-rail a.passed .dot{background:var(--leaf);border-color:var(--leaf);color:var(--paper)}.lesson-phase-rail a.read .dot{background:var(--leaf-soft);border-color:var(--leaf)}.lesson-phase-rail a.active{color:var(--ink);font-weight:500}.lesson-phase-rail a.active .dot{box-shadow:0 0 0 2px var(--paper), 0 0 0 3px var(--marigold-deep)}.lesson-phase-rail .locked{color:var(--ink-faint);cursor:not-allowed}.lesson-phase-rail .locked .dot{color:var(--rule-strong);border-style:dashed}
