/* Gaming Bits — shared tokens and components */
:root{
  color-scheme:light;
  --bg:#F7F7F5;--fg:#0E0E10;--muted:#5C5C61;--raster:#8A8A8E;--line:rgba(14,14,16,.14);
  --card:#EEEEEA;--stage:#FFFFFF;--track:#FFFFFF;--socket:rgba(14,14,16,.10);--dot:rgba(14,14,16,.07);
  --accent:#FF6B3D;--accent-text:#C2441B;--focus:#C2441B;--veil:rgba(247,247,245,.88);--on-accent:#0E0E10;
  --plum:#2A1A3A;--cheek:#FF9EB1;--antenna:#2EC4B6;
  --pixel:'Tiny5','Courier New',monospace;
  --body:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root{
  color-scheme:dark;
  --bg:#0E0E10;--fg:#F7F7F5;--muted:#A9A9AD;--raster:#8A8A8E;--line:rgba(247,247,245,.16);
  --card:#19191D;--stage:#141417;--track:#0E0E10;--socket:rgba(247,247,245,.10);--dot:rgba(247,247,245,.07);
  --accent:#FF6B3D;--accent-text:#FF8A63;--focus:#FF8A63;--veil:rgba(14,14,16,.86);
}}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-height:100vh;min-height:100svh;background:var(--bg);color:var(--fg);font:400 16px/1.55 var(--body);overflow-x:hidden;display:flex;flex-direction:column}
[hidden]{display:none!important}
.wrap{width:100%;max-width:1040px;margin:0 auto;padding-inline:16px}
.sr{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
a{color:inherit}

/* header */
.site-head .wrap{display:flex;align-items:center;gap:12px;padding-block:16px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;color:var(--fg);text-decoration:none}
.mark{width:30px;height:30px;display:block;flex:none}
.mark .bit{fill:var(--accent)}
.wordmark{font:400 21px/1 var(--pixel);letter-spacing:.03em}
.tag{font:400 12px/1 var(--pixel);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:6px 8px}

/* buttons, links */
.btn{font:400 14px/1 var(--pixel);letter-spacing:.12em;text-transform:uppercase;border:0;padding:13px 14px;min-height:44px;cursor:pointer;
  color:var(--on-accent);background:var(--accent);box-shadow:inset -3px -3px 0 rgba(0,0,0,.22);display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1px var(--line)}
.btn.small{padding:9px 10px;min-height:40px;font-size:12px}
.btn[aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}
.textlink{color:var(--accent-text);text-underline-offset:3px;text-decoration-thickness:2px}
.textlink:hover{text-decoration-thickness:3px}

/* contact */
.mailrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mail{font:500 clamp(16px,3.4vw,19px)/1.2 var(--mono);color:var(--fg);text-decoration:none;border:1px solid var(--line);background:var(--card);
  padding:11px 14px;user-select:all;-webkit-user-select:all;word-break:break-all}
.mail:hover{border-color:var(--accent)}

/* footer */
.site-foot .wrap{padding-block:16px 20px;color:var(--muted);font:400 12px/1.5 var(--pixel);letter-spacing:.1em}

/* pointer-dependent hints */
.hint-touch{display:none}
@media (hover:none){.hint-mouse{display:none}.hint-touch{display:inline}}

/* page-enter cover (set by /assets/enter.js; removed by page script; auto-fails open after 1.5 s) */
html.gb-entering::after{content:"";position:fixed;inset:0;background:var(--bg);z-index:1000;animation:gbOpen 0s 1.5s forwards}
@keyframes gbOpen{to{visibility:hidden}}
.gb-wipe{position:fixed;inset:0;width:100vw;height:100vh;z-index:1001;pointer-events:none;image-rendering:pixelated}
