@property --p { syntax: "<number>"; inherits: true; initial-value: 0; }
@font-face { font-family: "Tenge"; src: local("Arial"), local("Noto Sans"), local("Segoe UI"); unicode-range: U+20B8; }
@font-face { font-family: "Geologica Fallback"; src: local("Arial Black"), local("Arial"); size-adjust: 96%; ascent-override: 92%; descent-override: 24%; }
@font-face { font-family: "Golos Fallback"; src: local("Arial"); size-adjust: 101%; ascent-override: 93%; descent-override: 24%; }
:root{
  --c-bg:#1A1B1E; --c-surface:#24262A; --c-line:#34363B; --c-muted:#9A9CA3; --c-text:#F2F3F5;
  --c-accent:#F26A1E; --c-accent-hover:#FF7A2E; --c-accent-press:#E8621A; --c-on-accent:#1A1B1E; --c-deposit:#3A3C41;
  --f-display:"Geologica","Geologica Fallback","Golos Text",Arial,sans-serif;
  --f-body:"Golos Text","Golos Fallback",Arial,sans-serif;
  --fs-cap:clamp(.8125rem, 12.63px + .095vw, .875rem);
  --fs-small:clamp(.9375rem, 14.63px + .095vw, 1rem);
  --fs-body:clamp(1.0625rem, 16.63px + .095vw, 1.125rem);
  --fs-lead:clamp(1.375rem, 21.26px + .19vw, 1.5rem);
  --fs-h3:clamp(1.375rem, 19.77px + .571vw, 1.75rem);
  --fs-h2:clamp(2.125rem, 24.34px + 2.476vw, 3.75rem);
  --fs-h1:clamp(2.75rem, 21.71px + 5.714vw, 6.5rem);
  --fs-num:clamp(5.5rem, 58.29px + 7.619vw, 10.5rem);
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px;
  --sec:clamp(64px, 40.23px + 6.095vw, 128px);
  --m:20px; --g:12px;
  --r-0:0; --r-m:12px; --r-full:999px;
  --rule-brand:clamp(6px, 4.5px + .38vw, 10px);
  --rule-hair:1px solid var(--c-line);
  --ease-out:cubic-bezier(.2,.7,.2,1); --ease-flush:cubic-bezier(.65,0,.35,1); --ease-tighten:cubic-bezier(.3,1.25,.5,1);
  --t-fast:140ms; --t-med:280ms; --t-load:450ms; --t-flush:1200ms;
  --bar-h:64px;
}
@media (min-width:768px){ :root{ --m:32px; --g:20px; } }
@media (min-width:1024px){ :root{ --m:48px; --g:24px; } }
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:80px; }
body{ margin:0; background:var(--c-bg); color:var(--c-text); font:400 var(--fs-body)/1.55 var(--f-body); font-family:"Tenge",var(--f-body); -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent; hyphens:none; overflow-x:clip; padding-bottom:calc(var(--bar-h) + env(safe-area-inset-bottom)); }
@media (min-width:960px){ body{ padding-bottom:0; } }
::selection{ background:var(--c-accent); color:var(--c-on-accent); }
h1,h2,h3,p,ul,ol,figure{ margin:0; }
ul,ol{ padding:0; list-style:none; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--c-text); outline-offset:3px; }
svg{ display:block; }
.ic{ width:24px; height:24px; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.tnum{ font-variant-numeric:tabular-nums; }
.vh{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; left:var(--m); top:-100px; z-index:60; background:var(--c-text); color:var(--c-bg); padding:var(--s-3) var(--s-4); border-radius:var(--r-m); font-weight:600; text-decoration:none; }
.skip:focus{ top:var(--s-3); }
.wrap{ width:100%; max-width:calc(1280px + 2 * var(--m)); margin-inline:auto; padding-inline:var(--m); }
.disp{ font-family:"Tenge",var(--f-display); font-variation-settings:"SHRP" 0,"CRSV" 0; text-transform:uppercase; text-wrap:balance; }
.h2{ font-size:var(--fs-h2); font-weight:900; line-height:1; letter-spacing:-.01em; }
.h3{ font-family:"Tenge",var(--f-display); font-size:var(--fs-h3); font-weight:800; line-height:1.15; letter-spacing:-.01em; text-wrap:balance; }
.lead{ font-size:var(--fs-lead); font-weight:500; line-height:1.35; letter-spacing:-.005em; text-wrap:pretty; }
.small{ font-size:var(--fs-small); line-height:1.45; color:var(--c-muted); }
.cap{ font-size:var(--fs-cap); font-weight:600; line-height:1.3; letter-spacing:.12em; text-transform:uppercase; }
p{ text-wrap:pretty; }
.sec{ padding-block:var(--sec); }
.brand-rule{ height:var(--rule-brand); background:var(--c-accent); transform-origin:left center; }

/* buttons + links */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:var(--s-2); min-height:52px; padding:0 20px; border-radius:var(--r-m); font:600 var(--fs-body)/1 var(--f-body); text-decoration:none; transition:background-color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out); white-space:nowrap; }
.btn-pri{ background:var(--c-accent); color:var(--c-on-accent); }
.btn-pri:active{ background:var(--c-accent-press); transform:scale(.98); }
.btn-sec{ border:1.5px solid var(--c-muted); color:var(--c-text); }
.btn-sec:active{ background:var(--c-surface); transform:scale(.98); }
.tlink{ display:inline-flex; align-items:center; gap:6px; min-height:48px; color:var(--c-accent); font-weight:600; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.tlink:active{ color:var(--c-accent-press); }
.tlink .ic{ width:20px; height:20px; }
@media (hover:hover) and (pointer:fine){
  .btn-pri:hover{ background:var(--c-accent-hover); }
  .btn-sec:hover{ border-color:var(--c-text); }
  .tlink:hover{ text-decoration-thickness:3px; }
  .tile:hover{ border-color:var(--c-muted); }
  .tile:hover .chev{ transform:translateX(2px); }
  .svc-row:hover .svc-name{ text-decoration:underline; text-underline-offset:4px; }
  .faq summary:hover .faq-q{ text-decoration:underline; text-underline-offset:4px; }
  .map-btn:hover{ border-color:var(--c-text); }
  .band a:hover{ text-decoration:underline; }
}

/* header (desktop) */
.hdr{ display:none; }
@media (min-width:960px){
  .hdr{ display:block; position:sticky; top:0; z-index:40; height:64px; margin-bottom:-64px; border-bottom:1px solid transparent; transition:background-color var(--t-med) var(--ease-out), border-color var(--t-med) var(--ease-out); }
  .hdr .wrap{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--s-5); }
  .hdr-logo{ opacity:0; visibility:hidden; transition:opacity var(--t-med) var(--ease-out), visibility var(--t-med); }
  .hdr-logo svg{ height:30px; width:auto; }
  .hdr.is-solid{ background:var(--c-bg); border-bottom-color:var(--c-line); }
  .hdr.is-solid .hdr-logo{ opacity:1; visibility:visible; }
  .hdr-right{ display:flex; align-items:center; gap:var(--s-5); }
  .hdr-tel{ font-weight:600; text-decoration:none; font-variant-numeric:tabular-nums; min-height:48px; display:inline-flex; align-items:center; }
  .hdr .btn{ min-height:40px; }
}

