/* deadinternet.money / CHECKS CLEAR: fonts, reset, the page, focus, hand ticks, reduced motion.
   Load order: tokens.css, base.css, components.css. */

/* ---------- self-hosted faces (OFL; latin + latin-ext subsets from Google Fonts) ---------- */
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(../fonts/public-sans-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(../fonts/public-sans-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Fragment Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/fragment-mono-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fragment Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/fragment-mono-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Special Gothic Expanded One';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/special-gothic-expanded-one-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Special Gothic Expanded One';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/special-gothic-expanded-one-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);font:400 var(--t-16)/var(--lh-ui) var(--f-ui);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;overflow-x:hidden}
img,svg,canvas,video{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;text-align:inherit}
a{color:inherit}
ul,ol{list-style:none}
h1,h2,h3,h4{font-weight:inherit;font-size:inherit}
table{border-collapse:collapse}
[hidden]{display:none!important}
::selection{background:var(--hot);color:var(--hot-ink)}

/* ---------- focus: a clear accent ring, never removed (keyboard only) ---------- */
:focus{outline:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- utilities ---------- */
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.ink{color:var(--ink)}
.acc{color:var(--accent)}
.caps{font-size:var(--t-12);font-weight:700;letter-spacing:var(--track-caps);text-transform:uppercase}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.nowrap{white-space:nowrap}

/* ---------- theme change: the lights dim (or come up) as one crossfade, spreading from a line ---------- */
::view-transition-old(root),::view-transition-new(root){animation-duration:460ms;animation-timing-function:var(--e-breath)}
html.vt-h::view-transition-old(root){animation:none}
html.vt-h::view-transition-new(root){animation:cc-vtH 620ms var(--e-in) both}
@keyframes cc-vtH{from{clip-path:inset(var(--vt-y,50%) 0 calc(100% - var(--vt-y,50%)) 0)}to{clip-path:inset(0 0 0 0)}}
html.theming *,html.theming *::before,html.theming *::after{transition:background-color 420ms var(--e-breath),color 420ms var(--e-breath),box-shadow 420ms var(--e-breath),outline-color 420ms var(--e-breath)!important}

/* ---------- hand ticks (drawn by kit/checkbox.js tk()) ---------- */
.tk{position:absolute;overflow:visible;pointer-events:none}
.tk-m{stroke-dasharray:1 2;stroke-dashoffset:1;animation:cc-tkw var(--d,160ms) var(--dl,0ms) var(--e-breath) forwards}
.tk.static .tk-m{animation:none;stroke-dashoffset:0}
@keyframes cc-tkw{to{stroke-dashoffset:0}}

/* ---------- shared keyframes ---------- */
@keyframes cc-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
@keyframes cc-trace{to{stroke-dashoffset:-1}}
@keyframes cc-swap{0%{opacity:0;transform:translateY(5px)}100%{opacity:1;transform:none}}
@keyframes cc-in{from{opacity:0;transform:translateY(6px)}}
@keyframes cc-fade{from{opacity:0}}
@keyframes cc-breath{0%,100%{opacity:var(--b0,.45)}50%{opacity:var(--b1,1)}}
@keyframes cc-stamp{0%{transform:scale(1.06);opacity:0}60%{transform:scale(.985);opacity:1}100%{transform:none}}

/* ---------- reduced motion: ticks fade in, ambient motion stops, celebrations become one fade ---------- */
@media (prefers-reduced-motion:reduce){
  *:not(.tk),*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0ms!important;animation-iteration-count:1!important}
  .tk{animation:cc-tkfade 200ms ease-out}
  .tk-m{animation:none!important;stroke-dashoffset:0}
  @keyframes cc-tkfade{from{opacity:0}}
  .veil,.sheet,.rk.out,.toast{transition-duration:180ms!important}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:200ms}
}
