/* RD NovaSphere V89 final long-term stability polish.
   Loaded after page-specific styles. Focus: phone/tablet compatibility,
   readable text, sane button sizing, safe navigation and modal ergonomics. */
:root{
  --nova-safe-top:env(safe-area-inset-top,0px);
  --nova-safe-right:env(safe-area-inset-right,0px);
  --nova-safe-bottom:env(safe-area-inset-bottom,0px);
  --nova-safe-left:env(safe-area-inset-left,0px);
}
html{max-width:100%;overflow-x:clip;scroll-padding-top:88px}
body{max-width:100%;overflow-x:clip}
:where(main,section,article,aside,header,footer,nav,form,fieldset,div){min-width:0}
:where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,legend,blockquote,figcaption){
  max-width:100%;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}
:where(pre,code,kbd,samp,.code-output,.sql-answer,.builder-target){max-width:100%;overflow-wrap:anywhere}
:where(img,picture,svg,video,canvas,iframe){max-width:100%}
:where(section[id],article[id],div[id]){scroll-margin-top:92px}

/* Buttons: accessible tap targets without becoming oversized slabs on phones. */
:where(button,.btn,[role="button"],input[type="button"],input[type="submit"]){
  max-inline-size:100%;
  line-height:1.2;
  overflow-wrap:break-word;
  word-break:normal;
}
@media(max-width:760px){
  :where(button,.btn,[role="button"],input[type="button"],input[type="submit"]){
    min-height:44px;
    font-size:clamp(.84rem,3.45vw,.98rem);
    padding-block:clamp(.58rem,2.5vw,.76rem);
    padding-inline:clamp(.78rem,3.2vw,1rem);
  }
  :where(.cta,.actions,.hero-quick-actions,.path-actions,.answer-actions,.study-actions,.cookie-actions){
    gap:.55rem!important;
    flex-wrap:wrap!important;
  }
  :where(.cta,.actions,.hero-quick-actions,.path-actions,.answer-actions,.study-actions) > :where(.btn,button,a.btn){
    width:auto!important;
    max-width:100%!important;
  }
}
@media(max-width:380px){
  :where(button,.btn,[role="button"],input[type="button"],input[type="submit"]){font-size:.86rem;padding:.6rem .78rem}
}

