@font-face{font-family:Cormorant;font-weight:600;src:url(/fonts/cormorant-latin-600-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Cormorant;font-weight:700;src:url(/fonts/cormorant-latin-700-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Cormorant;font-weight:600;font-style:italic;src:url(/fonts/cormorant-latin-600-italic.woff2) format("woff2");font-display:swap}
@font-face{font-family:Inter;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.woff2) format("woff2");font-display:swap}
:root{--ink:#221C18;--ember:#C75B39;--ember-deep:#A8472B;--bone:#F4ECDD;--paper:#FBF7F0;--body:#4A4038;--muted:#9A8E7E;--line:#E4D9C4;--ink-border:#3A322B;--on-ink:#C9BBA0;--danger:#B23122}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--body);font:400 1.0625rem/1.65 Inter,"Helvetica Neue",sans-serif}
h1,h2,h3{font-family:Cormorant,Georgia,serif;color:var(--ink);line-height:1.04;letter-spacing:-.015em;margin:0}
h1{font-size:clamp(3rem,8vw,5.2rem);font-weight:700}h2{font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:600}h3{font-size:1.45rem;font-weight:600}
em{font-style:italic;color:var(--ember);font-weight:600}a{color:var(--ember-deep)}
.wrap{max-width:1140px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
.kicker{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ember);margin:0 0 .9rem}
.wordmark{font:700 1.5rem Cormorant,serif;color:var(--paper);text-decoration:none;letter-spacing:-.01em}.wordmark i{color:var(--ember);font-style:normal}
:focus-visible{outline:2.5px solid var(--ember);outline-offset:3px}
.hero{background:var(--ink);color:var(--on-ink);position:relative;overflow:hidden}
.hero h1{color:var(--paper)}.hero .wrap{position:relative;padding-top:1.5rem;padding-bottom:clamp(3rem,6vw,5.5rem)}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-top:clamp(1rem,3vw,2.5rem)}
.lede{font-size:clamp(1.05rem,1.6vw,1.28rem);margin:1.1rem 0 0;max-width:30em}
#stage{height:clamp(300px,42vw,500px);position:relative}#stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
.signup{background:var(--bone);padding:clamp(3rem,7vw,5.5rem) 0}.signup-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(34,28,24,.07);padding:clamp(1.4rem,3vw,2.2rem)}
label{display:block;font-weight:600;font-size:.95rem;color:var(--ink);margin:1.1rem 0 .4rem}label:first-child{margin-top:0}
input[type=tel],input[type=text],input[inputmode]{width:100%;padding:.8rem .9rem;font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:9px;background:var(--paper)}
input:focus{border-color:var(--ember)}.hp{position:absolute;left:-9999px}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-weight:400;font-size:.875rem;line-height:1.55;color:var(--body);margin-top:1.2rem}.consent input{margin-top:.25rem;flex:none;width:18px;height:18px;accent-color:var(--ember)}
button,.btn{font:600 .96rem Inter,sans-serif;padding:.85rem 1.5rem;border:0;border-radius:999px;background:var(--ember);color:var(--paper);cursor:pointer;transition:background .18s,transform .18s,box-shadow .18s}
button:hover{background:var(--ember-deep);box-shadow:0 6px 18px rgba(199,91,57,.28)}button:active{transform:translateY(1px)}button:disabled{opacity:.6;cursor:default}
.signup button[type=submit]{margin-top:1.3rem;width:100%}
.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.ghost:hover{background:transparent;border-color:var(--ink);box-shadow:none}
#result{font-weight:600;color:var(--ink);margin:.9rem 0 0;font-size:.95rem}#result.err{color:var(--danger)}
.alt{font-size:.9rem;margin:1rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}
.steps{list-style:none;margin:1.6rem 0 0;padding:0}.steps li{display:grid;grid-template-columns:2.6rem 1fr;padding:1rem 0;border-top:1px solid var(--line)}.steps .n{font:600 1.5rem/1.2 Cormorant,serif;color:var(--ember)}.steps strong{color:var(--ink);font-weight:600;display:block}.steps p{margin:.1rem 0 0;font-size:.97rem}
.thread{background:var(--paper);padding:clamp(3rem,7vw,5.5rem) 0}.thread-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.bubbles{display:flex;flex-direction:column;gap:.6rem;max-width:26rem;margin-left:auto;width:100%}.bubble{padding:.7rem 1rem;border-radius:18px;max-width:85%;font-size:.97rem;line-height:1.45}.me{align-self:flex-end;background:var(--ember);color:var(--paper);border-bottom-right-radius:5px}.bot{align-self:flex-start;background:var(--bone);color:var(--ink);border-bottom-left-radius:5px}
.tag{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .3rem}
footer{background:var(--ink);color:var(--on-ink);font-size:.875rem;padding:1.6rem 0}footer a{color:var(--paper)}footer .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;justify-content:space-between}
.doc{max-width:42rem;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) clamp(1.25rem,4vw,3rem)}.doc h1{font-size:clamp(2.4rem,6vw,3.6rem);margin-bottom:1rem}.doc h2{font-size:1.5rem;margin:1.8rem 0 .3rem}.doc .back{font-size:.9rem}
@media (max-width:820px){.hero-grid,.signup-grid,.thread-grid{grid-template-columns:1fr}.hero-grid{gap:0}#stage{order:-1;height:260px;margin-top:.5rem}.bubbles{margin:0;max-width:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* admin */
.admin{max-width:1000px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,4vw,3rem)}.admin h1{font-size:clamp(2.2rem,5vw,3.2rem)}.bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}
.login{max-width:24rem}.person{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;justify-content:space-between;align-items:center;padding:1rem 0;border-top:1px solid var(--line)}.person strong{color:var(--ink);display:block}.meta{font-size:.875rem;color:var(--body)}
.acts{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.acts button{padding:.55rem 1rem;font-size:.875rem}select{font:inherit;font-size:.875rem;padding:.5rem .7rem;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink)}
.pill{font-size:.75rem;font-weight:600;padding:.15rem .6rem;border-radius:999px;background:var(--bone);color:var(--ink);border:1px solid var(--line)}.pill.pending,.pill.needs_bot{background:var(--ember);color:var(--paper);border-color:var(--ember)}
.section{margin-top:2rem}.empty{padding:1rem 0;border-top:1px solid var(--line);font-size:.95rem}.log{font-size:.875rem;padding:.5rem 0;border-top:1px solid var(--line)}.msg{min-height:1.5em;font-weight:600;color:var(--danger);font-size:.95rem}
