@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700;800&display=swap";:root{--bg: #2a1e13;--bg-accent: #3a291b;--surface: #2b2b2b;--text: #f2f2f2;--muted: #9f9f9f;--line: rgba(255, 255, 255, .08);--line-soft: rgba(255, 255, 255, .04);--tx: 0px;--ty: 0px;--rot: 0deg;--icon-url: none}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}.custom-cursor-enabled,.custom-cursor-enabled *{cursor:none!important}.site-cursor{position:fixed;top:0;left:0;z-index:9999;width:48px;height:48px;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .12s ease,transform .09s linear;background-image:url(/_astro/cursor.CaHDTLdc.png);background-repeat:no-repeat;background-position:center;background-size:contain}.site-cursor.is-visible{opacity:1}.site-cursor.is-pointer{transform:translate(-50%,-50%) scale(1.06)}.site-cursor.is-clicking{transform:translate(-50%,-50%) scale(.92)}.site-cursor.is-over-ui-block{opacity:0}.custom-cursor-enabled .tile,.custom-cursor-enabled .tile *,.custom-cursor-enabled .rubles-toast,.custom-cursor-enabled .rubles-toast *,.custom-cursor-enabled .kaban-toast,.custom-cursor-enabled .kaban-toast *,.custom-cursor-enabled .late-night-toast,.custom-cursor-enabled .late-night-toast *{cursor:auto!important}body{font-family:JetBrains Mono,monospace;color:var(--text);background:radial-gradient(140px 140px at 18% 22%,rgba(255,206,158,.3) 0%,transparent 74%),radial-gradient(170px 170px at 78% 18%,rgba(255,186,126,.24) 0%,transparent 74%),radial-gradient(160px 160px at 86% 68%,rgba(255,167,97,.22) 0%,transparent 74%),radial-gradient(130px 130px at 32% 82%,rgba(255,191,138,.2) 0%,transparent 74%),radial-gradient(780px 420px at 50% 52%,rgba(255,173,110,.2) 0%,transparent 62%),radial-gradient(980px 500px at 20% -8%,rgba(255,161,95,.5) 0%,transparent 56%),radial-gradient(900px 500px at 92% 113%,rgba(240,119,57,.44) 0%,transparent 54%),linear-gradient(160deg,var(--bg) 0%,var(--bg-accent) 100%);filter:brightness(.94) contrast(1.03) saturate(1.06);transform:rotate(0);transform-origin:center center;transition:transform .45s cubic-bezier(.2,.72,.28,1)}body.site-flipped{transform:rotate(180deg)}body.easter-purple{--bg: #271f35;--bg-accent: #322646;--surface: #2f2a3f;background:radial-gradient(140px 140px at 18% 22%,rgba(190,163,255,.26) 0%,transparent 74%),radial-gradient(170px 170px at 78% 18%,rgba(172,150,236,.24) 0%,transparent 74%),radial-gradient(160px 160px at 86% 68%,rgba(154,136,219,.2) 0%,transparent 74%),radial-gradient(130px 130px at 32% 82%,rgba(205,178,255,.2) 0%,transparent 74%),radial-gradient(780px 420px at 50% 52%,rgba(166,140,226,.18) 0%,transparent 62%),radial-gradient(980px 500px at 20% -8%,rgba(160,137,216,.34) 0%,transparent 56%),radial-gradient(900px 500px at 92% 113%,rgba(140,116,198,.3) 0%,transparent 54%),linear-gradient(160deg,var(--bg) 0%,var(--bg-accent) 100%)}.confetti-burst{position:fixed;inset:0;pointer-events:none;z-index:999;overflow:hidden}.confetti-piece{--tx: 0px;--ty: 0px;--rot: 0deg;position:absolute;border-radius:2px;opacity:0;transform:translateZ(0) rotate(0);animation-name:confetti-flight;animation-timing-function:cubic-bezier(.18,.72,.2,1);animation-fill-mode:forwards}@keyframes confetti-flight{0%{opacity:0;transform:translateZ(0) rotate(0)}10%{opacity:1}to{opacity:0;transform:translate3d(var(--tx),var(--ty),0) rotate(var(--rot))}}.slon-flashback{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#0000009e;pointer-events:none;animation:slon-flashback-fade 1s ease forwards}.slon-flashback img{width:min(420px,78vw);border-radius:10px;border:1px solid rgba(255,255,255,.2);box-shadow:0 18px 44px #00000073}.kaban-toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:1001;max-width:min(92vw,980px);max-height:min(70vh,680px);overflow:auto;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:#151515eb;box-shadow:0 18px 44px #00000073;opacity:1;transition:opacity .26s ease}.kaban-toast-hide{opacity:0}.kaban-toast-text{margin:0;color:#f2f2f2;white-space:pre;font-family:JetBrains Mono,monospace;font-size:clamp(.39rem,.72vw,.56rem);line-height:1.08}.rubles-toast{position:fixed;right:16px;bottom:16px;z-index:1003;margin:0;padding:9px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:#151515eb;color:var(--text);font-size:.82rem;font-weight:600;box-shadow:0 12px 30px #00000059;opacity:1;transition:opacity .24s ease;pointer-events:none}.rubles-toast-hide{opacity:0}.late-night-toast{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:1004;width:min(960px,calc(100vw - 24px));display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px;margin:0;padding:10px 12px 10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#111111f0;box-shadow:0 14px 36px #0000006b}.late-night-toast-text{margin:0;color:#f0f0f0;font-size:.84rem;line-height:1.4}.late-night-toast-close{width:26px;height:26px;border:1px solid rgba(255,255,255,.2);border-radius:7px;padding:0;background:#ffffff0a;color:#fff;font-size:1rem;line-height:1;cursor:pointer}.late-night-toast-close:hover{border-color:#ffffff61;background:#ffffff17}@keyframes slon-flashback-fade{0%{opacity:0}15%{opacity:1}85%{opacity:1}to{opacity:0}}.page{min-height:100vh;padding:clamp(12px,2.2vw,22px);display:grid;place-items:center}.tiles{width:min(1450px,100%);margin:0;display:grid;gap:16px;grid-template-columns:1fr 1fr 1fr;grid-template-areas:"about about twitch" "about about discord" "github telegram steam"}.tile{--mx: 50%;--my: 50%;position:relative;overflow:hidden;border-radius:12px;border:1px solid var(--line-soft);background:var(--surface);box-shadow:inset 0 -1px #ffffff0a;isolation:isolate;animation:tile-enter .45s ease-out both}.tile:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .2s ease;background:radial-gradient(220px circle at var(--mx) var(--my),var(--spotlight),transparent 70%);z-index:0}.tile:hover:before,.tile:focus-visible:before{opacity:1}.tile>*{position:relative;z-index:1}.tile-about{grid-area:about;min-height:445px;padding:28px;display:flex;flex-direction:column;gap:18px}.about-time-pill{position:absolute;top:14px;right:14px;margin:0;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#2222227a;color:#e7e7e7;font-size:.76rem;font-weight:500;cursor:default}.about-time-tooltip{position:absolute;top:calc(100% + 8px);right:0;width:max-content;max-width:min(260px,70vw);padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#2222227a;box-shadow:0 10px 24px #00000057;color:var(--text);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease;pointer-events:none}.about-time-pill:hover .about-time-tooltip,.about-time-pill:focus-within .about-time-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.about-time-tooltip-title,.about-time-tooltip-diff{display:block;line-height:1.35}.about-time-tooltip-title{color:var(--text);font-weight:700}.about-time-tooltip-diff{margin-top:2px;color:var(--muted)}.about-time-icon{--icon-url: none;width:12px;height:12px;background-color:#f1f1f1;-webkit-mask-image:var(--icon-url);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;mask-image:var(--icon-url);mask-repeat:no-repeat;mask-position:center;mask-size:contain}.title{margin:0;font-size:clamp(1rem,2.5vw,1.35rem);color:#fff;font-weight:700}.typewriter{display:inline-block;width:7ch;overflow:hidden;vertical-align:bottom;border-right:.11em solid rgba(255,255,255,.75);white-space:nowrap;animation:typing-static 2.8s steps(7,end) 1 forwards,caret .9s step-end 3,caret-off 0s linear 2.8s forwards}.title-fade{color:#a9a9a9}.tile-about h1{margin:0;font-size:clamp(1.9rem,5vw,2.8rem)}.description{margin:0;color:var(--muted);max-width:58ch;line-height:1.7;white-space:pre-line}.tile-link{min-height:190px;padding:22px;text-decoration:none;color:inherit;display:grid;grid-template-rows:auto 1fr;transition:transform .2s ease,border-color .2s ease}.tile-link:hover{transform:translateY(-3px);border-color:var(--line)}.tile-icon{width:34px;height:34px;color:#fff}.about-easter-icon{cursor:pointer;user-select:none}.about-icon-emoji{width:100%;height:100%;display:grid;place-items:center;font-size:1.62rem;line-height:1}.tile-icon svg{width:100%;height:100%;display:block}.tile-icon-glyph{--icon-url: none;width:100%;height:100%;display:block;background-color:#f1f1f1;-webkit-mask-image:var(--icon-url);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;mask-image:var(--icon-url);mask-repeat:no-repeat;mask-position:center;mask-size:contain}.tile-meta{align-self:end}.tile-meta h2{margin:0 0 4px;font-size:1.2rem}.tile-meta p{margin:0;color:var(--muted);font-size:.92rem}.tile-github{grid-area:github}.tile-telegram{grid-area:telegram}.tile-twitch,.tile-portfolio{grid-area:twitch}.tile-discord{grid-area:discord}.tile-steam{grid-area:steam}.discord-status-pill{margin:0;display:inline-flex;align-items:flex-start;gap:6px;width:fit-content;max-width:calc(100% - 24px);padding:5px 9px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:#d6d6d633;color:#e7e7e7;font-size:.76rem;font-weight:500}.status-dot{font-size:1.3rem;line-height:1;transform:translateY(-.5px);color:#f0ad4e;flex-shrink:0}#discord-status-text{min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.25}.tile-discord .discord-status-pill{position:absolute;top:12px;right:12px}.tile-discord[data-status=online] .status-dot{color:#57f287}.tile-discord[data-status=offline] .status-dot{color:#f0ad4e}@media(max-width:1080px){.tiles{grid-template-columns:1fr 1fr;grid-template-areas:"about about" "github telegram" "twitch discord" "steam steam"}}@media(max-width:720px){.tiles{grid-template-columns:1fr;grid-template-areas:"about" "github" "telegram" "twitch" "discord" "steam"}.tile-about,.tile-link{min-height:150px}.tile-about{min-height:320px;padding:20px}}@keyframes tile-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-static{0%{width:0}60%{width:7ch}to{width:7ch}}@keyframes caret{50%{border-color:transparent}}@keyframes caret-off{to{border-color:transparent}}
