/* Shared by every public page: header, phone menu, button shimmer, footer. */
/* The display face for the big figures. It lived in index.html, so the SAT
   and math pages asked for it by name and silently fell back to Caladea. */
@font-face{
  font-family:'Duera Expanded Black';
  src:url('duera-expanded-black.woff2') format('woff2'),url('duera-expanded-black.ttf') format('truetype');
  font-weight:900;font-style:normal;font-display:swap;
}
html{scroll-behavior:smooth}
.nav-logo:hover img{opacity:.82}
@media (max-width:560px){
  .nav-logo img{height:38px}
}
.navlinks{display:flex;gap:1.9rem;align-items:center;margin-left:.7rem;font-size:.84rem;color:rgba(237,231,229,.72)}
.navlogin:hover{color:#fff}
.navlogin::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--red-lift);transform:scaleX(0);transform-origin:right;transition:transform .42s var(--ease)}
.navlogin:hover::after{transform:scaleX(1);transform-origin:left}
.navlinks a:hover{color:#fff}
.navcta:hover{background:var(--red);border-color:var(--red);color:#fff}
.navlinks a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--red-lift);transform:scaleX(0);transform-origin:right;transition:transform .42s var(--ease)}
.navlinks a:hover::after{transform:scaleX(1);transform-origin:left}
.navburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:34px;padding:0 9px;background:transparent;border:1px solid rgba(255,255,255,.34);border-radius:2px;cursor:pointer;transition:background .28s var(--ease),border-color .28s var(--ease)}
.navburger span{display:block;height:1.5px;background:#fff;border-radius:2px;transition:transform .35s var(--ease)}
.navburger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.25px) rotate(45deg)}
.navburger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.25px) rotate(-45deg)}
.navmenu{display:none;flex-direction:column;background:var(--void);border-top:1px solid rgba(255,255,255,.09);padding:.2rem clamp(1.25rem,3vw,2.8rem) .9rem}
.navmenu a:last-child{border-bottom:none}
.navmenu a:hover{color:#fff}
@media (max-width:820px){
  .navlinks,.navlogin{display:none}
  .navcta{margin-left:auto}
  .navburger{display:flex}
  .navmenu.open{display:flex}
}
.nav-logo,.navburger{flex-shrink:0}
.navcta{min-width:min-content}
@media (max-width:560px){
  nav .shell{gap:.6rem}
  .navcta{padding-left:.8rem;padding-right:.8rem;letter-spacing:.08em}
}
@media (max-width:374px){
  .nav-logo img{height:28px}
}
.shimmer{position:relative;overflow:hidden;isolation:isolate}
.shimmer>span{position:relative;z-index:2}
.shimmer:hover::after,.shimmer:focus-visible::after{transform:translateX(100%)}
footer a:hover{color:#fff}
.footer-links a{margin-right:.95rem;font-size:.73rem}
.footer-links a:last-child{margin-right:0}
.footer-id{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem .6rem}
.footer-right{display:flex;align-items:center}
.footer-linkedin{display:inline-block;margin:0;color:rgba(237,231,229,.55)}


/* ═══ ACCESSIBILITY FIXES (2026-09-22 audit) ═══
   A red focus ring vanished on the red nav and on red buttons; this one is
   visible on any background. */
:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px rgba(12,10,9,.9)}
nav:not(.is-red) :focus-visible,.pgcard:focus-visible{outline-color:#fff}
.pgcard:focus-visible{outline:2px solid #fff !important}
@media(max-width:600px){
  /* Nothing on a phone should be under 12px; form labels get 13px. */
  .eyeb,.lbl,.kicker,.cdk,.fine,.capdate,.foot small,.creds span{font-size:.76rem !important;letter-spacing:.06em}
  .bookcard .fl,.capture .bookcard .fl{font-size:.8rem !important;letter-spacing:.06em}
}
/* Anchors land below the fixed bar rather than under it. */
#start,#diagnostic,#programs,#faq{scroll-margin-top:96px}
