/* Shared navigation component. Legacy menu selectors are removed from styles.css.
   A stationary target, one scroll container, one responsive layout. */
body.page-home .site-header {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
.site-menu-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 44px;
  min-height: 44px;
  padding: 12px;
  border: 1px solid transparent;
  border-radius: 50%;
  background: var(--orange);
  color: var(--ink);
  pointer-events: auto;
  cursor: pointer;
  transition: background-color 220ms ease, color 220ms ease;
}
.site-menu-trigger svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.site-menu-trigger:hover { background: var(--ink); color: var(--paper); }
.site-menu-trigger:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.site-header--floating .header-logo { min-height: 44px !important; }
html.menu-locked, html.menu-locked body { overflow: hidden !important; overscroll-behavior: none; }
body.menu-open .site-header { opacity: 0 !important; pointer-events: none !important; }
body.menu-open .section-progress { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
.site-menu[hidden] { display: none !important; }
.site-menu {
  --menu-gutter: clamp(24px, 5vw, 80px);
  position: fixed;
  z-index: 1200;
  inset: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background: var(--orange);
  color: var(--ink);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  overflow: hidden;
  transition: opacity 240ms ease, visibility 0s linear 240ms;
}
.site-menu.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
.site-menu__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: max(20px, env(safe-area-inset-top)) var(--menu-gutter) 18px;
}
.site-menu__label {
  font: 600 14px/1.4 var(--font-body) !important;
  letter-spacing: .02em !important;
}
.site-menu__label span { margin: 0 10px; opacity: .6; }
.site-menu__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 106px;
  min-height: 48px;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid rgba(41,46,38,.48);
  font: 600 14px/1.2 var(--font-body);
  color: var(--ink);
  cursor: pointer;
  transition: color 220ms ease, background-color 220ms ease;
}
.site-menu__close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.site-menu__close:hover { background: var(--ink); color: var(--paper); }
.site-menu__scroll {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(41,46,38,.45) transparent;
  padding: clamp(12px, 3vh, 36px) var(--menu-gutter) max(24px, env(safe-area-inset-bottom));
  scroll-padding-block: 12px;
}
.site-menu__scroll::-webkit-scrollbar { width: 6px; }
.site-menu__scroll::-webkit-scrollbar-thumb { background: rgba(41,46,38,.45); border-radius: 6px; }
.site-menu__grid {
  display: grid;
  width: min(100%, 1320px);
  margin-inline: auto;
  grid-template-columns: minmax(0, 1.16fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(32px, 4vh, 52px) clamp(44px, 7vw, 120px);
}
.site-menu__eyebrow {
  margin: 0 0 20px;
  font: 600 12px/1.4 var(--font-body) !important;
  letter-spacing: .02em !important;
  text-transform: none;
}
.site-menu__page, .site-menu__project {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: baseline;
  column-gap: 12px;
  min-height: 48px;
  color: var(--ink);
  border: 0;
  text-decoration: none;
  cursor: pointer;
}
.site-menu__page { padding: 12px 0 16px; }
.site-menu__page:last-child, .site-menu__project:last-child { border-bottom: 0; }
.site-menu__page > span, .site-menu__project > span { font: 500 12px/1.4 var(--font-body); }
.site-menu__page strong {
  font: 500 clamp(36px, 4.7vw, 78px)/1.06 var(--font-display);
  letter-spacing: -.035em;
  overflow-wrap: normal;
}
.site-menu__page strong, .site-menu__project strong { text-decoration: underline transparent; text-decoration-thickness: 2px; text-underline-offset: .17em; transition: text-decoration-color 220ms ease; }
.site-menu__page:is(:hover, :focus-visible, [aria-current]) strong,
.site-menu__project:is(:hover, :focus-visible, [aria-current]) strong { text-decoration-color: currentColor; }
.site-menu__page[aria-current] > span, .site-menu__project[aria-current] > span { font-weight: 700; }
.site-menu__project { padding: 18px 0; row-gap: 6px; }
.site-menu__project strong { font: 500 clamp(25px, 2.6vw, 42px)/1.13 var(--font-display); letter-spacing: -.025em; }
.site-menu__project em { grid-column: 2; font: 500 13px/1.45 var(--font-body); font-style: normal; }
.site-menu__work { min-width: 0; }
.site-menu__art { position: relative; width: 200px; height: 130px; margin: 24px 0 0 auto; pointer-events: none; }
.site-menu__poster { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.site-menu__animation { position: absolute; inset: 0; display: none; pointer-events: none; }
.site-menu__art.is-playing .site-menu__animation { display: block; }
.site-menu__art.is-playing .site-menu__poster { visibility: hidden; }
.site-menu__contact {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  border-top: 1px solid rgba(41,46,38,.32);
  padding-top: 20px;
}
.site-menu__connect { min-height: 48px; display: inline-flex; align-items: center; gap: 24px; font: 600 19px/1.4 var(--font-body); }
.site-menu__connect svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.site-menu__connect span { text-decoration: underline transparent; text-underline-offset: 6px; transition: text-decoration-color 220ms ease; }
.site-menu__connect:is(:hover, :focus-visible, [aria-current]) span { text-decoration-color: currentColor; }
.site-menu__contact p { max-width: 40ch; font: 400 13px/1.55 var(--font-body) !important; text-align: right; }
.site-menu__contact p span { display: block; }
.site-menu :is(a, button):focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; border-radius: 4px; }
.site-menu__close:focus-visible { border-radius: 999px !important; }
/* Restored static social links; site-config.js can override their destinations. */
[data-contact-links]:empty { display: none; }
.footer-socials a, .footer-email { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; }
.footer-socials a:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.footer-email { font: 500 16px/1.4 var(--font-body); text-decoration: underline; text-underline-offset: 5px; }
/* Repeated navigation keeps the reel but skips the repeated signature draw. */
html.is-fast-navigation #main, html.is-fast-navigation .site-footer,
html.is-fast-navigation .page-wipe { transition-duration: 320ms !important; }
@media (max-width: 900px) {
  .site-menu__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .site-menu__page strong { font-size: clamp(34px, 6.4vw, 58px); }
  .site-menu__project strong { font-size: clamp(26px, 4.8vw, 34px); }
  .site-menu__art { display: none; }
  .site-menu__contact { align-items: flex-start; }
}
@media (max-width: 480px) {
  .site-menu { --menu-gutter: 24px; }
  .site-menu__bar { padding-bottom: 12px; }
  .site-menu__label { font-size: 12px !important; }
  .site-menu__label span { margin-inline: 6px; }
  .site-menu__close { min-width: 90px; gap: 8px; padding-inline: 12px; }
  .site-menu__contact { flex-direction: column; gap: 12px; }
  .site-menu__contact p { text-align: left; }
}
@media (max-height: 700px) {
  .site-menu__bar { padding-block: 12px; }
  .site-menu__scroll { padding-top: 12px; }
  .site-menu__art { display: none; }
  .site-menu__page strong { font-size: clamp(32px, 4.2vw, 58px); }
}
@media (prefers-reduced-motion: reduce) {
  .site-menu, .site-menu * { transition: none !important; animation: none !important; }
}
@media print { .site-menu, .site-menu-trigger { display: none !important; } }
/* A fixed reveal footer cannot fit all of its controls on a short viewport.
   Let it rejoin the page instead, so Contact and Back to top remain reachable. */
@media (max-height: 700px) {
  body.page-home #main, body.page-case #main { margin-bottom: 0 !important; }
  body.page-home .site-footer, body.page-case .site-footer {
    position: relative !important;
    inset: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 56px var(--gutter) 24px !important;
  }
  .site-footer .site-footer__top--simple { min-height: 0 !important; padding: 0 !important; }
  .site-footer .site-footer__title { font-size: clamp(56px, 9vw, 100px) !important; }
  .site-footer .site-footer__note { margin-block: 20px 0 !important; }
  .site-footer .site-footer__bottom--simple { padding: 24px 0 0 !important; margin-top: 36px; }
}
/* Explicit typography wins over the older site's broad font-family sweep. */
#site-menu .site-menu__page strong, #site-menu .site-menu__project strong { font-family: var(--font-display) !important; }
#site-menu .site-menu__label, #site-menu .site-menu__eyebrow { font-family: var(--font-body) !important; }
.site-footer__bottom [data-contact-links]:empty + .back-top { margin-left: auto; }

/* ========================================================================== 
   V70; shared Lastoria wordmark in header + full-screen menu
   ========================================================================== */
.header-logo--signature {
  width: 92px !important;
  min-width: 92px !important;
  height: 40px !important;
  padding-inline: 0 !important;
  color: currentColor;
}
.header-lastoria-v70,
.site-menu__signature-v70 {
  display: block;
  background: currentColor;
  -webkit-mask-image: url("assets/shiva-lastoria-word-v70.svg?v=125");
  mask-image: url("assets/shiva-lastoria-word-v70.svg?v=125");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.header-lastoria-v70 {
  width: 84px;
  height: 38px;
  transition: transform 360ms cubic-bezier(.22,.78,.18,1);
}
.header-logo--signature:hover .header-lastoria-v70 { transform: translateY(-1px) scale(1.025); }
.site-menu__label {
  display: inline-flex !important;
  align-items: center;
  gap: 0;
  min-height: 44px;
  font: 600 14px/1.4 var(--font-body) !important;
}
.site-menu__label > span { margin: 0 !important; }
.site-menu__signature-v70 {
  width: 86px;
  height: 38px;
  color: var(--ink);
  opacity: 1 !important;
}
.site-menu__label .site-menu__slash {
  margin-inline: 9px !important;
  opacity: .52 !important;
}
.site-menu__label .site-menu__explore { opacity: 1 !important; }
@media (max-width: 560px) {
  .site-menu__signature-v70 { width: 74px; height: 34px; }
  .site-menu__label .site-menu__explore { font-size: 12px; }
}

/* V74; simplified menu */
.site-menu__scroll{display:grid;align-items:start}
.site-menu__primary--simple{width:min(100%,920px);margin-inline:auto}
.site-menu__primary--simple .site-menu__page,.site-menu__primary--simple .site-menu__project{grid-template-columns:minmax(0,1fr)}
.site-menu__primary--simple .site-menu__page{width:100%;min-height:62px;padding:10px 0;text-align:left}
.site-menu__primary--simple .site-menu__page strong{font-size:clamp(36px,5vw,70px)}
.site-menu__works-toggle{display:flex!important;align-items:center!important;justify-content:space-between;gap:24px;background:transparent;color:inherit;border:0;cursor:pointer}
.site-menu__works-toggle svg{flex:none;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform 260ms cubic-bezier(.22,.78,.18,1)}
.site-menu__works-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.site-menu__projects-panel{overflow:hidden;padding:4px 0 18px clamp(18px,3vw,44px)}
.site-menu__projects-panel[hidden]{display:none}
.site-menu__project{grid-template-columns:minmax(0,1fr)!important;padding:11px 0!important}
.site-menu__project strong{font-size:clamp(24px,2.8vw,38px)!important}
.site-menu__project em{grid-column:1!important;margin-top:2px}
.site-menu__contact,.site-menu__work,.site-menu__art{display:none!important}
.site-menu__signature-v70{width:102px;height:42px;background:currentColor;opacity:1!important}
@media(max-width:560px){.site-menu__primary--simple .site-menu__page strong{font-size:clamp(32px,10vw,48px)}.site-menu__projects-panel{padding-left:16px}.site-menu__signature-v70{width:88px;height:38px}}


/* V83; private case studies remain visible in Selected works but cannot open. */
.site-menu__project--locked {
  position: relative;
  cursor: default;
  opacity: .62;
  text-decoration: none;
}
.site-menu__project--locked:hover,
.site-menu__project--locked:focus {
  opacity: .62;
}
.site-menu__soon {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 6px;
  padding: 4px 9px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 12px;
  font-style: normal;
  line-height: 1;
}
