:root{--bg: #101210;--bg-elev: #1a1f1b;--bg-elev-2: #222823;--line: #343b35;--text: #f4f1ea;--muted: #c4beb3;--faint: #b7b1a4;--accent: #e4b15a;--sage: #8fbfa3;--clay: #e09880;--code: #0c0e0d;--shadow: 0 18px 40px rgba(0, 0, 0, .28);color-scheme:dark;font-family:Segoe UI,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}html{scroll-padding-top:5rem}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(900px 420px at 0% -10%,rgba(228,177,90,.16),transparent 55%),radial-gradient(700px 380px at 100% 0%,rgba(143,191,163,.12),transparent 50%),var(--bg)}button,input,a{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:1rem;top:-4rem;z-index:20;background:var(--accent);color:#1a1408;padding:.6rem .9rem;border-radius:999px;font-weight:700;text-decoration:none}.skip:focus{top:.75rem}.app{min-height:100vh;display:flex;flex-direction:column}.wrap{width:min(1080px,calc(100% - 2rem));margin-inline:auto}.topbar{position:sticky;top:0;z-index:10;background:#101210e0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;min-height:4.25rem;flex-wrap:wrap;padding:.55rem 0}.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-family:Palatino,Palatino Linotype,Georgia,serif;font-weight:700;letter-spacing:-.02em;font-size:1.2rem}.brand small{display:block;font-family:Segoe UI,system-ui,sans-serif;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700}.mark{width:2rem;height:2rem;flex:none;color:var(--accent)}.nav{display:flex;flex-wrap:wrap;gap:.25rem}.nav a{text-decoration:none;color:var(--muted);padding:.45rem .75rem;border-radius:999px;min-height:2.5rem;display:inline-flex;align-items:center}.nav a:hover{color:var(--text);background:var(--bg-elev)}.main{flex:1;padding-bottom:3rem}.main:focus{outline:none}.hero{padding:1.35rem 0 0;text-align:center}.kicker{margin:0 0 .7rem;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;font-weight:700}.hero h1{margin:0 auto;max-width:16ch;font-family:Palatino,Palatino Linotype,Georgia,serif;font-size:clamp(2.15rem,5vw,3.7rem);line-height:1.05;font-weight:700;letter-spacing:-.03em}.lede{margin:.75rem auto 0;max-width:40rem;color:var(--muted);font-size:1.02rem}.hero-actions{margin-top:1rem;display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.75rem;padding:.55rem 1.1rem;border-radius:999px;border:1px solid var(--line);background:transparent;text-decoration:none;cursor:pointer}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1c1508;font-weight:700}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost:hover{border-color:var(--accent);color:var(--text)}.search-row{margin:1.05rem 0 0;display:grid;gap:.75rem}.search input{width:100%;min-height:3rem;border-radius:999px;border:1px solid var(--line);background:var(--bg-elev);padding:.7rem 1.1rem}.search input::placeholder{color:var(--faint)}.chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:0 0 1rem}.chips span{color:var(--faint);font-size:.85rem;margin-right:.2rem}.chip{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;min-height:2.4rem;padding:.3rem .8rem;cursor:pointer}.chip[aria-pressed=true]{background:var(--text);color:#161814;border-color:var(--text);font-weight:700}.section{padding:1.35rem 0 .2rem;scroll-margin-top:5.5rem}.section h2{margin:0;font-family:Palatino,Palatino Linotype,Georgia,serif;font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:-.03em}.rule{width:3rem;height:3px;margin:.7rem 0 1rem;border-radius:999px;background:var(--accent)}.section-intro{margin:0 0 1.1rem;max-width:42rem;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr;gap:.9rem}.card,.example,.tutorial-link{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 40%),var(--bg-elev);border:1px solid var(--line);border-radius:1.1rem;padding:1.15rem 1.15rem 1.2rem}.card{display:flex;flex-direction:column;min-width:0;height:100%}.card h3,.example h3,.tutorial-link h3{margin:.35rem 0 .4rem;font-size:1.25rem;letter-spacing:-.02em;overflow-wrap:anywhere}.card p,.example p,.tutorial-link p{margin:0;color:var(--muted)}.card-top,.tutorial-top,.example-title{display:flex;align-items:flex-start;gap:.75rem}.card-top,.tutorial-top{justify-content:space-between}.example-title{align-items:center}.example-title h3{margin:0}.icon{width:1.7rem;height:1.7rem;flex:none}.tone-sage .icon{color:var(--sage)}.tone-brass .icon{color:var(--accent)}.tone-clay .icon{color:var(--clay)}.badge{border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.badge-beginner{background:#8fbfa329;color:#c9ead8}.badge-intermediate{background:#e4b15a29;color:#f3d7a1}.badge-advanced{background:#e0988029;color:#f3c7b8}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.95rem}.tag{background:var(--bg-elev-2);color:var(--text);border-radius:.45rem;padding:.15rem .45rem;font-size:.75rem;text-decoration:none}a.tag:hover{color:var(--accent)}.stack{display:grid;gap:.9rem}.example{display:grid;grid-template-columns:1fr;gap:1rem;min-width:0}.example-copy{display:flex;flex-direction:column;gap:.8rem;min-width:0}.example h3{margin:0}.tutorial-link{display:block;text-decoration:none;color:inherit}.tutorial-link:hover,.card:hover,.example:hover{border-color:#5c675d}.meta{color:var(--sage);font-size:.85rem;font-weight:700}.code{background:var(--code);border:1px solid var(--line);border-radius:.85rem;min-width:0}.code-bar{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .45rem .35rem .8rem;color:var(--faint);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.code-bar button{border:1px solid var(--line);background:var(--bg-elev);color:var(--text);border-radius:999px;min-height:2rem;padding:.15rem .7rem;cursor:pointer;letter-spacing:0;text-transform:none;font-size:.85rem}.code-bar button[data-state=error]{color:var(--clay);border-color:var(--clay)}pre{margin:0;padding:0 .9rem .9rem;overflow-x:auto;max-width:100%}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.55;color:#d7ecdf;white-space:pre}.empty{border:1px dashed var(--line);border-radius:1rem;padding:1rem 1.1rem;color:var(--muted)}.empty button{margin-left:.35rem;background:none;border:0;color:var(--accent);cursor:pointer;text-decoration:underline;padding:0}.lesson-head{padding-top:1.6rem}.back{display:inline-flex;align-items:center;gap:.35rem;color:var(--accent);text-decoration:none;font-weight:700;min-height:2.5rem}.lesson-head h1{margin:.8rem 0 .5rem;font-family:Palatino,Palatino Linotype,Georgia,serif;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.12;letter-spacing:-.03em;overflow-wrap:anywhere}.lesson-tools{display:flex;flex-wrap:wrap;gap:.7rem 1rem;align-items:center;margin:1rem 0 .4rem}.note{color:var(--clay);margin:.4rem 0 0}.steps{display:grid;gap:.8rem;margin-top:1rem}.step{display:grid;grid-template-columns:auto 1fr;gap:.85rem;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--bg-elev);min-width:0}.step.done{border-color:#8fbfa38c}.step-index{width:2rem;height:2rem;border-radius:999px;display:grid;place-items:center;border:1px solid var(--accent);color:var(--accent);font-weight:700}.step.done .step-index{background:var(--sage);color:#102117;border-color:var(--sage)}.step h3{margin:.15rem 0 .35rem;font-size:1.15rem;overflow-wrap:anywhere}.step p{margin:0;color:var(--muted)}.step .code{margin-top:.8rem}.missing{padding:4rem 0 2rem;text-align:center}.missing h1{font-family:Palatino,Palatino Linotype,Georgia,serif;font-size:2.2rem;margin-bottom:.4rem}.footer{border-top:1px solid var(--line);padding:1.3rem 0 1.6rem;color:var(--faint);text-align:center}.footer p{margin:.2rem 0}@media(min-width:800px){.hero{padding-top:1.8rem}.hero h1{font-size:clamp(2.5rem,4.2vw,3.35rem)}.grid-2{grid-template-columns:1fr 1fr}.example{grid-template-columns:1fr 1fr;align-items:start}.section{padding-top:1.6rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
