/* SoulVoice business site — minimal dark */
:root{--bg:#0E0E0E;--bg2:#161616;--bg3:#1E1E1E;--line:#2E2E2E;--text:#F5F5F5;--soft:#D4D4D4;--muted:#8A8A8A;--ok:#7BD88F;--err:#FF8A80;
--font:"Inter Tight","Inter","Helvetica Neue",Arial,system-ui,sans-serif;--ease:cubic-bezier(.22,1,.36,1);--max:1180px;--r:14px}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}img,svg{max-width:100%;display:block}ul{list-style:none}
:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--text);color:var(--bg);padding:.5rem 1rem;z-index:999;border-radius:8px}.skip:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(1.25rem,4vw,2.5rem)}
/* header */
.hdr{position:sticky;top:0;z-index:100;background:rgba(14,14,14,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:1rem}
.logo{font-weight:600;letter-spacing:.02em;text-decoration:none;font-size:1.15rem;display:flex;align-items:center;gap:.55rem}
.logo i{width:12px;height:12px;border-radius:50%;border:2px solid var(--text);display:inline-block}
.nav{display:flex;gap:1.6rem;align-items:center}.nav a{text-decoration:none;color:var(--soft);font-size:.95rem}.nav a:hover,.nav a[aria-current]{color:var(--text)}
.nav-toggle{display:none;background:none;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.4rem .7rem;font:inherit}
.cart-link{position:relative}.cart-count{display:inline-grid;place-items:center;min-width:1.3rem;height:1.3rem;border-radius:99px;background:var(--text);color:var(--bg);font-size:.72rem;font-weight:700;margin-left:.3rem}
@media(max-width:900px){.nav-toggle{display:block}.nav{position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--bg2);padding:1.25rem clamp(1.25rem,4vw,2.5rem);border-bottom:1px solid var(--line);display:none}.nav.open{display:flex}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.4rem;border-radius:99px;font:inherit;font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;border:1px solid var(--text);background:var(--text);color:var(--bg);transition:transform .3s var(--ease),background .3s}
.btn:hover{transform:translateY(-2px)}.btn.ghost{background:transparent;color:var(--text);border-color:var(--line)}.btn.ghost:hover{border-color:var(--text)}
.btn.sm{padding:.55rem 1rem;font-size:.85rem}.btn[disabled]{opacity:.5;cursor:not-allowed}
/* type */
.eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
h1{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.04;letter-spacing:-.03em;font-weight:600}
h2{font-size:clamp(1.9rem,4vw,3rem);line-height:1.1;letter-spacing:-.02em;font-weight:600;margin-bottom:1rem}
h3{font-size:1.15rem;font-weight:600;margin-bottom:.4rem}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--soft);max-width:60ch}
.muted{color:var(--muted)}.small{font-size:.85rem}
/* sections */
.section{padding:clamp(4rem,9vw,7.5rem) 0;border-top:1px solid var(--line)}
.section-head{max-width:720px;margin-bottom:3rem}
.grid{display:grid;gap:1.25rem}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;transition:border-color .3s,transform .4s var(--ease)}
.card:hover{border-color:#4a4a4a}.card p{color:var(--muted);font-size:.95rem}
.icon{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;margin-bottom:1rem;color:var(--text)}
/* hero */
.hero{padding:clamp(3.5rem,8vw,6.5rem) 0 clamp(3rem,6vw,5rem)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.hero .lead{margin:1.4rem 0 2rem}.cta-row{display:flex;flex-wrap:wrap;gap:.8rem}
.badges{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:2rem;color:var(--muted);font-size:.85rem}.badges span::before{content:"✓ ";color:var(--text)}
.stage{position:relative;aspect-ratio:4/3;display:grid;place-items:center}
.stage::before{content:"";position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle,rgba(245,245,245,.10),transparent 65%)}
.stage .ring{position:absolute;inset:18%;border:1px solid var(--line);border-radius:50%;animation:pulse 4s var(--ease) infinite}
.stage .ring:nth-child(2){animation-delay:1.3s}.stage .ring:nth-child(3){animation-delay:2.6s}
.stage img{position:relative;width:88%}
@keyframes pulse{0%{transform:scale(.7);opacity:.8}100%{transform:scale(1.35);opacity:0}}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr}}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.stats div{padding:1.5rem;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats b{display:block;font-size:1.8rem;letter-spacing:-.02em}.stats span{color:var(--muted);font-size:.85rem}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
/* product */
.product{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.product-media{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:2rem}
.swatches{display:flex;gap:.6rem;margin:1.2rem 0}.swatch{border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:99px;padding:.5rem 1rem;font:inherit;font-size:.9rem;cursor:pointer}
a.swatch{text-decoration:none;display:inline-block}a.swatch:hover{border-color:var(--soft)}.swatch[aria-current=page],.swatch[aria-pressed=true]{border-color:var(--text);background:var(--bg3)}
.specs{border-top:1px solid var(--line);margin-top:1.5rem}.specs li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.92rem}.specs li span:first-child{color:var(--muted)}
.price{font-size:1.6rem;font-weight:600;margin:.4rem 0}
@media(max-width:900px){.product{grid-template-columns:1fr}}
/* steps */
.step{counter-increment:s}.step::before{content:"0" counter(s);display:block;font-size:.8rem;color:var(--muted);letter-spacing:.15em;margin-bottom:1rem}
.steps{counter-reset:s}
/* pricing */
.plan{display:flex;flex-direction:column}.plan .price{font-size:2rem}.plan ul{margin:1.2rem 0 1.6rem;flex:1}.plan li{padding:.4rem 0;color:var(--soft);font-size:.93rem}.plan li::before{content:"— ";color:var(--muted)}
.plan.featured{border-color:var(--text);background:var(--bg3)}.tag{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bg);background:var(--text);border-radius:99px;padding:.2rem .6rem;align-self:flex-start;margin-bottom:.8rem}
/* faq */
details{border-bottom:1px solid var(--line);padding:1.1rem 0}summary{cursor:pointer;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}summary::after{content:"+";color:var(--muted);font-size:1.3rem;line-height:1}details[open] summary::after{content:"–"}details p{color:var(--muted);margin-top:.7rem;max-width:70ch}
/* forms */
form .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:620px){form .row{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}label{font-size:.85rem;color:var(--soft)}
input,select,textarea{font:inherit;color:var(--text);background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:.8rem .9rem;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--text)}textarea{min-height:130px;resize:vertical}
.err{color:var(--err);font-size:.8rem;min-height:1em}[aria-invalid=true]{border-color:var(--err)}
.status{margin-top:1rem;font-size:.92rem}.status.ok{color:var(--ok)}.status.bad{color:var(--err)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;color:var(--muted)}.check input{width:auto;margin-top:.3rem}
/* cart */
.cart-item{display:grid;grid-template-columns:80px 1fr auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}
.cart-item img{background:var(--bg2);border-radius:10px;border:1px solid var(--line)}
.qty{display:flex;align-items:center;gap:.4rem}.qty button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;font:inherit}
.linkbtn{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:.85rem}
.summary{position:sticky;top:90px}.summary .line{display:flex;justify-content:space-between;padding:.4rem 0;color:var(--soft)}.summary .total{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.8rem;font-weight:600;color:var(--text)}
.layout-2{display:grid;grid-template-columns:1.6fr 1fr;gap:2.5rem;align-items:start}@media(max-width:900px){.layout-2{grid-template-columns:1fr}}
.notice{border:1px dashed var(--muted);border-radius:10px;padding:.9rem 1rem;color:var(--soft);font-size:.9rem;margin-bottom:1.5rem}
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%,150%);background:var(--text);color:var(--bg);padding:.8rem 1.2rem;border-radius:99px;font-weight:600;font-size:.9rem;transition:transform .4s var(--ease);z-index:500}.toast.show{transform:translate(-50%,0)}
/* page/legal */
.page{padding:clamp(3rem,7vw,5rem) 0}.prose{max-width:760px}.prose h2{font-size:1.4rem;margin:2.2rem 0 .6rem}.prose p,.prose li{color:var(--soft);margin-bottom:.8rem}.prose ul{list-style:disc;padding-left:1.2rem}
/* footer */
.ftr{border-top:1px solid var(--line);padding:4rem 0 2rem;color:var(--muted);font-size:.9rem}
.ftr .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;margin-bottom:3rem}.ftr h4{color:var(--text);font-size:.85rem;font-weight:600;margin-bottom:.9rem}
.ftr li{margin-bottom:.5rem}.ftr a{text-decoration:none}.ftr a:hover{color:var(--text)}.ftr .base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:1px solid var(--line);padding-top:1.5rem}
@media(max-width:800px){.ftr .cols{grid-template-columns:1fr 1fr}}
/* motion */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0;color:var(--muted);white-space:nowrap}
.marquee .track{display:inline-flex;gap:3rem;animation:mq 40s linear infinite}.marquee span::before{content:"◦ ";color:var(--text)}
@keyframes mq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
.mt05{margin-top:.6rem}.mt1{margin-top:1rem}.mt2{margin-top:1.5rem}.mt3{margin-top:2rem}.my2{margin:1.2rem 0 2rem}.w120{max-width:120px}.full{width:100%}.foot-blurb{margin-top:1rem;max-width:34ch}
.nav a.btn{color:var(--bg)}.nav a.btn:hover{color:var(--bg)}
/* Meet your AI chat panel */
.ai-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem;align-items:center}@media(max-width:900px){.ai-grid{grid-template-columns:1fr}}
.ai-list{margin-top:1.5rem}.ai-list li{padding:.55rem 0;border-bottom:1px solid var(--line);color:var(--soft)}.ai-list li::before{content:"✦ ";color:var(--text)}
.chat{background:var(--bg2);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.chat__bar{display:flex;align-items:center;gap:.7rem;padding:1rem 1.2rem;border-bottom:1px solid var(--line);font-size:.95rem}
.chat__tag{margin-left:auto;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--muted);border-radius:6px;padding:.15rem .45rem}
.chat__body{padding:1.2rem;display:flex;flex-direction:column;gap:.8rem;min-height:420px}
.msg{max-width:88%;padding:.8rem 1rem;border-radius:16px;font-size:.92rem;line-height:1.5}
.msg.me{align-self:flex-end;background:var(--text);color:var(--bg);border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:var(--bg3);border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--soft)}
.msg.ai b{color:var(--text)}.msg ul{margin:.4rem 0 0}.msg li{padding:.2rem 0}.msg li::before{content:"· ";color:var(--muted)}
.msg .pin{margin-top:.6rem;padding:.5rem .7rem;border-left:2px solid var(--text);background:rgba(245,245,245,.04);color:var(--text)}
.todo li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line)}.todo li::before{content:"☐ "}.todo li span:last-child{color:var(--muted);white-space:nowrap}
.chat__note{font-size:.75rem;color:var(--muted);padding:0 1.2rem 1rem}
.typing{align-self:flex-start;display:flex;gap:4px;padding:.9rem 1rem;background:var(--bg3);border:1px solid var(--line);border-radius:16px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:tdot 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes tdot{0%,100%{opacity:.3;transform:none}50%{opacity:1;transform:translateY(-3px)}}
.js-chat .msg{display:none}.js-chat .msg.show{display:block;animation:msgIn .5s var(--ease)}
@keyframes msgIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.js-chat .msg{display:block}.typing{display:none}}
.product-media img,.stage picture img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}.product-media picture{display:block}
.todo li span:first-child{flex:1;text-align:left}
/* AI preferences panel */
#train .card{padding:1.2rem}#train .card h3{font-size:1rem}
.prefs{background:var(--bg2);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.prefs__body{padding:1.2rem}.prefs__label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .5rem}.prefs__label:first-child{margin-top:0}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{font:inherit;font-size:.82rem;padding:.35rem .75rem;border-radius:99px;border:1px solid var(--line);background:var(--bg3);color:var(--soft)}
.chip.add{border-style:dashed;color:var(--muted)}button.chip{cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.chip[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}
.toggles li{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--soft)}
.tgl{width:38px;height:22px;border-radius:99px;border:1px solid var(--line);background:var(--bg3);position:relative;cursor:pointer;transition:background .25s}
.tgl::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .3s var(--ease),background .25s}
.tgl[aria-pressed=true]{background:var(--text)}.tgl[aria-pressed=true]::after{transform:translateX(16px);background:var(--bg)}
.prefs .specs{margin-top:0}
/* sign-in (Google via the SoulVoice account service) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.g-mark{width:16px;height:16px;flex:none;background:#fff;border-radius:50%;padding:2px;box-sizing:content-box}
.nav-authslot{display:inline-flex;align-items:center;gap:.9rem}
.nav a.nav-auth{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border:1px solid var(--line);border-radius:99px;color:var(--text)}.nav a.nav-auth:hover{border-color:var(--text)}
.nav-auth .g-mark{width:12px;height:12px}
.nav a.nav-user{display:inline-flex;align-items:center;gap:.5rem;color:var(--text)}
.avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--text);color:var(--bg);font-weight:700;font-size:.8rem;flex:none}
.avatar--lg{width:64px;height:64px;font-size:1.5rem;margin:0 auto 1rem}
.nav-signout{font-size:.85rem}
.g-btn{background:var(--text);color:var(--bg)}.g-btn span{color:var(--bg)}
.auth-gate{border-color:var(--soft);margin-bottom:1.5rem}.auth-gate h2{font-size:1.25rem;margin-bottom:.4rem}.auth-gate p{color:var(--soft)}
fieldset{border:0;padding:0;margin:0;min-width:0}fieldset[disabled]{opacity:.45}fieldset[disabled] input{cursor:not-allowed}
input[readonly]{color:var(--soft);background:var(--bg3)}
.who{color:var(--soft);margin-bottom:1rem}.who b{color:var(--text);font-weight:600}
.narrow{max-width:560px}
.auth-card{text-align:center;display:flex;flex-direction:column;align-items:stretch}.auth-card__name{font-size:1.4rem;color:var(--text)!important;margin:0}.auth-card__email{color:var(--soft)!important;word-break:break-all;margin:.2rem 0 1rem}
.auth-modal{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:1.25rem;animation:msgIn .3s var(--ease)}
.auth-modal__box{position:relative;max-width:440px;width:100%;padding:2rem;border-color:#4a4a4a;background:var(--bg2)}.auth-modal__box:hover{transform:none}
.auth-modal__box h2{font-size:1.35rem;margin:0 1.5rem .6rem 0;line-height:1.3}.auth-modal__box p{margin-bottom:1.2rem}
.auth-modal__x{position:absolute;top:.8rem;right:.9rem;background:none;border:0;color:var(--muted);font-size:1.6rem;line-height:1;cursor:pointer}.auth-modal__x:hover{color:var(--text)}
@media(max-width:900px){.nav-authslot{flex-direction:row;padding:.4rem 0}}
