/* Approved TH17 modular scene. Lighting is baked into each WebP; the overlays
   only protect the text and join the illustration to the next section. */
.hero--bg.hero--full.hero--modular{background:#101e3b;overflow:visible}
.hero--modular .hero-bg{overflow:hidden}
.hero--modular .hero-frame::after{display:none}
.hero--modular .hero-next[hidden]{display:none}
.hero--modular .hero-next{z-index:3}
/* Compact transparent sprites sit on the same cover/crop plane as the WebP.
   No canvas loop, particle engine, animated filters or full-screen light layer. */
.torch-plane{position:absolute;pointer-events:none;visibility:hidden}
.torch-plane[data-ready="true"]{visibility:visible}
.torch-fire{position:absolute;width:2.083333333%;height:3.518518519%}
.torch-flame{position:absolute;inset:0;isolation:isolate}
.torch-flame-frame{position:absolute;inset:0;opacity:0;mix-blend-mode:plus-lighter;animation:torch-frame var(--cycle) linear var(--frame-delay) infinite}
.torch-flame-frame:nth-child(1){--flame-image:url('/assets/home/torch-flame-frames-v1/frame-1.webp')}
.torch-flame-frame:nth-child(2){--flame-image:url('/assets/home/torch-flame-frames-v1/frame-2.webp')}
.torch-flame-frame:nth-child(3){--flame-image:url('/assets/home/torch-flame-frames-v1/frame-3.webp')}
/* The two complementary masks soften the tips and retain the crisp flame root.
   Blur is fixed on these tiny sprites; only their parent opacity animates. */
.torch-flame-frame::before,.torch-flame-frame::after{content:"";position:absolute;inset:0;background:var(--flame-image) center/100% 100% no-repeat;mix-blend-mode:plus-lighter}
.torch-flame-frame::before{mask-image:linear-gradient(to bottom,transparent 20%,#000 60%)}
.torch-flame-frame::after{filter:blur(.55px);mask-image:linear-gradient(to bottom,#000 20%,transparent 60%)}
.torch-aura{position:absolute;left:-88%;top:37%;width:275%;height:210%;mix-blend-mode:screen;background:radial-gradient(ellipse,rgba(255,174,62,.22) 0%,rgba(255,121,26,.10) 32%,transparent 70%);opacity:.55;animation:torch-light calc(var(--duration) + .8s) ease-in-out var(--delay) infinite;transition:opacity 1.4s ease}
[data-hero-bg][data-time="day"] .torch-aura{opacity:.13}
[data-hero-bg][data-time="night"] .torch-aura{opacity:.85}
.torch-plane[data-paused="true"] .torch-flame-frame,.torch-plane[data-paused="true"] .torch-aura{animation-play-state:paused}
@keyframes torch-frame{0%,100%{opacity:1}33.333333%,66.666667%{opacity:0}}
@keyframes torch-light{0%,100%{transform:scale(.96)}42%{transform:scale(1.06)}73%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.torch-flame-frame,.torch-aura{animation:none!important;transition:none}.torch-flame-frame{opacity:0}.torch-flame-frame:first-child{opacity:1}}
@media (min-width:1024px){
  .hero--bg.hero--full.hero--modular{min-height:clamp(680px,50vw,960px);padding:48px 0 64px}
  .hero--modular .hero-bg .hero-frame img{object-position:100% 50%}
  .hero--bg.hero--full.hero--modular::before{background:
    linear-gradient(0deg,#1b2d27 0%,rgba(27,45,39,.6) 6%,transparent 18%),
    linear-gradient(90deg,rgba(13,24,51,.78) 0%,rgba(13,24,51,.5) 28%,rgba(13,24,51,.18) 44%,transparent 58%),
    linear-gradient(180deg,rgba(13,24,51,.45) 0%,transparent 16%)}
  .hero--bg.hero--full.hero--modular .hero-copy{max-width:600px;width:52%}
  .hero--modular h1{max-width:600px!important;font-size:clamp(36px,3.6vw,58px);line-height:1.1}
  .hero--modular .lede{max-width:560px;font-size:17px;line-height:1.5}
  .hero--modular .lookup{max-width:600px}
}
@media (max-width:1023px){
  .hero--bg.hero--full.hero--modular{min-height:0;padding:32px 0 calc(82.4vw + 16px)}
  .hero--modular .hero-bg{top:auto;height:82.4vw}
  .hero--modular .hero-bg .hero-frame img{object-position:50% 50%;object-fit:cover}
  .hero--bg.hero--full.hero--modular::before{top:auto;height:82.4vw;background:
    linear-gradient(180deg,#101e3b 0%,rgba(16,30,59,.6) 6%,transparent 20%),
    linear-gradient(0deg,#1b2d27 0%,rgba(27,45,39,.4) 5%,transparent 16%)}
  .hero--bg.hero--full.hero--modular .hero-copy{max-width:640px;margin:auto}
  .hero--modular .your-th{font-size:13px}
  .hero--modular .hero-next{top:auto;bottom:calc(82.4vw - 44px);right:14px}
}
