@font-face{font-family:TaffetaJ;src:url(lora-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;unicode-range:U+004A}@font-face{font-family:TaffetaJ;src:url(lora-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;unicode-range:U+004A}@font-face{font-family:TaffetaJ;src:url(lora-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;unicode-range:U+004A}@font-face{font-family:TaffetaJ;src:url(lora-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;unicode-range:U+004A}@font-face{font-family:TaffetaJ;src:url(lora-latin-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;unicode-range:U+004A}
@font-face{font-family:Fraunces;src:url(fraunces-latin-400-normal.woff2);font-weight:400}
@font-face{font-family:Fraunces;src:url(fraunces-latin-500-normal.woff2);font-weight:500}
@font-face{font-family:Fraunces;src:url(fraunces-latin-400-italic.woff2);font-style:italic;font-weight:400}
@font-face{font-family:Libertinus Sans;src:url(libertinus-sans-latin-400-normal.woff2)}
@font-face{font-family:Libertinus Sans;src:url(libertinus-sans-latin-400-italic.woff2);font-style:italic}
@font-face{font-family:Libertinus Sans;src:url(libertinus-sans-latin-700-normal.woff2);font-weight:700}
@font-face{font-family:Cormorant Garamond;src:url(cormorant-garamond-latin-500-italic.woff2);font-style:italic;font-weight:500}
:root{--ivory:#f2f1ec;--card:#eae6dd;--brown:#423327;--ink:#000;--soft:#2b2b2b;--line:#dcd6cb;--gold:#b4925b;
--display:TaffetaJ,Fraunces,Georgia,serif;--body:"Libertinus Sans",system-ui,sans-serif;--pep:"Cormorant Garamond",Georgia,serif}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5}
main{max-width:560px;margin:0 auto;padding:28px 22px 56px;display:flex;flex-direction:column;gap:26px}
.top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.top img{width:84px}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase}
h1{font-family:var(--display);font-weight:400;font-size:31px;line-height:1.15;margin:0;text-wrap:balance}
h1 em{font-style:italic}
h2{font-family:var(--display);font-weight:400;font-size:21px;margin:0}
p{margin:0}
.lede{font-size:16.5px;max-width:420px}
.rule{width:44px;height:1px;background:var(--gold);margin:2px auto}
.group{display:flex;flex-direction:column;gap:10px}
.opts{display:flex;flex-direction:column}
.opt{display:flex;align-items:center;gap:14px;padding:13px 2px;border-bottom:1px solid var(--line)}
.opt:first-child{border-top:1px solid var(--line)}
.box{width:22px;height:22px;border:1.5px solid var(--brown);flex:none;display:grid;place-items:center;color:#fff;font-size:14px}
.opt.on .box{background:var(--brown)}
.opt .t{flex:1}
.opt .t b{font-weight:400;font-family:var(--display);font-size:17.5px;display:block}
.opt .t small{font-size:13.5px;color:var(--soft)}
.btn{display:block;width:100%;text-align:center;background:var(--brown);color:var(--ivory);padding:15px;font-size:15px;letter-spacing:.14em;text-transform:uppercase;border:0}
.fine{font-size:13px;color:var(--soft);text-align:center}
.card{background:var(--card);padding:20px;display:flex;flex-direction:column;gap:8px}
.card .eyebrow{color:var(--brown)}
.card h2{font-size:22px}
.spark{color:var(--gold)}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:14px}
.input{border:1px solid var(--line);background:#fbfaf7;height:44px}
.input.tall{height:96px;padding:10px 12px;font-size:14px;color:#8a8278}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.upload{border:1px dashed var(--brown);padding:18px;text-align:center;font-size:14px}
.station{align-self:center;border:1px solid var(--gold);padding:4px 14px;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.quote{font-family:var(--pep);font-style:italic;font-weight:500;font-size:24px;line-height:1.2;text-align:center}
.ph{background:#f6e7c8;padding:0 4px}
/* interactive */
.opt{cursor:pointer;user-select:none}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt:has(input:checked) .box{background:var(--brown)}
.opt:has(input:checked) .box::after{content:"✓";color:#fff;font-size:14px}
.opt.radio .box{border-radius:50%}
.opt.radio:has(input:checked) .box::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff}
.opt:has(input:focus-visible){outline:2px solid var(--brown);outline-offset:2px}
input.input,textarea.input{font:inherit;font-size:16px;color:var(--ink);padding:0 12px;width:100%;border-radius:0;-webkit-appearance:none}
textarea.input{height:110px;padding:10px 12px;resize:vertical}
input.input:focus,textarea.input:focus{outline:2px solid var(--brown);outline-offset:0}
.money{position:relative}.money span{position:absolute;left:12px;top:11px;color:var(--soft)}.money input{padding-left:26px}
label.upload{display:block;cursor:pointer}
label.upload input{display:none}
label.upload.has{border-style:solid;background:var(--card)}
.btn{cursor:pointer;font-family:var(--body)}
.btn:disabled{opacity:.6}
.hp{position:absolute;left:-9999px}
.err{color:#8a2b1c;font-size:14px;text-align:center;min-height:1.2em}
.done{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center}
.done h1{font-size:34px}
