
:root{
  --bg:#0a0c12; --bg-soft:#0e111a; --bg-card:#13161f;
  --fg:#edeff4; --fg-muted:#aab2c2; --fg-faint:#8a93a4;
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16);
  --accent:#8b86ff; --accent-2:#45a8ff; --accent-ink:#0a0c12;
  --grad:linear-gradient(100deg,#8b86ff,#45a8ff);
  --btn-grad:linear-gradient(100deg,#4a3fd0,#1f6fcf);
  --accent-soft:rgba(139,134,255,.15);
  --sky:#45a8ff; --teal:#35d4c0; --violet:#b07bff;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 20px 54px rgba(0,0,0,.5);
  --radius:16px; --radius-sm:12px; --maxw:1120px;
  --display:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:dark;
}
@media (prefers-color-scheme:light){
  :root:not([data-theme="dark"]){
    --bg:#fbfbfd; --bg-soft:#f3f5f9; --bg-card:#ffffff;
    --fg:#0f1117; --fg-muted:#4a5260; --fg-faint:#5f6675;
    --line:rgba(16,18,26,.10); --line-2:rgba(16,18,26,.18);
    --accent:#5b4be0; --accent-2:#2a86e6; --accent-ink:#ffffff;
    --grad:linear-gradient(100deg,#5b4be0,#2a86e6);
    --btn-grad:linear-gradient(100deg,#4334c4,#135fbf);
    --accent-soft:rgba(91,75,224,.10);
    --sky:#2a86e6; --teal:#0d9a89; --violet:#7d4fe0;
    --shadow:0 1px 2px rgba(16,18,26,.05),0 18px 46px rgba(16,18,26,.09);
    color-scheme:light;
  }
}
:root[data-theme="light"]{
  --bg:#fbfbfd; --bg-soft:#f3f5f9; --bg-card:#ffffff;
  --fg:#0f1117; --fg-muted:#545c6a; --fg-faint:#88909e;
  --line:rgba(16,18,26,.10); --line-2:rgba(16,18,26,.18);
  --accent:#5b4be0; --accent-2:#2a86e6; --accent-ink:#ffffff;
  --grad:linear-gradient(100deg,#5b4be0,#2a86e6);
  --accent-soft:rgba(91,75,224,.10);
  --sky:#2a86e6; --teal:#0d9a89; --violet:#7d4fe0;
  --shadow:0 1px 2px rgba(16,18,26,.05),0 18px 46px rgba(16,18,26,.09);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:60}
h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;line-height:1.05;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:max(20px,env(safe-area-inset-left,0px)) max(20px,env(safe-area-inset-right,0px))}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:220% 100%;animation:gradshift 9s ease-in-out infinite alternate}
@keyframes gradshift{to{background-position:100% 0}}
.eyebrow{font-family:var(--body);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
section[id]{scroll-margin-top:84px}
.section > .container{padding-block:clamp(58px,8vw,104px)}
.section.soft{background:var(--bg-soft);border-block:1px solid var(--line)}
.section-head{max-width:56ch;display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(32px,5vw,52px)}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.section-head p{color:var(--fg-muted)}

.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:61;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.site-header .container{display:flex;align-items:center;gap:20px;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:1.1rem;letter-spacing:-.01em;white-space:nowrap}
.brand .dot{width:11px;height:11px;border-radius:50%;background:var(--grad);flex:none}
.nav-links{display:flex;gap:28px;margin-inline-start:26px}
.nav-links a{font-size:.93rem;color:var(--fg-muted);transition:color .15s}
.nav-links a:hover{color:var(--fg)}
.nav-right{margin-inline-start:auto;display:flex;align-items:center;gap:11px}
.btn{font-family:var(--body);font-weight:600;font-size:.91rem;border:1px solid var(--line-2);background:transparent;color:var(--fg);padding:10px 18px;border-radius:999px;cursor:pointer;transition:border-color .15s,transform .06s,background .15s;white-space:nowrap}
.btn:hover{border-color:var(--fg-muted)}
.btn:active{transform:translateY(1px)}
.btn-accent{background:var(--btn-grad);color:#fff;border:0;box-shadow:0 6px 20px -6px color-mix(in srgb,var(--accent) 70%,transparent)}
.btn-accent:hover{filter:brightness(1.07)}
.btn-lg{padding:14px 26px;font-size:1rem}

.lang{position:relative}
.lang-toggle{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--fg-muted);background:transparent;border:1px solid var(--line);border-radius:999px;padding:9px 13px;cursor:pointer;transition:border-color .15s,color .15s}
.lang-toggle:hover{color:var(--fg);border-color:var(--line-2)}
.lang-toggle svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7}
.lang-menu{position:absolute;inset-inline-end:0;top:calc(100% + 8px);background:var(--bg-card);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:6px;min-width:176px;box-shadow:var(--shadow);z-index:70;display:grid;gap:1px}
.lang-menu button{display:flex;justify-content:space-between;gap:12px;align-items:baseline;width:100%;text-align:start;background:transparent;border:0;color:var(--fg);font-family:var(--body);font-size:.9rem;padding:9px 11px;border-radius:8px;cursor:pointer}
.lang-menu button .code{font-size:.72rem;color:var(--fg-faint);letter-spacing:.04em}
.lang-menu button:hover,.lang-menu button[aria-current="true"]{background:var(--accent-soft)}
.lang-menu button[aria-current="true"] .code{color:var(--accent)}

.icon-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;color:var(--fg-muted);background:transparent;border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:border-color .15s,color .15s}
.icon-btn:hover{color:var(--fg);border-color:var(--line-2)}
.icon-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.hero{position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;width:min(560px,72vw);aspect-ratio:1;border-radius:50%;left:var(--gx,80%);top:var(--gy,-2%);transform:translate(-50%,-50%);background:radial-gradient(circle,color-mix(in srgb,var(--accent) 42%,transparent),transparent 62%);filter:blur(34px);opacity:.5;pointer-events:none;transition:left .3s ease-out,top .3s ease-out}
.hero .container{position:relative;padding-block:clamp(58px,9vw,114px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(26px,4vw,54px);align-items:center}
.hero-main{display:flex;flex-direction:column;gap:24px;min-width:0}
.hero-cat{position:relative;display:flex;justify-content:flex-end;min-width:0}
.hero-cat::before{content:"";position:absolute;inset:4%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 20%,transparent),transparent 66%);filter:blur(16px);z-index:0}
.cat{position:relative;z-index:1;width:min(330px,72vw);line-height:0}
@media (prefers-reduced-motion:no-preference){.cat{animation:catfloat 6.5s ease-in-out infinite}}
@keyframes catfloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-6px) rotate(-.5deg)}}
.cat-img{display:block;width:100%;height:auto;-webkit-user-drag:none;user-select:none;pointer-events:none;filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}
.eye{position:absolute;transform:translate(-50%,-50%);width:8.95%;height:6.52%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 44% 36%,var(--iris-hi),var(--iris) 52%,var(--iris-lo) 100%);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.55),inset 0 -2px 5px rgba(0,0,0,.4),inset 0 2px 4px rgba(255,255,255,.12);--iris:#a39a68;--iris-hi:#c6bd8b;--iris-lo:#6f6844}
.eye-l{left:55.26%;top:23.49%}
.eye-r{left:74.08%;top:24.98%}
.pupil{position:absolute;left:50%;top:50%;width:48%;height:60%;border-radius:50%;background:radial-gradient(circle at 42% 34%,#2d2d2d,#050504 70%);transform:translate(-50%,-50%);transition:transform .14s ease-out;will-change:transform}
.pupil::after{content:"";position:absolute;left:23%;top:15%;width:30%;height:30%;border-radius:50%;background:rgba(255,255,255,.92)}
.lid{position:absolute;inset:-1px;background:linear-gradient(#050505,#161616);border-radius:0 0 46% 46%/0 0 42% 42%;transform:translateY(-103%)}
@media (prefers-reduced-motion:no-preference){.lid{animation:blink 6.2s ease-in-out infinite}}
@keyframes blink{0%,90%,100%{transform:translateY(-103%)}94%,96%{transform:translateY(1%)}}
.hero .eyebrow{max-width:max-content}
.hero h1{font-size:clamp(2.6rem,6.4vw,4.4rem);font-weight:800;max-width:22ch}
.hero .lead{font-size:clamp(1.08rem,1.7vw,1.3rem);color:var(--fg-muted);max-width:52ch}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:18px;align-items:start}
.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:border-color .16s;overflow:hidden}
.card:hover,.card.open{border-color:var(--line-2)}
.itile{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);flex:none}
.itile svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.itile.sky{color:var(--sky);background:color-mix(in srgb,var(--sky) 15%,transparent)}
.itile.teal{color:var(--teal);background:color-mix(in srgb,var(--teal) 15%,transparent)}
.itile.violet{color:var(--violet);background:color-mix(in srgb,var(--violet) 15%,transparent)}
.card-head{display:flex;align-items:center;gap:14px;width:100%;background:none;border:0;cursor:pointer;padding:22px;text-align:start;font:inherit;color:inherit}
.card-head h3{flex:1;min-width:0;font-size:1.12rem;font-weight:700;letter-spacing:-.01em}
.chev{width:18px;height:18px;flex:none;stroke:var(--fg-faint);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.card.open .chev,.sec-item.open .chev{transform:rotate(180deg)}
.card-body,.sec-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}
.card.open .card-body,.sec-item.open .sec-body{grid-template-rows:1fr}
.card-body-inner,.sec-body-inner{overflow:hidden;min-height:0}
.card-body p{font-size:.93rem;color:var(--fg-muted);padding:0 22px 22px;line-height:1.55}

.sec-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(26px,5vw,60px);align-items:center}
.sec-ttl{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:14px 0 16px}
.sec-lead{font-size:clamp(1.08rem,1.7vw,1.3rem);color:var(--fg-muted);line-height:1.5}
.sec-list{display:flex;flex-direction:column;gap:10px}
.sec-item{background:var(--bg-card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;transition:border-color .16s}
.sec-item:hover,.sec-item.open{border-color:var(--line-2)}
.sec-head{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;cursor:pointer;padding:14px 20px;text-align:start;font:inherit;font-weight:600;color:inherit}
.sec-head .dot2{width:8px;height:8px;border-radius:50%;background:var(--grad);flex:none}
.sec-head .lbl{flex:1;min-width:0}
.sec-body p{font-size:.9rem;color:var(--fg-muted);padding:0 20px 16px 40px;line-height:1.5}

.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
.step{min-width:0;display:flex;flex-direction:column;gap:10px}
.step .num{font-family:var(--display);font-weight:700;font-size:1.1rem;color:transparent;background:var(--grad);-webkit-background-clip:text;background-clip:text;letter-spacing:.02em}
.step h3{font-size:1.18rem}
.step p{font-size:.93rem;color:var(--fg-muted)}

.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,60px);align-items:start}
.contact-intro{display:flex;flex-direction:column;gap:16px;min-width:0}
.contact-intro h2{font-size:clamp(1.8rem,3.4vw,2.5rem)}
.contact-intro p{color:var(--fg-muted)}
.contact-mail{font-size:.97rem;color:var(--accent);font-weight:600;border:1px solid var(--line-2);border-radius:999px;padding:12px 20px;user-select:all;word-break:break-all;align-self:flex-start}
.confid{font-size:.85rem;color:var(--fg-faint)}
.confid.note{line-height:1.5;max-width:60ch}
.contact-form{display:grid;gap:13px;min-width:0;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,3vw,28px);box-shadow:var(--shadow)}
.field{display:grid;gap:6px}
.field label{font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-faint);font-weight:600}
.field input,.field textarea{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--fg);font:inherit;padding:12px 14px}
.field textarea{min-height:106px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--fg-faint)}
.form-note{font-size:.85rem;color:var(--accent);font-weight:600}

