/* The closed native dialog leaves the entire site usable, including without JS. */
.brand-intro{position:fixed;inset:0;margin:0;padding:0;border:0;border-radius:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;overflow:hidden;background:transparent;color:#ede6d6;opacity:1;transition:opacity .3s ease}
.brand-intro::backdrop{background:transparent}
.brand-intro.is-leaving{opacity:0}
.intro-scene{position:absolute;inset:0;background:#080e09;will-change:opacity}
.intro-film{position:absolute;inset:0;width:100%;height:100%}
.intro-video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.intro-traveller{position:fixed;display:block;visibility:hidden;pointer-events:none;max-width:none;object-fit:contain;transform-origin:0 0;backface-visibility:hidden;will-change:transform;contain:layout paint style}
.brand-intro.is-merging .intro-traveller{visibility:visible}
.brand-intro.is-merging .intro-video{opacity:0;transition:opacity .16s linear}
.brand-intro.is-merging .intro-scene{opacity:0;transition:opacity 1s .08s cubic-bezier(.4,0,.2,1)}
.intro-skip{position:absolute;z-index:1;top:max(22px,env(safe-area-inset-top));right:max(22px,env(safe-area-inset-right));min-height:48px;padding:10px 20px;border:1px solid rgba(237,230,214,.45);border-radius:999px;color:#ede6d6;background:rgba(8,14,9,.85);font-size:14px;line-height:1.4;cursor:pointer}
.intro-skip:hover{background:rgba(86,97,50,.95);border-color:#ede6d6}
.intro-skip:focus-visible{outline:2px solid #ede6d6;outline-offset:4px}
html[data-intro-open],html[data-intro-open] body{overflow:hidden}
/* Reserve the old scrollbar width in the page, without a gap in the full-screen cover. */
html[data-intro-open] body{padding-right:var(--intro-gutter,0px)}
/* Background decoration pauses; moving layers use transforms and opacity only. */
html[data-intro-open] .site-header *,html[data-intro-open] main *,html[data-intro-open] main *::before,html[data-intro-open] main *::after,html[data-intro-open] .site-footer *,html[data-intro-open] .autixai-launcher *{animation-play-state:paused!important}
/* Skip painting the covered page, then warm it before the logo starts moving. */
html[data-intro-open]:not([data-intro-preparing]):not([data-intro-merging]) body>:not(#brand-intro){visibility:hidden}
html[data-intro-merging] .site-header .brand{visibility:hidden}
html[data-intro-merging] .hero-copy{animation:intro-page-in .85s .95s cubic-bezier(.22,1,.36,1) both;animation-play-state:running!important}
html[data-intro-merging] .hero-visual{animation:intro-page-in .95s .65s cubic-bezier(.22,1,.36,1) both;animation-play-state:running!important}
@keyframes intro-page-in{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
/* Keep the full wordmark inside a portrait screen while enlarging the cinematic frame. */
@media(max-width:600px) and (orientation:portrait){
  .intro-film{inset:50% auto auto -37.5%;width:175%;height:auto;aspect-ratio:16/9;transform:translateY(-50%)}
  .intro-video{object-fit:contain}
  /* Static edge shades replace a mask composited over every decoded video frame. */
  .intro-film::before,.intro-film::after{content:'';position:absolute;z-index:1;left:0;right:0;height:12%;pointer-events:none}
  .intro-film::before{top:0;background:linear-gradient(to bottom,#080e09,transparent)}
  .intro-film::after{bottom:0;background:linear-gradient(to top,#080e09,transparent)}
}
@media(prefers-reduced-motion:reduce){.brand-intro,.intro-scene,.intro-video{transition:none}html[data-intro-merging] .hero-copy,html[data-intro-merging] .hero-visual{animation:none}}