/* hero */
.hero{ position:relative; overflow:clip; padding-top:20px; padding-bottom:var(--s-8); }
.hero-sign{ position:relative; z-index:1; }
.eyebrow{ color:var(--c-accent); font-size:var(--fs-cap); font-weight:600; letter-spacing:.18em; line-height:1.3; }
.logo-lg{ display:inline-block; margin-top:7px; margin-bottom:12px; }
.logo-lg svg{ height:44px; width:auto; }
.hero-rule{ position:relative; z-index:1; }
.hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,1fr); column-gap:var(--g); padding-top:var(--s-6); }
.hero-grid > *{ grid-column:1 / -1; }
.h1{ font-size:var(--fs-h1); font-weight:900; line-height:.95; letter-spacing:-.015em; }
.h1-sub{ display:block; margin-top:var(--s-3); font-size:var(--fs-h3); font-weight:800; line-height:1.15; letter-spacing:0; }
.hero .lead{ margin-top:var(--s-5); max-width:34ch; }
.hero-cta{ display:none; }
.tiles{ display:grid; grid-template-columns:1fr 1fr; gap:var(--g); margin-top:var(--s-6); }
.tile{ position:relative; display:flex; flex-direction:column; justify-content:space-between; gap:var(--s-3); min-height:96px; padding:var(--s-4); border-radius:var(--r-m); background:var(--c-surface); border:1px solid var(--c-line); color:var(--c-text); text-decoration:none; transition:border-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out); }
.tile:active{ transform:scale(.98); }
.tile .ic{ color:var(--c-muted); }
.tile-row{ display:flex; align-items:center; justify-content:space-between; gap:var(--s-2); }
.tile .h3{ text-transform:none; }
.chev{ color:var(--c-muted); transition:transform var(--t-fast) var(--ease-out); }
.facts{ margin-top:var(--s-5); }
.status{ display:flex; align-items:center; gap:var(--s-2); margin-top:var(--s-1); color:var(--c-text); font-size:var(--fs-small); line-height:1.45; }
.status .ic{ width:18px; height:18px; color:var(--c-muted); }
.supergraphic{ display:none; }
@media (min-width:960px){
  .hero{ padding-top:84px; }
  .logo-lg svg{ height:61px; }
  .hero-cta{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-5); margin-top:var(--s-6); }
  .hero-cta .tlink{ color:var(--c-text); text-decoration-color:var(--c-muted); }
}
@media (min-width:1024px){
  .hero{ padding-bottom:var(--s-9); }
  .hero-grid{ grid-template-columns:repeat(12,1fr); padding-top:var(--s-7); grid-template-areas:"h h h h h h h h t t t t" "l l l l l l . . t t t t" "c c c c c c c c t t t t" "f f f f f f f f f f f f"; align-items:start; }
  .hero-grid > *{ grid-column:auto; }
  .h1{ grid-area:h; }
  .h1-sub{ font-size:var(--fs-h2); font-weight:900; line-height:1; margin-top:var(--s-4); }
  .hero .lead{ grid-area:l; }
  .hero-cta{ grid-area:c; }
  .tiles{ grid-area:t; grid-template-columns:1fr; margin-top:0; align-self:center; }
  .tile{ min-height:120px; padding:var(--s-5); flex-direction:row; align-items:center; justify-content:flex-start; gap:var(--s-4); }
  .tile .tile-row{ flex:1; }
  .hero-foot{ grid-area:f; display:flex; flex-wrap:wrap; gap:var(--s-2) var(--s-5); align-items:center; margin-top:var(--s-7); }
  .hero-foot .facts,.hero-foot .status{ margin:0; }
  .supergraphic{ display:block; position:absolute; z-index:0; right:-8vw; top:-6%; height:120%; width:auto; color:var(--c-surface); pointer-events:none; transform-origin:60% 30%; }
}

