:root{--bg: #0d0d0d;--surface: #161616;--surface-hover: #1e1e1e;--border: #2a2a2a;--text: #e8e8e8;--muted: #888888;--accent: #7c6ef5;--accent-dim: #5b50c9;--font: system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--radius: 8px;--radius-sm: 4px;--max-w: 900px;--header-h: 60px;--footer-h: 60px}[data-theme=light]{--bg: #f8f8f8;--surface: #ffffff;--surface-hover: #f0f0f0;--border: #e0e0e0;--text: #111111;--muted: #555555;--accent: #5b50c9;--accent-dim: #4a3dc5}@media(max-width:480px){:root{--header-h: 98px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--text)}ul,ol{list-style:none}img,svg{display:block;max-width:100%}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}h1,h2,h3,h4{font-weight:600;line-height:1.2;letter-spacing:-.02em}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:1.15rem}p{max-width:65ch}code,kbd{font-family:var(--font-mono);font-size:.88em;background:var(--surface);padding:.1em .4em;border-radius:var(--radius-sm);border:1px solid var(--border)}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-old(main-content){animation:fade-out .15s ease-in forwards}::view-transition-new(main-content){animation:vt-slide-up .22s ease-out both;animation-delay:.15s}@keyframes vt-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes avail-pulse{0%{box-shadow:0 0 #22c55e80}to{box-shadow:0 0 0 6px #22c55e00}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none}}.reveal-pending{opacity:0;transform:translateY(16px)}.reveal-visible{opacity:1;transform:translateY(0);transition:opacity .45s ease,transform .45s ease}:root img[alt=GitHub]{filter:invert(1)}[data-theme=light] img[alt=GitHub]{filter:none}@media print{app-header,app-footer,app-back-to-top{display:none!important}main{padding:0!important;margin:0!important}}
