@font-face{font-family:Montserrat;src:url('../assets/montserrat.woff2') format('woff2');font-display:swap}
@font-face{font-family:Plex;src:url('../assets/ibm-plex-mono.woff2') format('woff2');font-display:swap}

:root{
  color-scheme:dark;
  --bg:#1b1b1b;--panel:#1e1e1e;--ink:#c9c8ce;--muted:#929198;
  --line:#3a3a3a;--accent:#59ded3;--shade:#121212;
  --grid-size:calc(100svh / 12);
  --sans:Montserrat,Arial,sans-serif;--mono:Plex,ui-monospace,monospace;
}
[data-theme="light"]{color-scheme:light;--bg:#efede6;--panel:#e6e3dc;--ink:#1b1b1b;--muted:#66645e;--line:#c8c5bd;--shade:#d8d4ca}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{isolation:isolate;margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55;transition:background .25s,color .25s}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-position:center;background-size:var(--grid-size) var(--grid-size);opacity:.42}
body>*{position:relative;z-index:1}
body>main{z-index:auto}
button,input,textarea{font:inherit;color:inherit}
button{border:0;background:none;cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,p,figure{margin:0}
small{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
::selection{background:var(--accent);color:#111}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;z-index:100;top:-5rem;left:1rem;padding:.7rem 1rem;background:var(--accent);color:#111}
.skip:focus{top:1rem}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important;animation-iteration-count:1!important}}
