html { background:#0d1314; }
html.kairos-leaving { overflow-x:clip; }
html.kairos-leaving main { pointer-events:none; animation:kairos-glass-out 520ms cubic-bezier(.4,0,.2,1) both; }
html.kairos-arrival-pending main { opacity:0; }
html.kairos-arriving main { animation:kairos-scene-in 800ms cubic-bezier(.22,1,.36,1) both; }
html.kairos-arriving main :is(p,li,.eyebrow,.button,.service-name,.service-trigger,.studio-index,.talk-signature,.case-metrics strong,.case-metrics span) { animation:kairos-type-in 650ms ease-out 60ms both; }
@keyframes kairos-glass-out { 0% { opacity:1; filter:blur(0); } 45% { opacity:.65; filter:blur(3px); } 100% { opacity:0; filter:blur(9px); } }
@keyframes kairos-scene-in { from { opacity:0; filter:blur(7px); } to { opacity:1; filter:blur(0); } }
@keyframes kairos-type-in { 0% { opacity:0; } 30% { opacity:.18; } 100% { opacity:1; } }
@media(prefers-reduced-motion:reduce) {
 html.kairos-leaving main, html.kairos-arriving main, html.kairos-arriving main :is(p,li,.eyebrow,.button,.service-name,.service-trigger,.studio-index,.talk-signature,.case-metrics strong,.case-metrics span) { animation:none; }
 html.kairos-arrival-pending main { opacity:1; }
}

html.kairos-heading-pending main h1, html.kairos-heading-pending main h1 ~ p { visibility:hidden; }
.kairos-reveal-word { display:inline-block; white-space:nowrap; vertical-align:baseline; }
.kairos-reveal-char { display:inline-block; }
html.kairos-arriving main h1.kairos-letter-heading, html.kairos-arriving main p.kairos-intro-reveal { animation:none; }
@media(prefers-reduced-motion:reduce) { html.kairos-heading-pending main h1 { visibility:visible; } }

.kairos-scroll-pending { opacity:0 !important; }
html.kairos-arriving main h2.kairos-scroll-heading, html.kairos-arriving main p.kairos-scroll-body { animation:none; }
@media(prefers-reduced-motion:reduce) { .kairos-scroll-pending { opacity:1 !important; } }

html.kairos-services-pending .services-page main { opacity:0 !important; }
html.kairos-arriving .services-page main { animation:none; }
.services-page main.kairos-service-entry { animation:kairos-service-entry 700ms ease-out both !important; }
@keyframes kairos-service-entry { from { opacity:0; } to { opacity:1; } }
html.kairos-arriving .services-page .service-door h2 { animation:none; }
@media(prefers-reduced-motion:reduce) { html.kairos-services-pending .services-page main { opacity:1 !important; } .services-page main.kairos-service-entry { animation:none !important; } }

/* First-session brand opening: green light beneath a crisp wordmark. */
html.kairos-brand-opening-active { overflow:hidden; }
.kairos-brand-opening { position:fixed; inset:0; z-index:2147483000; display:grid; place-items:center; isolation:isolate; overflow:hidden; background:#1f3a31; opacity:1; transition:opacity 550ms ease-in-out; }
.kairos-opening-light { position:absolute; inset:-18%; z-index:-1; background:radial-gradient(ellipse at 72% 18%,#688a6899,transparent 48%),radial-gradient(ellipse at 18% 42%,#38634ccc,transparent 58%),radial-gradient(ellipse at 50% 110%,#0d1314,transparent 70%),linear-gradient(150deg,#1f3a31,#254a38 48%,#142a22); animation:kairos-opening-drift 5s ease-in-out infinite alternate; }
.kairos-brand-opening::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.1; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E"); }
.kairos-brand-opening img { width:clamp(210px,27vw,380px); height:auto; position:relative; animation:kairos-opening-logo 650ms ease-out 100ms both; }
.kairos-brand-opening.is-dissolving { opacity:0; pointer-events:none; }
@keyframes kairos-opening-logo { from { opacity:0; filter:blur(3px); } to { opacity:1; filter:blur(0); } }
@keyframes kairos-opening-drift { from { transform:translate(-3%,-2%) scale(1.03); } to { transform:translate(4%,3%) scale(1.08); } }
@media(prefers-reduced-motion:reduce) { .kairos-brand-opening { display:none; } html.kairos-brand-opening-active { overflow:auto; } }

/* Charcoal opening with a continuous logo move into the header. */
.kairos-brand-opening { background:transparent; transition:none; }
.kairos-opening-light { inset:0; background:#0d1314; animation:none; transition:opacity 700ms ease 120ms; }
.kairos-brand-opening::after { display:none; }
.kairos-brand-opening.is-dissolving { opacity:1; pointer-events:auto; }
.kairos-brand-opening.is-dissolving .kairos-opening-light { opacity:0; }
html.kairos-brand-opening-active body > header .brand img { visibility:hidden; }
html.kairos-brand-opening-active .hero-glow, html.kairos-brand-opening-active .hero-grain { opacity:0; }
html.kairos-hero-opening .hero-glow, html.kairos-hero-opening .hero-grain { animation:kairos-hero-rise 1200ms cubic-bezier(.22,1,.36,1) both; }
html.kairos-brand-opening-active.kairos-hero-opening .hero-glow, html.kairos-brand-opening-active.kairos-hero-opening .hero-grain { opacity:1; }
@keyframes kairos-hero-rise { from { opacity:0; clip-path:inset(100% 0 0 0); } to { opacity:1; clip-path:inset(0 0 0 0); } }
@media(prefers-reduced-motion:reduce) { html.kairos-hero-opening .hero-glow, html.kairos-hero-opening .hero-grain { animation:none; } html.kairos-brand-opening-active body > header .brand img { visibility:visible; } }

html.kairos-hero-opening .hero-grain { animation-name:kairos-hero-grain-rise; }
@keyframes kairos-hero-grain-rise { from { opacity:0; clip-path:inset(100% 0 0 0); } to { opacity:.32; clip-path:inset(0 0 0 0); } }

html.kairos-home-return .hero-glow { animation:kairos-return-gradient 850ms ease-out both; }
@keyframes kairos-return-gradient { from { opacity:0; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) { html.kairos-home-return .hero-glow { animation:none; } }

/* Keep every glass backdrop ancestor fully opaque during service entrances. */
html.kairos-services-pending .services-page main { opacity:1 !important; visibility:hidden; }
.services-page main { position:relative; }
.kairos-service-entry-cover { position:absolute; inset:0; z-index:20; background:#0d1314; pointer-events:none; }
@media(prefers-reduced-motion:reduce) { html.kairos-services-pending .services-page main { visibility:visible; } }
