:root{--ink:#1f1b16;--paper:#fbf7f0;--card:#fff;--muted:#6b645a;--line:#e6ddd0;--accent:#c2410c;--accent-ink:#fff;--green:#2f8f5b;--yellow:#d9a400;--red:#c8372d;--radius:14px;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Inter,sans-serif}
@media (prefers-color-scheme:dark){:root{--ink:#f1ebe2;--paper:#17140f;--card:#211c16;--muted:#a79d8f;--line:#352d24;--accent:#f0864f;--accent-ink:#1a1209}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);line-height:1.5}
a{color:var(--accent)}
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{font-weight:800;text-decoration:none;color:var(--ink);font-size:1.1rem}.brand-mark{color:var(--accent);margin-right:.1rem}.brand-sub{color:var(--muted);font-weight:500}
.top nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.top nav a{color:var(--ink);text-decoration:none;font-weight:500}.who{color:var(--muted)}
.wrap{max-width:60rem;margin:0 auto;padding:1.5rem 1rem 4rem}.narrow{max-width:30rem;margin:0 auto}
.foot{display:flex;gap:.5rem;justify-content:center;padding:1.5rem 1rem;color:var(--muted);font-size:.85rem;border-top:1px solid var(--line)}.foot a{color:var(--muted)}
h1{font-size:1.9rem;line-height:1.15;margin:.2rem 0 .6rem;letter-spacing:-.01em}h2{font-size:1.25rem;margin:1.6rem 0 .6rem}h2 small,h3 small{color:var(--muted);font-weight:400}
.sub{color:var(--muted);margin:0 0 1rem}.fine{color:var(--muted);font-size:.85rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--muted);font-weight:700}
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:.6rem 1.2rem;font-weight:700;text-decoration:none;cursor:pointer;font-size:1rem}.btn.small{padding:.35rem .8rem;font-size:.85rem}.btn.ghost{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}
button.link{background:none;border:0;color:var(--accent);cursor:pointer;padding:0;font:inherit}.danger{color:var(--red)}
form.inline{display:inline}
.stack{display:flex;flex-direction:column;gap:.9rem}.stack label{display:flex;flex-direction:column;gap:.3rem;font-weight:600}.stack small{font-weight:400;color:var(--muted)}
input,select,textarea{font:inherit;padding:.6rem .7rem;border:1.5px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);width:100%}textarea{resize:vertical;font-size:1.1rem}
input.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.4rem;letter-spacing:.25em;text-transform:uppercase}
label.check,label.radio{flex-direction:row;align-items:flex-start;gap:.6rem;font-weight:500}label.radio span{display:flex;flex-direction:column}label.radio small{color:var(--muted)}
label.check input,label.radio input{width:auto;margin-top:.3rem}
fieldset{border:1.5px solid var(--line);border-radius:12px;padding:.8rem 1rem;display:flex;flex-direction:column;gap:.5rem}legend{font-weight:700;padding:0 .3rem}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}
.flash{background:#e9f6ee;border:1px solid #bfe3cc;color:#17432a;padding:.7rem 1rem;border-radius:10px;margin-bottom:1rem}.flash.error{background:#fdecea;border-color:#f3b7b0;color:#5c1a14}.notice{background:#fff6e5;border:1px solid #f1d9a6;color:#5c3d00;padding:.7rem 1rem;border-radius:10px;margin:0 0 1rem}
@media (prefers-color-scheme:dark){.flash{background:#1d3326;border-color:#2c5a3b;color:#c8ecd5}.flash.error{background:#3b1d1a;border-color:#6b2f29;color:#f6c9c3}.notice{background:#3a2d12;border-color:#6b5420;color:#f5dfa8}}
p.error{color:var(--red);font-weight:600}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem;margin:0 0 1rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.link-card{display:block;text-decoration:none;color:inherit}.link-card:hover{border-color:var(--accent)}.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}
.hero{text-align:center;padding:2.5rem 0 1.5rem}.hero h1{font-size:2.4rem;max-width:40rem;margin:0 auto .8rem}.lead{font-size:1.15rem;color:var(--muted);max-width:40rem;margin:0 auto 1.4rem}.cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-bottom:.8rem}
.three{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin:2rem 0}.three h3{margin:.2rem 0 .3rem}.three p{color:var(--muted);margin:0}
.sample{max-width:34rem;margin:0 auto}
.prompt{font-size:1.35rem;font-weight:600;margin:.3rem 0 .8rem;line-height:1.3}.answer{font-size:1.15rem;margin:.2rem 0 .6rem;font-style:italic}
.rating{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:.6rem 0}.score{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--ink);color:var(--paper);font-weight:800;font-size:1.2rem}.result.natural .score{background:var(--green)}.result.notes .score{background:var(--yellow);color:#1f1b16}.result.work .score{background:var(--red)}
.verdict{font-weight:600}
.corrected{background:var(--paper);border-left:3px solid var(--green);padding:.5rem .8rem;border-radius:8px;margin:.6rem 0}.corrected p{margin:.2rem 0;font-size:1.1rem}
.items{list-style:none;padding:0;margin:.6rem 0}.items li{padding:.45rem 0;border-top:1px dashed var(--line)}.items .note{color:var(--muted)}
.cat{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:.1rem .45rem;border-radius:999px;background:var(--line);margin-right:.3rem;font-weight:700}.cat.meaning,.cat.grammar,.chip.meaning,.chip.grammar{background:#f7d4d0;color:#5c1a14}.cat.naturalness,.cat.word-choice,.chip.naturalness,.chip.word-choice{background:#f7ecc4;color:#5c3d00}
.strengths{list-style:none;padding:0;margin:.4rem 0;color:var(--green)}.closing{font-weight:600;margin:.6rem 0 .2rem}.trap{color:var(--muted);font-size:.9rem}.trap .eyebrow{margin-right:.4rem}
.working{color:var(--muted);display:flex;align-items:center;gap:.5rem}.spinner{width:1rem;height:1rem;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
.practice-head{margin-bottom:.8rem}.stats{display:flex;gap:1rem;color:var(--muted);font-size:.9rem}.stats b{color:var(--ink)}
table.list{width:100%;border-collapse:collapse;margin:.5rem 0 1rem}table.list th,table.list td{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}table.list th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.num{text-align:right!important}tr.muted td{color:var(--muted)}td.note{color:var(--muted);font-size:.9rem}
.spark i{display:inline-block;width:.45rem;height:.9rem;margin-right:2px;border-radius:2px;background:var(--line);vertical-align:middle}.spark .b1,.spark .b2,.spark .b3,.spark .b4,.spark .b5{background:var(--red)}.spark .b6,.spark .b7,.spark .b8{background:var(--yellow)}.spark .b9,.spark .b10{background:var(--green)}
.codecard{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.bigcode{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:2.2rem;letter-spacing:.2em;font-weight:700;margin:.2rem 0}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 1rem}.chip{padding:.25rem .7rem;border-radius:999px;background:var(--line);font-size:.85rem}.chip b{margin-left:.3rem}
.crumbs{color:var(--muted);margin:0}.crumbs a{color:var(--muted)}
.empty{color:var(--muted)}.attempt .prompt{font-size:1.05rem}.attempt .answer{font-size:1rem}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem}.facts dt{color:var(--muted)}.facts dd{margin:0}
.module-form .sticky{position:sticky;top:0;background:var(--paper);padding:.6rem 0;z-index:2}.title-input{font-size:1.3rem;font-weight:700;max-width:28rem}
details.group{border:1px solid var(--line);border-radius:10px;margin:.5rem 0;background:var(--card)}details.group summary{padding:.6rem .9rem;cursor:pointer;font-weight:600}.lvl{display:inline-block;font-size:.7rem;background:var(--line);padding:.1rem .4rem;border-radius:6px;margin-right:.4rem}.nodes{padding:.2rem .9rem .7rem}
label.node{display:flex;gap:.5rem;align-items:center;padding:.2rem 0;font-weight:400}label.node input{width:auto}.node.d1{padding-left:1.4rem}.node.d2{padding-left:2.8rem}.node.d3{padding-left:4.2rem}.tri{color:var(--muted);width:1rem;display:inline-block}.seq{color:var(--muted);margin-left:.3rem}
.legal h2{margin-top:1.4rem}
@media (max-width:40rem){.hero h1{font-size:1.8rem}.wrap{padding:1rem .9rem 3rem}table.list{font-size:.9rem}.codecard{flex-direction:column;align-items:flex-start}}
