/* KRYVARA 2.0 — optional motion and the native WordPress navigation overlay. */
.kv-menu-brand,.kv-menu-foot { display:none; }
body { --kv-admin-offset:0px; }
body.admin-bar { --kv-admin-offset:var(--wp-admin--admin-bar--height,32px); }
.kv-navigation .wp-block-navigation__responsive-container.is-menu-open {
  position:fixed; inset:var(--kv-admin-offset) 0 0; z-index:200; isolation:isolate;
  display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start;
  max-width:100%; min-height:calc(100vh - var(--kv-admin-offset)); min-height:calc(100dvh - var(--kv-admin-offset)); overflow-x:hidden; overflow-y:auto;
  padding:max(29px,env(safe-area-inset-top)) clamp(24px,7vw,70px) max(28px,env(safe-area-inset-bottom));
  background:#081217; color:var(--kv-text);
}
.kv-navigation .wp-block-navigation__responsive-container.is-menu-open::before {
  content:""; position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:linear-gradient(90deg,#071116f7 0%,#0b161beb 45%,#091318c4 100%),linear-gradient(0deg,#081217,#08121700 64%),url("../images/hero-960.webp") 66% center/cover no-repeat;
}
.kv-navigation .wp-block-navigation__responsive-container.is-menu-open::after {
  content:""; position:fixed; z-index:-1; right:-185px; top:28%; width:480px; height:480px;
  border:1px solid #86b9bb17; border-radius:50%; pointer-events:none;
  box-shadow:0 0 0 34px #88b6b904,0 0 0 35px #88b6b90e,0 0 0 75px #88b6b904,0 0 0 76px #88b6b90a;
}
.kv-navigation .is-menu-open .kv-menu-brand { display:flex; flex-direction:column; align-items:flex-start; gap:22px; padding:4px 58px 0 0; margin-bottom:clamp(25px,5svh,55px); position:relative; z-index:2; flex-shrink:0; }
.kv-menu-brand img { width:183px; height:auto; max-width:100%; }
.kv-menu-brand :is(p,span) { margin:0; color:#bd9c74; font:500 11px/1.7 var(--kv-body); letter-spacing:.18em; text-transform:uppercase; }
.kv-navigation .is-menu-open .wp-block-navigation__responsive-close { position:static; z-index:2; flex:1 0 auto; max-width:none; width:100%; margin:0; }
.kv-navigation .is-menu-open .wp-block-navigation__responsive-dialog { position:static; width:100%; max-width:none; margin:0; }
/* Core adds its own admin-bar margin; the overlay already accounts for it. */
body .wp-block-navigation.kv-navigation .wp-block-navigation__responsive-container.is-menu-open { background-color:#081217!important; }
body.admin-bar .kv-navigation .is-menu-open .wp-block-navigation__responsive-dialog { margin-top:0; }
@media(max-width:600px) { body.admin-bar.kv-scrolled { --kv-admin-offset:0px; } }
.kv-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { display:block; align-items:stretch; max-width:none; width:100%; padding:0; }
.kv-navigation .is-menu-open .wp-block-navigation__container { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; width:100%; max-width:720px; padding:0; margin:0; list-style:none; }
.kv-navigation .is-menu-open .wp-block-navigation-item { position:relative; display:block; width:100%; margin:0; padding:0; border-top:1px solid #bbd2c826; }
.kv-navigation .is-menu-open .wp-block-navigation-item:last-child { border-bottom:1px solid #bbd2c826; }
.kv-navigation .is-menu-open .wp-block-navigation-item__content { position:relative; display:flex; align-items:center; justify-content:flex-start; gap:22px; width:100%; min-height:80px; padding:15px 30px 15px 0; color:var(--kv-text); font:700 clamp(38px,7vw,58px)/1 var(--kv-display); letter-spacing:.015em; text-transform:uppercase; white-space:normal; }
.kv-navigation .is-menu-open .wp-block-navigation-item__content::before { content:""; min-width:19px; flex:0 0 19px; }
.kv-navigation .is-menu-open .wp-block-navigation-item[data-index]::before { content:attr(data-index); position:absolute; left:0; top:calc(50% - 5px); z-index:2; color:#c4ab81; font:500 10px/1 var(--kv-body); letter-spacing:.06em; pointer-events:none; }
.kv-navigation .is-menu-open .wp-block-navigation-item__content::after { content:""; position:absolute; right:5px; top:calc(50% - 4px); width:9px; height:9px; border-top:1px solid #d4ae75; border-right:1px solid #d4ae75; transform:rotate(45deg); transition:transform .2s ease; }
.kv-navigation .is-menu-open .wp-block-navigation-item__content:hover { color:#e8bf87; }
.kv-navigation .is-menu-open .wp-block-navigation-item__content:hover::after { transform:translateX(4px) rotate(45deg); }
.kv-navigation .is-menu-open .wp-block-navigation-item__content:focus-visible { outline-offset:-4px; }
.kv-navigation .is-menu-open .wp-block-navigation-item__label::after { display:none; }
.kv-navigation .is-menu-open .wp-block-navigation__responsive-container-close { position:absolute; right:clamp(21px,6vw,65px); top:max(24px,env(safe-area-inset-top)); display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:10px; z-index:5; border:1px solid #b6c7bd50; border-radius:0; background:#101c20cc; color:#e6dfce; font:400 26px/1 var(--kv-body); }
.kv-navigation .is-menu-open .wp-block-navigation__responsive-container-close svg { width:20px; height:20px; }
.kv-navigation .is-menu-open .kv-menu-foot { position:relative; z-index:2; display:flex; flex-direction:column; align-items:flex-start; gap:12px; flex-shrink:0; margin-top:32px; padding-top:22px; border-top:1px solid #a4c1b912; }
.kv-menu-foot :is(p,span,small) { margin:0; color:#aebfb4; font:500 11px/1.7 var(--kv-body); letter-spacing:.09em; text-transform:uppercase; }
.kv-menu-foot :is(span,small) { display:flex; align-items:center; gap:9px; color:#c5a97f; }
.kv-menu-foot :is(span,small)::before { content:""; width:4px; height:4px; border-radius:50%; background:#c5a66f; box-shadow:0 0 9px #cba97455; }

/* Extend the native overlay to tablet widths; no separate navigation implementation. */
@media(max-width:900px) {
  .kv-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
  .kv-navigation .wp-block-navigation__responsive-container-open { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:6px; min-width:44px; min-height:44px; width:44px; height:44px; padding:10px; border:1px solid #bba67d60; border-radius:0; background:linear-gradient(135deg,#1b282d,#111a1d); color:#d3c9ad; box-shadow:inset 0 0 0 3px #101b1e; }
  .kv-navigation .wp-block-navigation__responsive-container-open svg { width:22px; height:22px; }
  .kv-navigation .wp-block-navigation__responsive-container-open span { display:block; width:19px; height:1px; background:#dbccb0; }
  .kv-navigation .wp-block-navigation__responsive-container-open span:last-child { width:13px; align-self:flex-end; margin-right:1px; }
}
@media(max-width:600px) {
  .kv-navigation .wp-block-navigation__responsive-container.is-menu-open { padding:max(25px,env(safe-area-inset-top)) 27px max(25px,env(safe-area-inset-bottom)); }
  .kv-navigation .is-menu-open .kv-menu-brand { gap:19px; margin-bottom:30px; }
  .kv-navigation .is-menu-open .wp-block-navigation-item__content { min-height:73px; padding-block:16px; gap:18px; font-size:clamp(36px,10.5vw,46px); }
  .kv-navigation .is-menu-open .wp-block-navigation__responsive-container-close { right:23px; top:max(23px,env(safe-area-inset-top)); }
  .kv-navigation .is-menu-open .kv-menu-foot { margin-top:25px; gap:10px; }
}
@media(max-width:360px) {
  .kv-menu-brand img { width:166px; }
  .kv-navigation .is-menu-open .wp-block-navigation-item__content { font-size:35px; gap:14px; }
  .kv-menu-foot :is(p,span,small) { font-size:10px; }
}
@media(max-height:720px) {
  .kv-navigation .wp-block-navigation__responsive-container.is-menu-open { padding-top:max(20px,env(safe-area-inset-top)); padding-bottom:max(20px,env(safe-area-inset-bottom)); }
  .kv-navigation .is-menu-open .kv-menu-brand { margin-bottom:22px; gap:12px; }
  .kv-menu-brand img { width:155px; }
  .kv-navigation .is-menu-open .wp-block-navigation-item__content { min-height:55px; padding-block:10px; font-size:34px; }
  .kv-navigation .is-menu-open .kv-menu-foot { margin-top:18px; padding-top:17px; gap:8px; }
  .kv-navigation .is-menu-open .wp-block-navigation__responsive-container-close { top:max(18px,env(safe-area-inset-top)); }
}
@media(max-height:480px) and (orientation:landscape) {
  .kv-navigation .is-menu-open .kv-menu-brand { margin-bottom:15px; }
  .kv-menu-brand :is(p,span) { display:none; }
  .kv-navigation .is-menu-open .wp-block-navigation-item__content { min-height:48px; padding-block:9px; font-size:30px; }
  .kv-navigation .is-menu-open .kv-menu-foot { margin-top:15px; padding-top:14px; }
}

/* Motion is additive: no JavaScript or failed observers leave content visible. */
.kv-scroll-progress { position:fixed; inset:0 0 auto; z-index:150; height:2px; background:linear-gradient(90deg,#d8ad70,#b4f4ef); transform:scaleX(0); transform-origin:left; pointer-events:none; box-shadow:0 0 8px #c2efcf50; }
.kv-reveal { opacity:1; transform:none; }
.kv-embers { position:absolute; inset:0; z-index:2; overflow:hidden; pointer-events:none; }
.kv-embers i { position:absolute; left:var(--x); bottom:3%; width:2px; height:3px; border-radius:50%; background:#ffb76f; box-shadow:0 0 9px #efae65; opacity:0; }
@media(prefers-reduced-motion:no-preference) {
  .kv-header-shell::before { animation:kv-border-glow 8s ease-in-out infinite; }
  .kv-sigil::after { animation:kv-rune-breathe 6s ease-in-out infinite; }
  .kv-embers i { animation:kv-ember-rise var(--duration) linear var(--delay) infinite; }
  .kv-picture img { transition:transform 1s var(--kv-ease); }
  .kv-feature:hover .kv-picture img { transform:scale(1.025); }
  html.kv-motion-ready .kv-reveal { transition:opacity .65s var(--kv-ease) var(--kv-delay,0ms),transform .8s var(--kv-ease) var(--kv-delay,0ms); }
  html.kv-motion-ready .kv-reveal:not(.kv-in-view):not(:focus-within) { opacity:0; transform:translate3d(0,22px,0); }
  html.kv-motion-ready .kv-reveal:focus-within { opacity:1; transform:none; transition:none; }
  html.kv-motion-ready .kv-picture.kv-reveal:not(.kv-in-view) img { transform:scale(1.035); }
  .kv-navigation .is-menu-open .kv-menu-brand { animation:kv-menu-arrive .4s var(--kv-ease) both; }
  .kv-navigation .is-menu-open .wp-block-navigation-item { animation:kv-menu-arrive .5s var(--kv-ease) both; }
  .kv-navigation .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay:45ms; }
  .kv-navigation .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay:90ms; }
  .kv-navigation .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay:135ms; }
  .kv-navigation .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay:180ms; }
  .kv-navigation .is-menu-open .kv-menu-foot { animation:kv-menu-arrive .55s var(--kv-ease) 180ms both; }
}
body.kv-paused .kv-embers i,body.kv-paused .kv-sigil::after,body.kv-paused .kv-header-shell::before { animation-play-state:paused; }
@keyframes kv-rune-breathe { 0%,100% { opacity:.45; transform:scaleY(.9); } 50% { opacity:1; transform:scaleY(1); } }
@keyframes kv-border-glow { 0%,100% { opacity:.4; } 50% { opacity:.9; } }
@keyframes kv-ember-rise { 0% { transform:translate3d(0,0,0); opacity:0; } 15% { opacity:.7; } 75% { opacity:.35; } 100% { transform:translate3d(24px,-240px,0); opacity:0; } }
@keyframes kv-menu-arrive { from { opacity:0; transform:translate3d(0,12px,0); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  /* Intentional accessibility override, including styles set by blocks/plugins. */
  *,*::before,*::after { animation:none!important; transition:none!important; }
  html.kv-motion-ready .kv-reveal,html.kv-motion-ready .kv-reveal:not(.kv-in-view) { opacity:1; transform:none; }
  .kv-hero .wp-block-cover__image-background { transform:none; }
  .kv-embers { display:none; }
  .wp-block-button .wp-block-button__link:hover,.kv-feature:hover .kv-picture img { transform:none; }
}
@media print {
  .kv-scroll-progress,.kv-menu-brand,.kv-menu-foot,.kv-embers { display:none; }
  html.kv-motion-ready .kv-reveal { opacity:1; transform:none; }
}
