/* ============================================
   Tachwise landing page
   Dark, premium, mobile first. Otto the owl is the voice.
   ============================================ */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root {
    color-scheme: dark;
    --bg: #06070b;
    --bg2: #0c0d14;
    --bg3: #11121c;
    --surface: #161825;
    --surface2: #1c1e2e;
    --border: #232538;
    --border2: #2e3148;
    --text: #eef0f6;
    --text2: #a3a6ba;   /* 7.3:1 on --surface */
    --text3: #878aa0;   /* 5.9:1 on --bg, 5.2:1 on --surface (was #5d6075, 3.3:1) */
    --primary: #6366f1;
    --primary-l: #a5b4fc;
    --accent: #06b6d4;
    --green: #34d399;
    --amber: #fbbf24;
    --rose: #fb7185;
    --cyan-l: #67e8f9;
    --grad: linear-gradient(135deg, #6366f1 0%, #0891b2 100%);
    /* Lighter than the old #818cf8 -> #22d3ee so gradient words stay readable
       on the near-black background (Gerrit's review). */
    --grad-text: linear-gradient(135deg, #c7d2fe 0%, #a5b4fc 35%, #67e8f9 100%);
    --r-sm: 10px;
    --r-md: 14px;
    --r-lg: 20px;
    --r-xl: 28px;
    --gutter: 16px;
    --nav-h: 64px;
}
@media (min-width: 768px) { :root { --gutter: 24px; } }

html { scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 12px); -webkit-font-smoothing:antialiased; -webkit-text-size-adjust:100%; }
body { font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; background:var(--bg); color:var(--text); line-height:1.6; overflow-x:clip; }
main, section, footer { max-width:100%; overflow-x:clip; }
.container { max-width:1200px; margin:0 auto; padding:0 var(--gutter); }
.container-narrow { max-width:820px; }
a { color:inherit; }
img, svg { max-width:100%; }
.svg-defs { position:absolute; width:0; height:0; overflow:hidden; }
.skip-link { position:absolute; left:var(--gutter); top:-60px; z-index:200; background:var(--text); color:var(--bg); padding:10px 16px; border-radius:var(--r-sm); font-weight:600; text-decoration:none; }
.skip-link:focus { top:12px; }
:focus-visible { outline:2px solid var(--cyan-l); outline-offset:3px; border-radius:4px; }

.gradient-text { background:var(--grad-text); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

/* ===== NAV ===== */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:14px 0; transition:background .3s, padding .3s, border-color .3s; border-bottom:1px solid transparent; }
.nav-scrolled { background:rgba(6,7,11,.88); backdrop-filter:blur(24px) saturate(1.4); -webkit-backdrop-filter:blur(24px) saturate(1.4); border-bottom-color:var(--border); padding:10px 0; }
.nav-container { max-width:1200px; margin:0 auto; padding:0 var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.nav-logo { display:flex; align-items:center; gap:10px; font-weight:700; font-size:1.15rem; text-decoration:none; letter-spacing:-.01em; }
.logo-svg { width:34px; height:34px; flex-shrink:0; }
.nav-links { display:none; gap:28px; }
.nav-links a { color:var(--text2); font-size:.9rem; font-weight:500; text-decoration:none; transition:color .2s; }
.nav-links a:hover { color:var(--text); }
@media (min-width: 900px) { .nav-links { display:flex; } }

/* ===== BUTTONS ===== */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 24px; border-radius:var(--r-sm); font-weight:600; font-size:.95rem; border:none; cursor:pointer; transition:transform .25s, box-shadow .25s, background .25s, border-color .25s; font-family:inherit; text-decoration:none; }
.btn-nav { min-height:40px; background:rgba(99,102,241,.14); color:var(--primary-l); border:1px solid rgba(129,140,248,.35); padding:8px 16px; font-size:.86rem; white-space:nowrap; }
.btn-nav:hover { background:rgba(99,102,241,.24); }
.btn-glow { background:var(--grad); color:#fff; box-shadow:0 4px 20px rgba(99,102,241,.35), inset 0 1px 0 rgba(255,255,255,.1); }
.btn-glow:hover { box-shadow:0 8px 35px rgba(99,102,241,.45), inset 0 1px 0 rgba(255,255,255,.15); transform:translateY(-2px); }
.btn-glass { background:rgba(255,255,255,.05); color:var(--text); border:1px solid var(--border2); backdrop-filter:blur(10px); }
.btn-glass:hover { background:rgba(255,255,255,.09); border-color:#3d4160; }
.btn-block { width:100%; }
.btn[disabled] { opacity:.65; cursor:progress; transform:none; }

/* ===== HERO ===== */
.hero { position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; padding:96px 0 56px; overflow:hidden; }
.hero-aurora, .cta-aurora { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.aurora { position:absolute; border-radius:50%; filter:blur(120px); }
.a1 { width:700px; height:600px; background:rgba(99,102,241,.13); top:-250px; left:-150px; animation:aurora1 12s ease-in-out infinite; }
.a2 { width:500px; height:500px; background:rgba(6,182,212,.08); bottom:-150px; right:-100px; animation:aurora2 15s ease-in-out infinite; }
.a3 { width:400px; height:400px; background:rgba(167,139,250,.06); top:30%; left:40%; animation:aurora3 18s ease-in-out infinite; }
@keyframes aurora1 { 0%,100%{transform:translate(0,0)} 50%{transform:translate(60px,40px)} }
@keyframes aurora2 { 0%,100%{transform:translate(0,0)} 50%{transform:translate(-50px,-30px)} }
@keyframes aurora3 { 0%,100%{transform:translate(0,0)scale(1)} 50%{transform:translate(30px,-40px)scale(1.1)} }

.hero-grid-bg { position:absolute; inset:0; background-image:linear-gradient(rgba(99,102,241,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.04) 1px,transparent 1px); background-size:64px 64px; mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%); -webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%); pointer-events:none; }
.hero-particles { position:absolute; inset:0; pointer-events:none; }
.particle { position:absolute; background:var(--primary-l); border-radius:50%; animation:float linear infinite; }
@keyframes float { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-40px) scale(1.3)} 100%{transform:translateY(0) scale(1)} }