.site-footer{border-top:1px solid var(--line);background:var(--bg-soft)}
.site-footer .container{padding-block:46px;display:flex;flex-direction:column;gap:30px}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px}
.foot-brand{display:flex;flex-direction:column;gap:11px;max-width:34ch}
.foot-brand p{color:var(--fg-muted);font-size:.92rem}
.foot-cols{display:flex;flex-wrap:wrap;gap:46px}
.foot-col{display:flex;flex-direction:column;gap:9px}
.foot-col .h{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);font-weight:600}
.foot-col a{font-size:.9rem;color:var(--fg-muted);transition:color .15s}
.foot-col a:hover{color:var(--fg)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:20px;font-size:.78rem;color:var(--fg-faint)}

.consent{position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--bg-card);border-top:1px solid var(--line-2);box-shadow:0 -14px 40px rgba(0,0,0,.3);padding:16px 0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.consent .container{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.consent p{font-size:.88rem;color:var(--fg-muted);flex:1;min-width:240px}
.consent .consent-actions{display:flex;gap:10px;align-items:center}
.consent a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}

@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:12px}
  .hero-cat{margin-top:6px;justify-content:center}
  .cat{width:min(268px,64vw)}
  .sec-grid{grid-template-columns:1fr;gap:26px}
  .steps{grid-template-columns:1fr 1fr;gap:26px}
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width:600px){ .nav-links{display:none} .steps{grid-template-columns:1fr} .site-header .btn-accent{display:none} }
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

