/* Shared progressive enhancements for the original static pages. */
.skip-link{
  position:fixed;
  top:.65rem;
  left:.65rem;
  z-index:1000;
  padding:.7rem 1rem;
  border-radius:.55rem;
  background:#efedf5;
  color:#131120;
  font-weight:700;
  transform:translateY(-160%);
  transition:transform .16s ease;
}
.skip-link:focus{transform:translateY(0);text-decoration:none}

:where(a,button,input,textarea,summary):focus-visible{
  outline:3px solid #cbb8ff;
  outline-offset:3px;
}

main p a:not(.btn),main li a,main td a,.source-note a{
  text-decoration:underline;
  text-underline-offset:.16em;
  text-decoration-thickness:.08em;
}

.nav-menu{display:none;position:relative}
.nav-menu summary{
  min-height:44px;
  min-width:44px;
  display:grid;
  place-items:center;
  padding:.45rem .75rem;
  border:1px solid rgba(199,195,212,.25);
  border-radius:999px;
  color:#efedf5;
  cursor:pointer;
  list-style:none;
  font-size:.88rem;
}
.nav-menu summary::-webkit-details-marker{display:none}
.mobile-links{
  position:absolute;
  right:0;
  top:calc(100% + .55rem);
  width:min(18rem,calc(100vw - 2rem));
  display:grid;
  padding:.55rem;
  border:1px solid rgba(199,195,212,.2);
  border-radius:.8rem;
  background:#1c1930;
  box-shadow:0 .8rem 2.4rem rgba(0,0,0,.35);
}
.mobile-links a{
  min-height:44px;
  display:flex;
  align-items:center;
  padding:.6rem .75rem;
  border-radius:.5rem;
  color:#efedf5;
}
.mobile-links a:hover{background:#211d36;text-decoration:none}

.library-tools{
  position:relative;
  z-index:2;
  display:grid;
  gap:1rem;
  padding:1.25rem;
  margin:0 0 1rem;
  border:1px solid rgba(199,195,212,.16);
  border-radius:14px;
  background:#1c1930;
}
.library-tools label{display:block;color:#efedf5;font-weight:600;margin-bottom:.4rem}
.library-search{
  width:100%;
  min-height:48px;
  padding:.75rem 1rem;
  border:1px solid rgba(199,195,212,.28);
  border-radius:.65rem;
  background:#131120;
  color:#efedf5;
  font:inherit;
}
.library-search::placeholder{color:#8f8aa3}
.filter-row{display:flex;gap:.55rem;flex-wrap:wrap}
.filter-button,.script-action{
  min-height:44px;
  border:1px solid rgba(199,195,212,.25);
  border-radius:999px;
  padding:.55rem .9rem;
  background:transparent;
  color:#c7c3d4;
  font:600 .85rem/1 "Inter",system-ui,sans-serif;
  cursor:pointer;
}
.filter-button:hover,.script-action:hover{border-color:#a794d4;color:#efedf5}
.filter-button[aria-pressed="true"]{background:#6f5da8;border-color:#6f5da8;color:#fff}
.library-count{color:#8f8aa3;font-size:.88rem}
.script{scroll-margin-top:5.5rem}
.script[hidden],section[hidden]{display:none!important}
.script-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.script-anchor{
  color:#8f8aa3;
  font-weight:500;
  font-size:.82rem;
}
.script-anchor:hover{color:#a794d4}
.library-empty{
  padding:2rem 1rem;
  text-align:center;
  color:#c7c3d4;
  border:1px dashed rgba(199,195,212,.28);
  border-radius:12px;
}
.visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.legal-nav{display:flex;gap:.85rem;flex-wrap:wrap;margin-bottom:2rem;font-size:.9rem}
.legal-nav a{min-height:44px;display:inline-flex;align-items:center}
.legal-footer{
  border-top:1px solid rgba(199,195,212,.16);
  padding:2rem 1.5rem 3rem;
  color:#8f8aa3;
  font-size:.8rem;
}
.legal-footer p{max-width:44rem;margin:0 auto}

@media(max-width:860px){
  .nav-links{display:none!important}
  .nav{gap:.75rem}
  .nav-menu{display:block}
  .wordmark{font-size:.96rem}
}

@media(max-width:640px){
  .filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-button{border-radius:.65rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

@media print{
  .skip-link,.nav-menu,.library-tools,.script-actions{display:none!important}
}