/* Universal enhanced mobile navigation. JS adds these classes only to the top nav. */
.final-nav-container{position:relative!important}
.final-nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  border:1px solid rgba(243,207,120,.34);
  background:rgba(5,15,31,.92);
  color:#f7f9ff;
  border-radius:12px;
  cursor:pointer;
  flex:0 0 auto;
}
.final-nav-toggle .bars{display:grid;gap:3px;width:18px}
.final-nav-toggle .bars i{display:block;height:2px;border-radius:3px;background:currentColor}
@media(max-width:900px){
  .final-nav-toggle{display:inline-flex!important;min-width:44px!important;width:auto!important;padding:.56rem .7rem!important;margin-left:auto}
  .final-nav-enhanced.final-nav-links{
    display:none!important;
    position:absolute!important;
    z-index:10050!important;
    top:calc(100% + 8px)!important;
    right:max(0px,var(--nova-safe-right))!important;
    left:auto!important;
    width:min(320px,calc(100vw - 24px - var(--nova-safe-left) - var(--nova-safe-right)))!important;
    max-height:min(72dvh,560px)!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:.3rem!important;
    padding:.65rem!important;
    border:1px solid rgba(243,207,120,.25)!important;
    border-radius:16px!important;
    background:rgba(3,12,28,.985)!important;
    box-shadow:0 22px 70px rgba(0,0,0,.5)!important;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  .final-nav-container.final-nav-open > .final-nav-enhanced.final-nav-links,
  .final-nav-container.final-nav-open .final-nav-enhanced.final-nav-links{display:flex!important}
  .final-nav-enhanced.final-nav-links > a{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-height:44px!important;
    padding:.68rem .75rem!important;
    border-radius:10px!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    line-height:1.25!important;
  }
  .final-nav-enhanced.final-nav-links > a:hover,
  .final-nav-enhanced.final-nav-links > a:focus-visible{background:rgba(243,207,120,.09)!important}
}

/* Mobile overlays, dialogs and glossary explanations must stay on-screen. */
:where(dialog,[role="dialog"],.modal-shell,.glossary-dialog){max-width:min(94vw,680px);max-height:min(88dvh,760px)}
.glossary-modal{padding:max(14px,var(--nova-safe-top)) max(14px,var(--nova-safe-right)) max(14px,var(--nova-safe-bottom)) max(14px,var(--nova-safe-left))!important}
.glossary-dialog{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.glossary-actions{display:flex;justify-content:flex-end;margin-top:18px}
.glossary-actions .glossary-done{min-width:96px}
body.glossary-open{overflow:hidden!important;touch-action:none}
@media(max-width:520px){
  .glossary-modal{align-items:center!important}
  .glossary-dialog{width:100%!important;max-height:82dvh!important;padding:20px!important;border-radius:18px!important}
  .glossary-dialog h3{font-size:1.16rem!important;margin-right:38px!important}
  .glossary-dialog p{font-size:.94rem!important;line-height:1.58!important}
  .glossary-close{width:36px!important;height:36px!important;top:10px!important;right:10px!important}
}

/* Fixed controls should not cover the final lines of a page. */
@media(max-width:760px){
  body:has(.tourbar),body:has(.novaguide-float),body:has(.site-back){padding-bottom:max(82px,calc(66px + var(--nova-safe-bottom)))}
  .tourbar{max-width:calc(100vw - 20px - var(--nova-safe-left) - var(--nova-safe-right))!important}
  .back-to-top{bottom:calc(76px + var(--nova-safe-bottom))!important}
}

/* Avoid hover-only information and sticky hover transforms on touch. */
@media(hover:none),(pointer:coarse){
  :where(.card,.project-card,.discipline-card,.game-card,.btn,button,a){-webkit-tap-highlight-color:transparent}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
/* The main-site guided-tour CTA is duplicated by the persistent tour control;
   hide the header copy on phones so brand + menu never crowd each other. */
@media(max-width:900px){header .start-tour{display:none!important}}


/* V89 final edge-case hardening: tablet navigation + very small phones. */
.final-long-label{white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important;text-overflow:clip!important}
@media(max-width:900px){
  header nav,header .nav{min-width:0!important}
  .final-nav-container{overflow:visible!important}
}
@media(max-width:430px){
  :where(button,.btn,[role="button"],input[type="button"],input[type="submit"]){
    width:auto;max-width:min(92vw,100%)!important;
  }
}
@media(max-width:380px){
  .tourbar .progress,.tourbar .time,#speedToggle{display:none!important}
  .tourbar{max-width:calc(100vw - 4.4rem)!important;gap:.2rem!important;padding:.28rem!important}
  .tourbar button{padding:.42rem .5rem!important;font-size:.68rem!important}
  .tourbar .main{max-width:52vw!important;white-space:normal!important}
}

/* V95 universal inline Nova brain polish */
.nova-inline-answer,.nova-inline-answer *{hyphens:none!important;word-break:normal;overflow-wrap:break-word}.nova-inline-sources{display:grid;gap:.4rem;margin-top:.85rem}.nova-inline-sources a{overflow-wrap:anywhere}.nova-inline-actions,.answer-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.8rem}[data-nova-out],#novaPlanRefinement{margin-top:.85rem}


/* V96 final universal Nova response renderer */
.nova-inline-answer{line-height:1.58;min-width:0}
.nova-inline-answer p{margin:.5rem 0}
.nova-inline-answer p:first-child{margin-top:0}
.nova-inline-answer p:last-child{margin-bottom:0}
.nova-inline-answer h3,.nova-inline-answer h4{margin:.9rem 0 .45rem;line-height:1.25}
.nova-inline-answer ul,.nova-inline-answer ol{margin:.55rem 0 .7rem;padding-left:1.45rem}
.nova-inline-answer li{margin:.24rem 0}
.nova-inline-answer pre.nova-code,.nova-inline-answer pre{max-width:100%;overflow:auto;white-space:pre;word-break:normal;overflow-wrap:normal;hyphens:none;padding:14px 16px;border-radius:12px;background:rgba(3,10,22,.78);border:1px solid rgba(112,177,255,.22);line-height:1.5}
.nova-inline-answer pre code{white-space:pre;word-break:normal;overflow-wrap:normal;hyphens:none;background:transparent;padding:0}
.nova-inline-answer code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.nova-inline-sources{grid-template-columns:minmax(0,1fr)}
.nova-inline-sources a{display:block;padding:.55rem .65rem;border:1px solid rgba(112,177,255,.18);border-radius:9px;text-decoration:none}
@media(max-width:520px){.nova-inline-answer pre.nova-code,.nova-inline-answer pre{font-size:.82rem;padding:12px}.nova-inline-actions .btn{font-size:.82rem}}
