/* Snappy Not / Just / Cold arrivals, logo entrance, then a brief name reveal.
   The snowflake retains its continuous gentle +/-10-degree vertical-axis rock. */
.home-editorial .hero-badge { --brand-logo-width:234.375px; --brand-logo-height:257.8125px; right:3%; width:38%; height:var(--brand-logo-height); top:var(--brand-headline-top,135px); transform:none; pointer-events:none; }
.home-editorial .hero-ice-reveal { display:grid; place-items:center; isolation:isolate; perspective:700px; --brand-shine:linear-gradient(110deg,transparent 40%,rgba(225,249,255,.3) 45%,#fff 50%,rgba(225,249,255,.3) 55%,transparent 60%); }
/* Feathered contrast behind the mark/name, not a glow on the logo itself. */
.home-editorial .hero-ice-reveal::before { content:''; position:absolute; inset:-40px -28px -125px; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at 50% 52%,rgba(8,27,47,.38) 0%,rgba(8,27,47,.22) 43%,rgba(8,27,47,.07) 63%,transparent 76%); }
.hero-brand-copy { position:absolute; inset:0; z-index:2; isolation:isolate; }
/* Low-contrast ice mist belongs only to the intro; it clears before the logo. */
.hero-brand-copy::before { content:''; position:absolute; left:50%; top:50%; width:min(100%,340px); height:140px; transform:translate(-50%,-50%); z-index:-1; pointer-events:none; opacity:0; background:radial-gradient(ellipse at 40% 52%,rgba(174,227,249,.16),rgba(145,214,242,.08) 42%,transparent 72%),radial-gradient(ellipse at 68% 42%,rgba(215,244,255,.12),transparent 65%); }
.hero-ice-reveal.is-revealing .hero-brand-copy::before { animation:brandIntroMist 3.8s ease both; }
@keyframes brandIntroMist { 0%,100%{opacity:0} 12%,80%{opacity:1} }
.hero-ice-reveal.is-still .hero-brand-copy::before { animation:none; opacity:0; }
.hero-brand-word { --word-pop:1.025; position:absolute; inset:0; display:grid; place-items:center; margin:0; color:#fff; opacity:0; white-space:nowrap; font:900 39px/1.1 Montserrat,Inter,sans-serif; letter-spacing:-1.6px; text-align:center; text-shadow:0 2px 8px #031126c9; pointer-events:none; }
.hero-brand-word--cold { --word-pop:1.05; color:#fff; }
.hero-brand-snowflake { position:absolute; left:50%; top:50%; z-index:3; width:var(--brand-logo-width); height:var(--brand-logo-height); opacity:0; transform:translate(-50%,-50%); pointer-events:none; }
.hero-snowflake-mark { display:block; width:100%; height:100%; object-fit:contain; transform-origin:50% 50%; filter:none; }
.hero-brand-name-reveal { position:absolute; left:0; right:0; top:100%; --brand-name-gap:4px; padding-top:var(--brand-name-gap); overflow:visible; }
.hero-brand-name { position:relative; display:block; margin:0; opacity:0; color:#fff; font:800 44.2px/1.2 Montserrat,Inter,sans-serif; letter-spacing:.005em; text-align:center; white-space:nowrap; text-shadow:0 -1px 0 rgba(232,251,255,.55),0 1px 0 #3c7187,0 2px 0 rgba(5,30,49,.8),0 3px 5px #03112699; }
/* One gentle upward arrival; Cold follows Carson shortly after. */
.hero-ice-reveal.is-revealing .hero-brand-name { animation:brandNameReveal .7s cubic-bezier(.2,.7,.25,1) 4.9s both; }
/* Hold CARSON COLD! for a moment, then leave only the snowflake. */
.hero-ice-reveal.is-revealing .hero-brand-name-reveal { animation:brandNameClear .7s ease 8s forwards; }
@keyframes brandNameReveal { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes brandNameClear { from{opacity:1} to{opacity:0} }
.hero-brand-name-cold { position:relative; display:inline-block; color:#72d7f3; font:inherit; }
.hero-ice-reveal.is-revealing .hero-brand-name-cold { animation:brandColdArrive .6s ease-out 5.08s both; }
@keyframes brandColdArrive { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
.hero-name-base { display:inline-block; }
.hero-name-initial { font-size:1.5em; line-height:.9; vertical-align:baseline; }
/* Static crystalline detail, clipped to matching glyphs; no blur or extra motion. */
.hero-name-frost { display:none; }
@supports (background-clip:text) or (-webkit-background-clip:text) {
  .hero-name-frost { display:block; position:absolute; inset:0; font:inherit; letter-spacing:inherit; text-align:inherit; color:transparent; -webkit-text-fill-color:transparent; text-shadow:none; pointer-events:none; opacity:.28; background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.95) .45px,transparent .85px) 0 0 / 4px 5px,radial-gradient(circle at 2px 3px,rgba(13,62,87,.65) .4px,transparent .8px) 0 0 / 7px 6px,linear-gradient(180deg,rgba(241,253,255,.6),transparent 60%); -webkit-background-clip:text; background-clip:text; }
  .hero-name-frost * { color:transparent; -webkit-text-fill-color:transparent; text-shadow:none; }
  .hero-frost-cold { display:inline-block; font:inherit; }
  .hero-ice-reveal.is-revealing .hero-name-frost { animation:brandFrostSettle .35s ease-out 5.68s both; }
  @keyframes brandFrostSettle { from{opacity:0} to{opacity:.28} }
}
.hero-name-reflection { display:none; }
/* Only Cold reflects; its duplicate sits directly over the original glyphs. */
@supports (background-clip:text) or (-webkit-background-clip:text) {
  .hero-name-reflection { display:block; position:absolute; inset:0; color:transparent; -webkit-text-fill-color:transparent; font:inherit; letter-spacing:inherit; text-align:inherit; text-shadow:none; pointer-events:none; opacity:0; background:var(--brand-shine) 150% 50% / 300% 100% no-repeat; -webkit-background-clip:text; background-clip:text; }
  .hero-ice-reveal.is-revealing .hero-name-reflection { animation:brandReflectionOnce 1.2s ease-in-out 5.82s both; }
}
.hero-ice-reveal.is-still .hero-name-reflection { animation:none; opacity:0; }
/* White glint is clipped to the PNG's alpha; no rectangular flash around it.
   It uses the same transforms and clock as the image beneath it. */
.hero-snowflake-sheen { display:none; position:absolute; inset:0; pointer-events:none; transform-origin:50% 50%; opacity:0; background:var(--brand-shine) 150% 50% / 300% 100% no-repeat; }
@supports (mask-image:url('../images/carson-brand-snowflake-hires.png')) or (-webkit-mask-image:url('../images/carson-brand-snowflake-hires.png')) {
  .hero-snowflake-sheen { display:block; -webkit-mask:url('../images/carson-brand-snowflake-hires.png') center / contain no-repeat; mask:url('../images/carson-brand-snowflake-hires.png') center / contain no-repeat; }
}
.hero-ice-reveal.is-revealing .hero-snowflake-sheen { animation:brandCenteredSpin .8s cubic-bezier(.2,.7,.25,1) 4s both,brandRock 12s ease-in-out 4.8s infinite,brandReflectionOnce 1.2s ease-in-out 5.82s both; }
/* A single soft pass, then the mark and name settle without repeated flashes. */
@keyframes brandReflectionOnce {
  0%{background-position:150% 50%;opacity:0}
  38%{opacity:.5}
  75%{background-position:-50% 50%;opacity:.5}
  100%{background-position:-50% 50%;opacity:0}
}
/* Times are relative to the opening beat; all CSS clocks pause together. */
.hero-ice-reveal.is-revealing .hero-brand-word { animation:brandWordFade 1s cubic-bezier(.2,.8,.2,1) both; }
.hero-ice-reveal.is-revealing [data-brand-word="just"] { animation-delay:1.22s; }
.hero-ice-reveal.is-revealing [data-brand-word="cold"] { animation-delay:2.44s; }
.hero-ice-reveal.is-revealing .hero-brand-snowflake { animation:brandCenteredAppear .8s ease-out 4s both; }
.hero-ice-reveal.is-revealing .hero-snowflake-mark { animation:brandCenteredSpin .8s cubic-bezier(.2,.7,.25,1) 4s both,brandRock 12s ease-in-out 4.8s infinite; }
/* Each word lands briskly, holds long enough to read, then clears for the next. */
@keyframes brandWordFade {
  0%{opacity:0;transform:translateY(16px) scale(.96)}
  28%{opacity:1;transform:translateY(-2px) scale(var(--word-pop))}
  48%,72%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(-6px) scale(1)}
}
@keyframes brandCenteredAppear { from{opacity:0} 8%,100%{opacity:1} }
@keyframes brandCenteredSpin { from{transform:perspective(600px) rotateY(-240deg) scale(.025)} to{transform:perspective(600px) rotateY(0deg) scale(1)} }
/* Gentle ten-degree turn each way, keeping the face readable. */
@keyframes brandRock {
  0%,100%{transform:perspective(600px) rotateY(0deg)}
  25%{transform:perspective(600px) rotateY(10deg)}
  75%{transform:perspective(600px) rotateY(-10deg)}
}
.hero-ice-reveal:is(.is-paused,.is-offscreen),
.hero-ice-reveal:is(.is-paused,.is-offscreen) *,
.hero-ice-reveal:is(.is-paused,.is-offscreen) *::before,
.hero-ice-reveal:is(.is-paused,.is-offscreen) *::after { animation-play-state:paused!important; }
.hero-ice-reveal.is-still .hero-brand-copy { display:none; }
.hero-ice-reveal.is-still .hero-brand-name-reveal { opacity:1; animation:none; }
.hero-ice-reveal.is-still .hero-brand-name { opacity:1; transform:none; animation:none; }
.hero-ice-reveal.is-still .hero-brand-name-cold { opacity:1; transform:none; animation:none; }
.hero-ice-reveal.is-still .hero-name-frost { opacity:.28; animation:none; }
.hero-ice-reveal.is-still .hero-brand-snowflake { opacity:1; animation:none; }
.hero-ice-reveal.is-still .hero-snowflake-mark { animation:none; transform:none; }
.hero-ice-reveal.is-still .hero-snowflake-sheen { animation:none; transform:none; background-position:50% 50%; opacity:.18; }
.home-brand-motion-toggle { position:absolute; right:155px; bottom:18px; z-index:6; min-height:42px; padding:9px 13px; border:1px solid #ffffff66; border-radius:8px; background:#0b1c36b8; color:#fff; font:500 16px/1.4 Inter,sans-serif; cursor:pointer; }
.home-brand-motion-toggle[hidden] { display:none; }
.home-brand-motion-toggle:hover { background:#0b1c36; }
@media(max-width:1000px) {
  /* The stacked copy begins just below the actual logo + name height, not at the hero bottom. */
  .home-editorial .hero { --brand-top:24px; --brand-logo-height:clamp(121px,18.7vw,164px); --brand-name-height:44px; --brand-gap:26px; height:auto; min-height:560px; }
  .home-editorial .hero-badge { --brand-logo-width:clamp(110px,17vw,148px); --brand-logo-height:inherit; display:block; top:var(--brand-top); right:28px; width:330px; height:var(--brand-logo-height); }
  .home-editorial .hero-content { height:auto; min-height:560px; align-items:flex-start; padding-top:calc(var(--brand-top) + var(--brand-logo-height) + var(--brand-name-height) + var(--brand-gap)); }
  .hero-brand-name { font-size:36.4px; }
  .hero-brand-word { font-size:32px; }
}
@media(max-width:760px) {
  .home-editorial .hero { --brand-logo-height:clamp(81px,24.64vw,96px); --brand-name-height:clamp(24px,6.3vw,29px); --brand-gap:22px; min-height:0; }
  .home-editorial .hero-content { min-height:0; }
  .home-editorial .hero-badge { --brand-logo-width:clamp(74px,22.4vw,88px); top:var(--brand-top); left:24px; right:24px; width:auto; }
  .hero-brand-name { font-size:clamp(19px,6.067vw,23.7px); }
  .home-editorial .hero-ice-reveal::before { inset:-20px -16px -110px; }
  .hero-brand-name-reveal { --brand-name-gap:3.2px; }
  .hero-brand-word { font-size:clamp(25px,7vw,29px); }
  .home-brand-motion-toggle { right:155px; bottom:16px; padding-inline:10px; }
}
@media(prefers-reduced-motion:reduce) {
  .home-editorial .hero-ice-reveal { display:grid; }
  .hero-ice-reveal .hero-brand-copy { display:none; }
  .hero-ice-reveal .hero-brand-copy::before { animation:none!important; opacity:0; }
  .hero-ice-reveal .hero-brand-name-reveal { opacity:1; animation:none!important; }
  .hero-ice-reveal .hero-brand-name { opacity:1; transform:none; animation:none!important; }
  .hero-ice-reveal .hero-brand-name-cold { opacity:1; transform:none; animation:none!important; }
  .hero-ice-reveal .hero-name-frost { opacity:.28; animation:none!important; }
  .hero-ice-reveal .hero-name-reflection { animation:none!important; opacity:0; }
  .hero-ice-reveal .hero-brand-snowflake { opacity:1; animation:none!important; }
  .hero-ice-reveal .hero-snowflake-mark { animation:none!important; }
  .hero-ice-reveal .hero-snowflake-sheen { animation:none!important; transform:none; background-position:50% 50%; opacity:.18; }
  .home-brand-motion-toggle { display:none; }
}
