/* ============================================================
   AICoderClass Radar (/radar). Loads after tokens.css + components.css.
   NO raw colours: every colour is a token from css/tokens.css (check_site.py rule).
   Reuses .glass, .btn, .badge, .chip, .pro-card, details, .footer from components.css.
   ============================================================ */
.rd main{overflow-x:clip}
/* extra soft wash behind the hero, so the frosted cards have something to blur */
.rd-hero{position:relative}
.rd-hero::before{content:"";position:absolute;z-index:-1;inset:-80px -40px -40px 35%;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,rgba(var(--accent-rgb),.10),rgba(var(--accent-rgb),0) 70%),radial-gradient(40% 50% at 20% 80%,var(--selected),transparent 70%);filter:blur(8px)}
.rd-banner{padding:var(--s4) var(--s5);margin:var(--s6) 0 0;border-left:3px solid var(--accent)}

/* ---- sample alert (Slack-style) ---- */
.rd-alert{margin:0;padding:var(--s5)}
.rd-alert-cap,.rd-seat-cap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin-bottom:var(--s4)}
.rd-slack{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:var(--shadow-1)}
.rd-slack-head{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.rd-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--grad-brand);color:var(--accent-ink);flex:none}
.rd-avatar svg{width:20px;height:20px}
.rd-alert-title{font:600 var(--fs-lg)/1.35 var(--font-display);letter-spacing:var(--tracking-head);margin:0 0 var(--s3);color:var(--text)}
.rd-tag{display:inline-block;vertical-align:2px;margin-right:6px;padding:3px 8px;border-radius:var(--r-pill);font:500 11.5px/1.2 var(--font-mono);letter-spacing:.04em;text-transform:uppercase}
.rd-tag-limit{color:var(--warning);background:var(--warning-bg);box-shadow:inset 0 0 0 1px var(--warning-line)}
.rd-alert-list{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;gap:6px;font-size:var(--fs-sm);color:var(--text-2)}
.rd-alert-foot{display:flex;flex-wrap:wrap;gap:var(--s2)}

/* ---- watched tools strip ---- */
.rd-watch{margin:var(--s7) 0}
.rd-watch-inner{padding:var(--s5) var(--s6);display:grid;grid-template-columns:auto 1fr;gap:var(--s3) var(--s6);align-items:center}
.rd-watch-title{font-size:var(--fs-h3);margin:0}
.rd-tools{list-style:none;margin:0;padding:0}
.rd-watch-src{grid-column:1/-1;margin:0}
@media (max-width:860px){.rd-watch-inner{grid-template-columns:1fr;padding:var(--s5)}}

/* ---- features ---- */
.rd-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.rd-feature{padding:var(--s6);display:flex;flex-direction:column}
.rd-feature h3{margin:var(--s4) 0 var(--s2)}
.rd-feature p{color:var(--text-2);margin-bottom:var(--s3)}
.rd-feature .rd-note{margin:auto 0 0}
.rd-feature-wide{grid-column:span 2;background:linear-gradient(135deg,var(--glass-strong),var(--glass)),radial-gradient(80% 120% at 100% 0%,var(--selected),transparent 60%)}
.rd-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--selected);color:var(--accent)}
.rd-ic svg{width:22px;height:22px}
@media (max-width:960px){.rd-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.rd-features{grid-template-columns:1fr}.rd-feature-wide{grid-column:auto}.rd-feature{padding:var(--s5)}}

/* ---- seat-cost example ---- */
.rd-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s7);align-items:center}
.rd-split .section-head{margin-bottom:0}
.rd-seat{margin:0;padding:var(--s5)}
.rd-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;font-size:var(--fs-sm)}
.rd-table th,.rd-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);color:var(--text-2);font-weight:400}
.rd-table thead th{font:500 var(--fs-xs)/1.3 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);background:var(--surface-2)}
.rd-table tbody th{color:var(--text);font-weight:600}
.rd-table td{font-family:var(--font-mono);white-space:nowrap}
.rd-table .num{text-align:right}
.rd-table tbody tr:first-child td,.rd-table tbody tr:first-child th{background:var(--surface-2)}
.rd-table tfoot th,.rd-table tfoot td{border-bottom:0;background:var(--selected);color:var(--text);font-weight:600}
.rd-table tfoot .rd-save{color:var(--accent)}
@media (max-width:960px){.rd-split{grid-template-columns:1fr;gap:var(--s5)}}
@media (max-width:420px){.rd-table th,.rd-table td{padding:10px 8px}}