.hero-container { display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:center; position:relative; z-index:2; text-align:center; }
.hero-text { min-width:0; }

.hero-chip { display:inline-flex; align-items:center; gap:8px; padding:6px 14px; background:rgba(99,102,241,.1); border:1px solid rgba(129,140,248,.25); border-radius:100px; font-size:.82rem; font-weight:500; color:var(--primary-l); margin-bottom:24px; }
.chip-pulse { width:6px; height:6px; background:var(--green); border-radius:50%; box-shadow:0 0 8px var(--green); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.8)} }

.hero h1 { font-size:clamp(2.3rem, 9.5vw, 4.4rem); font-weight:800; line-height:1.06; letter-spacing:-.04em; margin-bottom:22px; overflow-wrap:break-word; }
.hero-line { display:block; }
.hero h1 em { font-style:normal; }

.hero-desc { font-size:1.06rem; color:var(--text2); line-height:1.75; margin:0 auto 32px; max-width:560px; }
.hero-ctas { display:flex; flex-direction:column; align-items:stretch; gap:12px; margin:0 auto 14px; max-width:360px; }
.hero-note { font-size:.84rem; color:var(--text3); max-width:460px; margin:0 auto 36px; }

.hero-proof { display:flex; flex-direction:column; align-items:center; gap:12px; }
.proof-item { display:flex; flex-direction:column; }
.proof-item strong { font-size:1.15rem; font-weight:700; }
.proof-item span { font-size:.74rem; color:var(--text3); text-transform:uppercase; letter-spacing:.06em; }
.proof-sep { width:40px; height:1px; background:var(--border2); }

@media (min-width: 560px) {
    .hero-ctas { flex-direction:row; justify-content:center; max-width:none; }
    .hero-proof { flex-direction:row; justify-content:center; gap:20px; }
    .proof-sep { width:1px; height:36px; }
}
@media (min-width: 1025px) {
    .hero-container { grid-template-columns:minmax(0,1fr) 400px; gap:60px; text-align:left; }
    .hero-desc, .hero-note { margin-left:0; }
    .hero-ctas, .hero-proof { justify-content:flex-start; }
}

