/* RD NovaSphere V107 — release-wide typography, mobile and contextual-assistant polish. */
:root{--rd-v107-safe-inline:max(14px,env(safe-area-inset-left,0px));}
html{scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
/* Never split ordinary interface words into individual letters. */
h1,h2,h3,h4,h5,h6,p,li,label,legend,button,.btn,a,.tag,.badge,.chip,.pill,.eyebrow,.notice,.card,.panel{
  word-break:normal!important;hyphens:none!important;
}
h1,h2,h3,h4,h5,h6,button,.btn,.tag,.badge,.chip,.pill,.eyebrow{overflow-wrap:normal!important}
p,li,label,legend,small,strong,b,em,.notice,.helper-result,.feedback,.cross-result{overflow-wrap:break-word!important;word-break:normal!important;hyphens:none!important}
code,pre,.url-wrap,[data-allow-anywhere]{overflow-wrap:anywhere;word-break:break-word}

/* The contextual NovaAI is invitation-only: launcher visible, panel completely absent until opened. */
.nova-context-panel{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.nova-context-panel.open{visibility:visible!important;opacity:1!important;pointer-events:auto!important}
.nova-context-backdrop:not(.open){display:none!important;pointer-events:none!important}
.nova-context-panel{transition:transform .22s ease,opacity .18s ease,visibility 0s linear .22s!important}
.nova-context-panel.open{transition:transform .22s ease,opacity .18s ease!important}
.nova-context-voicebar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.6rem .8rem;border-top:1px solid rgba(135,174,220,.16);background:rgba(4,14,31,.55)}
.nova-context-voicebar button{min-height:38px;border:1px solid rgba(126,205,255,.28);border-radius:999px;background:rgba(7,24,51,.82);color:#eaf5ff;padding:.48rem .75rem;font:inherit;cursor:pointer}
.nova-context-voicebar button.active{border-color:rgba(243,194,78,.8);box-shadow:0 0 0 2px rgba(243,194,78,.12) inset;color:#ffd76a}
.nova-context-voice-status{font-size:.78rem;color:#8fa8c4;flex:1 1 150px}

/* Internal pages must begin with content; the constellation is a background, never a spacer. */
html.rd-v107-internal body>.rd-v107-empty-lead{display:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important}

/* Portfolio glossary dialogs: clean mobile-first close affordance. */
.glossary-hint{display:none!important}
.glossary-modal .close,.glossary-modal [data-close],.glossary-modal button[aria-label*="Close" i]{min-width:44px;min-height:44px}

/* Sovereign Stack privacy marker. */
.rd-private-lock-link{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}

@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden!important}
  h1{font-size:clamp(2rem,10.5vw,3.7rem)!important;line-height:.98!important;letter-spacing:-.045em!important}
  h2{font-size:clamp(1.65rem,7.5vw,2.65rem)!important;line-height:1.05!important}
  h3{line-height:1.12!important}
  p,li,label{line-height:1.58}
  button,.btn,a[role="button"]{min-height:44px}
  .nova-context-panel{left:max(8px,env(safe-area-inset-left,0px))!important;right:max(8px,env(safe-area-inset-right,0px))!important;bottom:max(8px,env(safe-area-inset-bottom,0px))!important;width:auto!important;max-width:none!important;max-height:min(82dvh,720px)!important;border-radius:22px!important}
  .nova-context-compose textarea{font-size:16px!important;max-height:26dvh!important}
  .nova-context-actions{gap:.65rem!important;align-items:flex-end!important}
  .nova-context-send{min-width:78px!important;flex:0 0 auto!important}
  .nova-context-voicebar{padding-bottom:max(.65rem,env(safe-area-inset-bottom,0px))}
  .glossary-modal .glossary-card,.glossary-modal .modal-card,.glossary-modal [role="document"]{max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;overflow:auto!important}
}
@media(max-width:420px){
  .nova-context-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}
  .nova-context-actions>div{min-width:0!important}
  .nova-context-actions small,.nova-context-expand{font-size:.74rem!important;overflow-wrap:break-word!important}
  .nova-context-voicebar button{font-size:.8rem;padding:.45rem .62rem}
}
@media(prefers-reduced-motion:reduce){.nova-context-panel{transition:none!important}}

@media(max-width:760px){.skill-strip span,.tech-cloud span,.bar-label,.mini-stat strong{overflow-wrap:break-word!important;word-break:normal!important;hyphens:none!important}}