@keyframes talkbob{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-2px) rotate(.4deg)}60%{transform:translateY(1px) rotate(-.3deg)}}
@media (prefers-reduced-motion:no-preference){.cat.talking{animation:talkbob .5s ease-in-out infinite!important}}

.c-bubble{position:absolute;z-index:5;top:7%;left:0;max-width:min(214px,46%);background:var(--bg-card);color:var(--fg);border:1px solid var(--line-2);border-radius:16px 16px 4px 16px;box-shadow:var(--shadow);padding:12px 14px;font-size:.9rem;line-height:1.42;opacity:0;transform:translateY(10px) scale(.95);transform-origin:top left;transition:opacity .3s ease,transform .3s ease,visibility .3s;pointer-events:none;visibility:hidden}
.c-bubble.show{opacity:1;transform:none;visibility:visible}
.c-bubble .cap{display:block;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:4px}
.c-bubble .txt{min-height:1.2em}
.c-bubble .caret{display:inline-block;width:2px;height:1.05em;vertical-align:-3px;background:var(--accent);margin-left:1px;animation:ccaret 1s step-end infinite}
.c-bubble .caret[hidden]{display:none}
@keyframes ccaret{50%{opacity:0}}
.c-bubble .cta{margin-top:11px;opacity:0;max-height:0;overflow:hidden;visibility:hidden;transition:opacity .3s ease,max-height .3s ease,visibility .3s ease}
.c-bubble.ready .cta{opacity:1;max-height:60px;visibility:visible}
.c-bubble .cta button{font:inherit;font-weight:600;font-size:.85rem;border:0;border-radius:999px;background:var(--btn-grad);color:#fff;padding:9px 16px;cursor:pointer;pointer-events:auto;box-shadow:0 6px 18px -8px color-mix(in srgb,var(--accent) 80%,transparent)}
.c-bubble::after{content:"";position:absolute;right:-8px;top:34px;width:15px;height:15px;background:var(--bg-card);border-top:1px solid var(--line-2);border-right:1px solid var(--line-2);transform:rotate(45deg)}

.c-dock{position:fixed;z-index:78;right:max(18px,env(safe-area-inset-right,0px));bottom:max(18px,env(safe-area-inset-bottom,0px));display:flex;align-items:flex-end;flex-direction:column;gap:9px;opacity:0;transform:translateY(16px) scale(.8);transition:opacity .35s ease,transform .35s ease,visibility .35s;pointer-events:none;visibility:hidden}
.c-dock.show{opacity:1;transform:none;pointer-events:auto;visibility:visible}
body.consent-open .c-dock,body.consent-open .c-chat{bottom:calc(max(14px,env(safe-area-inset-bottom,0px)) + var(--consent-h,96px) + 10px)}
.c-mini-bubble{align-self:flex-end;max-width:214px;background:var(--bg-card);color:var(--fg);border:1px solid var(--line-2);border-radius:14px 14px 4px 14px;box-shadow:var(--shadow);padding:10px 13px;font-size:.85rem;line-height:1.4;cursor:pointer}
.c-mini-bubble[hidden]{display:none}
.c-launch{position:relative;cursor:pointer;padding:0;border:0;background:none;flex:none;line-height:0;-webkit-tap-highlight-color:transparent}
.c-launch:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:14px}
.c-dock .cat-mini{position:relative;display:block;width:88px}
.cat-mini .cat-img{display:block;width:100%;height:auto;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(0,0,0,.42))}
.c-launch::after{content:"";position:absolute;right:11px;top:-4px;width:14px;height:14px;border-radius:50%;background:var(--teal);border:2px solid var(--bg);box-shadow:0 2px 6px rgba(0,0,0,.35);z-index:2}