/* ===== PHONE MOCKUP ===== */
.hero-phone-wrap { position:relative; display:flex; flex-direction:column; align-items:center; }
.phone-glow { position:absolute; width:300px; height:300px; max-width:100%; background:radial-gradient(circle,rgba(99,102,241,.22),transparent 70%); top:45%; left:50%; transform:translate(-50%,-50%); pointer-events:none; }
.phone { width:min(280px, 100%); background:linear-gradient(145deg,#1a1c2e,#13141f); border-radius:36px; padding:8px; box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06),inset 0 1px 0 rgba(255,255,255,.05); position:relative; text-align:left; }
.phone-notch { width:80px; height:24px; background:#0a0b10; border-radius:0 0 16px 16px; margin:0 auto; position:relative; z-index:10; }
.phone-screen { background:#0a0b10; border-radius:28px; overflow:hidden; min-height:540px; position:relative; padding-bottom:64px; line-height:1.4; }
.phone-caption { margin-top:14px; font-size:.78rem; color:var(--text3); text-align:center; max-width:280px; }

.app-statusbar { display:flex; justify-content:space-between; align-items:center; padding:4px 16px 8px; font-size:.68rem; font-weight:600; color:#fff; }
.statusbar-right { display:flex; gap:6px; align-items:center; }
.app-header-home { display:flex; justify-content:space-between; align-items:center; padding:4px 16px 10px; }
.app-greeting { font-size:.74rem; color:var(--text3); }
.app-car-name { font-size:.95rem; font-weight:700; }
.app-otto { width:34px; height:34px; }

.app-verdict { margin:4px 12px 8px; display:flex; gap:10px; align-items:center; padding:10px 12px; border-radius:var(--r-sm); background:rgba(52,211,153,.07); border:1px solid rgba(52,211,153,.2); }
.verdict-icon { width:28px; height:28px; border-radius:8px; background:rgba(52,211,153,.14); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.app-verdict strong { display:block; font-size:.8rem; color:var(--green); }
.app-verdict span { font-size:.64rem; color:var(--text2); }

.otto-note { margin:0 12px 8px; display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border-radius:var(--r-sm); background:rgba(251,191,36,.07); border:1px solid rgba(251,191,36,.22); }
.otto-note-avatar { width:30px; height:30px; flex-shrink:0; }
.otto-note-text { font-size:.7rem; line-height:1.45; color:var(--text); }
.otto-note-name { display:block; font-size:.62rem; font-weight:700; color:var(--amber); text-transform:uppercase; letter-spacing:.08em; margin-bottom:2px; }

.app-quick-stats { display:flex; gap:6px; padding:0 12px 8px; }
.qs { flex:1; min-width:0; background:var(--surface); border-radius:var(--r-sm); padding:8px; text-align:center; }
.qs-val { font-size:.82rem; font-weight:700; display:block; }
.qs-label { font-size:.58rem; color:var(--text3); }

.app-mini-chart { margin:0 12px; background:var(--surface); border-radius:var(--r-sm); padding:8px 10px 6px; }
.amc-head { display:flex; justify-content:space-between; font-size:.6rem; color:var(--text3); margin-bottom:4px; }
.app-mini-chart svg { width:100%; height:54px; display:block; }
.chart-line { stroke-dasharray:400; stroke-dashoffset:400; animation:drawLine 2s ease .3s forwards; }
@keyframes drawLine { to { stroke-dashoffset:0; } }

.app-tab-bar { position:absolute; bottom:0; left:0; right:0; display:flex; background:rgba(10,11,16,.92); border-top:1px solid var(--border); padding:6px 0 12px; }
.tab { flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; font-size:.6rem; color:var(--text3); padding:6px 0; }
.tab svg { width:18px; height:18px; }
.tab.active { color:var(--primary-l); }

/* ===== SECTIONS ===== */
.section { padding:88px 0; position:relative; }
.section-dark { background:var(--bg2); }
.section-header { text-align:center; margin-bottom:48px; }
.section-tag { display:inline-block; font-size:.78rem; font-weight:600; color:var(--primary-l); text-transform:uppercase; letter-spacing:.12em; margin-bottom:14px; }
.section-header h2, .canada-title { font-size:clamp(1.9rem, 6.5vw, 3rem); font-weight:800; letter-spacing:-.03em; line-height:1.15; margin-bottom:16px; }
.section-desc { font-size:1.04rem; color:var(--text2); max-width:560px; margin:0 auto; }
@media (min-width: 768px) { .section { padding:120px 0; } .section-header { margin-bottom:64px; } }

/* Reveal on scroll: only hidden when JS is running to reveal it again. */
.js .reveal { opacity:0; transform:translateY(28px); transition:opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1); }
.js .reveal.visible { opacity:1; transform:none; }

/* ===== TAGS ===== */
.tag { display:inline-block; font-size:.7rem; font-weight:600; letter-spacing:.04em; padding:3px 10px; border-radius:100px; margin-bottom:12px; }
.tag-device { color:var(--amber); background:rgba(251,191,36,.1); border:1px solid rgba(251,191,36,.25); }
.tag-both { color:var(--cyan-l); background:rgba(103,232,249,.08); border:1px solid rgba(103,232,249,.22); }

/* ===== BENTO (what it watches) ===== */
.bento-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.bento-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:24px; min-width:0; }
.bento-card:hover { border-color:var(--border2); }
.bento-wide { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:center; }
.bento-gradient { background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(6,182,212,.05)); border-color:rgba(129,140,248,.2); }
.bento-dark { background:var(--bg3); }
.bento-icon { width:48px; height:48px; background:rgba(99,102,241,.1); border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.bento-card h3 { font-size:1.2rem; font-weight:700; margin-bottom:8px; }
.bento-card p { color:var(--text2); font-size:.95rem; line-height:1.65; }
@media (min-width: 768px) {
    .bento-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .bento-card { padding:32px; }
    .bento-wide { grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.bento-visual { margin:0; }
.bento-visual figcaption { font-size:.74rem; color:var(--text3); margin-top:6px; text-align:right; }
.curve-chart { width:100%; max-width:440px; height:auto; display:block; margin-left:auto; }
.curve-chart .axis { stroke:var(--border2); stroke-width:1.5; }
.curve-good { stroke:var(--green); stroke-width:3; fill:none; stroke-linecap:round; }
.curve-weak { stroke:var(--amber); stroke-width:3; fill:none; stroke-linecap:round; stroke-dasharray:7 6; }
.curve-label { font-size:12px; font-weight:600; font-family:inherit; }
.curve-label-good { fill:var(--green); }
.curve-label-weak { fill:var(--amber); }
.axis-label { font-size:11px; fill:var(--text3); font-family:inherit; }

.otto-samples { display:flex; flex-direction:column; gap:10px; }
.otto-sample { display:flex; gap:12px; align-items:flex-start; background:var(--bg); border:1px solid var(--border); border-radius:var(--r-md); padding:12px 14px; }
.otto-sample svg { width:34px; height:34px; flex-shrink:0; }
.otto-sample span { color:var(--text); font-size:.92rem; line-height:1.55; }

.honest-note { text-align:center; color:var(--text2); font-size:.92rem; margin-top:28px; }
.honest-note a, .faq a { color:var(--primary-l); text-underline-offset:3px; }

/* ===== TWO WAYS IN ===== */
.ways-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; max-width:980px; margin:0 auto; }
@media (min-width: 860px) { .ways-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.way-card { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); padding:28px 22px; min-width:0; }
@media (min-width: 560px) { .way-card { padding:36px 32px; } }
.way-card-device { border-color:rgba(129,140,248,.45); background:linear-gradient(180deg,rgba(99,102,241,.1) 0%,var(--surface) 45%); box-shadow:0 0 60px rgba(99,102,241,.08); }
.way-step { font-size:.74rem; font-weight:700; color:var(--primary-l); text-transform:uppercase; letter-spacing:.1em; margin-bottom:10px; }
.way-card h3 { font-size:1.45rem; font-weight:800; letter-spacing:-.02em; margin-bottom:12px; }
.way-card > p { color:var(--text2); margin-bottom:20px; }
.way-list { list-style:none; margin-bottom:28px; flex:1; }
.way-list li { position:relative; padding:10px 0 10px 20px; border-top:1px solid var(--border); color:var(--text2); font-size:.93rem; }
.way-list li::before { content:''; position:absolute; left:2px; top:19px; width:6px; height:6px; border-radius:50%; background:var(--primary-l); }
.way-list strong { color:var(--text); font-weight:600; }
.way-foot { margin-top:10px; text-align:center; font-size:.8rem; color:var(--text3); }

/* ===== CANADA ===== */
.canada-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:center; }
@media (min-width: 900px) { .canada-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:64px; } }
.canada-copy { color:var(--text2); font-size:1.04rem; line-height:1.75; margin-bottom:16px; max-width:600px; }
.canada-points { list-style:none; display:flex; flex-direction:column; gap:14px; }
.canada-points li { display:flex; gap:14px; align-items:flex-start; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:18px 20px; }
.canada-points svg { flex-shrink:0; margin-top:2px; }
.canada-points strong { display:block; font-size:1rem; margin-bottom:2px; }
.canada-points span { color:var(--text2); font-size:.9rem; }

/* ===== ROADMAP ===== */
.roadmap { max-width:680px; margin:0 auto; list-style:none; }
.rm-item { display:flex; gap:18px; }
.rm-marker { display:flex; flex-direction:column; align-items:center; padding-top:4px; }
.rm-dot { width:14px; height:14px; border-radius:50%; background:var(--surface); border:2px solid var(--border2); flex-shrink:0; }
.rm-done .rm-dot { background:var(--green); border-color:var(--green); }
.rm-active .rm-dot { background:var(--primary); border-color:var(--primary-l); box-shadow:0 0 16px rgba(99,102,241,.5); }
.rm-line { width:2px; flex:1; background:var(--border); margin:4px 0; }
.rm-body { padding-bottom:32px; min-width:0; }
.rm-phase { font-size:.74rem; font-weight:700; color:var(--primary-l); text-transform:uppercase; letter-spacing:.08em; }
.rm-done .rm-phase { color:var(--green); }
.rm-body h3 { font-size:1.18rem; font-weight:700; margin:4px 0 6px; }
.rm-body p { color:var(--text2); font-size:.94rem; line-height:1.65; }

/* ===== FAQ ===== */
.faq { display:flex; flex-direction:column; gap:10px; }
.faq details { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); }
.faq details[open] { border-color:var(--border2); }
.faq summary { cursor:pointer; list-style:none; padding:18px 52px 18px 20px; font-weight:600; font-size:1rem; position:relative; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:''; position:absolute; right:22px; top:50%; width:9px; height:9px; border-right:2px solid var(--text2); border-bottom:2px solid var(--text2); transform:translateY(-70%) rotate(45deg); transition:transform .2s; }
.faq details[open] summary::after { transform:translateY(-30%) rotate(-135deg); }
.faq-body { padding:0 20px 18px; }
.faq-body p { color:var(--text2); font-size:.95rem; line-height:1.7; }
.faq-body p + p { margin-top:10px; }

/* ===== WAITLIST ===== */
.section-cta { overflow:hidden; }
.section-cta .a1 { top:0; left:20%; }
.section-cta .a2 { bottom:-100px; right:10%; }
.cta-box { position:relative; z-index:2; max-width:640px; margin:0 auto; text-align:center; }
.cta-otto { width:72px; height:72px; margin-bottom:12px; }
.cta-box h2 { font-size:clamp(2rem, 7vw, 3.2rem); font-weight:800; letter-spacing:-.03em; line-height:1.12; margin-bottom:16px; }
.cta-box > p { color:var(--text2); font-size:1.04rem; max-width:520px; margin:0 auto 32px; }

.wl-form { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; text-align:left; background:rgba(22,24,37,.72); border:1px solid var(--border); border-radius:var(--r-xl); padding:22px 18px; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
@media (min-width: 560px) { .wl-form { grid-template-columns:repeat(2,minmax(0,1fr)); padding:32px; } .field-full, .field-group { grid-column:1 / -1; } }
.field { display:flex; flex-direction:column; gap:6px; min-width:0; }
.field label, .field-group legend { font-size:.88rem; font-weight:600; color:var(--text); }
.req { color:var(--rose); }
.opt { color:var(--text3); font-weight:400; }
.field-group { border:none; display:grid; grid-template-columns:minmax(0,1fr); gap:12px; min-width:0; }
.field-group legend { margin-bottom:8px; padding:0; }
.field-group .field label { font-weight:500; color:var(--text2); font-size:.82rem; }
@media (min-width: 560px) { .field-group { grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr); } }

.wl-form input[type="email"], .wl-form input[type="text"], .wl-form select {
    width:100%; min-height:48px; padding:12px 14px; background:var(--bg); border:1px solid var(--border2); border-radius:var(--r-sm);
    color:var(--text); font-size:16px; font-family:inherit; transition:border-color .2s, box-shadow .2s; appearance:none; -webkit-appearance:none;
}
.wl-form select { background-image:linear-gradient(45deg,transparent 50%,var(--text2) 50%),linear-gradient(135deg,var(--text2) 50%,transparent 50%); background-position:calc(100% - 18px) 21px, calc(100% - 13px) 21px; background-size:5px 5px; background-repeat:no-repeat; padding-right:36px; }
.wl-form input::placeholder { color:#7c7f96; }
.wl-form input:focus, .wl-form select:focus { outline:none; border-color:var(--primary-l); box-shadow:0 0 0 3px rgba(129,140,248,.25); }
.wl-form [aria-invalid="true"] { border-color:var(--rose); }
.field-err { color:var(--rose); font-size:.82rem; min-height:0; }
.field-err:empty { display:none; }

.consent { flex-direction:row; align-items:flex-start; gap:12px; padding:14px; border:1px solid var(--border); border-radius:var(--r-md); background:rgba(6,7,11,.5); }
.consent input { width:22px; height:22px; margin-top:1px; flex-shrink:0; accent-color:var(--primary); cursor:pointer; }
.consent label { cursor:pointer; }
.consent-main { display:block; font-weight:600; font-size:.95rem; }
.consent-fine { display:block; font-weight:400; font-size:.84rem; color:var(--text2); margin-top:2px; }

.hp { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.btn-submit { margin-top:4px; }
.form-note { font-size:.8rem; color:var(--text3); margin-top:10px; text-align:center; }

.form-status { max-width:640px; margin:0 auto; text-align:left; }
.form-status:empty { display:none; }
.form-status { margin-bottom:16px; padding:14px 16px; border-radius:var(--r-md); font-size:.95rem; }
.form-status.is-error { background:rgba(251,113,133,.08); border:1px solid rgba(251,113,133,.35); color:#fecdd3; }
.form-status.is-success { background:rgba(52,211,153,.08); border:1px solid rgba(52,211,153,.35); color:#d1fae5; display:flex; gap:12px; align-items:flex-start; }
.form-status.is-success svg { width:40px; height:40px; flex-shrink:0; }
.form-status strong { display:block; color:#fff; }

/* ===== FOOTER ===== */
.footer { background:var(--bg2); border-top:1px solid var(--border); padding:40px 0 24px; }
.footer-top { display:flex; flex-direction:column; gap:24px; margin-bottom:28px; }
@media (min-width: 768px) { .footer-top { flex-direction:row; justify-content:space-between; align-items:flex-start; } }
.footer-brand p { color:var(--text2); font-size:.88rem; margin-top:10px; }
.footer-links { display:flex; flex-wrap:wrap; gap:8px 20px; }
.footer-links a { color:var(--text2); font-size:.88rem; text-decoration:none; padding:6px 0; transition:color .2s; }
.footer-links a:hover { color:var(--text); }
.footer-bottom { padding-top:20px; border-top:1px solid var(--border); text-align:center; }
.footer-bottom p { color:var(--text3); font-size:.8rem; }

/* ===== MOTION ===== */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    .chart-line { stroke-dashoffset:0; }
    .particle { display:none; }
}
