:root{color-scheme:light dark;--color-bg: #fbf7f0;--color-surface: #ffffff;--color-text: #2b2620;--color-muted: #6b6258;--color-border: #e6ddd0;--color-primary: #2f5d3a;--color-primary-contrast: #ffffff;--color-accent: #c2603c;--color-trunk: #7a5232;--color-ground: #d9cdb8;--color-leaf-1: #4f8a4b;--color-leaf-2: #6ea25a;--color-leaf-3: #3d7344;--color-blossom: #e9a15f;--color-error: #b3261e;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading: Georgia, "Times New Roman", serif;--gutter: clamp(1rem, 4vw, 3rem);--radius: 14px}@media(prefers-color-scheme:dark){:root{--color-bg: #1c1a17;--color-surface: #26231f;--color-text: #f1ece4;--color-muted: #b5ab9d;--color-border: #3a352e;--color-primary: #8fc596;--color-primary-contrast: #14231a;--color-accent: #e5875f;--color-trunk: #a37a55;--color-ground: #3a342b;--color-error: #ff8a80}}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:1.125rem;line-height:1.6}h1,h2,h3{font-family:var(--font-heading);line-height:1.2}a{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.button{display:inline-block;padding:.9rem 1.6rem;border:0;border-radius:999px;background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.button:hover{filter:brightness(1.1)}.section{max-width:68rem;margin:0 auto;padding:3rem var(--gutter)}@media print{.no-print{display:none!important}body{background:#fff;color:#000}}.narrow{max-width:38rem}.lead{font-size:1.25rem;color:var(--color-muted)}.hint{color:var(--color-muted);font-size:.95rem}.error{color:var(--color-error);font-weight:600}.stack{display:grid;gap:1.25rem}label{display:grid;gap:.35rem;font-weight:600}label .hint,label .error{font-weight:400}input,textarea{width:100%;padding:.75rem .9rem;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:inherit;font:inherit}.button:disabled{opacity:.6;cursor:wait}.button-secondary{background:transparent;color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary)}
