/*
Theme Name: SetCap
Theme URI: https://setcap.org/
Description: Private, phone-width support and responsible-gaming newsroom.
Version: 1.0.0
Author: SANDBOX ENTERTAINMENT CORP
*/
:root{--navy:#0b2545;--gold:#b8923a;--cream:#f7f4ec;--slate:#5a6478;--line:#e1dcd1;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e8e5dd;color:var(--navy);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.skip{position:absolute;left:-100vw;z-index:20}.skip:focus{left:12px;top:12px;background:white;padding:8px}.app{width:100%;max-width:430px;min-height:100dvh;margin:0 auto;background:var(--cream);box-shadow:0 0 40px #0b254522;padding-bottom:90px}.top{position:sticky;top:0;z-index:5;background:var(--cream);border-bottom:1px solid var(--line);padding:10px 18px;display:flex;align-items:center;justify-content:space-between}.top img{width:192px;height:auto;display:block}.quick{font-size:.76rem;border:1px solid var(--navy);border-radius:9px;padding:7px 9px;text-decoration:none;white-space:nowrap}.hero{background:var(--navy);color:var(--cream);padding:27px 22px 28px}.eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:750;margin:0 0 9px}.hero h1{font-family:Georgia,serif;font-size:2.2rem;line-height:1.1;margin:0 0 12px}.hero p{margin:0 0 20px}.cta{display:inline-block;text-decoration:none;background:var(--gold);color:var(--navy);border-radius:10px;padding:12px 18px;font-weight:750}.cta:focus-visible{outline-color:white}.notice{padding:14px 18px;background:#fff9e9;border-bottom:1px solid var(--line);font-size:.9rem}.notice a{font-weight:750}.section{padding:24px 18px;border-bottom:1px solid var(--line);scroll-margin-top:68px}.section h2{font:700 1.38rem/1.2 Georgia,serif;margin:0 0 12px}.section p{margin:0 0 12px}.muted{color:var(--slate);font-size:.86rem}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile,.card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;text-decoration:none}.tile strong,.card strong{display:block;line-height:1.2}.tile span,.card p{display:block;color:var(--slate);font-size:.86rem;margin:7px 0 0}.cards{display:grid;gap:10px}.card a{color:#174a73;font-weight:700}.card .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:.9rem}.tag{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--slate)}.story{padding:15px 0;border-top:1px solid var(--line)}.story h3{font-size:1rem;margin:2px 0 4px}.story h3 a{text-decoration:none}.story time{font-size:.8rem;color:var(--slate)}.article{overflow-wrap:anywhere}.article img{max-width:100%;height:auto}.article h1{font:700 1.9rem/1.2 Georgia,serif}.article a{color:#174a73}.foot{padding:24px 18px;font-size:.8rem;color:var(--slate)}.foot img{width:44px;height:44px}.bottom{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;background:#fff;border-top:1px solid var(--line);display:flex;padding:7px 4px max(7px,env(safe-area-inset-bottom));box-shadow:0 -4px 20px #0b254515}.bottom a{flex:1;text-align:center;text-decoration:none;font-size:.75rem;font-weight:700;line-height:1.1;padding:9px 2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(max-width:330px){.top img{width:150px}.bottom a{font-size:.68rem}}.section .eyebrow{color:#7a5c14}
.sc-open{position:fixed;z-index:12;right:max(12px,calc(50vw - 203px));bottom:calc(74px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;background:#fff;color:var(--navy);border:2px solid var(--gold);border-radius:999px;padding:7px 18px 7px 8px;text-align:left;cursor:pointer;box-shadow:0 8px 24px #0b254533;animation:sc-in .5s ease-out both}
.sc-open img{width:40px;height:40px;border-radius:50%;background:var(--navy);padding:4px}
.sc-open strong{display:block;font-size:.95rem;line-height:1.15}
.sc-open small{display:block;font-size:.72rem;color:var(--slate);line-height:1.2}
.sc-open:hover{background:var(--cream)}
.sc-crisis{margin:0;background:#fff9e9;border-bottom:1px solid var(--line)}
.sc-chat{position:fixed;z-index:30;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:430px;height:min(82dvh,660px);background:var(--cream);display:flex;flex-direction:column;border-radius:20px 20px 0 0;overflow:hidden;box-shadow:0 -10px 40px #0b254540;animation:sc-up .25s ease-out both}
.sc-chat[hidden],.sc-open[hidden]{display:none}
.sc-head{display:flex;align-items:center;gap:10px;background:var(--navy);color:var(--cream);padding:12px 8px 12px 14px}
.sc-head img{width:36px;height:36px;border-radius:50%;background:var(--cream);padding:3px}
.sc-head div{flex:1}
.sc-head strong{display:block;font-family:Georgia,serif;font-size:1.05rem}
.sc-head span{display:block;font-size:.72rem;opacity:.85}
.sc-head button{background:none;border:0;color:inherit;font-size:1.3rem;min-width:44px;min-height:44px;cursor:pointer}
.sc-log{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:10px}
.sc-m{margin:0;max-width:86%;padding:10px 13px;border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem}
.sc-bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}
.sc-user{background:var(--navy);color:var(--cream);border-bottom-right-radius:4px;align-self:flex-end}
.sc-alert{border-color:var(--gold);background:#fff9e9}
.sc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 14px 10px}
.sc-chips button{background:#fff;color:var(--navy);border:1.5px solid var(--gold);border-radius:999px;padding:9px 14px;min-height:44px;font-size:.85rem;font-weight:650;cursor:pointer}
.sc-chips button:hover{background:#fff9e9}
.sc-form{padding:10px 14px;border-top:1px solid var(--line);background:#fff}
.sc-note{margin:0;padding:0 14px max(10px,env(safe-area-inset-bottom));font-size:.72rem;color:var(--slate);background:#fff}
#sc-ts{padding:0 14px}
.sc-sr{position:absolute;left:-100vw}
@keyframes sc-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes sc-up{from{transform:translate(-50%,30px);opacity:0}to{transform:translateX(-50%);opacity:1}}
@media(prefers-reduced-motion:reduce){.sc-open,.sc-chat{animation:none}}
@media(max-width:330px){.sc-open small{display:none}}
.gov{position:fixed;z-index:11;left:50%;transform:translateX(-50%);bottom:calc(158px + env(safe-area-inset-bottom));width:min(calc(100% - 24px),406px);margin:0;background:#061a33;color:#e9e2cf;font-size:.74rem;line-height:1.4;padding:9px 14px;text-align:center;border-radius:12px;box-shadow:0 8px 24px #0b254544;animation:sc-pop .35s ease-out backwards;transition:opacity .4s}.gov a{color:#f0c96b;font-weight:700;white-space:nowrap}
.srcs{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}.srcs li{background:#fff;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:12px 14px;font-size:.9rem;color:var(--slate)}.srcs strong{display:block;color:var(--navy);font-family:Georgia,serif;font-size:1rem;margin-bottom:2px}.srcs a{display:inline-block;margin-top:4px;font-weight:700;color:#174a73}
.foot .who{line-height:1.5;color:var(--navy)}
/* SetCap companion: small, calm motion. The avatar breathes; a bubble types; messages settle in. */
.sc-open img{position:relative;animation:sc-breathe 4.5s ease-in-out infinite}
.sc-open::before{content:"";position:absolute;left:8px;top:7px;width:40px;height:40px;border-radius:50%;border:2px solid var(--gold);opacity:0;animation:sc-ring 4.5s ease-out infinite;pointer-events:none}
.sc-head img{animation:sc-breathe 4.5s ease-in-out infinite}
.sc-m{animation:sc-pop .28s ease-out both}
.sc-m.sc-typing{display:inline-flex;gap:6px;align-items:center;padding:15px 17px}.sc-typing i{width:8px;height:8px;border-radius:50%;background:var(--navy);opacity:.25;animation:sc-dot 1.2s ease-in-out infinite}.sc-typing i:nth-child(2){animation-delay:.16s}.sc-typing i:nth-child(3){animation-delay:.32s}
@keyframes sc-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes sc-ring{0%{opacity:.55;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.55)}}
@keyframes sc-pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes sc-dot{0%,60%,100%{opacity:.25;transform:translateY(0) scale(.85)}30%{opacity:1;transform:translateY(-4px) scale(1)}}
@media(prefers-reduced-motion:reduce){.sc-open img,.sc-open::before,.sc-head img,.sc-m,.sc-typing i{animation:none}.sc-typing i{opacity:.7}}

/* PWA + companion highlight + subtle institutional texture */
.hero{background:var(--navy) url("/app/themes/setcap/assets/setcap-seal.svg") no-repeat right -60px bottom -70px/240px;background-blend-mode:normal}
.hero{position:relative;overflow:hidden}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 55%,#0b254500);pointer-events:none}.hero>*{position:relative;z-index:1}
.section h2{position:relative}.section>.eyebrow+h2::after{content:"";display:block;width:34px;height:2px;background:var(--gold);margin-top:9px}
.steps ol{margin:10px 0 0;padding-left:20px;font-size:.9rem;color:var(--slate)}.steps li{margin-bottom:7px}.steps strong{color:var(--navy)}
.ico{width:1.05em;height:1.05em;vertical-align:-.15em;fill:none;stroke:var(--navy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#sc-install{border:0;cursor:pointer;margin-bottom:14px}#sc-install[hidden]{display:none}
.bottom a{min-width:44px}
@media(prefers-reduced-motion:reduce){}

.quick{background:var(--navy);color:#fff;border-color:var(--navy);cursor:pointer;font-weight:700}
.dlg{width:min(94vw,520px);max-height:88vh;overflow:auto;border:1px solid var(--gold);border-radius:16px;padding:22px 18px 18px;color:var(--navy);background:#fbf8ef;box-shadow:0 20px 60px #0b254566}
.dlg::backdrop{background:#0b2545aa}.dlg-x{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;background:none;font-size:1.1rem;cursor:pointer;color:var(--navy)}
.dlg .section{padding:0}

.gov.gone{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.gov{animation:none}}

/* Need-to-talk: primary, high-contrast entry to the companion */
.sc-open{background:var(--navy);color:#fff;border:2px solid var(--gold);padding:9px 22px 9px 9px;box-shadow:0 10px 30px #0b254566,0 0 0 4px #b8923a2e}
.sc-open:hover,.sc-open:focus-visible{background:#0f3160}
.sc-open img{width:46px;height:46px;background:#fff;padding:3px}
.sc-open::before{left:9px;top:9px;width:46px;height:46px}
.sc-open strong{font-size:1.05rem;color:#fff}
.sc-open small{display:block;color:#f0c96b;font-size:.76rem}
/* Install modal: bottom sheet on phones */
.dlg-head{display:flex;gap:12px;align-items:center;padding-right:34px}
.dlg-head img{flex:none;width:56px;height:56px}
.dlg-head .eyebrow{margin:0 0 3px}
.dlg-head h2{margin:0;font-family:Georgia,serif;font-size:1.25rem;line-height:1.2}
.dlg-lead{margin:14px 0;color:var(--slate);font-size:.95rem}
.dlg .cta{display:block;width:100%;text-align:center;padding:14px 18px;font-size:1rem;margin-bottom:14px}
.dlg .cta[hidden]{display:none}
.steps{gap:12px}
.steps.and-first #sc-and{order:-1}
.steps .card{padding:14px 14px 6px;border-radius:14px}
.steps .tag{display:inline-block;background:var(--navy);color:#fff;border-radius:999px;padding:4px 11px;font-weight:700;letter-spacing:.06em}
.steps ol{list-style:none;padding:0;margin:12px 0 0;counter-reset:s;color:var(--navy);font-size:.95rem}
.steps li{counter-increment:s;position:relative;padding:2px 0 0 38px;min-height:30px;margin-bottom:12px;line-height:1.45}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:#f4ead0;color:#7a5c14;border:1px solid var(--gold);font-weight:800;font-size:.85rem;display:grid;place-items:center}
.dlg-done{display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;padding:11px 13px;background:#eef6ee;border:1px solid #cfe3cf;border-radius:12px;color:#25562f;font-size:.88rem}
.dlg-done span{font-weight:800}
.dlg-x{position:sticky;top:0;float:right;margin:-16px -10px 0 0;z-index:1;width:44px;height:44px;border-radius:50%;background:#fbf8ef}
.dlg[open]{animation:sc-sheet .28s ease-out}
@keyframes sc-sheet{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(max-width:600px){
.dlg{width:100%;max-width:100%;margin:auto 0 0;border-radius:22px 22px 0 0;max-height:92dvh;padding:26px 18px calc(20px + env(safe-area-inset-bottom));border-width:1px 0 0}
.dlg::before{content:"";position:absolute;top:9px;left:50%;width:42px;height:4px;margin-left:-21px;border-radius:4px;background:#d8cfb8}
}
@media(prefers-reduced-motion:reduce){.dlg[open]{animation:none}}

.steps li strong,.steps li .ico{display:inline}
.steps li strong{font-weight:750}
.steps li .ico{width:1.15em;height:1.15em;margin:0 1px}
.dlg .dlg-x{border:0;padding:0;box-shadow:none;width:40px;height:40px;font-size:1rem;display:grid;place-items:center;line-height:1;background:#f1ecdd}

.hero .cta{display:block;width:100%;text-align:center;font-size:1.05rem;padding:16px 18px;margin:0 0 14px;box-shadow:0 0 0 4px #b8923a40,0 10px 26px #0006}
.hero .hero-note{font-size:.82rem;opacity:.9;margin:0}
.hero .hero-note a{color:#f0c96b;font-weight:700}
.hero h1{font-size:1.95rem}
@media(prefers-reduced-motion:reduce){}

.sc-head img,.sc-open img,.sc-head img{width:44px;height:44px;padding:0;border:2px solid var(--gold)}
.sc-open img{padding:0;border:2px solid var(--gold)}
.hero-note{font-size:.82rem;opacity:.9;margin:14px 0 0}.hero-note a{color:#f0c96b;font-weight:700}

.q-gh{display:none}.sa .q-dl{display:none}.sa .q-gh{display:inline}@media(display-mode:standalone){.q-dl{display:none}.q-gh{display:inline}}

/* Hero chat button: Sitti's face + gentle attention motion (pulse ring, nudging arrow) */
.cta-chat{display:flex;align-items:center;gap:12px;text-align:left;position:relative;padding:8px 16px 8px 8px;border-radius:999px;background:#fff;color:var(--navy);border:2px solid var(--gold);cursor:pointer;animation:sc-cta-pulse 2.6s ease-out infinite;transition:transform .15s}
.cta-chat:hover{transform:translateY(-2px)}.cta-chat:active{transform:scale(.98)}
.cta-chat img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);flex:none}
.cta-chat span{flex:1;font-weight:800;font-size:1.05rem;line-height:1.2}.cta-chat small{display:block;font-weight:500;font-size:.74rem;color:var(--slate)}
.cta-chat b{font-size:1.3rem;animation:sc-nudge 1.6s ease-in-out infinite}
@keyframes sc-cta-pulse{0%{box-shadow:0 0 0 0 #b8923a80,0 10px 26px #0006}70%,100%{box-shadow:0 0 0 14px #b8923a00,0 10px 26px #0006}}
@keyframes sc-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@media(prefers-reduced-motion:reduce){.cta-chat,.cta-chat b{animation:none}.cta-chat:hover{transform:none}}

/* UX review pass (Codex): hero CTA compact, tap targets >=44px, safe areas, no launcher/CTA overlap */
.hero .cta-chat{display:inline-flex;width:auto;max-width:100%;min-height:56px;gap:10px;padding:6px 14px 6px 6px;margin:2px 0 14px;text-align:left;box-shadow:0 2px 10px #0004;animation:none}
.hero .cta-chat img{width:44px;height:44px;border-width:2px}
.hero .cta-chat span{font-size:1rem}.hero .cta-chat small{font-size:.72rem}.hero .cta-chat b{font-size:1rem}
.hero a.cta-chat{text-decoration:none;padding-left:16px}
.sc-open.away{opacity:0;visibility:hidden;pointer-events:none;animation:none}.sc-open{transition:opacity .2s}
.quick{min-height:44px;padding:10px 12px;font-size:.82rem}
.section,.notice{scroll-margin-top:84px}
.app{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
.bottom{padding-bottom:max(7px,env(safe-area-inset-bottom))}.bottom a{min-height:48px}
.card .actions{gap:2px 12px;margin-top:6px}.card .actions a{display:inline-flex;align-items:center;min-height:44px;padding:6px 0}
.story h3 a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;display:block;padding:6px 0}
.dlg .dlg-x{width:44px;height:44px}
.sc-log{min-height:0}
/* Chat mobile pass: sheet follows the visual viewport (keyboard), compact crisis bar, voice call */
html.sc-lock,html.sc-lock body{overflow:hidden;overscroll-behavior:none}
.sc-chat{height:min(82dvh,660px);max-height:100dvh;top:auto;bottom:0;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:480px){.sc-chat{height:var(--vvh,100dvh);top:var(--vvt,0);bottom:auto;border-radius:0;max-width:none}.sc-head{padding-top:max(10px,env(safe-area-inset-top))}}
.sc-head{flex:none;gap:10px;padding:10px 6px 10px 12px}.sc-head div{min-width:0}.sc-head strong,.sc-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-head button{flex:none}
.sc-crisis{flex:none;display:flex;align-items:center;gap:6px;padding:5px 12px;font-size:.74rem;line-height:1;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.sc-crisis::-webkit-scrollbar{display:none}
.sc-crisis b{color:#7a5c14;font-weight:800;margin-right:2px}
.sc-crisis a{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--gold);border-radius:999px;background:#fff;text-decoration:none;font-weight:750}
.sc-log{overflow-x:hidden;-webkit-overflow-scrolling:touch}
.sc-m{max-width:88%}
.sc-chips{flex:none;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px 12px 8px}.sc-chips::-webkit-scrollbar{display:none}.sc-chips button{flex:none;white-space:nowrap}
#sc-ts{flex:none}
.sc-form{flex:none}
.sc-note{flex:none;padding-bottom:max(8px,env(safe-area-inset-bottom))}
.sc-callui{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center;background:var(--navy);color:var(--cream)}
.sc-callui[hidden]{display:none}
.sc-callui img{width:112px;height:112px;border-radius:50%;object-fit:cover;border:3px solid var(--gold)}
.sc-callui strong{font:700 1.3rem Georgia,serif}.sc-callui p{margin:0}
.sc-callui [role=status]{font-size:1rem;color:#f0c96b;min-height:1.5em}
.sc-callui[data-state=speaking] img{animation:sc-breathe 1.6s ease-in-out infinite}
.sc-wave{display:flex;gap:5px;align-items:center;height:30px}.sc-wave i{width:5px;height:8px;border-radius:3px;background:#f0c96b;opacity:.45}
.sc-callui[data-state=listening] .sc-wave i{animation:sc-wave 1s ease-in-out infinite}.sc-callui[data-state=listening] .sc-wave i:nth-child(2){animation-delay:.12s}.sc-callui[data-state=listening] .sc-wave i:nth-child(3){animation-delay:.24s}.sc-callui[data-state=listening] .sc-wave i:nth-child(4){animation-delay:.36s}.sc-callui[data-state=listening] .sc-wave i:nth-child(5){animation-delay:.48s}
@keyframes sc-wave{0%,100%{height:8px}50%{height:28px;opacity:1}}
.sc-end{min-height:48px;padding:0 28px;border-radius:999px;border:0;background:#c0392b;color:#fff;font-weight:800;font-size:1rem;cursor:pointer}
.sc-callnote{font-size:.72rem;opacity:.8;max-width:30ch}
.sc-chat.calling #sc-log,.sc-chat.calling .sc-chips,.sc-chat.calling .sc-form,.sc-chat.calling .sc-note,.sc-chat.calling #sc-ts{display:none}
@media(prefers-reduced-motion:reduce){.sc-callui img,.sc-wave i{animation:none!important}}
/* Verification wait: spinners + a shimmer so the greyed-out form reads as "loading", not "broken". */
@keyframes sc-spin{to{transform:rotate(360deg)}}
@keyframes sc-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
[data-sc=tick] .sc-form input::placeholder{color:var(--navy);font-weight:700}
@media(prefers-reduced-motion:reduce){[data-sc=wait] .sc-bar{animation:none}[data-sc=wait] .sc-ib::after{animation-duration:2.4s}}
/* Call in progress: the header button turns green with a pulsing dot and reads "In call". */
@keyframes sc-live{0%{box-shadow:0 0 0 0 #ffffffa6}70%,100%{box-shadow:0 0 0 7px #fff0}}
/* Icons are inline SVG, not Unicode glyphs: iOS draws \260E and \2665 as colour emoji, so the bar looked different on phones. */
.ic{width:22px;height:22px;display:block;margin:0 auto 3px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bottom a svg.ic{margin-bottom:3px}
.sc-crisis a .ic{width:14px;height:14px;display:inline-block;margin:0 5px 0 0}

/* Composer (ChatGPT / Gemini style): one rounded bar, the field on the left, a mic that switches to voice and a round Send icon on the right. */
.sc-bar{display:flex;align-items:center;gap:6px;padding:4px 4px 4px 14px;border:1px solid var(--line);border-radius:999px;background:var(--cream);transition:border-color .15s,box-shadow .15s}
.sc-bar:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px #b8923a33}
.sc-bar input{flex:1;min-width:0;font:inherit;border:0;background:transparent;padding:10px 0;color:var(--navy);outline:none}
.sc-ib{flex:none;width:44px;height:44px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;position:relative;padding:0}
.sc-ib svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sc-ib[hidden]{display:none}
.sc-mic{background:transparent;color:var(--navy)}
.sc-mic:hover:not(:disabled){background:#0b254512}
.sc-sendb{background:var(--navy);color:#fff}
.sc-sendb:hover:not(:disabled){background:#12355f}
.sc-ib:disabled{opacity:.4;cursor:default}
.sc-ib:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.sc-bar input:disabled{opacity:.6}
/* Voice on: the mic glows green with a soft pulse and the voice screen replaces the transcript. */
@keyframes sc-live{0%{box-shadow:0 0 0 0 #17703d99}70%,100%{box-shadow:0 0 0 9px #17703d00}}
.sc-mic[data-call=on]{background:#17703d;color:#fff;animation:sc-live 1.6s ease-out infinite}
/* Verification wait: shimmer on the bar, spinners instead of the mic and send icons, so it reads "loading", not "broken". */
[data-sc=wait] .sc-bar{background:linear-gradient(90deg,var(--cream) 30%,#fff 50%,var(--cream) 70%) 0 0/200% 100%;animation:sc-shimmer 1.6s linear infinite}
[data-sc=wait] .sc-ib svg{opacity:0}
[data-sc=wait] .sc-ib::after{content:"";position:absolute;width:18px;height:18px;border:2px solid var(--navy);border-top-color:transparent;border-radius:50%;animation:sc-spin .8s linear infinite}
[data-sc=wait] .sc-sendb::after{border-color:#fff;border-top-color:transparent}
[data-sc=wait] .sc-ib:disabled{opacity:.85}
[data-sc=tick] .sc-bar input::placeholder{color:var(--navy);font-weight:700}
@media(max-width:480px){.sc-form{padding:8px 12px}.sc-bar input{font-size:16px}}/* 16px stops iOS zooming on focus */
@media(prefers-reduced-motion:reduce){.sc-mic[data-call=on]{animation:none}}
/* Voice screen "thinking": the five bars morph into dots and a bright pulse travels across them, so waiting reads as a different state
   from listening (tall bouncing bars). The same bars are reused, so nothing extra is added to the markup. */
.sc-wave i{transition:width .25s ease,height .25s ease,border-radius .25s ease}
.sc-callui[data-state=thinking] .sc-wave i{width:9px;height:9px;border-radius:50%;animation:sc-think 1.3s ease-in-out infinite}
.sc-callui[data-state=thinking] .sc-wave i:nth-child(2){animation-delay:.14s}
.sc-callui[data-state=thinking] .sc-wave i:nth-child(3){animation-delay:.28s}
.sc-callui[data-state=thinking] .sc-wave i:nth-child(4){animation-delay:.42s}
.sc-callui[data-state=thinking] .sc-wave i:nth-child(5){animation-delay:.56s}
@keyframes sc-think{0%,100%{opacity:.25;transform:translateY(0) scale(.7)}35%{opacity:1;transform:translateY(-6px) scale(1.3);box-shadow:0 0 10px #f0c96b99}60%{opacity:.5;transform:translateY(0) scale(.9)}}
.sc-callui[data-state=thinking] img{animation:sc-halo 2.4s ease-in-out infinite}
@keyframes sc-halo{0%,100%{box-shadow:0 0 0 0 #f0c96b00}50%{box-shadow:0 0 0 9px #f0c96b33}}
@media(prefers-reduced-motion:reduce){.sc-callui[data-state=thinking] .sc-wave i{opacity:.8}}

.credit{font-size:.8rem;line-height:1.5;color:var(--slate)}.credit a{font-weight:700}