/* ---- founding offer ---- */
.rd-found-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s4);align-items:stretch}
.rd-found-main{padding:var(--s7)}
.rd-found-main h3{margin:var(--s4) 0 var(--s2);font-size:var(--fs-h2)}
.rd-found-badges{display:flex;flex-wrap:wrap;gap:var(--s2)}
.rd-found-main .price-tag{margin:0 0 var(--s2);font-size:clamp(36px,4.4vw,52px)}
.rd-ticks{list-style:none;margin:var(--s5) 0 var(--s6);padding:0;display:grid;gap:10px}
.rd-ticks li{position:relative;display:block;padding-left:28px;color:var(--on-ink-2)}
.rd-ticks li::before{content:"";position:absolute;left:2px;top:.45em;width:14px;height:8px;border-left:2px solid var(--on-ink);border-bottom:2px solid var(--on-ink);transform:rotate(-45deg)}
.rd-cta{width:100%;max-width:420px}
.rd-found-main .btn[aria-disabled="true"]{background:var(--on-ink);color:var(--ink);opacity:.82}
.rd-wl-link{display:inline-flex;align-items:center;min-height:var(--tap);margin-top:var(--s2);font-size:var(--fs-sm)}
.rd-found-main .rd-wl-link{color:var(--on-ink)}
.rd-studio{margin:var(--s5) 0 0}
.rd-found-side{padding:var(--s6);display:flex;flex-direction:column;gap:var(--s3)}
.rd-found-side h3{margin:var(--s2) 0 0}
.rd-found-side .small{margin:0}
.rd-price{font:700 var(--fs-h2)/1.1 var(--font-display);letter-spacing:var(--tracking-head);color:var(--text);margin:0}
.rd-price small{font:500 14px var(--font-body);color:var(--muted);letter-spacing:0}
.rd-refund{margin-top:var(--s4);padding:var(--s4) var(--s5);border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line)}
.rd-refund h4{margin:0 0 var(--s2);font:600 var(--fs-sm)/1.3 var(--font-body);color:var(--text)}
.rd-refund ul{margin:0;padding-left:18px;display:grid;gap:6px;font-size:var(--fs-sm);color:var(--text-2)}
.rd-honest{margin-top:var(--s4)}
@media (max-width:900px){.rd-found-grid{grid-template-columns:1fr}.rd-found-main{padding:var(--s6) var(--s5)}}

/* ---- pricing ---- */
.rd-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.rd-plan{padding:var(--s5);display:flex;flex-direction:column}
.rd-plan h3{margin:0}
.rd-plan-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);min-height:30px}
.rd-plan .rd-price{margin:var(--s4) 0 var(--s1)}
.rd-plan>.small{margin:0 0 var(--s4)}
.rd-plan-pop{box-shadow:var(--shadow-glass),0 0 0 1.5px var(--accent)}
.rd-list{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;gap:8px;font-size:var(--fs-sm);color:var(--text-2)}
.rd-list li{position:relative;padding-left:22px}
.rd-list li::before{content:"";position:absolute;left:2px;top:.5em;width:10px;height:6px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.rd-found-line{margin:auto 0 0;padding-top:var(--s3);border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--text);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
@media (max-width:1060px){.rd-plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.rd-plans{grid-template-columns:1fr}}

/* ---- waitlist ---- */
.rd-wl{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s7);padding:var(--s7);
  background:linear-gradient(160deg,var(--glass-strong),var(--glass)),radial-gradient(70% 90% at 0% 100%,var(--selected),transparent 70%)}
