html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--bg:#07090d;--panel:#0d1117;--line:#1c2230;--text:#e6e9ef;--muted:#8b93a7;--accent:#5eead4;--accent2:#60a5fa;--mono:"JetBrains Mono", ui-monospace, monospace;--sans:"Space Grotesk", system-ui, sans-serif;--nav:64px;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}#scene{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}main,footer{z-index:1;position:relative}.container{width:min(1120px,100% - 2.5rem);margin-inline:auto}section{scroll-margin-top:var(--nav);padding:7rem 0}.label{font-family:var(--mono);color:var(--accent);letter-spacing:.15em;text-transform:uppercase;font-size:.8rem}h2{letter-spacing:-.02em;margin:.6rem 0 1.2rem;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.grad{background:linear-gradient(90deg, var(--accent), var(--accent2));color:#0000;-webkit-background-clip:text;background-clip:text}.accent{color:var(--accent)}.muted{color:var(--muted)}.num{font-family:var(--mono);color:var(--muted);letter-spacing:.1em;font-size:.75rem}.section-head{margin-bottom:2.75rem}.rule{background:linear-gradient(90deg, var(--accent), transparent);transform-origin:0;width:min(240px,50%);height:1px;display:block}.tilt{background:radial-gradient(420px circle at var(--mx,50%) var(--my,-60%), #5eead41a, transparent 45%), var(--panel);will-change:transform;transition:border-color .3s}.tilt:hover{border-color:#5eead473}.btn{border:1px solid var(--line);color:var(--text);font:500 .85rem var(--mono);cursor:pointer;background:#0d111799;border-radius:999px;align-items:center;gap:.5rem;padding:.8rem 1.3rem;transition:all .25s;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn.primary:hover{color:var(--accent);background:0 0;box-shadow:0 0 24px #5eead440}.btn.small{padding:.55rem 1rem;font-size:.8rem}.boot{z-index:100;background:var(--bg);font-family:var(--mono);letter-spacing:.2em;place-content:center;justify-items:center;gap:1rem;transition:opacity .6s,visibility .6s;display:grid;position:fixed;inset:0}.boot.done{opacity:0;visibility:hidden}.boot-title{font-size:clamp(1rem,3vw,1.4rem);font-weight:700}.boot-bar{background:var(--line);width:min(320px,70vw);height:2px}.boot-bar span{background:var(--accent);height:100%;box-shadow:0 0 12px var(--accent);display:block}.boot small{color:var(--muted);font-size:.7rem}.nav{z-index:50;height:var(--nav);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:transform .45s var(--ease);background:#07090d99;position:fixed;inset:0 0 auto}.nav.nav-hidden{transform:translateY(-100%)}.nav .container{justify-content:space-between;align-items:center;height:100%;display:flex}.scroll-progress{background:linear-gradient(90deg, var(--accent), var(--accent2));transform-origin:0;height:2px;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.logo{font:700 1.1rem var(--mono)}.logo span{color:var(--accent)}.nav-links{font-family:var(--mono);color:var(--muted);gap:2rem;font-size:.85rem;display:flex}.nav-links a{transition:color .2s;position:relative}.nav-links a:hover,.nav-links a.active{color:var(--text)}.nav-links a:after{content:"";background:var(--accent);height:1px;transition:transform .35s var(--ease);position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.nav-links a.active:after{transform:scaleX(1)}.hero{min-height:100svh;padding:var(--nav) 0 0;align-items:center;display:flex;position:relative;overflow:hidden}.hero .container{position:relative}.hero h1{letter-spacing:-.045em;margin:1.2rem 0 1.5rem;font-size:clamp(3.2rem,11vw,8.5rem);line-height:.92}.hero h1 .line{margin-bottom:-.2em;display:block;overflow:hidden}.hero h1 .line-inner{padding-bottom:.2em;display:inline-block}.hero .tag{color:var(--muted);max-width:32ch;font-size:clamp(1.1rem,2vw,1.4rem)}.hero .actions{flex-wrap:wrap;gap:.75rem;margin-top:2.5rem;display:flex}.status{font-family:var(--mono);color:var(--muted);align-items:center;gap:.6rem;margin-top:2.5rem;font-size:.8rem;display:flex}.dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #5eead499}70%,to{box-shadow:0 0 0 10px #5eead400}}.scroll-hint{font:.7rem var(--mono);letter-spacing:.2em;color:var(--muted);position:absolute;bottom:2rem;left:50%;translate:-50%}.ticker{z-index:1;border-block:1px solid var(--line);white-space:nowrap;background:var(--panel);padding:1.1rem 0;position:relative;overflow:hidden}.ticker-track{font-family:var(--mono);color:var(--muted);gap:3rem;padding-right:3rem;animation:45s linear infinite marquee;display:inline-flex}.ticker-track span:before{content:"/ ";color:var(--accent)}@keyframes marquee{to{transform:translate(-50%)}}.about-grid{grid-template-columns:1.25fr 1fr;gap:5rem;display:grid}.about-copy p{color:var(--muted);margin-bottom:1.2rem;font-size:1.08rem}.stats{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.2rem;display:grid}.stat{border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem}.stat b{font-size:1.8rem;line-height:1.2;display:block}.stat span{font:.72rem var(--mono);color:var(--muted)}.timeline{margin-top:2rem;padding-left:1.75rem;position:relative}.timeline:before,.timeline-line{content:"";background:var(--line);width:1px;position:absolute;top:.4rem;bottom:0;left:0}.timeline-line{background:linear-gradient(var(--accent), var(--accent2));box-shadow:0 0 10px var(--accent);transform-origin:top}.timeline ol{list-style:none}.timeline li{padding-bottom:2.4rem;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";background:var(--bg);border:2px solid var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:.4rem;left:calc(-1.75rem - 4px)}.timeline li.current:before{background:var(--accent);box-shadow:0 0 12px var(--accent)}.timeline .when{font:.75rem var(--mono);color:var(--accent)}.timeline h3{margin:.2rem 0;font-size:1.15rem}.timeline p{color:var(--muted);font-size:.95rem}.timeline a:hover{color:var(--accent);text-decoration:underline}.drum{gap:1.5rem;display:grid}.project{border:1px solid var(--line);background:linear-gradient(160deg, var(--panel), #0d111766 70%);border-radius:18px;grid-template-columns:1.1fr 1fr;gap:2.5rem;padding:2.2rem;transition:border-color .3s;display:grid}.project:hover{border-color:#5eead473}.project h3{margin:.5rem 0 .8rem;font-size:clamp(1.4rem,3vw,1.9rem)}.project p{color:var(--muted)}.chips{flex-wrap:wrap;gap:.5rem;margin:1.3rem 0;list-style:none;display:flex}.chips li{font:.75rem var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.3rem .75rem}.links{font:.85rem var(--mono);gap:1.5rem;display:flex}.links a{color:var(--accent)}.links a:hover{text-decoration:underline}.term{border:1px solid var(--line);font:.82rem/1.9 var(--mono);background:#05070a;border-radius:12px;align-self:center;overflow:hidden}.term-bar{border-bottom:1px solid var(--line);gap:6px;padding:.75rem .9rem;display:flex}.term-bar i{background:var(--line);border-radius:50%;width:10px;height:10px}.term pre{color:var(--muted);font:inherit;white-space:pre-wrap;padding:1.1rem 1.2rem}.term .cmd{color:var(--text)}.term .ok{color:var(--accent)}.drum-ui{display:none}.is-drum{min-height:100vh;padding:calc(var(--nav) + 1rem) 0 1.5rem;align-items:center;display:flex}.is-drum .section-head{margin-bottom:.5rem}.is-drum .drum-stage{perspective:1400px;padding-block:2.5rem;-webkit-mask-image:linear-gradient(#0000,#000 2.5rem calc(100% - 2.5rem),#0000);mask-image:linear-gradient(#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}.is-drum .drum{transform-style:preserve-3d;gap:0}.is-drum .project{background:var(--panel);backface-visibility:hidden;will-change:transform, opacity;grid-area:1/1}.is-drum .drum-ui{font:.75rem var(--mono);color:var(--muted);letter-spacing:.1em;align-items:center;gap:.75rem;display:flex}.drum-progress{background:var(--line);flex:1;height:1px;margin-left:1rem}.drum-progress span{background:linear-gradient(90deg, var(--accent), var(--accent2));transform-origin:0;height:100%;display:block;transform:scaleX(0)}@media (height<=760px){.is-drum h2{margin:.2rem 0 .6rem;font-size:1.8rem}.is-drum .drum-stage{padding-block:1.5rem}}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;display:grid}.skill-card{border:1px solid var(--line);border-radius:18px;padding:1.8rem}.skill-card h3{margin:.4rem 0 1rem;font-size:1.25rem}.skill-card ul{color:var(--muted);gap:.5rem;list-style:none;display:grid}.skill-card li:before{content:"→ ";color:var(--accent);font-family:var(--mono)}.contact{text-align:center}.contact h2{font-size:clamp(2.5rem,8vw,6rem)}.contact .rule{background:linear-gradient(90deg, transparent, var(--accent), transparent);transform-origin:50%;margin-inline:auto}.contact .lead{color:var(--muted);max-width:54ch;margin:0 auto 2.5rem}.email-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.email{font:clamp(1rem, 2.5vw, 1.4rem) var(--mono);border-bottom:1px dashed var(--muted);margin-right:.5rem}.email:hover{color:var(--accent);border-color:var(--accent)}.socials{text-align:left;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-top:4rem;display:grid}.social{border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.4rem}.social small{font:.72rem var(--mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;display:block}footer{border-top:1px solid var(--line);font:.78rem var(--mono);color:var(--muted);background:var(--bg);padding:2rem 0}footer .container{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}@media (width<=860px){section{padding:5rem 0}.nav-links{display:none}.about-grid,.project{grid-template-columns:1fr;gap:2.5rem}.project{padding:1.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}main:before{content:"";pointer-events:none;background:radial-gradient(600px circle at var(--cx,-999px) var(--cy,-999px), #5eead40f, transparent 40%);position:fixed;inset:0}body:after{content:"";z-index:60;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.ticker{-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}
