:root{--ink:#23201c;--ink-soft:#3b362e;--ink-muted:#4a4437;--ink-faint:#6b6255;--ink-ghost:#8a7c66;--canvas:#ede3d0;--paper:#fbf3e4;--paper-warm:#f4e8cf;--paper-light:#f7efdd;--red:#d9432f;--red-deep:#b8341f;--green:#4c7a3f;--gold:#e8a21c;--accent:var(--red);--hatch-a:#e4d6ba;--hatch-b:#f1e5cc;--hatch-portrait-a:#d9c7a4;--hatch-portrait-b:#e9dbbe;--rule:3px solid var(--ink);--radius-card:5px;--font-display:"Alfa Slab One", Rockwell, Georgia, serif;--font-hand:"Caveat", "Segoe Script", cursive;--font-body:"Karla", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Courier Prime", ui-monospace, "Courier New", monospace}*,:before,:after{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p{margin:0}img{max-width:100%}a{color:var(--red-deep);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}a:hover{color:var(--green)}:where(button,[type=submit]){font:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-ghost);font-size:.8125rem}.script{font-family:var(--font-hand);font-weight:500}.halftone{pointer-events:none;--dot:2px;--pitch:10px;--dot-ink:#23201c4d;background:radial-gradient(var(--dot) circle at center, var(--dot-ink) 99%, transparent 100%) 0 0 / var(--pitch) var(--pitch);position:absolute;inset:0}.halftone--dense{background:radial-gradient(var(--dot) circle at center, var(--dot-ink) 99%, transparent 100%) 0 0 / var(--pitch) var(--pitch), radial-gradient(var(--dot) circle at center, var(--dot-ink) 99%, transparent 100%) calc(var(--pitch) / 2) calc(var(--pitch) / 2) / var(--pitch) var(--pitch)}.halftone--ring{--stroke:1.5px;background:radial-gradient(circle at center, transparent 0 calc(var(--dot) - var(--stroke)), var(--dot-ink) calc(var(--dot) - var(--stroke)) var(--dot), transparent var(--dot)) 0 0 / var(--pitch) var(--pitch)}[data-halftone=off] .halftone{display:none}@keyframes wob{0%,to{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.anim-wob{animation:7s ease-in-out infinite wob}.anim-bob{animation:6s ease-in-out infinite bob}[data-reveal]{opacity:0;transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(28px)}[data-reveal].in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[class*=anim-]{animation:none!important}[data-reveal]{opacity:1;transition:none;transform:none}}