.rd-wl-copy h2{margin-top:var(--s3)}
.rd-form{display:grid;gap:var(--s4)}
.rd-field{display:grid;gap:6px;margin:0;padding:0;border:0;min-width:0}
.rd-field label,.rd-field legend{font-weight:600;font-size:var(--fs-sm);color:var(--text);padding:0}
.rd-field legend{margin-bottom:var(--s2)}
.rd-field input[type=email],.rd-field select{width:100%;min-height:48px;padding:0 14px;border-radius:var(--r-md);border:1px solid var(--line-ui);background:var(--surface-1);color:var(--text);font:400 16px/1.2 var(--font-body)}
.rd-field input::placeholder{color:var(--muted)}
.rd-field input:focus-visible,.rd-field select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rd-field [aria-invalid="true"]{border-color:var(--error)}
.rd-checks{display:flex;flex-wrap:wrap;gap:var(--s2)}
.rd-check{position:relative;display:inline-flex}
.rd-check input{position:absolute;opacity:0;width:1px;height:1px}
.rd-check span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface-1);font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}
.rd-check input:checked+span{background:var(--selected);border-color:var(--accent);color:var(--accent);font-weight:600}
.rd-check input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.rd-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.rd-submit{justify-self:start}
.rd-submit[aria-busy="true"]{opacity:.75;pointer-events:none}
.rd-ok{margin:0;padding:12px 14px;border-radius:var(--r-md);background:var(--selected);color:var(--text);font-weight:600}
.rd-form .err{margin:0}
@media (max-width:900px){.rd-wl{grid-template-columns:1fr;gap:var(--s5);padding:var(--s6) var(--s5)}.rd-submit{justify-self:stretch}}