/* steps */
.steps-sec{ border-top:var(--rule-hair); }
.steps{ display:grid; gap:var(--s-5); margin-top:var(--s-6); counter-reset:none; }
.step{ display:grid; grid-template-columns:40px 1fr; gap:var(--s-3); padding-top:var(--s-4); border-top:var(--rule-hair); }
.step-n{ font-family:var(--f-display); font-size:var(--fs-h3); font-weight:800; line-height:1.15; color:var(--c-muted); }
.step b{ font-weight:600; }
.step .small{ display:block; margin-top:var(--s-1); }
@media (min-width:1024px){
  .steps-grid{ display:grid; grid-template-columns:repeat(12,1fr); column-gap:var(--g); }
  .steps-grid .h2{ grid-column:1 / 5; }
  .steps{ grid-column:5 / 13; grid-template-columns:repeat(3,1fr); gap:var(--g); margin-top:0; }
  .step{ grid-template-columns:1fr; }
}

/* bays */
.bay{ view-timeline:--bay block; padding-bottom:var(--sec); }
.bay-grid{ display:grid; grid-template-columns:1fr; padding-top:var(--sec); }
.bay-title{ max-width:16ch; }
.schem-wrap{ margin-top:var(--s-6); }
.schem{ --p:1; position:relative; border-radius:var(--r-m); background:var(--c-surface); overflow:hidden; padding-bottom:60px; }
.schem svg{ width:100%; height:auto; aspect-ratio:4 / 3; }
.schem svg *{ vector-effect:non-scaling-stroke; }
.sk{ fill:none; stroke:var(--c-muted); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.sk-thin{ fill:none; stroke:var(--c-muted); stroke-width:1; opacity:.6; }
.sf{ fill:var(--c-surface); }
.dep{ fill:var(--c-deposit); }
.ac{ fill:none; stroke:var(--c-accent); stroke-width:2; stroke-linecap:round; }
.ac-thin{ fill:none; stroke:var(--c-accent); stroke-width:1.5; stroke-linecap:round; }
.acf{ fill:var(--c-accent); }
.air-weak{ stroke-dasharray:4 6; }
.after-x{ clip-path:inset(0 calc((1 - var(--p)) * 100%) 0 0); }
.after-y{ clip-path:inset(0 0 calc((1 - var(--p)) * 100%) 0); }
.front{ stroke:var(--c-accent); stroke-width:2; opacity:calc(min(var(--p), 1 - var(--p)) * 40); }
.front-x{ transform:translateX(calc(var(--p) * 400px)); }
.front-y{ transform:translateY(calc(var(--p) * 300px)); }
.tgl{ position:absolute; left:var(--s-3); bottom:var(--s-3); display:flex; padding:4px; border-radius:var(--r-full); background:var(--c-surface); border:1.5px solid var(--c-muted); }
.tgl button{ position:relative; z-index:1; min-width:72px; min-height:40px; padding:0 var(--s-4); border:0; border-radius:var(--r-full); background:transparent; color:var(--c-muted); font:600 var(--fs-small)/1 var(--f-body); cursor:pointer; transition:color var(--t-med) var(--ease-out), background-color var(--t-med) var(--ease-out); }
.tgl button[aria-pressed="true"]{ background:var(--c-text); color:var(--c-bg); }
@media (hover:hover) and (pointer:fine){ .tgl button[aria-pressed="false"]:hover{ color:var(--c-text); } }
.bay-text{ margin-top:var(--s-7); max-width:60ch; }
.bay-text > .h3 + *{ margin-top:var(--s-4); }
.bay-text > * + .h3{ margin-top:var(--s-7); }
.sym li{ position:relative; padding:var(--s-2) 0 var(--s-2) 26px; }
.sym li::before{ content:""; position:absolute; left:2px; top:calc(.775em + var(--s-2) - 4px); width:6px; height:6px; border:2px solid var(--c-muted); border-radius:var(--r-full); }
.note{ margin-top:var(--s-4); color:var(--c-muted); }
.honest{ margin-top:var(--s-5); padding-top:var(--s-4); border-top:var(--rule-hair); color:var(--c-muted); }
.honest strong{ color:var(--c-text); font-weight:600; }
.bay-text .tlink{ margin-top:var(--s-4); }
@media (min-width:1024px){
  .bay-grid{ grid-template-columns:repeat(12,1fr); column-gap:var(--g); grid-template-rows:auto 1fr; align-items:start; }
  .bay-title{ grid-column:7 / 13; grid-row:1; }
  .schem-wrap{ grid-column:1 / 6; grid-row:1 / 3; margin-top:0; }
  .bay-text{ grid-column:7 / 13; grid-row:2; }
  .bay-r .bay-title,.bay-r .bay-text{ grid-column:1 / 7; }
  .bay-r .schem-wrap{ grid-column:8 / 13; }
}
@media (min-width:1024px) and (min-height:760px){ .schem-wrap{ position:sticky; top:96px; } }

/* services */
.svc-sec{ border-top:var(--rule-hair); }
.svc{ margin-top:var(--s-6); }
.svc li{ border-top:var(--rule-hair); }
.svc li:last-child{ border-bottom:var(--rule-hair); }
.svc-row{ display:grid; grid-template-columns:24px 1fr 24px; gap:var(--s-4); align-items:center; min-height:72px; padding:var(--s-4) 0; color:var(--c-text); text-decoration:none; transition:background-color var(--t-fast) var(--ease-out); }
.svc-row:active{ background:var(--c-surface); }
.svc-row > .ic{ color:var(--c-muted); }
.svc-name{ display:block; text-transform:none; }
.svc-meta{ display:block; margin-top:2px; }
.price{ color:var(--c-accent); white-space:nowrap; }
.svc-sec .tlink{ margin-top:var(--s-5); }
@media (min-width:1024px){
  .svc-grid{ display:grid; grid-template-columns:repeat(12,1fr); column-gap:var(--g); align-items:start; }
  .svc-grid .h2{ grid-column:1 / 5; }
  .svc{ grid-column:5 / 13; display:grid; grid-template-columns:repeat(4,1fr); column-gap:var(--g); margin-top:0; }
  .svc li:last-child{ border-bottom:0; }
  .svc-row{ grid-template-columns:1fr; align-content:start; gap:var(--s-3); padding-top:var(--s-5); height:100%; }
  .svc-row .chev{ display:none; }
  .svc-sec .tlink{ grid-column:5 / 13; }
}

/* why */
.why-sec{ border-top:var(--rule-hair); }
.why-num{ margin-top:var(--s-6); }
.num{ font-family:var(--f-display); font-size:var(--fs-num); font-weight:900; line-height:.9; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.why-num .num{ padding-bottom:.08em; }
.why-num .small{ margin-top:var(--s-3); }
.why-facts{ margin-top:var(--s-6); }
.why-facts li{ padding:var(--s-5) 0; border-top:var(--rule-hair); }
.why-facts .small{ margin-top:var(--s-2); }
@media (min-width:1024px){
  .why-grid{ display:grid; grid-template-columns:repeat(12,1fr); column-gap:var(--g); align-items:start; }
  .why-grid .h2{ grid-column:1 / 13; max-width:18ch; }
  .why-num{ grid-column:1 / 6; margin-top:var(--s-7); }
  .why-facts{ grid-column:7 / 13; margin-top:var(--s-7); }
}

/* faq */
.faq-sec{ border-top:var(--rule-hair); }
.faq{ margin-top:var(--s-6); }
.faq details{ border-top:var(--rule-hair); }
.faq details:last-child{ border-bottom:var(--rule-hair); }
.faq summary{ display:flex; align-items:center; justify-content:space-between; gap:var(--s-4); min-height:64px; padding:var(--s-4) 0; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker{ display:none; }
.faq-q{ font-size:var(--fs-lead); font-weight:600; line-height:1.3; }
.faq summary .ic{ color:var(--c-muted); transform:rotate(90deg); transition:transform var(--t-med) var(--ease-out); }
.faq details[open] summary .ic{ transform:rotate(-90deg); }
.faq-a{ padding-bottom:var(--s-5); max-width:60ch; color:var(--c-muted); }
@media (min-width:1024px){ .faq-grid{ display:grid; grid-template-columns:repeat(12,1fr); column-gap:var(--g); } .faq-grid .h2{ grid-column:1 / 5; } .faq{ grid-column:5 / 13; margin-top:0; } }

/* route */
.route-sec{ border-top:var(--rule-hair); }
.addr-sub{ display:block; margin-top:var(--s-3); font-size:var(--fs-h3); font-weight:800; line-height:1.15; letter-spacing:0; }
.route-meta{ margin-top:var(--s-5); }
.route-sec .status{ margin-top:var(--s-2); }
.route-actions{ display:flex; flex-direction:column; align-items:stretch; gap:var(--s-2); margin-top:var(--s-6); }
.route-btn{ width:100%; }
.route-btn.btn-pri{ display:none; }
.route-actions .tlink{ align-self:flex-start; color:var(--c-text); text-decoration-color:var(--c-muted); }
.map{ position:relative; margin-top:var(--s-6); border-radius:var(--r-m); overflow:hidden; background-color:var(--c-surface); background-image:linear-gradient(var(--c-line) 1px, transparent 1px), linear-gradient(90deg, var(--c-line) 1px, transparent 1px); background-size:40px 40px; background-position:center; aspect-ratio:350 / 220; }
.map-pin{ position:absolute; left:50%; top:50%; width:40px; height:auto; transform:translate(-50%,-62%); color:var(--c-accent); }
.map-coords{ position:absolute; left:var(--s-3); bottom:var(--s-3); margin:0; padding:var(--s-1) var(--s-2); border-radius:var(--r-m); background:var(--c-surface); }
.map-btn{ position:absolute; right:var(--s-3); bottom:var(--s-3); min-height:48px; padding:0 var(--s-4); border-radius:var(--r-m); border:1.5px solid var(--c-muted); background:var(--c-bg); color:var(--c-text); font:600 var(--fs-small)/1 var(--f-body); cursor:pointer; }
.map-msg{ position:absolute; left:var(--s-4); right:var(--s-4); top:var(--s-4); margin:0; }
.map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
@media (min-width:960px){ .route-btn.btn-pri{ display:inline-flex; } .route-btn.btn-sec{ display:none; } }
@media (min-width:1024px){
  .route-grid{ display:grid; grid-template-columns:repeat(12,1fr); column-gap:var(--g); align-items:start; }
  .route-text{ grid-column:1 / 6; }
  .map{ grid-column:6 / 13; margin-top:0; aspect-ratio:16 / 10; }
  .route-btn{ width:auto; }
  .route-actions{ align-items:flex-start; }
}

/* footer */
.ft-kz{ display:flex; flex-direction:column; gap:var(--s-1); padding-block:var(--s-8) var(--s-7); font-size:var(--fs-h3); }
@media (min-width:768px){ .ft-kz{ flex-direction:row; flex-wrap:wrap; gap:0 var(--s-4); } .ft-kz span + span::before{ content:"·"; margin-right:var(--s-4); color:var(--c-accent); } }
.band{ background:var(--c-accent); color:var(--c-on-accent); padding-block:var(--s-7) calc(var(--s-8)); }
.band-addr{ font-size:var(--fs-h2); }
.band-tel{ display:inline-flex; align-items:center; min-height:48px; margin-top:var(--s-4); text-decoration:none; font-variant-numeric:tabular-nums; }
.band-tel-note{ font-size:var(--fs-small); font-weight:500; }
.band-small{ margin-top:var(--s-2); font-size:var(--fs-small); line-height:1.45; }
.band-small.first{ margin-top:var(--s-5); }
.band-logo{ display:inline-block; margin-top:var(--s-6); --j:var(--c-on-accent); --onde:var(--c-on-accent); }
.band-logo svg{ height:26px; width:auto; }

/* mobile bar */
.bar{ position:fixed; left:0; right:0; bottom:0; z-index:50; display:grid; grid-template-columns:1fr 1fr; gap:var(--s-2); padding:8px var(--m) calc(8px + env(safe-area-inset-bottom)); background:var(--c-bg); border-top:var(--rule-hair); transition:transform var(--t-med) var(--ease-out); }
.bar .btn{ min-height:48px; padding:0 var(--s-3); }
.bar.is-hidden{ transform:translateY(110%); }
@media (min-width:960px){ .bar{ display:none; } }

/* ---------- motion ---------- */
@keyframes jTurn{ from{ transform:rotate(-24deg); opacity:0; } }
@keyframes ondeOut{ from{ clip-path:inset(0 100% 0 0); transform:translateX(-12px); } to{ clip-path:inset(0 0 0 0); } }
@keyframes ruleIn{ from{ transform:scaleX(0); } }
@keyframes rise{ from{ transform:translateY(12px); opacity:0; } }
@keyframes sgTurn{ from{ transform:rotate(-8deg); } }
@keyframes flush{ from{ --p:0; } to{ --p:1; } }
@keyframes bandUp{ from{ clip-path:inset(100% 0 0 0); } to{ clip-path:inset(0 0 0 0); } }
.lg-j{ transform-box:view-box; transform-origin:65px 15px; }
@media (prefers-reduced-motion:no-preference){
  .lg-j{ animation:jTurn var(--t-load) var(--ease-tighten) both; }
  .lg-onde{ animation:ondeOut var(--t-load) var(--ease-out) 150ms both; }
  .hero-rule{ animation:ruleIn 500ms var(--ease-out) 400ms both; }
  .tile{ animation:rise 350ms var(--ease-out) 650ms both; }
  .tile + .tile{ animation-delay:710ms; }
  .supergraphic{ animation:sgTurn 900ms var(--ease-out) both; }
  /* scroll-driven path */
  @supports (animation-timeline: view()){
    .bay-rule{ animation:ruleIn linear both; animation-timeline:--bay; animation-range:entry 0% entry 30%; }
    .schem:not([data-state]){ animation:flush linear both; animation-timeline:view(); animation-range:cover 34% cover 57%; }
    .band{ animation:bandUp linear both; animation-timeline:view(); animation-range:entry 0% entry 80%; }
  }
  @media (min-width:1024px) and (min-height:760px){
    @supports (animation-timeline: view()){ .schem:not([data-state]){ animation-timeline:--bay; animation-range:entry 40% entry 100%; } }
  }
  /* IntersectionObserver fallback (no scroll timelines) */
  @supports not (animation-timeline: view()){
    .js .bay-rule{ transform:scaleX(0); transition:transform 600ms var(--ease-out); }
    .js .bay-rule.is-in{ transform:none; }
    .js .schem:not([data-state]){ --p:0; transition:--p var(--t-flush) var(--ease-flush); }
    .js .schem.is-clean:not([data-state]){ --p:1; }
    .js .band{ clip-path:inset(100% 0 0 0); transition:clip-path 700ms var(--ease-out); }
    .js .band.is-in{ clip-path:inset(0 0 0 0); }
  }
  .schem[data-state]{ transition:--p var(--t-med) var(--ease-out); }
}
.schem[data-state="before"]{ --p:0; animation:none; }
.schem[data-state="after"]{ --p:1; animation:none; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none!important; transition-property:color,background-color,border-color!important; }
  .schem:not([data-state]){ --p:.5; }
  .front{ opacity:1; }
  .schem:not([data-state]) .front{ opacity:1; }
  .schem[data-state] .front{ opacity:0; }
}

/* ---------- service pages ---------- */
.hdr.is-solid .hdr-logo{ opacity:1; visibility:visible; }
.crumbs{ margin-top:var(--s-6); }
.crumbs ol{ display:flex; flex-wrap:wrap; gap:var(--s-1) var(--s-2); font-size:var(--fs-small); color:var(--c-muted); }
.crumbs li + li::before{ content:"/"; margin-right:var(--s-2); }
.crumbs a{ display:inline-flex; align-items:center; min-height:44px; }
.crumbs [aria-current]{ color:var(--c-text); }
.sub-hero .sub-head{ position:relative; z-index:1; }
.sub-h1{ margin-top:var(--s-4); font-size:var(--fs-h2); font-weight:900; line-height:1; letter-spacing:-.01em; max-width:20ch; }
.sub-hero .lead{ margin-top:var(--s-5); max-width:40ch; }
.sub-hero .hero-cta{ margin-top:var(--s-6); }
.blk{ border-top:var(--rule-hair); }
.blk .h2{ max-width:20ch; }
.blk-body{ margin-top:var(--s-6); max-width:64ch; }
.blk-body > * + *{ margin-top:var(--s-4); }
.blk-body > .h3{ margin-top:var(--s-6); }
.blk-body a:not(.btn):not(.tlink){ color:var(--c-accent); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.blk-body .sym li{ padding-block:var(--s-2); }
.blk-body .btn{ margin-top:var(--s-5); }
.blk-body .tlink{ margin-top:var(--s-2); }
.band a{ color:inherit; }
body.sub .h2{ font-size:var(--fs-h3); line-height:1.15; letter-spacing:-.01em; }
body.sub .blk-body > .h3{ font-size:var(--fs-lead); }
body.sub .faq-q{ line-height:1.4; }
.nf-list{ margin-top:var(--s-5); }
.nf-list li{ border-top:var(--rule-hair); }
.nf-list li:last-child{ border-bottom:var(--rule-hair); }
.nf-list a{ display:flex; align-items:center; min-height:56px; }
@media (min-width:1024px){
  .sub-h1{ max-width:24ch; }
  .blk-body{ max-width:64ch; }
}
