/* Atomic Kat's single day-to-night opening. All rules stay in this hero. */
.tomcat-hero { position:relative; background:var(--w-blue); }
.tomcat-hero-stage { position:relative; min-height:100svh; display:flex; align-items:flex-start; overflow:hidden; }
.tomcat-hero-media { position:absolute; inset:0; }
.tomcat-hero-media img,.tomcat-hero-media video { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.tomcat-hero-media video { position:absolute; inset:0; opacity:0; transition:opacity .25s ease-out; }
.tomcat-hero.hero-motion video.sc-has-clip { opacity:1; }
.tomcat-hero-scrim { position:absolute; inset:0; background:radial-gradient(ellipse 90% 65% at 0% 65%,rgba(8,13,15,.84),rgba(8,13,15,.62) 48%,transparent 85%); pointer-events:none; }
.tomcat-hero-copy { position:relative; z-index:1; width:100%; padding:calc(44svh - 32px) clamp(24px,5vw,80px) 64px; color:#fffaf0; }
.tomcat-kicker { margin-bottom:20px; color:#fffaf0; }
.tomcat-hero h1 { font-family:var(--font-display); font-weight:500; line-height:1.04; letter-spacing:-.04em; text-wrap:balance; }
.tomcat-hero h1 span { display:block; }
.tomcat-hero h1 .tomcat-title-name { font-size:clamp(42px,5.8vw,94px); line-height:1.02; text-transform:uppercase; color:#fff4e2; text-shadow:0 3px 0 rgba(10,24,40,.55), 0 2px 26px rgba(10,20,30,.3); white-space:normal; }
.tomcat-hero h1 .tomcat-title-name .tk-sans { display:inline; }
.tomcat-hero h1 .tk-sans { font-family:'Montserrat',var(--font-display),sans-serif; font-weight:800; letter-spacing:.03em; }
.tomcat-hero h1 .tk-light { font-weight:400; }
.tomcat-hero h1 .tk-kat { color:#ff914d; }
.tomcat-hero h1 .tomcat-spark-o { display:inline; position:relative; }
.tomcat-spark { position:absolute; left:-.2em; top:-.22em; width:.36em; height:.36em; fill:#ff914d; filter:drop-shadow(0 1px 6px rgba(10,20,30,.3)); }
.tomcat-hero h1 .tomcat-title-promise { margin-top:clamp(10px,1.2vw,18px); font-size:clamp(22px,2.9vw,46px); font-weight:500; line-height:1.12; letter-spacing:-.025em; color:#ffb17f; white-space:normal; max-width:none; }
.tomcat-hero.hero-motion .tomcat-hero-stage { position:sticky; top:0; height:100svh; }
.tomcat-hero h1 .tomcat-title-promise { display:flex; flex-wrap:wrap; gap:.2em .3em; }
.tomcat-hero h1 .tomcat-title-promise > span { display:inline-block; white-space:nowrap; }
.tomcat-promise-first { color:#fffaf0; }
.tomcat-promise-payoff { color:#ff914d; font-weight:600; transform-origin:left center; }
.tomcat-hero.hero-motion .tomcat-promise-first { opacity:clamp(0,calc((var(--sc-p,0) - .03) / .16),1); transform:translateY(clamp(0px,calc((.19 - var(--sc-p,0)) * 75px),12px)); }
.tomcat-hero.hero-motion .tomcat-promise-payoff { opacity:clamp(0,calc((var(--sc-p,0) - .24) / .14),1); transform:translateY(clamp(0px,calc((.38 - var(--sc-p,0)) * 100px),14px)) scale(clamp(.96,calc(.96 + (var(--sc-p,0) - .24) * .286),1)); }
.tomcat-hero.hero-static { height:auto !important; }
.tomcat-hero.hero-static video { display:none; }
@media(max-width:600px) {
  .tomcat-hero-copy { padding:calc(44svh - 28px) 24px 64px; }
  .tomcat-kicker { margin-bottom:16px; font-size:10px; }
  .tomcat-hero h1 .tomcat-title-name { font-size:clamp(32px,9.2vw,52px); }
  .tomcat-hero h1 .tomcat-title-promise { font-size:clamp(20px,5.5vw,30px); line-height:1.12; margin-top:12px; max-width:none; }
    .tomcat-hero-scrim { background:linear-gradient(180deg,transparent 18%,rgba(8,13,15,.64) 42%,rgba(8,13,15,.76) 76%,rgba(8,13,15,.4)); }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .tomcat-hero { height:auto !important; }
  .tomcat-hero.hero-motion .tomcat-hero-stage { position:relative; height:auto; }
  .tomcat-hero.hero-motion .tomcat-title-promise > span { opacity:1; transform:none; }
  .tomcat-hero video { display:none; }
}
/* Keep navigation legible over the bright daytime sky. */
body:has(#atomic-arrival) .nav:not(.scrolled) { background:rgba(8,13,15,.52); }
body:has(#atomic-arrival) .nav { transition-property:padding,border-color; }
body:has(#atomic-arrival) .nav-cta { min-height:44px; display:inline-flex; align-items:center; }
