/* Guardian Robotics — shared polish layer.
 * Loaded after each page's inline styles; refines motion, depth, and mobile nav.
 * All motion is gated behind prefers-reduced-motion. */

/* ---------- Focus & accessibility ---------- */
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--blue);color:#fff;padding:.6rem 1.2rem;border-radius:0 0 8px 0;font-family:var(--grotesk);font-size:.85rem;font-weight:600}
.skip-link:focus{left:0}

/* ---------- Header: elevation on scroll ---------- */
header{transition:box-shadow .25s ease}
header.scrolled{box-shadow:0 1px 0 var(--border),0 8px 28px rgba(13,63,110,.12)}
nav a.active{position:relative}
nav a.active:not(.btn)::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--blue);border-radius:2px}

/* ---------- Buttons: tactile lift ---------- */
.btn,.btn-w,.btn-wg,.form-submit{transition:all .18s cubic-bezier(.2,.7,.3,1.2)}
.btn-p:hover,.btn-w:hover,.form-submit:hover:not(:disabled){transform:translateY(-1.5px);box-shadow:0 8px 20px rgba(27,114,190,.28)}
.btn-g:hover{transform:translateY(-1.5px);box-shadow:0 6px 16px rgba(27,114,190,.14)}
.btn:active,.btn-w:active,.form-submit:active{transform:translateY(0)}

/* ---------- Hero: depth, texture, gradient headline ---------- */
.hero{background-color:var(--bg2);background-image:radial-gradient(rgba(27,114,190,.13) 1px,transparent 1.3px),radial-gradient(720px 340px at 50% -120px,rgba(27,114,190,.14),transparent 72%);background-size:26px 26px,auto}
h1.hero-h1 em{background:linear-gradient(92deg,var(--blue) 20%,#3E9BE0 60%,var(--blue-dark));-webkit-background-clip:text;background-clip:text;color:transparent}
.page-hero{background-image:radial-gradient(rgba(27,114,190,.10) 1px,transparent 1.3px),radial-gradient(640px 300px at 30% -100px,rgba(27,114,190,.12),transparent 70%);background-size:26px 26px,auto}
.sdvosb-chip,.ph-badge{box-shadow:0 2px 10px rgba(15,123,71,.10)}
.ph-badge{box-shadow:0 2px 10px rgba(27,114,190,.10)}

/* ---------- Cards: consistent lift ---------- */
.cap:hover,.fc-card:hover,.cert:hover,.mv-card:hover,.val:hover,.id-card:hover,.itc:hover,.info-card:hover,.cred:hover,.sstat:hover{transform:translateY(-3px)}
.cap,.fc-card,.cert,.mv-card,.val,.id-card,.itc,.info-card,.cred,.sstat{transition:transform .25s ease,border-color .2s ease,box-shadow .25s ease}
.cert:hover,.mv-card:hover,.val:hover,.id-card:hover,.itc:hover,.info-card:hover,.cred:hover,.sstat:hover{border-color:var(--border2);box-shadow:0 6px 24px rgba(27,114,190,.09)}

/* ---------- Terminal: caret + polish ---------- */
.term{transition:transform .3s ease,box-shadow .3s ease}
.term:hover{transform:translateY(-3px);box-shadow:0 14px 44px rgba(13,63,110,.24)}
.term-body .caret::after{content:'▋';margin-left:2px;color:#7dd3fc;animation:gr-blink 1s steps(1) infinite}
@keyframes gr-blink{50%{opacity:0}}

/* ---------- Scroll reveal (JS adds .rv, then .in when visible) ---------- */
@media (prefers-reduced-motion: no-preference){
  .rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.3,1)}
  .rv.in{opacity:1;transform:none}
  .term-body.typing>div{opacity:0}
  .term-body.typing>div.shown{opacity:1;transition:opacity .12s ease}
}
@media (prefers-reduced-motion: reduce){
  .rv{opacity:1;transform:none}
}

/* ---------- Mobile navigation ---------- */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;background:none;border:none;cursor:pointer;border-radius:8px}
.nav-toggle span{display:block;height:2px;width:100%;background:var(--text);border-radius:2px;transition:transform .25s ease,opacity .2s ease}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:768px){
  .nav-toggle{display:flex}
  header nav{position:fixed;top:68px;left:0;right:0;z-index:9998;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:.5rem 2rem 1.4rem;border-bottom:1px solid var(--border);box-shadow:0 16px 32px rgba(13,63,110,.12);transform:translateY(-10px);opacity:0;visibility:hidden;transition:transform .22s ease,opacity .22s ease,visibility .22s}
  header nav.open{transform:none;opacity:1;visibility:visible}
  header nav a{padding:.85rem 0;font-size:1rem;border-bottom:1px solid var(--border)}
  header nav a:last-child{border-bottom:none}
  header nav .btn-g{display:inline-flex;margin-top:.8rem;justify-content:center;border-bottom:none}
  header nav .btn-p{margin-top:.6rem;justify-content:center}
}

/* ---------- Small refinements ---------- */
.strip-val{letter-spacing:.01em}
.ftr-col ul li a{display:inline-block;transition:color .15s ease,transform .15s ease}
.ftr-col ul li a:hover{transform:translateX(2px)}
img{-webkit-user-drag:none}
::selection{background:var(--blue-mid);color:var(--blue-deep)}
