:root{--cream:#faf4ec;--cream-deep:#f1e6d2;--paper:#fefaf3;--mist:#ece2d4;--ink:#3a342e;--ink-soft:#756b62;--ink-faint:#a89e94;--line:#e3d6c4;--terracotta:#c7836b;--peach:#f5c2a5;--peach-soft:#fadcc8;--peach-deep:#d99a78;--blush:#f4d8d0;--blush-soft:#fae9e3;--blush-deep:#e7b8ac;--sage:#b8c9b0;--sage-soft:#d6e0cf;--sage-deep:#859a7c;--good:#5f7d57;--good-soft:#e8f0e4;--warn:#b07a35;--warn-soft:#fbeedb;--lost:#b1584a;--lost-soft:#fae4e0;--serif:"Fraunces","Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif;--mono:"SF Mono",ui-monospace,"Menlo","Consolas",monospace;--r-xs:6px;--r-sm:10px;--r-md:16px;--r-lg:24px;--r-xl:36px;--r-pill:999px;--shadow-1:0 1px 2px rgba(94,75,55,.05);--shadow-2:0 8px 28px rgba(94,75,55,.08),0 2px 6px rgba(94,75,55,.05);--shadow-3:0 24px 70px rgba(94,75,55,.1),0 6px 18px rgba(94,75,55,.06);--ease-out:cubic-bezier(.2,.7,.2,1);--ease-soft:cubic-bezier(.34,1.06,.64,1)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}[hidden]{display:none!important}img{max-width:100%}h1,h2,h3{font-family:var(--serif);font-weight:420;letter-spacing:-.012em;margin:0;text-wrap:balance}h1{font-size:clamp(28px,4.6vw,35px);line-height:1.18}h2{font-size:clamp(21px,3vw,26px);line-height:1.25}h3{font-size:18px;line-height:1.3}p{margin:0}.eyebrow,a{color:var(--terracotta)}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:9px}.eyebrow:before{content:"";width:18px;height:1px;background:var(--terracotta);flex:none}.label{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.mono{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.accent{color:var(--terracotta);font-style:italic}.marker{background:linear-gradient(transparent 62%,var(--peach-soft) 62%);padding:0 .08em}.wrap{max-width:1060px;margin:0 auto;padding:0 20px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:22px}.card-lg{border-radius:var(--r-xl);padding:28px;box-shadow:var(--shadow-2)}.stack{flex-direction:column;gap:14px}.row,.stack{display:flex}.row{gap:12px;flex-wrap:wrap}.pill,.row{align-items:center}.pill{display:inline-flex;gap:6px;border-radius:var(--r-pill);padding:4px 11px;font-size:12px;font-weight:600;border:1px solid transparent}.pill-good{background:var(--good-soft);color:var(--good)}.pill-warn{background:var(--warn-soft);color:var(--warn)}.pill-lost{background:var(--lost-soft);color:var(--lost)}.pill-quiet{background:var(--mist);color:var(--ink-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--r-pill);padding:12px 22px;cursor:pointer;font-family:var(--sans);font-size:14.5px;font-weight:600;background:var(--ink);color:var(--cream);transition:transform .18s var(--ease-soft)}.btn:hover{transform:translateY(-1px)}.btn:disabled{background:var(--mist);color:var(--ink-faint);cursor:default;transform:none}.btn-soft{background:var(--peach-soft);color:var(--ink)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}input,select,textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14.5px}input:focus,select:focus,textarea:focus{outline:2px solid var(--peach);outline-offset:1px;border-color:var(--peach-deep)}.hint{font-size:12px;color:var(--ink-faint);margin-top:5px}.err{color:var(--lost)}.err,.ok{font-size:12.5px;margin-top:5px}.ok{color:var(--good)}.figure{font-family:var(--serif);font-size:clamp(26px,4vw,34px);font-weight:420;letter-spacing:-.02em}.demo-banner{background:var(--peach-soft);border:1px solid var(--peach);border-radius:var(--r-md);padding:12px 16px;font-size:13px;color:var(--ink);display:flex;gap:10px;align-items:flex-start}.demo-banner b{font-weight:700}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (max-width:560px){.card{padding:18px;border-radius:var(--r-md)}.card-lg{padding:20px;border-radius:var(--r-lg)}.wrap{padding:0 16px}}