*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;overflow-x:clip;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,ol,ul,figure,fieldset{margin:0;padding:0}
ol,ul{list-style:none}
fieldset{border:0}
img,svg,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input{font:inherit;color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[id]{scroll-margin-top:1rem}

/* Logos are white PNGs, so they are used as masks and take the text colour */
.logos{display:inline-flex;align-items:center;gap:var(--logo-gap,.85rem)}
.logo{display:block;height:var(--logo-h,62px);background:currentColor;-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat}
.logo-d{aspect-ratio:150/182;-webkit-mask-image:url(../img/logo-d.png);mask-image:url(../img/logo-d.png)}
.logo-s{aspect-ratio:180/182;-webkit-mask-image:url(../img/logo-s.png);mask-image:url(../img/logo-s.png)}
.logos-sep{width:1px;height:calc(var(--logo-h,62px)*.68);background:currentColor;opacity:.4}

/* Preview strip for reviewers. Removed for the final site. */
.pv{display:flex;align-items:center;gap:.25rem 1rem;padding:.4rem .9rem;background:#fff;color:#1a1a1a;font:500 13px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:auto;white-space:nowrap;border-bottom:1px solid #ddd;position:relative;z-index:50}
.pv a{text-decoration:none;padding:.3rem .55rem;border-radius:6px;color:#444}
.pv a:hover{background:#eee;color:#000}
.pv a[aria-current]{background:#1a1a1a;color:#fff}
.pv-home{font-weight:700;color:#000!important}
.pv-group{display:flex;gap:.1rem}
.pv-right{margin-left:auto}

/* Mobile action bar: shared structure, colours set by each direction */
.dock{display:none}
@media (max-width:640px){
  body{padding-bottom:76px}
  .dock{position:fixed;z-index:40;inset:auto 0 0 0;display:grid;grid-template-columns:1fr 1.25fr;gap:.55rem;padding:.65rem .8rem calc(.65rem + env(safe-area-inset-bottom));transition:transform .25s ease}
  .dock a{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:48px;text-decoration:none;font-weight:700}
  .dock svg{width:18px;height:18px}
  .dock.is-hidden{transform:translateY(110%)}
}
.ico{width:1.1em;height:1.1em;flex:none}
.lf-msg{min-height:1.4em}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
