@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300&family=Epilogue:wght@300;400;500;700&display=swap";:root{--bg: #1a1a1a;--bg-2: #1f1f1f;--bg-3: #222222;--surface: #282828;--surface-2: #2e2e2e;--border: rgba(43, 241, 32, .1);--border-hi: rgba(43, 241, 32, .22);--ink: #f0f0f0;--ink-muted: #a0a0a0;--ink-faint: #444444;--accent: #2BF120;--accent-dim: #1aad14;--accent-bg: rgba(43, 241, 32, .07);--grad-accent: linear-gradient(135deg, #2BF120 0%, #78ff70 50%, #1aad14 100%);--grad-bar: linear-gradient(90deg, #2BF120, #1aad14);--font-display: "Playfair Display", Georgia, serif;--font-mono: "DM Mono", "Courier New", monospace;--font-body: "Epilogue", sans-serif;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-expo: cubic-bezier(.7, 0, .84, 0);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--section-transition: .85s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:auto;overflow:hidden;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-weight:300;line-height:1.6;height:100vh;overflow:hidden;cursor:none}.cursor{position:fixed;width:10px;height:10px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .1s var(--ease-out-expo),width .3s var(--ease-out-expo),height .3s var(--ease-out-expo),background .3s ease;mix-blend-mode:difference}.cursor-ring{position:fixed;width:36px;height:36px;border:1.5px solid rgba(43,241,32,.5);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:transform .15s var(--ease-out-expo),width .4s var(--ease-out-expo),height .4s var(--ease-out-expo),opacity .3s ease}body:has(a:hover) .cursor,body:has(button:hover) .cursor{width:16px;height:16px}body:has(a:hover) .cursor-ring,body:has(button:hover) .cursor-ring{width:52px;height:52px}h1,h2,h3{font-family:var(--font-display);line-height:1.1;font-weight:700}a{color:inherit;text-decoration:none}#scroll-container{position:fixed;top:0;left:0;width:100%;height:100vh;overflow:hidden}.sections-wrapper{display:flex;flex-direction:column;will-change:transform;transition:transform var(--section-transition) var(--ease-out-expo)}.section-inner{width:80%;max-width:1400px;margin:0 auto;padding:0}.section{position:relative;width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;flex-shrink:0}#nav-dots{position:fixed;right:2.5rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1rem;z-index:100}.nav-dot{display:flex;align-items:center;gap:.75rem;cursor:none;background:none;border:none;padding:0;justify-content:flex-end}.nav-dot-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);opacity:0;transform:translate(6px);transition:opacity .2s ease,transform .2s ease,color .2s ease;white-space:nowrap}.nav-dot:hover .nav-dot-label,.nav-dot.active .nav-dot-label{opacity:1;transform:translate(0)}.nav-dot.active .nav-dot-label{color:var(--accent)}.nav-dot-pip{width:6px;height:6px;border-radius:50%;background:var(--ink-faint);transition:background .3s ease,transform .3s var(--ease-spring),width .3s ease}.nav-dot.active .nav-dot-pip{background:var(--accent);transform:scale(1.4)}.nav-dot:hover .nav-dot-pip{background:var(--ink-muted);transform:scale(1.2)}#topbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:2rem 3rem;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.topbar-logo{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);pointer-events:all}.topbar-section-name{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-muted);transition:opacity .4s ease}.scroll-hint{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.4;animation:bounce-hint 2.5s ease-in-out infinite}.scroll-hint span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase}.scroll-hint-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--accent),transparent);animation:line-grow 2.5s ease-in-out infinite}@keyframes bounce-hint{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}@keyframes line-grow{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.section-content{opacity:0;transform:translateY(30px);transition:opacity .6s var(--ease-out-expo),transform .6s var(--ease-out-expo)}.section.is-active .section-content{opacity:1;transform:translateY(0)}.section-content>*{transition-delay:calc(var(--i, 0) * .08s)}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:1000;opacity:.35}.section-number{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.section-number:after{content:"";display:block;width:60px;height:1px;background:var(--accent);opacity:.4}.tag{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;padding:.35rem .8rem;border:1px solid var(--border-hi);border-radius:2px;color:var(--ink-muted);white-space:nowrap;transition:border-color .2s ease,color .2s ease}.tag:hover{border-color:var(--accent);color:var(--accent)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}::-webkit-scrollbar{display:none}html,body{max-width:100%;overflow-x:hidden}@media(max-width:600px){.section-inner{width:92%;padding:0}.topbar-logo{font-size:.65rem}.tag{font-size:.6rem;padding:.25rem .6rem}.cursor,.cursor-ring{display:none}body{cursor:auto}}.section-hero{background:var(--bg)}.section-hero:before{content:"";position:absolute;top:-20%;right:-10%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(43,241,32,.06) 0%,transparent 70%);pointer-events:none}.section-hero:after{content:"";position:absolute;bottom:-10%;left:20%;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(43,241,32,.03) 0%,transparent 70%);pointer-events:none}.hero-eyebrow{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}.hero-eyebrow:before{content:"";display:block;width:40px;height:1px;background:var(--accent)}.hero-name{font-size:clamp(3.5rem,8vw,8rem);font-weight:900;line-height:.95;letter-spacing:-.02em;margin-bottom:.2em}.hero-name em{font-style:italic;background:var(--grad-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-title{font-family:var(--font-mono);font-size:clamp(.8rem,1.4vw,1rem);color:var(--ink-muted);font-weight:300;letter-spacing:.06em;margin-bottom:2rem}.hero-bio{font-size:1rem;line-height:1.85;color:var(--ink-muted);max-width:480px;margin-bottom:2.5rem;font-weight:300}.hero-bio strong{color:var(--ink);font-weight:500}.hero-cta{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.btn-primary{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:1rem 2rem;background:var(--accent);color:#111;border:none;border-radius:2px;cursor:none;font-weight:500;transition:box-shadow .25s ease,transform .2s var(--ease-spring)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px #2bf1204d}.btn-secondary{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:.5rem;transition:color .2s ease}.btn-secondary:hover{color:var(--accent)}.hero-scroll-count{position:absolute;right:2.5rem;bottom:3rem;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;color:var(--ink-faint);writing-mode:vertical-rl;text-orientation:mixed}.section-projects{background:var(--bg-2)}.projects-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2.5rem}.section-title{font-size:clamp(2.2rem,4.5vw,4rem);font-weight:900;line-height:1;letter-spacing:-.02em}.section-title em{font-style:italic;color:var(--accent)}.projects-count{font-family:var(--font-mono);font-size:.6rem;color:var(--ink-muted);letter-spacing:.1em}.projects-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1px;background:var(--border-hi);border:1px solid var(--border-hi)}.project-card{background:var(--surface);padding:1.75rem;position:relative;overflow:hidden;transition:background .3s ease}.project-card:hover{background:var(--surface-2)}.project-card:before{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--grad-accent);transition:width .45s var(--ease-out-expo)}.project-card:hover:before{width:100%}.project-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;color:var(--accent);text-transform:uppercase;margin-bottom:.75rem}.project-name{font-family:var(--font-display);font-size:1.3rem;font-weight:700;margin-bottom:.6rem;line-height:1.2}.project-desc{font-size:.85rem;color:var(--ink-muted);line-height:1.75;margin-bottom:1.25rem}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-arrow{position:absolute;top:1.25rem;right:1.25rem;width:28px;height:28px;border:1px solid var(--border-hi);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .2s ease,transform .3s var(--ease-spring),box-shadow .2s ease}.project-card:hover .project-arrow{border-color:var(--accent);transform:rotate(45deg);box-shadow:0 0 12px #2bf12033}.section-skills{background:var(--bg)}.skills-inner{display:grid;grid-template-columns:1fr 1.5fr;gap:5rem;align-items:center}.skills-intro p{font-size:.9rem;color:var(--ink-muted);line-height:1.9;margin-top:1.25rem}.skills-columns{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}.skill-category-title{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1.25rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.skill-item{margin-bottom:.9rem}.skill-name-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.skill-name{font-size:.85rem;font-weight:400;color:var(--ink)}.skill-level{font-family:var(--font-mono);font-size:.6rem;color:var(--ink-muted);letter-spacing:.05em}.skill-bar-track{height:2px;background:var(--surface-2);border-radius:1px;overflow:hidden}.skill-bar-fill{height:100%;background:var(--grad-bar);border-radius:1px;transform-origin:left;transform:scaleX(0);transition:transform .8s var(--ease-out-expo);transition-delay:calc(var(--i, 0) * .06s)}.section.is-active .skill-bar-fill{transform:scaleX(1)}.section-references{background:var(--bg-2)}.references-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-hi);border:1px solid var(--border-hi);margin-top:2.5rem}.reference-card{background:var(--surface);padding:2.25rem 1.75rem;position:relative;transition:background .3s ease}.reference-card:hover{background:var(--surface-2)}.quote-mark{font-family:var(--font-display);font-size:3.5rem;line-height:1;color:var(--accent);opacity:.3;margin-bottom:.75rem;font-style:italic}.reference-quote{font-size:.875rem;line-height:1.85;color:var(--ink-muted);font-style:italic;margin-bottom:1.5rem}.reference-author{display:flex;flex-direction:column;gap:.2rem}.reference-name{font-size:.875rem;font-weight:500;color:var(--ink)}.reference-role{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;color:var(--accent);text-transform:uppercase}.section-watch{background:var(--bg-3)}.watch-inner{display:grid;grid-template-columns:1fr 2fr;gap:5rem;align-items:start}.watch-intro p{font-size:.875rem;color:var(--ink-muted);line-height:1.9;margin-top:1.25rem}.watch-items{display:flex;flex-direction:column;gap:0}.watch-item{display:grid;grid-template-columns:auto 1fr auto;gap:1.25rem;align-items:start;padding:1.1rem 0;border-bottom:1px solid var(--border);transition:background .2s ease;cursor:none}.watch-item:first-child{border-top:1px solid var(--border)}.watch-item:hover .watch-item-title{color:var(--accent)}.watch-num{font-family:var(--font-mono);font-size:.6rem;color:var(--ink-faint);padding-top:.2rem}.watch-item-title{font-size:.9rem;font-weight:400;transition:color .2s ease;line-height:1.4}.watch-item-meta{display:flex;flex-direction:column;gap:.2rem;align-items:flex-end}.watch-source{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;color:var(--accent);text-transform:uppercase}.watch-date{font-family:var(--font-mono);font-size:.6rem;color:var(--ink-faint)}.section-contact{background:var(--bg)}.section-contact:before{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(43,241,32,.07) 0%,transparent 70%);pointer-events:none}.contact-big-text{font-size:clamp(2.5rem,5vw,4.8rem);font-weight:900;line-height:1.02;letter-spacing:-.02em;margin-bottom:1.75rem}.contact-big-text em{font-style:italic;background:var(--grad-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.contact-sub{font-size:.95rem;color:var(--ink-muted);max-width:440px;margin-bottom:2.75rem;line-height:1.85}.contact-links{display:flex;gap:2.5rem;flex-wrap:wrap;margin-bottom:3.5rem}.contact-link{display:flex;flex-direction:column;gap:.3rem}.contact-link-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-muted)}.contact-link-value{font-size:.95rem;color:var(--ink);border-bottom:1px solid var(--border-hi);padding-bottom:.2rem;transition:border-color .2s ease,color .2s ease}.contact-link:hover .contact-link-value{color:var(--accent);border-color:var(--accent)}.contact-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1.75rem;border-top:1px solid var(--border);width:100%}.contact-footer-copy{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;color:var(--ink-faint)}.social-links{display:flex;gap:1.5rem}.social-link{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-muted);transition:color .2s ease}.social-link:hover{color:var(--accent)}@media(max-width:900px){.projects-grid{grid-template-columns:1fr}.skills-inner,.watch-inner{grid-template-columns:1fr;gap:2rem}.skills-columns{grid-template-columns:1fr 1fr}.references-grid{grid-template-columns:1fr}#nav-dots{right:1rem}}@media(max-width:900px){.projects-grid{grid-template-columns:1fr 1fr}.skills-inner{grid-template-columns:1fr;gap:2rem}.skills-columns{grid-template-columns:1fr 1fr;gap:1.5rem}.references-grid{grid-template-columns:1fr 1fr}.watch-inner{grid-template-columns:1fr;gap:1.5rem}#nav-dots{right:1rem}}@media(max-width:600px){#nav-dots{display:none}#topbar{padding:1.2rem 1.5rem}.hero-name{font-size:clamp(2.8rem,14vw,5rem);line-height:.92}.hero-eyebrow{font-size:.65rem;margin-bottom:1rem}.hero-bio{font-size:.9rem;margin-bottom:1.75rem}.hero-cta{flex-direction:column;align-items:flex-start;gap:1rem}.section-title{font-size:clamp(1.8rem,8vw,3rem);margin-bottom:1.5rem}.projects-grid{grid-template-columns:1fr}.projects-header{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:1.5rem}.skills-inner{gap:1.5rem}.skills-columns{grid-template-columns:1fr;gap:1.25rem}.skills-intro p{font-size:.85rem}.references-grid{grid-template-columns:1fr}.reference-card{padding:1.5rem 1.25rem}.watch-inner{grid-template-columns:1fr;gap:1.25rem}.watch-intro p{font-size:.82rem}.watch-item{grid-template-columns:24px 1fr;gap:.75rem}.watch-item-meta{display:none}.contact-big-text{font-size:clamp(1.8rem,8vw,3rem)}.contact-sub{font-size:.875rem}.contact-links{flex-direction:column;gap:1.25rem;margin-bottom:2rem}.contact-footer{flex-direction:column;align-items:flex-start;gap:1rem}.social-links{gap:1rem}.btn-primary{width:100%;text-align:center;padding:.9rem 1.5rem}.scroll-hint,.hero-scroll-count{display:none}}