/* ---- billing toggle: annual is the default; CSS-only via :has(), no JS needed ---- */
.rd-billing{display:inline-flex;gap:4px;margin:0 0 var(--s5);padding:4px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--glass-strong);-webkit-backdrop-filter:blur(var(--blur-glass));backdrop-filter:blur(var(--blur-glass));box-shadow:var(--glass-hi),var(--shadow-1)}
.rd-billing input{position:absolute;opacity:0;width:1px;height:1px}
.rd-billing label{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:var(--r-pill);font-weight:600;font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.rd-billing input:checked+label{background:var(--surface-1);color:var(--text);box-shadow:0 0 0 1px var(--line-strong),var(--shadow-1)}
.rd-billing input:focus-visible+label{outline:2px solid var(--accent);outline-offset:2px}
.rd-save-pill{font:500 11.5px/1 var(--font-mono);padding:4px 7px;border-radius:var(--r-pill);background:var(--selected);color:var(--accent)}
.rd-pricing .p-monthly{display:none}
.rd-pricing:has(#bill-monthly:checked) .p-monthly{display:revert}
.rd-pricing:has(#bill-monthly:checked) .p-annual{display:none}
.rd-tax{margin-top:var(--s4)}
/* refund panel (side card in the founding section) */
.rd-found-side h3{margin:0 0 var(--s2)}
.rd-refund-list{list-style:none;margin:0 0 var(--s3);padding:0;display:grid;gap:var(--s3);font-size:var(--fs-sm);color:var(--text-2)}
.rd-refund-list li{padding-left:var(--s4);border-left:2px solid var(--selected)}
.rd-refund-list strong{color:var(--text)}

/* ---- impact line in the example alert ---- */
.rd-impact{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin:0 0 var(--s4);padding:10px 14px;border-radius:var(--r-md);background:var(--selected);font-size:var(--fs-sm);color:var(--text-2)}
.rd-impact strong{font:600 var(--fs-lg)/1 var(--font-display);color:var(--accent);white-space:nowrap}
/* ---- trust / differentiators ---- */
.rd-trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.rd-trust-card{padding:var(--s6)}
.rd-trust-card h3{margin:var(--s4) 0 var(--s2)}
.rd-trust-card p{color:var(--text-2)}
.rd-trust-card p.small{color:var(--muted);margin:0}
@media (max-width:960px){.rd-trust{grid-template-columns:1fr}.rd-trust-card{padding:var(--s5)}}
/* ---- expensable strip ---- */
.rd-expense{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.rd-expense li{padding:var(--s4);border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--line);font-size:var(--fs-sm);color:var(--text-2)}
.rd-expense strong{display:block;color:var(--text);margin-bottom:2px}
@media (max-width:760px){.rd-expense{grid-template-columns:1fr}}

/* ---- primary vs secondary features (secondary = smaller, quieter) ---- */
.rd-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.rd-primary .rd-feature-wide{grid-column:auto}
.rd-also-h{margin:var(--s6) 0 var(--s3)}
.rd-secondary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.rd-mini{padding:var(--s4) var(--s5);box-shadow:var(--shadow-1);background:var(--glass)}
.rd-mini h3{font-size:var(--fs-body);margin:0 0 4px}
.rd-mini p{margin:0;font-size:var(--fs-sm);color:var(--text-2)}
@media (max-width:860px){.rd-primary,.rd-secondary{grid-template-columns:1fr}}

/* ---- /thanks ---- */
.rd-thanks{margin:var(--s8) auto;max-width:var(--container-narrow)}
.rd-thx{padding:var(--s7)}
.rd-thx h1{font-size:var(--fs-h1);margin:var(--s3) 0 var(--s3)}
.rd-thx-h2{font-size:var(--fs-h3);margin:var(--s6) 0 var(--s3)}
.rd-steps{margin:0 0 var(--s6);padding-left:22px;display:grid;gap:var(--s3);color:var(--text-2)}
.rd-steps strong{color:var(--text)}
@media (max-width:640px){.rd-thx{padding:var(--s6) var(--s5)}}

/* ---- Fun pass (2026-10-17): sticker look to match logo F (glass cards get outlines + hard shadows from components.css) ---- */
.rd-hero::before{background:radial-gradient(closest-side,var(--sun-soft),transparent 70%),radial-gradient(40% 50% at 20% 80%,var(--teal-soft),transparent 70%)}
.rd-banner{border-left-width:var(--bw)}
.rd-slack{border:var(--bw) solid var(--outline);box-shadow:var(--pop-sm);border-radius:14px}
.rd-avatar{border:1.5px solid var(--outline);background:var(--accent)}
.rd-tag{border:1.5px solid var(--outline);font-weight:700}
.rd-tag-limit{box-shadow:none;background:var(--sun);color:var(--ink)}
.rd-ic{border:1.5px solid var(--outline);background:var(--sun-soft);color:var(--ink);box-shadow:var(--pop-sm);transform:rotate(-4deg);transition:transform var(--t-base) var(--ease-bounce)}
.rd-feature:hover .rd-ic,.rd-trust-card:hover .rd-ic{transform:rotate(4deg) scale(1.08)}
.rd-features>:nth-child(3n+2) .rd-ic,.rd-trust>:nth-child(2) .rd-ic{background:var(--teal-soft)}
.rd-features>:nth-child(3n) .rd-ic,.rd-trust>:nth-child(3) .rd-ic{background:var(--coral-soft)}
.rd-feature,.rd-trust-card,.rd-plan,.rd-mini{transition:transform var(--t-base) var(--ease-bounce),box-shadow var(--t-base) var(--ease-bounce)}
.rd-feature:hover,.rd-trust-card:hover,.rd-plan:hover,.rd-mini:hover{transform:translate(-3px,-3px);box-shadow:var(--pop-lg)}
.rd-feature-wide{background:var(--sun-soft)}
.rd-table{border:var(--bw) solid var(--outline)}
.rd-table thead th{background:var(--sun-soft);color:var(--ink);font-weight:700}
.rd-table tfoot th,.rd-table tfoot td{background:var(--teal-soft)}
.rd-plan-pop{box-shadow:var(--pop-teal);background:var(--surface-1)}
.rd-plan-pop:hover{box-shadow:6px 6px 0 var(--accent)}
.rd-save-pill{border:1.5px solid var(--outline);background:var(--sun);color:var(--ink);font-weight:700}
.rd-check span{border:1.5px solid var(--outline);color:var(--ink);font-weight:600;box-shadow:var(--pop-sm);transition:transform var(--t-base) var(--ease-bounce),background var(--t-fast)}
.rd-check span:hover{background:var(--sun-soft);transform:translate(-1px,-1px)}
.rd-check input:checked+span{background:var(--teal-soft);border-color:var(--outline);color:var(--ink);box-shadow:var(--pop-teal)}
.rd-field input[type=email],.rd-field select{border:var(--bw) solid var(--outline);border-radius:12px;box-shadow:var(--pop-sm)}
.rd-wl{background:var(--sun-soft)}
.rd-refund{border:1.5px dashed var(--outline)}
@media (prefers-reduced-motion:reduce){.rd-feature:hover,.rd-trust-card:hover,.rd-plan:hover,.rd-mini:hover,.rd-check span:hover{transform:none}}