.c-chat{position:fixed;z-index:79;right:max(18px,env(safe-area-inset-right,0px));bottom:max(18px,env(safe-area-inset-bottom,0px));width:min(362px,calc(100vw - 32px));height:var(--chat-h,min(520px,calc(100dvh - 120px)));max-height:calc(100dvh - 24px);display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--line-2);border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,.42);overflow:hidden;opacity:0;transform:translateY(16px) scale(.97);transform-origin:bottom right;transition:opacity .28s ease,transform .28s ease;pointer-events:none}
.c-chat.open{opacity:1;transform:none;pointer-events:auto}
.c-head{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--bg-soft)}
.c-head .av{width:40px;height:40px;border-radius:50%;flex:none;border:1px solid var(--line-2);background-color:var(--bg);background-image:url(cat.png);background-repeat:no-repeat;background-size:232%;background-position:52% 13%}
.c-head .who{flex:1;min-width:0;line-height:1.25}
.c-head .who b{font-family:var(--display);font-size:1.02rem}
.c-head .who span{display:flex;align-items:center;gap:6px;font-size:.73rem;color:var(--fg-muted)}
.c-head .who span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal);flex:none}
.c-head .x{width:31px;height:31px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--fg-muted);cursor:pointer;font-size:1.25rem;line-height:1;flex:none}
.c-head .x:hover{color:var(--fg);border-color:var(--line-2)}
.c-log{flex:1;min-height:0;overflow-y:auto;padding:15px;display:flex;flex-direction:column;gap:9px;background:var(--bg)}
.c-msg{max-width:85%;padding:9px 13px;border-radius:14px;font-size:.9rem;line-height:1.46;white-space:pre-wrap;overflow-wrap:anywhere}
.c-msg.bot{align-self:flex-start;background:var(--bg-card);border:1px solid var(--line);border-bottom-left-radius:5px}
.c-msg.me{align-self:flex-end;background:var(--btn-grad);color:#fff;border-bottom-right-radius:5px}
.c-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--line);border-radius:14px;border-bottom-left-radius:5px}
.c-typing span{width:6px;height:6px;border-radius:50%;background:var(--fg-faint);animation:ctype 1.2s ease-in-out infinite}
.c-typing span:nth-child(2){animation-delay:.18s}
.c-typing span:nth-child(3){animation-delay:.36s}
@keyframes ctype{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.c-disc{font-size:.7rem;color:var(--fg-faint);text-align:center;padding:7px 15px 0;background:var(--bg)}
.c-foot{display:flex;gap:8px;padding:11px;background:var(--bg)}
.c-foot input{flex:1;min-width:0;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:999px;color:var(--fg);font:inherit;font-size:.9rem;padding:10px 15px}
.c-foot input::placeholder{color:var(--fg-faint)}
.c-send{flex:none;width:42px;height:42px;border-radius:50%;border:0;background:var(--btn-grad);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.c-send svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.c-send:disabled{opacity:.45;cursor:default}
@media (max-width:600px){.c-chat{height:var(--chat-h,min(72dvh,calc(100dvh - 96px)));width:calc(100vw - 28px)}}
@media (max-width:860px){
  .hero-cat{margin-top:112px}
  .c-bubble{top:auto;bottom:calc(100% + 14px);left:50%;right:auto;max-width:min(300px,92%);border-radius:16px;padding:11px 15px;pointer-events:auto;transform:translate(-50%,-8px) scale(.95);transform-origin:bottom center}
  .c-bubble.show{transform:translate(-50%,0)}
  .c-bubble::after{left:50%;right:auto;top:auto;bottom:-8px;margin-left:-7px;border:0;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
}

/* ---- added: accessible language select, forms, chat errors, legal, utils ---- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-999px;top:0;z-index:200;background:var(--bg-card);color:var(--fg);border:1px solid var(--line-2);border-radius:8px;padding:10px 14px}
.skip-link:focus{left:12px;top:12px}

.lang-wrap{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 11px;color:var(--fg-muted);transition:border-color .15s,color .15s}
.lang-wrap:hover,.lang-wrap:focus-within{color:var(--fg);border-color:var(--line-2)}
.lang-wrap svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;flex:none}
.lang-wrap select{appearance:none;-webkit-appearance:none;background:transparent;border:0;color:inherit;font:inherit;font-size:.8rem;font-weight:600;letter-spacing:.04em;padding:0 2px;cursor:pointer}
.lang-wrap select:focus{outline:none}
.lang-wrap:focus-within{outline:2px solid var(--accent);outline-offset:3px;border-radius:999px}
.lang-wrap select option{color:#111;background:#fff}

.field .err{font-size:.78rem;color:#ff9a9a;min-height:0}
.field .err[hidden]{display:none}
:root[data-theme="light"] .field .err{color:#c0362c}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .field .err{color:#c0362c}}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#e5484d}
.field label .req{color:var(--accent);margin-inline-start:2px}
.form-status{font-size:.9rem;font-weight:600;border-radius:var(--radius-sm);padding:11px 13px}
.form-status[hidden]{display:none}
.form-status.ok{color:#d6ffe9;background:color-mix(in srgb,#1fb58b 24%,transparent);border:1px solid color-mix(in srgb,#1fb58b 50%,transparent)}
.form-status.err{color:#ffdede;background:color-mix(in srgb,#e5484d 22%,transparent);border:1px solid color-mix(in srgb,#e5484d 50%,transparent)}
.form-status.info{color:var(--fg-muted);background:var(--bg-soft);border:1px solid var(--line)}
:root[data-theme="light"] .form-status.ok{color:#0b6b4f}
:root[data-theme="light"] .form-status.err{color:#a62a25}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .form-status.ok{color:#0b6b4f}:root:not([data-theme="dark"]) .form-status.err{color:#a62a25}}

.c-msg.err{align-self:flex-start;background:color-mix(in srgb,#e5484d 14%,transparent);border:1px solid color-mix(in srgb,#e5484d 42%,transparent);color:var(--fg);border-bottom-left-radius:5px}
.c-retry{align-self:flex-start;display:flex;gap:8px}
.c-retry button{font:inherit;font-size:.82rem;font-weight:600;color:var(--accent);background:transparent;border:1px solid var(--line-2);border-radius:999px;padding:6px 13px;cursor:pointer}
.c-foot input:disabled{opacity:.55;cursor:not-allowed}
.c-note{font-size:.78rem;color:var(--fg-muted);text-align:center;padding:9px 14px;background:var(--bg)}

.legal{max-width:760px;margin-inline:auto;padding:clamp(40px,6vw,80px) 20px;display:flex;flex-direction:column;gap:16px}
.legal h1{font-size:clamp(1.8rem,4vw,2.6rem)}
.legal h2{font-size:1.3rem;margin-top:20px}
.legal p,.legal li{color:var(--fg-muted);line-height:1.6}
.legal ul{padding-inline-start:20px;list-style:disc}
.legal a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.legal .lang-block{border-top:1px solid var(--line);padding-top:20px;margin-top:8px}
.legal .back{align-self:flex-start;margin-bottom:8px}

/* accordion heading wraps its button (a11y: heading containing a button) */
.card-head-h,.sec-head-h{margin:0;font:inherit}
.card-title{flex:1;min-width:0;font-size:1.12rem;font-weight:700;letter-spacing:-.01em;font-family:var(--display)}
.c-launch{all:unset;display:block;position:relative;cursor:pointer;flex:none;line-height:0;-webkit-tap-highlight-color:transparent}
.c-launch:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:14px}
.c-mini-bubble{all:unset;display:block;text-align:start;align-self:flex-end;max-width:214px;background:var(--bg-card);color:var(--fg);border:1px solid var(--line-2);border-radius:14px 14px 4px 16px;box-shadow:var(--shadow);padding:10px 13px;font-size:.85rem;line-height:1.4;cursor:pointer}
.c-mini-bubble[hidden]{display:none}

/* optional-field hint in labels */
.field label .opt{color:var(--fg-faint);font-weight:400;text-transform:none;letter-spacing:0}
/* missing cat image: degrade gracefully, never break layout/chat */
.cat.cat--noimg .cat-img,.cat.cat--noimg .eye{display:none}
.hero-cat .cat.cat--noimg{min-width:140px;min-height:180px;border-radius:28px;background:var(--accent-soft)}
.cat-mini.cat--noimg{display:inline-block;width:72px;height:72px;border-radius:20px;background:var(--accent-soft)}
