:root{--bg:#fafaf9;--surface:#fff;--text:#1c1917;--muted:#57534e;--border:#e7e5e4;--accent:#0d9488;--accent-soft:#ccfbf1;--grid:#0d948817;--glow:#0d948829;--keyword:#7c3aed;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.6}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0c0f12;--surface:#13181d;--text:#e7e9ea;--muted:#9aa4ad;--border:#232a31;--accent:#2dd4bf;--accent-soft:#0f2e2b;--grid:#2dd4bf12;--glow:#2dd4bf24;--keyword:#c792ea}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--bg);color:var(--text);margin:0;overflow-x:clip}a{color:inherit}h1,h2,h3{margin:0;line-height:1.15}.header{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;gap:16px;padding:16px max(24px,50% - 456px);display:flex;position:sticky;top:0}.logo{font-family:var(--mono);font-weight:600;text-decoration:none}.prompt{color:var(--accent);font-family:var(--mono)}.header nav{gap:20px;font-size:.95rem;display:flex}.header nav a{color:var(--muted);text-decoration:none}.header nav a:hover{color:var(--accent)}main{max-width:960px;margin:0 auto;padding:0 24px}section{border-bottom:1px solid var(--border);padding:72px 0}section:last-child{border-bottom:none}section h2{margin-bottom:24px;font-size:1.6rem}section h2.code-heading{font-size:clamp(1.15rem,5vw,1.6rem);font-family:var(--mono);font-weight:600}.kw{color:var(--keyword)}.fn{color:var(--accent)}.punc{color:var(--muted)}.closing-brace{font-family:var(--mono);color:var(--muted);margin:28px 0 0;font-size:clamp(1.15rem,5vw,1.6rem);font-weight:600;line-height:1}.hero .closing-brace{margin-top:32px;font-size:1rem}section>p{max-width:62ch;color:var(--muted)}.hero{isolation:isolate;padding:96px 0 88px;position:relative}.hero:before{content:"";z-index:-1;background:radial-gradient(600px circle at 30% 45%, var(--glow), transparent 70%), linear-gradient(var(--grid) 1px, transparent 1px) 0 0 / 40px 40px, linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0 / 40px 40px;pointer-events:none;width:100vw;position:absolute;top:-80px;bottom:0;left:50%;transform:translate(-50%);-webkit-mask-image:radial-gradient(70% 80% at 35% 45%,#000 35%,#0000 80%);mask-image:radial-gradient(70% 80% at 35% 45%,#000 35%,#0000 80%)}.cursor{vertical-align:text-bottom;background:var(--accent);width:.55em;height:1.1em;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}.cursor.typing{animation:none}@keyframes blink{50%{opacity:0}}.hero-body{opacity:0;transition:opacity .6s,translate .6s;translate:0 12px}.hero-body.shown{opacity:1;translate:none}.eyebrow{font-family:var(--mono);color:var(--muted);margin:0 0 12px}.hero h1{letter-spacing:-.02em;font-size:clamp(2.5rem,7vw,4.5rem)}.role{color:var(--accent);margin:8px 0 16px;font-size:clamp(1.25rem,3vw,1.75rem);font-weight:500}.tagline{color:var(--muted);max-width:48ch;margin:0;font-size:1.15rem}.cta{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.button{border:1px solid var(--border);border-radius:8px;padding:10px 20px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s;display:inline-block}.button:hover{border-color:var(--accent)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.button.primary:hover{filter:brightness(1.1)}.skills,.tags,.social{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skills{margin-top:24px}.skills li,.tags li{font-family:var(--mono);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:4px 10px;font-size:.85rem}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.card{isolation:isolate;background:var(--surface);border:1px solid var(--border);transition:transform .15s, border-color .15s, opacity .6s ease var(--reveal-delay,0s), translate .6s ease var(--reveal-delay,0s);border-radius:12px;flex-direction:column;gap:12px;padding:24px;display:flex;position:relative}.card:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(320px circle at var(--x,50%) var(--y,50%), var(--glow), transparent 70%);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.card:hover:before{opacity:1}.card:hover{border-color:var(--accent);transform:translateY(-3px)}.card h3{font-size:1.15rem}.card p{color:var(--muted);flex:1;margin:0}.card-links{gap:16px;font-size:.9rem;display:flex}.card-links a{color:var(--accent);text-decoration:none}.card-links a:hover{text-decoration:underline}.card.featured{border-color:var(--accent);background:linear-gradient(135deg, var(--accent-soft), transparent 60%), var(--surface);margin-bottom:20px;padding:32px}.card.featured h3{font-size:1.6rem}.card.featured p{max-width:68ch;font-size:1.05rem}.card.featured .featured-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);flex:none;margin:0;font-size:.8rem}.steam-widget{border:0;border-radius:8px;width:100%;max-width:646px;height:190px}.card.featured .card-links{font-size:1rem;font-weight:500}@media (width<=560px){.card.featured{padding:24px}.card.featured h3{font-size:1.35rem}}.show-more{justify-content:center;margin-top:28px;display:flex}.show-more .button{color:var(--text);font:inherit;cursor:pointer;background:0 0;font-weight:500}#contact .button{margin-top:8px}.social{gap:20px;margin-top:28px}.social a{color:var(--muted);text-decoration:none}.social a:hover{color:var(--accent)}footer{text-align:center;color:var(--muted);font-size:.85rem;font-family:var(--mono);padding:32px 24px}@media (width<=560px){.header nav{gap:14px;font-size:.875rem}section{padding:56px 0}}.reveal{opacity:0;transition:opacity .6s ease var(--reveal-delay,0s), translate .6s ease var(--reveal-delay,0s);translate:0 24px}.reveal.visible{opacity:1;translate:none}.achievement-region{z-index:50;position:fixed;bottom:24px;right:24px}.achievement{background:var(--surface);border:1px solid var(--accent);border-radius:12px;align-items:center;gap:14px;max-width:min(360px,100vw - 48px);padding:14px 18px;animation:.45s cubic-bezier(.2,1.4,.4,1) both toast-in;display:flex;position:relative;box-shadow:0 12px 32px #00000040}.achievement p{margin:0}.achievement-icon{background:var(--accent-soft);border-radius:10px;flex:none;place-items:center;width:48px;height:48px;font-size:1.6rem;display:grid}.achievement-title{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:.72rem}.achievement-name{font-weight:700}.achievement-desc{color:var(--muted);font-size:.875rem}@keyframes toast-in{0%{opacity:0;translate:0 40px}}.pixels span{opacity:0;width:8px;height:8px;animation:1.1s ease-out both pixel-burst;position:absolute;top:50%;left:36px}@keyframes pixel-burst{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx), var(--dy)) rotate(180deg)}}@media (width<=560px){.achievement-region{bottom:16px;right:16px}.achievement{max-width:calc(100vw - 32px)}}.crawl-overlay{z-index:100;cursor:pointer;background-color:#000;background-image:radial-gradient(1px 1px at 25px 35px,#fff,#0000),radial-gradient(1px 1px at 90px 140px,#ddd,#0000),radial-gradient(1.5px 1.5px at 160px 60px,#fff,#0000),radial-gradient(1px 1px at 210px 190px,#bbb,#0000),radial-gradient(1px 1px at 55px 230px,#fff,#0000),radial-gradient(1.5px 1.5px at 260px 110px,#eee,#0000);background-size:300px 260px;animation:.8s both crawl-fade-in;position:fixed;inset:0;overflow:hidden}.crawl-close{z-index:1;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:50%;width:40px;height:40px;font-size:1.1rem;position:absolute;top:16px;right:16px}.crawl-close:hover{background:#fff3}.crawl-intro{color:#4bd5ee;opacity:0;width:min(90%,640px);margin:0;font-size:clamp(1.2rem,3.5vw,2rem);line-height:1.5;animation:6s both crawl-intro;position:absolute;top:50%;left:50%;translate:-50% -50%}.crawl-stage{perspective:400px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 45%);mask-image:linear-gradient(#0000 0%,#000 45%)}.crawl-text{transform-origin:50% 0;text-align:justify;color:#ffe81f;width:min(88%,620px);margin-left:calc(min(88%,620px)/-2);font-size:clamp(1.25rem,4vw,2.4rem);font-weight:700;line-height:1.45;animation:45s linear 6s both crawl-scroll;position:absolute;top:100%;left:50%}.crawl-text p{margin:0 0 1.2em}.crawl-episode,.crawl-title{text-align:center;text-transform:uppercase}.crawl-episode{letter-spacing:.1em;font-size:.8em;margin-bottom:.4em!important}.crawl-title{letter-spacing:.08em;margin:0 0 1em;font-size:1.5em}@keyframes crawl-fade-in{0%{opacity:0}}@keyframes crawl-intro{0%{opacity:0}15%,70%{opacity:1}to{opacity:0}}@keyframes crawl-scroll{0%{transform:rotateX(28deg)translateY(0)}to{transform:rotateX(28deg)translateY(calc(-100% - 160vh))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.button{transition:none}.reveal,.hero-body{opacity:1;transition:none;translate:none}.cursor,.achievement{animation:none}.card:before{display:none}.crawl-overlay{animation:none;overflow-y:auto}.crawl-intro{display:none}.crawl-stage{perspective:none;position:static;-webkit-mask-image:none;mask-image:none}.crawl-text{margin:80px auto;animation:none;position:static}}
