/* ==========================================================================
   wabangjamir.com — Accessibility layer
   ========================================================================== */

/* --- Focus visibility ---------------------------------------------------- */
:focus{outline:none;}
:focus-visible{
  outline:2px solid var(--copper);
  outline-offset:3px;
  border-radius:1px;
}
.on-forest :focus-visible,
.navdraw :focus-visible,
.gate :focus-visible,
.foot :focus-visible,
.cblock :focus-visible{
  outline-color:var(--sand);
}
.gate input:focus-visible{outline-offset:5px;}

/* Keyboard-only users get the visible ring; pointer users do not */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible){outline:none;}

/* --- Screen-reader-only -------------------------------------------------- */
.sr-only{
  position:absolute !important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* --- Target sizing ------------------------------------------------------- */
.nav__links a,
.navdraw a,
.foot__nav a,
.social a,
.tlink,
.btn{min-height:32px;}
.navdraw a,.cblock>a{min-height:44px;}
.social a{min-width:38px;min-height:38px;}

/* --- Reduced motion ------------------------------------------------------ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .rv,.rv-on .rv{opacity:1 !important;transform:none !important;}
  .gate__box.shake{animation:none !important;}
  .navdraw{transition:none;}
}

/* --- Forced colours / Windows High Contrast ------------------------------ */
@media (forced-colors:active){
  .plate,.chain__c,.notice,.decode,.cblock>a,.cblock>div,.band,.ledger div{
    border:1px solid CanvasText;
  }
  .sig,.medal__rule,.band__rail{background:CanvasText;}
  .btn,.social a{border:1px solid ButtonText;}
  .medal__yr{-webkit-text-stroke:1px CanvasText;color:CanvasText;}
  .nav__toggle span,
  .nav__toggle span::before,
  .nav__toggle span::after{background:ButtonText;}
}

/* --- Increased contrast preference --------------------------------------- */
@media (prefers-contrast:more){
  :root{
    --ink-soft:#2C332E;
    --stone:#5F6560;
    --hair:rgba(32,37,34,.32);
    --hair-light:rgba(232,224,209,.42);
  }
  .on-forest .lede,.flow__r p,.chain__c p{color:rgba(232,224,209,.92);}
  .on-forest .mono,.mast.on-forest .mast__meta{color:rgba(232,224,209,.8);}
  .foot__tag,.foot__bar{color:rgba(232,224,209,.78);}
  .medal__yr{-webkit-text-stroke-color:var(--copper-deep);}
}

/* --- Text-selection ------------------------------------------------------ */
::selection{background:var(--copper);color:var(--white);}

/* --- Respect user font scaling: never lock heights on text blocks -------- */
.artbody,.thesis__body,.band__body,.flow__r,.body{overflow-wrap:break-word;}

/* --- Reading anchor offset for sticky nav -------------------------------- */
[id]{scroll-margin-top:calc(var(--nav-h) + 24px);}
