:root{
  --bg:#f4f8f9; --panel:#ffffff; --fg:#0f2230; --muted:#557080; --line:#d6e2e7;
  --water:#0f7c91; --water-2:#13a5a8; --warm:#e0703a; --ok:#1f8a55; --chip:#e6f0f3;
  --display:"Fraunces",Georgia,serif; --body:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0b161d; --panel:#122029; --fg:#e3eef2; --muted:#8aa6b3; --line:#21343f;
  --water:#3cc2d6; --water-2:#5fd8c9; --warm:#f29563; --ok:#4cc483; --chip:#182a34; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0b161d; --panel:#122029; --fg:#e3eef2; --muted:#8aa6b3; --line:#21343f;
  --water:#3cc2d6; --water-2:#5fd8c9; --warm:#f29563; --ok:#4cc483; --chip:#182a34; color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 var(--body)}
a{color:var(--water)}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
header.site{display:flex;justify-content:space-between;align-items:center;padding:18px 0}
.logo{font-family:var(--display);font-weight:600;font-size:24px;color:var(--fg);text-decoration:none;letter-spacing:-.01em}
.logo span{color:var(--water)}
nav a{margin-left:18px;font-size:15px;text-decoration:none;color:var(--muted)}
nav a:hover{color:var(--fg)}
.hero{padding:40px 0 28px;display:grid;gap:28px;grid-template-columns:1.2fr 1fr;align-items:center}
@media (max-width:820px){.hero{grid-template-columns:1fr}}
h1{font-family:var(--display);font-weight:600;font-size:clamp(34px,6vw,58px);line-height:1.05;margin:0 0 14px;letter-spacing:-.02em;text-wrap:balance}
h1 em{font-style:normal;color:var(--warm)}
.lede{font-size:19px;color:var(--muted);max-width:56ch;margin:0 0 22px}
h2{font-family:var(--display);font-weight:600;font-size:clamp(26px,4vw,36px);line-height:1.15;margin:0 0 12px;text-wrap:balance}
h3{font-size:18px;margin:0 0 6px}
.btn{display:inline-block;font:inherit;font-weight:600;background:var(--water);color:#fff;border:0;border-radius:999px;padding:12px 22px;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.55;cursor:default}
.btn.ghost{background:transparent;color:var(--water);border:1.5px solid var(--water)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px}
.count{font-family:var(--display);font-size:clamp(64px,12vw,112px);line-height:1;color:var(--warm);font-weight:600}
.count-label{color:var(--muted);font-size:15px;margin-top:6px}
.cal{display:grid;grid-template-columns:repeat(13,1fr);gap:4px;margin-top:16px}
.cal i{display:block;aspect-ratio:1;border-radius:3px;background:var(--chip)}
.cal i.on{background:var(--warm);opacity:.85}
section{padding:44px 0;border-top:1px solid var(--line)}
.grid3{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.step-n{font-family:var(--display);color:var(--water);font-size:28px;font-weight:600}
.fund{display:grid;gap:14px}
.bar{position:relative;height:18px;border-radius:999px;background:var(--chip);overflow:hidden}
.bar b{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--water),var(--water-2));border-radius:999px;transition:width .8s ease}
.bar .mark{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--warm)}
.fund-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:15px}
.fund-row strong{font-size:22px}
.goals{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.goal{border-left:4px solid var(--water);padding:4px 0 4px 14px}
.goal.prod{border-color:var(--warm)}
.goal .amt{font-family:var(--display);font-size:30px;font-weight:600}
form.reserve{display:grid;gap:12px}
label{font-size:14px;font-weight:600;display:grid;gap:4px}
label .opt{font-weight:400;color:var(--muted)}
input[type=email],input[type=text],select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%}
.check{display:flex;gap:8px;align-items:flex-start;font-weight:400}
.check input{margin-top:5px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{min-height:1.4em;font-size:15px}
.msg.ok{color:var(--ok)} .msg.err{color:var(--warm)}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.tbl{overflow-x:auto}
.yes{color:var(--ok);font-weight:600} .no{color:var(--muted)}
details{border-bottom:1px solid var(--line);padding:12px 0}
summary{cursor:pointer;font-weight:600}
.src{font-size:13px;color:var(--muted)}
footer{padding:30px 0 50px;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}
:focus-visible{outline:2px solid var(--warm);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
article.guide{max-width:720px}
article.guide h2{margin-top:30px}
.draft-note{display:inline-block;font-size:13px;font-weight:600;background:var(--chip);color:var(--warm);border-radius:999px;padding:4px 12px;margin:8px 0 0}
.pre-status dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0}
.pre-status dt{font-size:.85rem;opacity:.75}
.pre-status dd{margin:2px 0 0;font-weight:700}
.tiers{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:18px}
.tiers4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.tier .amt{font-family:var(--display);font-size:34px;font-weight:600}
.tier ul{padding-left:18px;margin:10px 0 16px}
.tier .btn[aria-disabled="true"]{opacity:.55;cursor:default;pointer-events:none}
.hero-shot{margin:0}.hero-shot img{display:block;width:100%;height:auto;border-radius:16px;border:1px solid var(--line);background:#e9f0f2}
.hero-shot figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.chore{display:grid;gap:22px;grid-template-columns:1.2fr 1fr;align-items:center;margin:8px 0 36px}
@media (max-width:820px){.chore{grid-template-columns:1fr}}
/* campaign home (2026-10-29, Ryan sp-d202610295: crowdfunding-first home page) */
.kicker{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--warm);background:var(--chip);border-radius:999px;padding:4px 12px;margin:0 0 14px}
.mini-fund{padding:14px 16px;margin:0 0 18px;display:grid;gap:10px;max-width:520px}
.mini-fund .fund-row strong{font-size:18px}
.tier .tag{margin:0 0 4px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.tier.featured{border:2px solid var(--warm)}
.tier.featured .tag{color:var(--warm)}
.does{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
ul.chem{list-style:none;padding:0;margin:10px 0 12px;display:grid;gap:8px}
ul.chem li{display:flex;gap:10px;align-items:baseline}
.dot{flex:none;width:12px;height:12px;border-radius:50%;display:inline-block;transform:translateY(1px)}
.d-phd{background:#e0703a}.d-phu{background:#7b5ea7}.d-alk{background:#c9921c}.d-cl{background:#0f7c91}.d-s{background:var(--water-2)}.d-w{background:var(--muted)}
ol.road{list-style:none;padding:0;margin:16px 0;display:grid;gap:12px;counter-reset:road}
ol.road li{counter-increment:road;display:grid;grid-template-columns:40px 1fr;column-gap:12px;align-items:start}
ol.road li::before{content:counter(road);grid-row:span 2;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:600;background:var(--chip);color:var(--muted)}
ol.road li.done::before{content:"✓";background:var(--ok);color:#fff}
ol.road li span{color:var(--muted);font-size:15px}
.cta-end{text-align:center}
.share .share-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 12px}
.share .share-links{margin:0 0 6px}
/* launching-soon splash (/soon/, 2026-11-03) */
.splash-hero{padding-top:24px;min-height:calc(100vh - 160px)}
.splash-form{max-width:520px;gap:14px}
.splash-form .btn{justify-self:start}
@media (max-width:820px){.splash-hero{min-height:0}.splash-form .btn{justify-self:stretch}}
.splash-form .msg:empty{display:none}
.splash-form .src{margin:0}
