:root{color-scheme:dark;font-family:Manrope,sans-serif;color:#f5f5f5;background:#030303;font-synthesis:none;--mouse-x: 50vw;--mouse-y: 50vh;--tilt-x: 0deg;--tilt-y: 0deg;--scroll-blur: 0px;--scroll-shift: 0px}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#030303;scroll-behavior:smooth;scrollbar-color:rgba(255,255,255,.24) #030303;scrollbar-gutter:stable}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;overscroll-behavior-y:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 68% 32%,rgba(255,255,255,.035),transparent 34%),radial-gradient(circle at 20% 75%,rgba(255,255,255,.02),transparent 30%),#030303}::selection{color:#050505;background:#ffffffeb}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}noscript{min-height:100vh;display:grid;place-items:center;padding:32px;color:#ffffffb8;background:#030303;font-family:system-ui,sans-serif;text-align:center}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");mix-blend-mode:soft-light}body.intro-active{overflow:hidden}button,a{font:inherit}button,a{color:inherit;-webkit-tap-highlight-color:transparent}.skip-link{position:fixed;top:14px;left:14px;z-index:1200;padding:11px 15px;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#050505;background:#fff;font-size:.75rem;font-weight:700;text-decoration:none;transform:translateY(-160%);transition:transform .22s cubic-bezier(.16,1,.3,1)}.skip-link:focus{outline:none;transform:translateY(0)}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.intro-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:grid;grid-template-rows:auto 1fr auto;padding:clamp(24px,3.5vw,54px);overflow:hidden;color:#f5f5f5;background:#020202;clip-path:inset(0 0 0 0);transition:clip-path .9s cubic-bezier(.76,0,.24,1),filter .9s cubic-bezier(.76,0,.24,1)}.intro-loader:before,.intro-loader:after{content:"";position:absolute;pointer-events:none}.intro-loader:before{top:0;bottom:0;left:50%;width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.14),transparent);transform:translate(-50%);animation:intro-line 2.1s cubic-bezier(.16,1,.3,1) both}.intro-loader:after{top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 52%,rgba(255,255,255,.055),transparent 28%),linear-gradient(115deg,transparent 38%,rgba(255,255,255,.025) 50%,transparent 62%)}.intro-loader.is-finished{clip-path:inset(0 0 100% 0);filter:blur(7px);pointer-events:none}.intro-grain{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;z-index:3;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");animation:grain-shift .22s steps(2) infinite}.intro-orbit{position:absolute;top:50%;left:50%;width:min(60vw,760px);aspect-ratio:1;border:1px solid rgba(255,255,255,.055);border-radius:50%;transform:translate(-50%,-50%) scale(.72);animation:intro-orbit 2.1s cubic-bezier(.16,1,.3,1) both}.intro-orbit:before{content:"";position:absolute;top:11%;right:11%;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 20px #ffffffb3}.intro-topline,.intro-bottomline{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;font-family:DM Mono,monospace;font-size:clamp(.55rem,.7vw,.68rem);letter-spacing:.16em;text-transform:uppercase}.intro-topline{color:#ffffff6e;animation:intro-meta .7s ease .1s both}.intro-center{position:relative;z-index:4;width:min(1000px,90vw);align-self:center;justify-self:center;text-align:center}.intro-center>p{margin:0 0 14px;color:#fff6;font-family:DM Mono,monospace;font-size:clamp(.58rem,.8vw,.74rem);letter-spacing:.22em;text-transform:uppercase;animation:intro-meta .7s ease .18s both}.intro-center h1{margin:0;display:flex;justify-content:center;overflow:hidden;font-size:clamp(7rem,20vw,18rem);font-weight:600;line-height:.78;letter-spacing:-.105em;text-transform:lowercase}.intro-center h1 span{display:inline-block;transform:translateY(115%) rotate(6deg);filter:blur(12px);animation:intro-letter 1s cubic-bezier(.16,1,.3,1) calc(.16s + var(--letter-index) * 70ms) forwards}.intro-progress{width:min(680px,72vw);height:1px;margin:clamp(32px,6vh,62px) auto 0;overflow:hidden;background:#ffffff21}.intro-progress i{display:block;width:100%;height:100%;background:#fff;box-shadow:0 0 14px #ffffff73;transform-origin:left;transition:transform 80ms linear}.intro-bottomline{align-items:end;color:#fff6;animation:intro-meta .7s ease .24s both}.intro-bottomline strong{color:#fff;font-family:Manrope,sans-serif;font-size:clamp(2.8rem,5.5vw,5.8rem);font-weight:500;line-height:.7;letter-spacing:-.07em;font-variant-numeric:tabular-nums}.intro-bottomline small{margin-left:5px;color:#ffffff6b;font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:0}.quick-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:grid;place-items:center;overflow:hidden;color:#f5f5f5;background:#020202;clip-path:inset(0 0 0 0);transition:clip-path .36s cubic-bezier(.76,0,.24,1),filter .36s cubic-bezier(.76,0,.24,1)}.quick-loader.is-finished{clip-path:inset(0 0 100% 0);filter:blur(5px);pointer-events:none}.quick-loader>div{width:min(320px,calc(100vw - 48px));display:grid;gap:16px;animation:intro-meta .24s ease both}.quick-loader span{font-size:clamp(1.4rem,3vw,2.4rem);font-weight:600;line-height:1;letter-spacing:-.05em;text-transform:lowercase}.quick-loader i{height:1px;overflow:hidden;background:#ffffff21}.quick-loader i b{display:block;width:100%;height:100%;background:#fff;box-shadow:0 0 12px #ffffff59;transform-origin:left;transition:transform 50ms linear}.cursor-light{position:fixed;top:0;left:0;z-index:1;width:520px;height:520px;border-radius:50%;pointer-events:none;opacity:.52;background:radial-gradient(circle,rgba(255,255,255,.07),rgba(255,255,255,.018) 38%,transparent 68%);transform:translate(calc(var(--mouse-x) - 50%),calc(var(--mouse-y) - 50%));transition:opacity .3s ease}.site-shell{position:relative;z-index:2;width:min(1380px,calc(100% - 64px));min-height:100svh;margin:0 auto;display:grid;grid-template-rows:1fr auto;padding:5vh 0 24px;opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}.site-shell.is-ready{opacity:1;transform:none}.scene{min-height:min(820px,calc(100svh - 80px));display:grid;grid-template-columns:minmax(580px,1.15fr) minmax(390px,.85fr);align-items:center;gap:clamp(54px,7vw,130px);perspective:1300px;transition:filter .1s linear,translate .14s ease-out}body.is-scrolling .scene,body.is-scrolling .subpage-content{filter:blur(var(--scroll-blur));translate:0 var(--scroll-shift)}.profile-card{position:relative;min-height:450px;display:grid;grid-template-columns:218px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:clamp(34px,4vw,60px);row-gap:34px;padding:clamp(38px,5vw,72px);overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:46px;background:radial-gradient(circle at 8% 8%,rgba(255,255,255,.055),transparent 34%),linear-gradient(135deg,#101010c7,#05050594);box-shadow:inset 0 1px #ffffff17,0 42px 120px #0000005c,0 0 80px #ffffff05;-webkit-backdrop-filter:blur(18px) saturate(1.08);backdrop-filter:blur(18px) saturate(1.08);transform:rotateX(var(--tilt-y)) rotateY(var(--tilt-x));transform-style:preserve-3d;transition:transform .16s ease-out,border-color .3s ease;animation:soft-rise .9s cubic-bezier(.16,1,.3,1) both}.profile-card:before,.profile-card:after{content:"";position:absolute;pointer-events:none}.profile-card:before{top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 25% 45%,rgba(255,255,255,.035),transparent 30%);opacity:1}.profile-card:after{top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.055) 48%,transparent 66%);transform:translate(-80%);animation:card-shine 9s ease-in-out infinite}.avatar-wrap{position:relative;width:218px;height:218px;padding:6px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:#ffffff0a;box-shadow:0 0 0 12px #ffffff05,0 28px 70px #00000057,0 0 55px #ffffff09;transform:translateZ(44px);animation:avatar-drift 6s ease-in-out infinite}.avatar-wrap img,.avatar-wrap>span{width:100%;height:100%;display:grid;place-items:center;border-radius:50%;object-fit:cover;background:#111116;color:#fff;font-size:5rem}.status-dot{position:absolute;right:9px;bottom:18px;width:30px;height:30px;border:6px solid #0a0a0d;border-radius:50%;background:#777;box-shadow:0 0 22px currentColor;animation:status-breathe 2.4s ease-in-out infinite}.status-dot.online{background:#38df79;color:#38df79}.status-dot.idle{background:#f0bf57;color:#f0bf57}.status-dot.dnd{background:#ef4358;color:#ef4358}.status-dot.offline{background:#777;color:#777}.profile-info{position:relative;z-index:2;min-width:0;transform:translateZ(34px)}.overline,.main-links>p,.panel-eyebrow,.activity-card small,footer{font-family:DM Mono,monospace;text-transform:lowercase;letter-spacing:.1em}.overline{margin:0 0 8px;color:#ffffff73;font-size:.68rem}.profile-info h1{margin:0;font-size:clamp(3.2rem,5vw,5.4rem);line-height:.92;letter-spacing:-.075em}.bio{margin:18px 0 0;color:#ffffff8a;font-size:.94rem;line-height:1.7}.activity-card{position:relative;z-index:2;grid-column:1 / -1;width:100%;min-height:138px;display:grid;grid-template-columns:94px minmax(0,1fr) 42px;align-items:center;gap:22px;padding:20px 24px 20px 20px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 18%,rgba(255,255,255,.08));border-radius:38px;color:inherit;background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 52%),#080808c2;box-shadow:inset 0 1px #ffffff14,0 20px 55px #00000038;text-decoration:none;transition:border-color .3s ease,background .3s ease,transform .5s cubic-bezier(.16,1,.3,1),box-shadow .3s ease;animation:activity-arrive .9s cubic-bezier(.16,1,.3,1) .18s both}.activity-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:.72;background:radial-gradient(circle at 14% 50%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 42%);transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1)}.activity-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.055) 48%,transparent 67%);transform:translate(-110%);animation:activity-shine 7s ease-in-out infinite 1.5s}.activity-card:hover,.activity-card:focus-visible{border-color:color-mix(in srgb,var(--accent) 35%,rgba(255,255,255,.12));outline:none;transform:translateY(-5px) scale(1.006);box-shadow:inset 0 1px #ffffff1a,0 26px 70px #00000052,0 0 42px color-mix(in srgb,var(--accent) 8%,transparent)}.activity-icon{position:relative;z-index:1;width:94px;height:94px;padding:5px;display:grid;place-items:center;border-radius:50%;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 20%,rgba(255,255,255,.08));background:color-mix(in srgb,var(--accent) 9%,rgba(255,255,255,.025));box-shadow:0 15px 35px #0000004d,0 0 28px color-mix(in srgb,var(--accent) 8%,transparent)}.activity-icon svg{width:30px;height:30px}.activity-icon img{width:100%;height:100%;border-radius:50%;object-fit:cover}.activity-icon.spotify{overflow:hidden;color:#1ed760;background:#1ed7601a;isolation:isolate}.activity-icon.spotify:before,.activity-icon.spotify:after{content:"";position:absolute;z-index:2;pointer-events:none;border-radius:50%}.activity-icon.spotify:before{top:5px;right:5px;bottom:5px;left:5px;background:repeating-radial-gradient(circle at center,transparent 0 6px,rgba(0,0,0,.2) 7px 8px);box-shadow:inset 0 0 18px #00000061}.activity-icon.spotify:after{top:50%;left:50%;width:14px;height:14px;border:4px solid #080808;background:#1ed760;box-shadow:0 0 0 2px #ffffff40,0 0 14px #1ed76080;transform:translate(-50%,-50%)}.activity-ambient{position:absolute;top:-45%;right:-45%;bottom:-45%;left:-45%;z-index:0;opacity:.13;background-position:center;background-size:cover;filter:blur(60px) saturate(.75) contrast(1.1);transform:scale(1.15);pointer-events:none}.activity-card .activity-icon img{border-radius:50%;transition:transform .6s cubic-bezier(.16,1,.3,1)}.activity-card:hover .activity-icon:not(.spotify) img{transform:scale(1.08) rotate(-2deg)}.activity-card .activity-icon.spotify img{animation:vinyl-spin 7s linear infinite}.activity-card>.activity-copy{position:relative;z-index:1;min-width:0;display:grid;gap:3px}.activity-card small{color:#ffffff5c;font-size:.56rem}.activity-label{min-height:14px;display:flex;align-items:center;gap:5px}.activity-label>svg{width:10px;height:10px;color:#1ed760}.equalizer{height:10px;display:inline-flex;align-items:end;gap:2px;margin-left:auto}.equalizer i{width:2px;height:100%;border-radius:99px;background:#1ed760;transform-origin:bottom;animation:equalize .76s ease-in-out infinite alternate}.equalizer i:nth-child(2){animation-delay:-.42s;animation-duration:.53s}.equalizer i:nth-child(3){animation-delay:-.18s;animation-duration:.68s}.equalizer i:nth-child(4){animation-delay:-.51s;animation-duration:.88s}.activity-card strong,.activity-card em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-card strong{font-size:1.12rem;letter-spacing:-.02em}.spotify-player .activity-copy strong{margin-top:2px;font-size:1.12rem;line-height:1.15}.spotify-player .activity-copy em{color:#ffffff6b;font-size:.7rem}.activity-card em{color:#ffffff7a;font-size:.74rem;font-style:normal}.activity-open{position:relative;z-index:1;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,rgba(255,255,255,.025));transition:color .22s ease,background .22s ease,transform .26s ease}.activity-card:hover .activity-open,.activity-card:focus-visible .activity-open{color:#000;background:#fff;transform:translate(2px,-2px)}.spotify-timeline{display:grid;gap:4px;margin-top:8px}.spotify-timeline>i{height:5px;overflow:hidden;border-radius:999px;background:#ffffff1f}.spotify-timeline>i b{display:block;height:100%;border-radius:inherit;background:#1ed760;box-shadow:0 0 9px #1ed76080;transition:width 1s linear}.spotify-timeline>small{display:flex;justify-content:space-between;color:#ffffff57;font-family:DM Mono,monospace;font-size:.5rem}.main-links{display:grid;align-content:center}.main-links>p{margin:0 0 25px;color:#fff6;font-size:.72rem}.main-links .home-page-link{position:relative;width:max-content;max-width:100%;display:flex;align-items:center;gap:18px;padding:6px 18px 10px;border:0;color:#ffffffeb;background:none;font-size:clamp(3.8rem,6vw,7.4rem);font-weight:600;line-height:1;letter-spacing:-.075em;text-align:left;cursor:pointer;text-decoration:none;border-radius:24px;overflow:hidden;transition:color .3s ease,background .3s ease,transform .5s cubic-bezier(.16,1,.3,1)}.main-links .home-page-link:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;background:linear-gradient(90deg,rgba(255,255,255,.075),transparent 84%);opacity:0;transform:scale(.97);transition:opacity .35s ease,transform .5s cubic-bezier(.16,1,.3,1)}.main-links .home-page-link>*{position:relative;z-index:1}.main-links .home-page-link svg{width:.33em;height:.33em;opacity:0;transform:translate(-15px,15px);transition:opacity .22s ease,transform .32s ease}.main-links .home-page-link:hover,.main-links .home-page-link:focus-visible{color:#fff;outline:none;transform:translate(9px)}.main-links .home-page-link:hover:before,.main-links .home-page-link:focus-visible:before{opacity:1;transform:scale(1)}.main-links .home-page-link:hover svg,.main-links .home-page-link:focus-visible svg{opacity:1;transform:none}.socials{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}.socials a{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#ffffff80;text-decoration:none;font-family:DM Mono,monospace;font-size:.68rem;transition:color .18s ease,border-color .18s ease,transform .18s ease}.socials a:hover,.socials a:focus-visible{color:#fff;border-color:#ffffff59;outline:none;transform:translateY(-2px)}footer{display:flex;justify-content:space-between;padding-top:10px;color:#ffffff47;font-size:.6rem}.live-label{display:inline-flex;align-items:center;gap:8px}.live-label i{width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 10px #ffffff8c;animation:blink 2s ease-in-out infinite}.subpage-shell{position:relative;z-index:2;width:min(1240px,calc(100% - 64px));min-height:100svh;margin:0 auto;display:grid;grid-template-rows:auto 1fr auto;padding:28px 0 24px;opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .9s cubic-bezier(.16,1,.3,1)}.subpage-shell.is-ready{opacity:1;transform:none}.subpage-nav{position:sticky;top:18px;z-index:20;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 10px 8px 8px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#0a0a0aa3;box-shadow:inset 0 1px #ffffff12,0 18px 60px #0003;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.back-home{display:inline-flex;align-items:center;gap:10px;color:#ffffffbd;text-decoration:none;font-size:.78rem;font-weight:600;transition:color .22s ease,transform .3s cubic-bezier(.16,1,.3,1)}.back-home:hover,.back-home:focus-visible{color:#fff;outline:none;transform:translate(3px)}.mini-avatar{width:48px;height:48px;display:grid;place-items:center;overflow:hidden;border-radius:50%;color:#ffffffa6;background:#ffffff12}.mini-avatar img{width:100%;height:100%;object-fit:cover}.subpage-nav nav{display:flex;align-items:center;gap:4px}.subpage-nav nav a{padding:10px 15px;border-radius:999px;color:#ffffff73;text-decoration:none;font-size:.75rem;font-weight:600;transition:color .22s ease,background .22s ease}.subpage-nav nav a:hover,.subpage-nav nav a:focus-visible,.subpage-nav nav a.active{color:#fff;background:#ffffff14;outline:none}.subpage-content{display:grid;align-content:center;gap:clamp(48px,7vh,82px);padding:clamp(80px,11vh,130px) 0;transition:filter .1s linear,translate .14s ease-out}.page-heading>p{animation:soft-rise .7s cubic-bezier(.16,1,.3,1) 40ms both}.page-heading>h1{animation:soft-rise .9s cubic-bezier(.16,1,.3,1) .1s both}.page-heading>span{animation:soft-rise .8s cubic-bezier(.16,1,.3,1) .19s both}.about-layout,.projects-grid,.contact-options{animation:soft-rise .95s cubic-bezier(.16,1,.3,1) .23s both}.page-heading>p{margin:0 0 22px;color:#fff;font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.12em}.page-heading h1{margin:0;font-size:clamp(4rem,8.5vw,8.5rem);font-weight:600;line-height:.86;letter-spacing:-.08em}.page-heading h1 em{color:#ffffff3d;font-style:normal;font-weight:500}.page-heading>span{display:block;max-width:520px;margin-top:30px;color:#ffffff73;font-size:.92rem;line-height:1.7}.projects-heading{position:relative}.projects-github-notice{position:fixed;top:108px;right:max(22px,calc((100vw - 1240px)/2));z-index:60;width:min(310px,calc(100vw - 44px));min-height:76px;display:block;padding:12px 15px 12px 12px;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:25px;color:inherit;background:radial-gradient(circle at 12% 20%,rgba(255,255,255,.09),transparent 42%),#090909c7;box-shadow:inset 0 1px #ffffff12,0 22px 60px #0000004d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-decoration:none;transform-origin:right center;will-change:transform,opacity,filter;animation:notification-arrive .82s cubic-bezier(.16,1,.3,1) 60ms both,notification-glow .9s ease 1.08s both,notice-attention .72s cubic-bezier(.36,.07,.19,.97) 1.08s forwards;transition:border-color .25s ease,background .25s ease,transform .45s cubic-bezier(.16,1,.3,1)}.notice-shake-layer{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:13px}.projects-github-notice:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.06) 50%,transparent 70%);transform:translate(-110%);animation:activity-shine 6s ease-in-out 1.8s infinite}.projects-github-notice:hover,.projects-github-notice:focus-visible{border-color:#ffffff4d;outline:none;background-color:#121212e6;transform:translateY(-4px)}.github-notice-icon{position:relative;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:#050505;background:#fff;animation:notice-icon-arrive .72s cubic-bezier(.16,1,.3,1) .17s both}.github-notice-icon:after{content:"";position:absolute;right:0;bottom:2px;width:7px;height:7px;border:2px solid #0a0a0a;border-radius:50%;background:#fff;box-shadow:0 0 12px #ffffffb8;animation:blink 2s ease-in-out infinite}.github-notice-copy{min-width:0;display:grid;gap:3px;animation:notice-copy-arrive .65s cubic-bezier(.16,1,.3,1) .22s both}.github-notice-copy small{color:#ffffff5e;font-family:DM Mono,monospace;font-size:.55rem;letter-spacing:.07em}.github-notice-copy strong{overflow:hidden;font-size:.78rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.notice-shake-layer>svg{color:#ffffff73;animation:notice-arrow-arrive .62s cubic-bezier(.16,1,.3,1) .28s both;transition:color .22s ease,transform .28s ease}.projects-github-notice:hover .notice-shake-layer>svg,.projects-github-notice:focus-visible .notice-shake-layer>svg{color:#fff;transform:translate(2px,-2px)}.soft-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(255,255,255,.11);border-radius:36px;background:radial-gradient(circle at 8% 8%,rgba(255,255,255,.045),transparent 34%),#0a0a0aad;box-shadow:inset 0 1px #ffffff0f,0 28px 80px #00000038;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.soft-card:before{content:"";position:absolute;top:-35%;right:-35%;bottom:-35%;left:-35%;z-index:-1;pointer-events:none;opacity:.42;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.09),transparent 31%);transform:scale(.94);transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1)}.project-card:hover:before,.project-card:focus-visible:before,.contact-primary:hover:before,.contact-primary:focus-visible:before,.contact-secondary:hover:before,.contact-secondary:focus-visible:before{opacity:.8;transform:scale(1.05)}.about-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px}.about-copy{min-height:330px;padding:clamp(32px,5vw,62px)}.card-icon{width:50px;height:50px;display:grid;place-items:center;margin-bottom:45px;border-radius:50%;color:#fff;background:#ffffff14}.about-copy p{max-width:700px;margin:0;color:#ffffffd4;font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.55;letter-spacing:-.025em}.about-copy .muted-copy{margin-top:22px;color:#ffffff5e;font-size:.88rem;line-height:1.7;letter-spacing:0}.about-side{display:grid;gap:18px}.mini-info-card{display:flex;align-items:center;gap:18px;padding:28px}.mini-info-card>svg{color:#fff}.mini-info-card span,.mini-info-card small{display:block}.mini-info-card small,.stack-card>div span{margin-bottom:5px;color:#ffffff57;font-family:DM Mono,monospace;font-size:.58rem;letter-spacing:.08em}.stack-card{padding:28px}.stack-card>div{display:flex;align-items:center;gap:10px}.stack-card>div svg{color:#fff}.stack-card>div span{margin:0}.stack-card>p{display:flex;flex-wrap:wrap;gap:7px;margin:26px 0 0}.stack-card>p span,.project-footer small{padding:7px 10px;border-radius:999px;color:#ffffff94;background:#ffffff0e;font-size:.65rem}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-card{min-height:410px;display:grid;align-content:space-between;padding:clamp(30px,4vw,48px);color:inherit;text-decoration:none;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .3s ease,background .3s ease}.project-card:hover,.project-card:focus-visible{border-color:#ffffff3d;background:#121212c7;outline:none;transform:translateY(-8px)}.project-topline,.project-footer{display:flex;align-items:center;justify-content:space-between}.project-topline>span{color:#ffffff40;font-family:DM Mono,monospace;font-size:.68rem}.project-topline i{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#ffffff14;font-style:normal;transition:color .28s ease,background .28s ease,transform .5s cubic-bezier(.16,1,.3,1)}.project-card:hover .project-topline i,.project-card:focus-visible .project-topline i{color:#050505;background:#fff;transform:rotate(8deg) scale(1.06)}.project-card h2{margin:0;font-size:clamp(2.4rem,4vw,4.6rem);line-height:1;letter-spacing:-.06em}.project-card p{max-width:440px;margin:18px 0 0;color:#ffffff6e;font-size:.85rem;line-height:1.65}.project-footer>span{display:flex;flex-wrap:wrap;gap:6px}.project-footer>svg{color:#fff6;transition:transform .3s ease}.project-card:hover .project-footer>svg{transform:translate(4px,-4px)}.contact-options{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px}.contact-primary,.contact-secondary{min-height:190px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:30px;color:inherit;text-decoration:none;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .3s ease}.contact-primary:hover,.contact-secondary:hover,.contact-primary:focus-visible,.contact-secondary:focus-visible{border-color:#ffffff40;outline:none;transform:translateY(-6px)}.contact-icon,.contact-secondary>svg:first-child{width:74px;height:74px;display:grid;place-items:center;padding:22px;border-radius:50%;color:#fff;background:#ffffff14}.contact-icon svg{width:100%;height:100%}.contact-primary>span:nth-child(2),.contact-secondary>span{min-width:0;display:grid;gap:3px}.contact-primary small,.contact-secondary small{color:#ffffff57;font-family:DM Mono,monospace;font-size:.58rem}.contact-primary strong,.contact-secondary strong{overflow:hidden;font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap}.contact-primary em{display:flex;align-items:center;gap:7px;color:#ffffff6b;font-size:.72rem;font-style:normal}.tiny-status{width:7px;height:7px;border-radius:50%;background:#777}.tiny-status.online{background:#38df79;box-shadow:0 0 10px #38df798c}.tiny-status.idle{background:#f0bf57;box-shadow:0 0 10px #f0bf5766}.tiny-status.dnd{background:#ef4358;box-shadow:0 0 10px #ef435866}.page-socials{display:inline-flex;gap:13px}.page-socials a{color:#ffffff59}.page-socials a:hover,.page-socials a:focus-visible{color:#fff;outline:none}@keyframes card-shine{0%,55%{transform:translate(-100%)}78%,to{transform:translate(100%)}}@keyframes intro-letter{to{transform:translateY(0) rotate(0);filter:blur(0)}}@keyframes intro-meta{0%{opacity:0;filter:blur(8px);transform:translateY(9px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes intro-line{0%{opacity:0;transform:translate(-50%) scaleY(0)}35%{opacity:1}to{opacity:.5;transform:translate(-50%) scaleY(1)}}@keyframes intro-orbit{0%{opacity:0;transform:translate(-50%,-50%) scale(.55) rotate(-24deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes grain-shift{0%{transform:translate(0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}to{transform:translate(-2%,-1%)}}@keyframes soft-rise{0%{opacity:0;filter:blur(14px);transform:translateY(28px) scale(.985)}to{opacity:1;filter:blur(0);transform:none}}@keyframes activity-arrive{0%{opacity:0;filter:blur(16px);transform:translateY(26px) scale(.97)}to{opacity:1;filter:blur(0);transform:none}}@keyframes notification-arrive{0%{opacity:0;filter:blur(18px);transform:translate3d(38px,-14px,0) scale(.86)}68%{opacity:1;filter:blur(0);transform:translate3d(-4px,2px,0) scale(1.018)}to{opacity:1;filter:blur(0);transform:none}}@keyframes notice-attention{0%,to{transform:translate(0) rotate(0)}18%{transform:translate(-5px) rotate(-1.2deg)}36%{transform:translate(5px) rotate(1.2deg)}54%{transform:translate(-3px) rotate(-.7deg)}72%{transform:translate(3px) rotate(.7deg)}86%{transform:translate(-1px) rotate(-.25deg)}}@keyframes notification-glow{0%,to{border-color:#ffffff21;box-shadow:inset 0 1px #ffffff12,0 22px 60px #0000004d}45%{border-color:#ffffff61;box-shadow:inset 0 1px #ffffff29,0 24px 70px #00000061,0 0 34px #ffffff1c}}@keyframes notice-icon-arrive{0%{opacity:0;transform:scale(.45) rotate(-18deg)}72%{opacity:1;transform:scale(1.1) rotate(4deg)}to{opacity:1;transform:none}}@keyframes notice-copy-arrive{0%{opacity:0;filter:blur(7px);transform:translate(12px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes notice-arrow-arrive{0%{opacity:0;transform:translate(-8px,8px)}to{opacity:1;transform:none}}@keyframes activity-shine{0%,56%{transform:translate(-110%)}78%,to{transform:translate(110%)}}@keyframes avatar-drift{0%,to{transform:translateZ(44px) translateY(0)}50%{transform:translateZ(44px) translateY(-6px)}}@keyframes status-breathe{0%,to{box-shadow:0 0 14px currentColor}50%{box-shadow:0 0 28px currentColor}}@keyframes blink{50%{opacity:.25}}@keyframes equalize{0%{transform:scaleY(.24);opacity:.55}to{transform:scaleY(1);opacity:1}}@keyframes vinyl-spin{to{transform:rotate(360deg)}}@keyframes spotify-glow{50%{opacity:.52;transform:scale(1.05)}}@media (max-width: 1080px){.site-shell{width:min(760px,calc(100% - 40px));padding-top:64px}.scene{grid-template-columns:1fr;gap:64px;padding-bottom:80px}.main-links{padding-left:7vw}.main-links .home-page-link{font-size:clamp(4rem,12vw,7rem)}.about-layout,.contact-options{grid-template-columns:1fr}.about-side{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 680px){.intro-loader{padding:22px 18px}.intro-topline span:last-child{display:none}.intro-center h1{font-size:clamp(5.7rem,30vw,9rem)}.intro-orbit{width:105vw}.intro-bottomline>span{max-width:100px;line-height:1.5}.site-shell{width:calc(100% - 28px);padding-top:40px}.scene{gap:56px}.profile-card{min-height:0;grid-template-columns:1fr;justify-items:center;gap:28px;padding:50px 28px 35px;text-align:center;transform:none}.avatar-wrap{width:164px;height:164px;transform:none}.profile-info{width:100%;transform:none}.profile-info h1{font-size:clamp(3.2rem,17vw,5rem)}.activity-card{grid-column:1;margin:0 auto;text-align:left}.activity-card{grid-template-columns:74px minmax(0,1fr);gap:16px;padding:16px;border-radius:30px}.activity-card .activity-icon{width:74px;height:74px}.activity-card .activity-open{display:none}.main-links{padding-left:10px}.main-links .home-page-link{font-size:clamp(3.5rem,18vw,5.5rem)}.main-links .home-page-link svg{display:none}footer{padding-bottom:8px}.subpage-shell{width:calc(100% - 28px);padding-top:14px}.subpage-nav{top:10px;display:grid;border-radius:28px;padding:10px}.subpage-nav nav{overflow-x:auto}.subpage-nav nav a{flex:1;text-align:center}.subpage-content{padding:74px 0}.page-heading h1{font-size:clamp(3.8rem,18vw,6.5rem)}.projects-github-notice{top:96px;right:14px;width:min(310px,calc(100vw - 28px));margin:0}.about-side,.projects-grid,.contact-options{grid-template-columns:1fr}.project-card{min-height:360px}.contact-primary,.contact-secondary{min-height:150px}.contact-icon,.contact-secondary>svg:first-child{width:58px;height:58px;padding:17px}}@media (max-width: 420px){.site-shell,.subpage-shell{width:calc(100% - 20px)}.profile-card{padding-inline:18px;border-radius:36px}.activity-card{grid-template-columns:62px minmax(0,1fr);gap:13px;padding:13px;border-radius:26px}.activity-card .activity-icon{width:62px;height:62px}.activity-card strong,.spotify-player .activity-copy strong{font-size:.98rem}.main-links .home-page-link{padding-inline:8px;font-size:clamp(3rem,17vw,4.3rem)}.subpage-nav nav a{padding-inline:10px;font-size:.68rem}.page-heading h1{font-size:clamp(3.35rem,17vw,5.6rem)}.projects-github-notice{width:calc(100vw - 28px)}.contact-primary,.contact-secondary{grid-template-columns:auto minmax(0,1fr) auto;gap:13px;padding:20px 17px}}@media (pointer: coarse){.cursor-light{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.profile-card{transform:none}.intro-loader{transition-duration:80ms!important}}@supports not (backdrop-filter: blur(1px)){.profile-card,.activity-card,.subpage-nav,.soft-card{background-color:#080808f5}}
