/* Reset, elements, accessibility primitives. */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--s-5))}
body{
  margin:0;
  font-family:var(--f-body);
  font-size:var(--t-base);
  line-height:var(--lh-normal);
  color:var(--c-text);
  background:var(--c-surface);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.smt-nav-open{overflow:hidden}

h1,h2,h3,h4,h5,h6{
  margin:0 0 var(--s-4);
  font-family:var(--f-display);
  font-weight:600;
  line-height:var(--lh-tight);
  letter-spacing:var(--ls-tight);
  color:var(--c-heading);
  text-wrap:balance;
}
h1{font-size:var(--t-4xl)}
h2{font-size:var(--t-3xl)}
h3{font-size:var(--t-2xl)}
h4{font-size:var(--t-xl)}
h5{font-size:var(--t-lg)}
h6{font-size:var(--t-base)}

p,ul,ol,dl,figure,pre,table{margin:0 0 var(--s-5)}
p{text-wrap:pretty}
img,svg,video,canvas,iframe{max-width:100%;height:auto;display:block}
img{border-radius:var(--r-md)}

a{color:var(--c-link);text-decoration-thickness:1px;text-underline-offset:.15em}
a:hover{color:var(--c-link-hover);text-decoration-thickness:2px}

button,input,select,textarea{font:inherit;color:inherit}
hr{border:0;border-top:1px solid var(--c-border);margin:var(--s-8) 0}
blockquote{margin:0 0 var(--s-5);padding-left:var(--s-5);border-left:3px solid var(--c-accent)}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.925em}

table{width:100%;border-collapse:collapse}
th,td{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--c-border);text-align:left}
th{font-weight:600;color:var(--c-heading)}

/* ---- focus ---- */
:where(a,button,input,select,textarea,summary,[tabindex]):focus{outline:none}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--c-focus);
  outline-offset:2px;
  border-radius:var(--r-sm);
}

.screen-reader-text{
  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;
}
.screen-reader-text:focus{
  position:fixed!important;
  top:var(--s-3);left:var(--s-4);
  width:auto;height:auto;
  clip:auto;clip-path:none;
  padding:var(--s-3) var(--s-5);
  background:var(--smt-white);
  color:var(--smt-navy-900);
  border-radius:var(--r-md);
  box-shadow:var(--sh-3);
  z-index:9999;
}

/* ---- motion ---- */
[data-smt-reveal]{opacity:0;transform:translateY(12px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
[data-smt-reveal].is-visible{opacity:1;transform:none}

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