/* base.css — reset, type defaults, utilities, keyframes */
*{box-sizing:border-box}
html,body{margin:0}
html{background:var(--paper);-webkit-text-size-adjust:none;text-size-adjust:none;scroll-padding-top:calc(var(--hdr) + 24px)}
body{background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column;text-rendering:optimizeLegibility}
main{flex:1 0 auto}
h1,h2,h3,h4,p,ol,ul,dl,dd,dt,figure{margin:0;padding:0}
ol,ul{list-style:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:disabled{cursor:not-allowed}
img,svg{display:block}
[hidden]{display:none!important}
::selection{background:rgba(244,183,40,.38)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:10px}

.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.nowrap{white-space:nowrap}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
/* stale values after a failed refresh: kept, dimmed */
body.is-stale [data-live]{color:var(--muted)!important;transition:color .3s}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes rowin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes sheetin{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes shimmer{from{background-position:-200% 0}to{background-position:200% 0}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

@media (max-width:860px){
  body{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
