/* Shared foundation: design tokens, page chrome, buttons and every form control.
   index.html keeps its own <style> block for the landing page's one-off pieces
   (hero, samples, pricing). Everything both it and /start/* need lives here. */

:root{
  color-scheme:dark;
  --ink:#101112; --black:#000; --panel:#17191b; --line:#2a2d31;
  --vis:#E4FF1A; --cy:#29D3F0; --text:#f2f3ee; --muted:#a2a59c; --soft:#6d7069;
  --display:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --gutter:clamp(16px,5vw,56px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--display);font-size:17px;line-height:1.55;padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:inherit}
[hidden]{display:none!important}
.wrap{max-width:1120px;margin:0 auto;padding-inline:var(--gutter)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.tag{color:var(--cy)}

.bar{position:sticky;top:0;z-index:10;background:rgba(16,17,18,.94);border-bottom:1px solid transparent;padding-top:env(safe-area-inset-top,0px);transition:border-color .2s}
.bar.scrolled{border-bottom-color:var(--line)}
nav{display:flex;align-items:center;justify-content:space-between;padding-block:12px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-stretch:112%;font-size:24px;letter-spacing:-.02em}
.logo svg{width:30px;height:30px;color:var(--vis)}

.btn{appearance:none;border:2px solid transparent;cursor:pointer;font:inherit;font-weight:800;font-stretch:108%;background:linear-gradient(#101112,#101112) padding-box,linear-gradient(90deg,var(--vis),var(--cy)) border-box;color:#fff;padding:14px 24px;border-radius:10px;font-size:17px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:transform .15s ease}
.btn:hover{transform:translateY(-1px);background:linear-gradient(#1a1c1f,#1a1c1f) padding-box,linear-gradient(90deg,var(--vis),var(--cy)) border-box}
.btn:focus-visible,input:focus-visible{outline:3px solid var(--cy);outline-offset:3px}
.btn.sm{padding:10px 16px;font-size:15px}
.btn[disabled]{opacity:.6;cursor:default;transform:none}
.cta{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-top:48px}
.cta span{color:var(--soft);font-size:14px}

section{padding-block:clamp(56px,9vw,112px);border-top:1px solid var(--line);background:
  radial-gradient(70% 55% at 100% 0%,rgba(41,211,240,.13) 0%,rgba(41,211,240,0) 70%),
  radial-gradient(60% 50% at 0% 100%,rgba(41,211,240,.06) 0%,rgba(41,211,240,0) 70%),
  linear-gradient(180deg,#131416 0%,#0b0c0d 100%)}
h2{font-size:clamp(32px,4.6vw,54px);font-weight:800;font-stretch:112%;line-height:1;letter-spacing:-.02em;margin:12px 0 0;text-wrap:balance;max-width:18ch}
.sub{color:var(--muted);max-width:52ch;margin:16px 0 0}

/* Each lime panel gets its own reflective pattern: stripes one way, stripes the other, then a chevron. */
.alt{position:relative;overflow:hidden;border-top:0;padding-block:clamp(28px,5vw,64px);background:
  repeating-linear-gradient(115deg,rgba(255,255,255,0) 0 64px,rgba(255,255,255,.22) 64px 78px,rgba(255,255,255,0) 78px 190px),
  radial-gradient(90% 120% at 0% 0%,#F4FF7A 0%,rgba(244,255,122,0) 60%),
  linear-gradient(135deg,#E4FF1A 0%,#B9F53A 45%,#29D3F0 100%)}
.alt.p2{background:
  repeating-linear-gradient(65deg,rgba(255,255,255,0) 0 64px,rgba(255,255,255,.22) 64px 78px,rgba(255,255,255,0) 78px 190px),
  radial-gradient(90% 120% at 100% 0%,#F4FF7A 0%,rgba(244,255,122,0) 60%),
  linear-gradient(225deg,#E4FF1A 0%,#B9F53A 45%,#29D3F0 100%)}
.alt.p3{background:
  linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%) -60px 0/120px 120px,
  linear-gradient(225deg,rgba(255,255,255,.2) 25%,transparent 25%) -60px 0/120px 120px,
  radial-gradient(90% 120% at 50% 0%,#F4FF7A 0%,rgba(244,255,122,0) 60%),
  linear-gradient(180deg,#E4FF1A 0%,#B9F53A 50%,#29D3F0 100%)}
.alt .wrap{position:relative}
.alt + section{border-top:0}
.card{--pad:clamp(24px,5vw,60px);background:var(--ink);border-radius:clamp(18px,3vw,28px);padding:var(--pad);box-shadow:0 24px 60px rgba(0,30,40,.35)}
.card.inner{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:start}
/* A /start step fills the window, so the card sits in the middle of the lime. */
main.alt{min-height:calc(100svh - 58px);display:grid;align-items:center}

form{display:flex;flex-direction:column;gap:14px}
label{font-weight:600;font-size:15px;display:flex;flex-direction:column;gap:6px}
label small{font-weight:400;color:var(--muted)}
input{font:inherit;font-size:17px;padding:14px 16px;border-radius:10px;border:2px solid transparent;background:#fff;color:var(--ink);width:100%}
textarea{font:inherit;font-size:16px;padding:14px 16px;border-radius:10px;border:2px solid transparent;background:#fff;color:var(--ink);width:100%;resize:vertical;min-height:130px}
textarea:focus-visible{outline:3px solid var(--text);outline-offset:3px}
.msg{min-height:1.4em;font-weight:600;margin:0}
.msg.err{color:#ff9a7a}

.kinds{border:0;margin:0;padding:0;min-width:0}
.kinds legend{font-weight:600;font-size:15px;padding:0;margin-bottom:6px}
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:#000;border:1px solid var(--line);padding:4px;border-radius:12px}
.seg label{display:block;gap:0}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:block;text-align:center;padding:10px 4px;border-radius:9px;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
.seg input:checked+span{background:var(--vis);color:var(--ink)}
.seg input:focus-visible+span{outline:2px solid var(--text);outline-offset:2px}
.seg.three{grid-template-columns:repeat(3,minmax(0,1fr))}

.prog{display:flex;gap:6px;margin-bottom:6px}
.prog i{flex:1;height:5px;border-radius:3px;background:#2a2d31;transition:background .25s}
.prog i.on{background:linear-gradient(90deg,var(--vis),var(--cy))}
.step{display:flex;flex-direction:column;gap:14px;animation:stepin .25s ease}
@keyframes stepin{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
.step h3{margin:0;font-size:clamp(24px,2.6vw,30px);font-weight:800;font-stretch:108%;line-height:1.1}
.stepno{color:var(--soft);font-size:11px}
.linkish{appearance:none;background:none;border:0;padding:4px 0;font:inherit;font-size:15px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px;align-self:flex-start}
.linkish:hover{color:var(--text)}
.navrow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.navrow .btn{margin-left:auto;min-width:150px;justify-content:center}

.voices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.voice,.look{display:block;position:relative;cursor:pointer}
.voice input,.look input{position:absolute;opacity:0;width:1px;height:1px}
.vc{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:14px 14px 14px 16px;border:2px solid var(--line);border-radius:12px;background:#000;transition:border-color .15s}
.vc b{font-size:18px;font-weight:800}
.vc small{grid-column:1;color:var(--muted);font-size:14px;font-weight:400}
.vplay{grid-column:2;grid-row:1/3;appearance:none;border:0;width:42px;height:42px;border-radius:50%;background:#1f2226;cursor:pointer;display:grid;place-items:center}
.vplay::before{content:"";width:0;height:0;border-left:12px solid var(--vis);border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px}
.vplay.on::before{width:12px;height:12px;border:0;margin:0;background:linear-gradient(90deg,var(--vis) 0 4px,transparent 4px 8px,var(--vis) 8px)}
.voice input:checked+.vc,.look input:checked+.sw{border-color:var(--vis);box-shadow:0 0 0 3px rgba(228,255,26,.18)}
.voice input:focus-visible+.vc,.look input:focus-visible+.sw{outline:3px solid var(--cy);outline-offset:2px}
.or{display:flex;align-items:center;gap:12px;color:var(--soft);font-size:14px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.looks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.look{display:flex;flex-direction:column;gap:6px;text-align:center}
.look b{font-size:15px;font-weight:600}
.sw{display:grid;place-items:center;aspect-ratio:4/3;border-radius:12px;border:2px solid var(--line);background:var(--b);transition:border-color .15s}
.sw i{font-style:normal;font-weight:800;font-stretch:112%;font-size:30px;color:var(--a)}
.free{margin:0;color:var(--vis);font-weight:600}

.done{background:#000;color:var(--text);border-radius:14px;padding:26px;border:1px solid var(--line)}
.done h3{margin:0 0 6px;font-size:26px;font-weight:800;font-stretch:108%;color:var(--vis)}
.done p{margin:0;color:var(--muted)}

/* The last step signs in with Google, so it gets Google's own button treatment. */
.gbtn{appearance:none;cursor:pointer;font:inherit;font-weight:600;font-size:17px;background:#fff;color:#1f1f1f;border:1px solid #dadce0;padding:14px 24px;border-radius:10px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:background .15s}
.gbtn:hover{background:#f4f4f4}
.gbtn:focus-visible{outline:3px solid var(--cy);outline-offset:3px}
.gbtn svg{width:20px;height:20px;flex:none}
.recap{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;background:#000;border:1px solid var(--line);border-radius:12px;padding:16px}
.recap li{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;font-size:15px;align-items:baseline}
.recap dt,.recap .k{color:var(--soft);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.recap .v{color:var(--text);overflow-wrap:anywhere}
.fineprint{margin:0;color:var(--soft);font-size:13px}

footer{padding-block:36px;color:var(--soft);font-size:14px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

@media (max-width:820px){
  .card.inner{grid-template-columns:1fr}
}
@media (max-width:420px){
  .voices{grid-template-columns:1fr}
  .vc{padding-block:10px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
