:root{--paper:#faf0ef;--paper-deep:#f8eef3;--ink:#1d1420;--ink-soft:#3a1530;--muted:#5f5364;--rule:#e6cfd6;--lines:#bdb1c0;--plum:#3a1530;--seal:#8a2d5c;--rust:#b4531f;--seal-ink:#ffffff;--focus:#8a2d5c;--radius-sm:4px;--radius-lg:14px;--measure:68ch;--serif:"Jost","Helvetica Neue",Arial,sans-serif;--display:"Cormorant Garamond",Garamond,"Times New Roman",serif;--hand:"Cormorant Garamond",Garamond,"Times New Roman",serif;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#2c0f25;--paper-deep:#3a1530;--ink:#faf0ef;--ink-soft:#f1dbe2;--muted:#c9b7c4;--rule:#56304b;--lines:#6a4560;--plum:#e2b3a3;--seal:#e7a8b5;--rust:#e08a55;--seal-ink:#2c0f25;--focus:#e7a8b5;color-scheme:dark}}:root[data-theme=dark]{--paper:#2c0f25;--paper-deep:#3a1530;--ink:#faf0ef;--ink-soft:#f1dbe2;--muted:#c9b7c4;--rule:#56304b;--lines:#6a4560;--plum:#e2b3a3;--seal:#e7a8b5;--rust:#e08a55;--seal-ink:#2c0f25;--focus:#e7a8b5;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.0625rem;line-height:1.65;font-optical-sizing:auto}iframe,img,video{max-width:100%}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--seal)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}::selection{background:var(--seal);color:var(--seal-ink)}h1,h2{font-family:var(--display);font-weight:700;color:var(--plum);line-height:1.08;letter-spacing:-.005em;margin:0 0 .45em}h1{font-size:clamp(2.4rem,5.5vw,3.6rem)}h2{font-size:clamp(1.7rem,3.2vw,2.3rem)}h3{font-family:var(--serif);font-size:1.1rem;font-weight:600;margin:0 0 .5em}p{margin:0 0 1em}.wrap{width:100%;max-width:1040px;margin:0 auto;padding:0 16px}.narrow{max-width:720px}.measure{max-width:var(--measure)}.muted{color:var(--muted)}.small{font-size:.9rem}.site-header{border-bottom:1px solid var(--rule)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap}.brand{text-decoration:none;display:inline-flex;flex-direction:column;line-height:1.05}.brand .hand{font-family:var(--display);font-style:italic;font-weight:600;font-size:1.45rem;color:var(--plum)}.brand .by{font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--seal);margin-top:3px}.nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.95rem}.nav a{text-decoration:none;color:var(--ink-soft)}.nav a:hover,.nav a[aria-current=page]{color:var(--ink);text-decoration:underline}.salutation{font-size:clamp(3.6rem,12vw,7.5rem);line-height:.95;margin:0}.salutation,.salutation-sm{font-family:var(--display);font-style:italic;font-weight:500;color:var(--seal)}.salutation-sm{font-size:1.9rem;line-height:1.1;margin:0 0 4px}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--seal);margin:0 0 10px}.affirm{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.35rem;color:var(--ink-soft)}.flow-m{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--rust);color:#fff;font-weight:600;font-size:.95rem;margin-right:10px;vertical-align:middle}.hero{padding:clamp(48px,9vw,110px) 0 56px}.hero h1{margin-top:.15em;font-size:clamp(2.4rem,6.5vw,4.25rem)}.hero .lede{font-size:1.2rem;max-width:34em}.hero .lede,.signoff{color:var(--ink-soft)}.signoff{font-family:var(--display);font-style:italic;font-size:1.5rem;margin-top:8px}@media (prefers-reduced-motion:no-preference){.salutation.write-on{animation:write-on 1.4s cubic-bezier(.2,.7,.2,1) both}@keyframes write-on{0%{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:inherit;font-size:1rem;font-weight:600;padding:.72em 1.3em;border-radius:999px;border:1.5px solid var(--ink);background:transparent;cursor:pointer;text-decoration:none}.btn,.btn:hover{color:var(--ink)}.btn:hover{background:var(--paper-deep)}.btn-seal{border-color:var(--seal)}.btn-seal,.btn-seal:hover{background:var(--seal);color:var(--seal-ink)}.btn-seal:hover{filter:brightness(1.08)}.btn[disabled]{opacity:.55;cursor:not-allowed}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:24px}.section{padding:56px 0;border-top:1px solid var(--rule)}.grid-2{display:grid;grid-gap:32px;gap:32px;grid-template-columns:1fr}@media (min-width:820px){.grid-2{grid-template-columns:1fr 1fr}}.letters{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.letters li{border-bottom:1px solid var(--rule)}.letter-row{display:grid;grid-template-columns:3.2rem 1fr auto;grid-gap:14px;gap:14px;align-items:baseline;padding:20px 4px;text-decoration:none}.letter-row:hover{background:var(--paper-deep);color:var(--ink)}.letter-no{font-family:var(--display);font-size:1.9rem;font-weight:600;color:var(--plum)}.letter-title{font-size:1.15rem;font-weight:500}.letter-q{display:block;font-size:.95rem;margin-top:2px}.letter-q,.status{color:var(--muted)}.status{font-size:.85rem;white-space:nowrap}.status.done{color:var(--ink)}.status.locked{color:var(--seal)}.lesson-head{padding:40px 0 24px}.lesson-head .q{font-size:1.2rem;color:var(--ink-soft);font-style:italic}.video-frame{aspect-ratio:16/9;width:100%;background:var(--paper-deep);border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;display:grid;place-items:center;text-align:center;padding:16px}.video-frame iframe,.video-frame video{width:100%;height:100%;border:0;display:block}.video-frame.has-video{padding:0}.step{padding:36px 0;border-top:1px solid var(--rule)}.step-label{font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--seal);margin-bottom:8px}.teach h3{margin-top:1.4em}.paper{background-color:var(--paper);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(2rem - 1px),var(--lines) calc(2rem - 1px),var(--lines) 2rem);background-attachment:local;border:1px solid var(--rule);border-radius:var(--radius-sm);padding:.55rem 1rem 0}textarea.paper{width:100%;min-height:8rem;resize:vertical;font:inherit;font-size:1.05rem;line-height:2rem;color:var(--ink)}textarea.paper.letter{min-height:14rem;font-family:var(--display);font-style:italic;font-size:1.3rem}label.prompt{display:block;font-weight:500;margin:22px 0 8px}.save-state{font-size:.85rem;color:var(--muted);min-height:1.3em;margin-top:6px}.choices{display:grid;grid-gap:10px;gap:10px;margin:16px 0}.choice{text-align:left;font:inherit;color:var(--ink);background:transparent;border:1.5px solid var(--rule);border-radius:var(--radius-sm);padding:14px 16px;cursor:pointer}.choice:hover{border-color:var(--ink-soft)}.choice[aria-pressed=true]{border-color:var(--seal);background:var(--paper-deep)}.feedback{border-left:3px solid var(--seal);padding:4px 0 4px 16px;margin:14px 0}.checks{list-style:none;padding:0;margin:12px 0}.checks li{margin:8px 0}.checks label{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.checks input{width:1.15rem;height:1.15rem;margin-top:.28rem;accent-color:var(--seal);flex:none}.score{margin:18px 0}.score input[type=range]{width:100%;accent-color:var(--seal)}.score-row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted)}.field{display:grid;grid-gap:6px;gap:6px;margin:16px 0}.field input{font:inherit;padding:.7em .9em;border-radius:var(--radius-sm);border:1.5px solid var(--rule);background:var(--paper);color:var(--ink)}.notice{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:14px 16px;background:var(--paper-deep)}.error{color:var(--seal)}.price{font-family:var(--display);font-weight:700;color:var(--plum);font-size:clamp(2.8rem,7vw,3.8rem);line-height:1;margin:8px 0 4px}.community{display:grid;grid-gap:24px;gap:24px;margin-top:32px;grid-template-columns:1fr}@media (min-width:820px){.community{grid-template-columns:200px 1fr}}.rooms{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}@media (min-width:820px){.rooms{flex-direction:column;overflow:visible}}.rooms a{text-decoration:none;white-space:nowrap;padding:8px 12px;border-radius:var(--radius-sm);color:var(--ink-soft);border:1px solid transparent}.rooms a:hover,.rooms a[aria-current=page]{background:var(--paper-deep);color:var(--ink)}.rooms a[aria-current=page]{border-color:var(--rule);font-weight:600}.chat-log{border:1px solid var(--rule);border-radius:var(--radius-lg);padding:8px 16px;max-height:60vh;min-height:240px;overflow-y:auto;background:var(--paper)}.chat-msg{padding:12px 0;border-bottom:1px solid var(--rule)}.chat-msg:last-of-type{border-bottom:0}.chat-msg p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-msg.mine strong{color:var(--seal)}.chat-tools{display:flex;gap:14px;margin-top:4px}.chat-tools button{font:inherit;font-size:.82rem;color:var(--muted);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:.18em}.chat-tools button:hover{color:var(--seal)}.chat-tools button[disabled]{text-decoration:none;cursor:default}.chat-compose{margin-top:16px}.site-footer{border-top:2px solid var(--seal);margin-top:72px;padding:32px 0 48px;color:var(--muted);font-size:.88rem}.site-footer p{max-width:70ch}.footer-tag{font-family:var(--display);font-style:italic;font-size:1.25rem;color:var(--plum);margin-bottom:14px}