@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,600&display=swap";:root{color:#f4f3f7;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lime:#c4f82a;--muted:#888992;--border:#ffffff1a;background:#08090c;font-family:Inter,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,a{font:inherit}a{color:inherit}::selection{color:#08090c;background:var(--lime)}main{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background-color:#08090c;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:58px 58px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:100vh;position:relative;overflow:hidden}.watermelon-page{background:#08090c;place-items:center;min-height:100vh;padding:24px;display:grid;overflow:hidden}.watermelon-page h1{color:#f4f3f7;letter-spacing:-.08em;text-align:center;white-space:nowrap;margin:0;font-size:clamp(84px,20vw,360px);font-weight:800;line-height:.9}.legal-page{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;color:#f5f5f6;background:#08090c;min-height:100vh;position:relative;overflow:hidden}.legal-page img,.legal-page a{-webkit-user-drag:none}.legal-grid{opacity:.55;pointer-events:none;background-color:#0000;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:64px 64px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.legal-glow{filter:blur(130px);pointer-events:none;border-radius:999px;animation:9s ease-in-out infinite alternate legal-float;position:fixed}.legal-glow-one{opacity:.13;background:var(--lime);width:540px;height:540px;top:-180px;right:-180px}.legal-glow-two{opacity:.1;background:#655cff;width:480px;height:480px;animation-delay:-4s;top:48%;left:-260px}.legal-nav,.legal-hero,.legal-content,.legal-footer{z-index:1;width:min(980px,100% - 48px);margin-inline:auto;position:relative}.legal-nav{justify-content:space-between;align-items:center;min-height:92px;animation:.7s both legal-enter;display:flex}.legal-brand{letter-spacing:-1.5px;font-size:24px;font-weight:700;text-decoration:none}.legal-brand span{color:var(--lime)}.legal-nav>div{gap:10px;display:flex}.legal-nav>div a{color:#85868e;letter-spacing:-.01em;border:1px solid #0000;padding:12px 16px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;text-decoration:none;transition:color .25s,border-color .25s,background .25s}.legal-nav>div a:hover,.legal-nav>div a.active{color:#f4f4f5;background:#c4f82a0f;border-color:#c4f82a59}.legal-hero{border-bottom:1px solid var(--border);flex-direction:column;justify-content:center;min-height:510px;display:flex}.legal-hero h1{letter-spacing:-.075em;margin:0;font-size:clamp(56px,10vw,104px);line-height:.92;animation:.85s cubic-bezier(.2,.75,.3,1) .16s both legal-enter}.legal-hero>p:not(.legal-kicker){color:#92939b;margin:30px 0 0;font-size:clamp(15px,2vw,18px);line-height:1.8;animation:.85s .26s both legal-enter}.legal-meta{color:#666770;letter-spacing:0;gap:24px;margin-top:48px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;animation:.85s .35s both legal-enter;display:flex}.legal-scroll{background:#ffffff14;width:1px;height:54px;position:absolute;bottom:40px;right:0;overflow:hidden}.legal-scroll span{background:var(--lime);width:100%;height:22px;animation:1.8s ease-in-out infinite legal-scroll;display:block}.legal-content{padding-block:78px 120px}.legal-card{opacity:0;border-bottom:1px solid var(--border);grid-template-columns:64px minmax(0,1fr);gap:28px;padding:42px 0;transition:opacity .75s cubic-bezier(.2,.75,.3,1),transform .75s cubic-bezier(.2,.75,.3,1),border-color .25s;display:grid;transform:translateY(34px)}.legal-card:first-child{border-top:1px solid var(--border)}.legal-card.is-visible{opacity:1;transition-delay:calc(min(var(--legal-order), 2) * 45ms);transform:translateY(0)}.legal-card:hover{border-color:#c4f82a47}.legal-number{color:var(--lime);font-variant-numeric:tabular-nums;padding-top:5px;font-family:Inter,sans-serif;font-size:15px;font-weight:700}.legal-card h2{color:#f2f2f4;letter-spacing:-.035em;margin:0 0 20px;font-size:clamp(23px,3vw,30px);font-weight:600}.legal-card p,.legal-card li{color:#a2a3aa;word-break:keep-all;font-size:15px;line-height:1.9}.legal-card p{margin:0}.legal-card p+p{margin-top:14px}.legal-card strong{color:#e4e4e7;font-weight:600}.legal-card a{color:var(--lime);text-underline-offset:3px;text-decoration-color:#c4f82a73;transition:color .2s,text-decoration-color .2s}.legal-card a:hover{color:#e1ff86;text-decoration-color:currentColor}.legal-card ul{margin:0;padding-left:20px}.legal-card li+li{margin-top:7px}.legal-card li::marker{color:var(--lime)}.legal-card .legal-notice{color:#e7ebda;border-left:2px solid var(--lime);background:#c4f82a0e;padding:18px 20px}.legal-footer{color:#65666d;border-top:1px solid var(--border);justify-content:space-between;padding-block:32px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;display:flex}.legal-footer a{text-decoration:none;transition:color .2s}.legal-footer a:hover{color:var(--lime)}@keyframes legal-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes legal-scroll{0%{transform:translateY(-24px)}to{transform:translateY(58px)}}@keyframes legal-float{0%{transform:translateY(-18px)scale(.96)}to{transform:translate(30px,28px)scale(1.06)}}.page-shell{width:min(1160px,100% - 48px);margin-inline:auto}.ambient{filter:blur(120px);pointer-events:none;opacity:.13;border-radius:50%;position:absolute}.ambient-one{background:#a5ff00;width:500px;height:500px;top:100px;right:-220px}.ambient-two{opacity:.1;background:#5d5cff;width:360px;height:360px;top:720px;left:-220px}.nav{z-index:2;justify-content:space-between;align-items:center;height:104px;display:flex;position:relative}.brand{letter-spacing:-1.5px;font-size:25px;font-weight:700;text-decoration:none}.brand span{color:var(--lime)}.nav-links{gap:28px;display:flex}.nav-links a{color:#bebfc5;letter-spacing:.12em;border-bottom:1px solid #55565c;padding-bottom:6px;font-family:DM Mono,monospace;font-size:12px;text-decoration:none;transition:all .25s}.nav-links a:hover{color:var(--lime);border-color:var(--lime)}.hero{grid-template-columns:1.3fr .7fr;align-items:center;gap:60px;min-height:650px;padding-block:50px 100px;display:grid}.eyebrow{letter-spacing:.15em;color:#9899a1;font-family:DM Mono,monospace;font-size:11px}.hero h1{letter-spacing:-.062em;margin:12px 0 28px;font-size:clamp(52px,6.3vw,88px);font-weight:600;line-height:1.08}.hero h1 em,.contact h2 em{color:var(--lime);font-family:Playfair Display,serif;font-weight:600}.typewriter{white-space:nowrap;min-width:2.65em;display:inline-block}.typewriter-cursor{vertical-align:-.04em;background:currentColor;width:.055em;height:.82em;margin-left:.1em;animation:.75s step-end infinite cursor-blink;display:inline-block}.intro{color:#94959d;margin-bottom:36px;font-size:17px;line-height:1.8}.intro strong{color:#e7e7e9;font-weight:500}.primary-button{background:var(--lime);color:#0b0c0e;align-items:center;gap:26px;padding:16px 20px 16px 24px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .25s,box-shadow .25s;display:inline-flex}.primary-button svg,.contact-button>svg:last-child{fill:none;stroke:currentColor;stroke-width:1.7px;width:19px}.primary-button:hover{transform:translateY(-3px);box-shadow:0 12px 40px #c4f82a33}.hero-art{place-items:center;height:390px;display:grid;position:relative}.code-card{z-index:2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#14151ac7;border:1px solid #ffffff21;width:310px;padding:28px;font-family:DM Mono,monospace;position:relative;box-shadow:0 30px 80px #00000073}.code-card:before{content:"";background:radial-gradient(circle,#ff665e 2px,#0000 3px) 0 0/11px 5px;width:33px;height:5px;margin-bottom:28px;display:block}.code-label{letter-spacing:.18em;color:#666872;margin-bottom:16px;font-size:9px;display:block}.code-line{color:#a8a9b0;font-size:12px;line-height:2.15}.code-line i{color:#c989ff;font-style:normal}.code-line b{color:#d9e99f;font-weight:400}.code-line strong{color:#77c7ff;font-weight:400}.code-line.indent{padding-left:20px}.skills-section{border-top:1px solid var(--border);padding-block:110px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:46px;display:flex}.section-heading h2{letter-spacing:-.04em;margin:10px 0 0;font-size:36px}.section-heading>p{color:#777880;font-size:14px}.skill-grid{perspective:1100px;grid-template-columns:repeat(5,1fr);display:grid}.skill-card{--pointer-x:50%;--pointer-y:50%;--rotate-x:0deg;--rotate-y:0deg;border:1px solid var(--border);height:205px;transform:perspective(800px) rotateX(var(--rotate-x)) rotateY(var(--rotate-y));transform-style:preserve-3d;background:#ffffff06;border-right:0;flex-direction:column;justify-content:space-between;padding:22px;transition:transform .18s ease-out,background .3s,border-color .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.skill-card:before{content:"";z-index:0;opacity:0;pointer-events:none;background:radial-gradient(160px circle at var(--pointer-x) var(--pointer-y), #c4f82a2e, transparent 65%);transition:opacity .25s;position:absolute;inset:0}.skill-card.scroll-reveal{transition-delay:calc(var(--order) * 75ms)}.skill-card:last-child{border-right:1px solid var(--border)}.skill-card:hover{z-index:2;background:#ffffff0e;border-color:#c4f82a73;box-shadow:0 18px 55px #00000059,inset 0 0 0 1px #c4f82a29}.skill-card:hover:before{opacity:1}.skill-card>*{z-index:1;position:relative}.skill-index{letter-spacing:-.04em;color:#8a8c94;font-family:DM Mono;font-size:16px;font-weight:500;transition:color .3s,transform .3s}.skill-icon{color:#9698a1;opacity:.8;width:40px;height:40px;transition:color .3s,transform .3s,opacity .3s;position:absolute;top:24px;right:20px}.skill-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:100%;height:100%;overflow:visible}.skill-icon text{fill:currentColor;stroke:none;font-family:DM Mono,monospace;font-size:13px;font-weight:500}.python .skill-icon svg{fill:none}.skill-card:hover .skill-icon{color:var(--lime);opacity:1;transform:translateY(-2px)scale(1.05)}.skill-card:hover .skill-index{color:var(--lime);transform:translateZ(14px)}.skill-card.green .skill-icon svg path{fill:none;stroke:currentColor}.skill-card.cyan .skill-icon svg circle{fill:currentColor;stroke:none}.skill-card h3{color:#f0f0f2;letter-spacing:-.02em;margin:0 0 7px;font-size:17px;font-weight:600;transition:color .3s,transform .3s}.skill-card p{color:#a0a1a8;margin:0;font-size:13px;transition:color .3s,transform .3s}.skill-card:hover h3{color:#fff;transform:translateZ(18px)}.skill-card:hover p{color:#c4c5cb;transform:translateZ(12px)}.card-glow{filter:blur(35px);opacity:.22;border-radius:50%;width:90px;height:90px;transition:opacity .3s;position:absolute;bottom:-40px;right:-40px}.skill-card:hover .card-glow{opacity:.55}.blue .card-glow{background:#4386ff}.yellow .card-glow{background:#ffd83d}.green .card-glow{background:#4ee59b}.cyan .card-glow{background:#4edcff}.violet .card-glow{background:#9b72ff}.projects-section{border-top:1px solid var(--border);padding-block:110px}.projects-section .project-card+.project-card{margin-top:18px}.project-card{min-height:270px;color:inherit;border:1px solid var(--border);background:#ffffff04;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:42px;padding:42px;text-decoration:none;transition:transform .3s,border-color .3s,background .3s;display:grid;position:relative;overflow:hidden}.project-card:after{content:"";filter:blur(100px);opacity:.08;background:#c4f82a;border-radius:50%;width:280px;height:280px;transition:opacity .3s;position:absolute;bottom:-130px;right:-90px}.project-card:hover{background:#ffffff09;border-color:#c4f82a59;transform:translateY(-5px)}.project-card:hover:after{opacity:.16}.project-meta{color:#62636b;letter-spacing:.14em;flex-direction:column;justify-content:space-between;align-self:stretch;font-family:DM Mono,monospace;font-size:9px;display:flex}.project-copy{z-index:1;position:relative}.project-copy h3{letter-spacing:-.045em;margin:0 0 15px;font-size:clamp(28px,3vw,42px);font-weight:500}.project-copy p{color:#85868e;max-width:600px;margin:0;font-size:14px;line-height:1.75}.project-tags{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.project-tags span{color:#a3a4ab;border:1px solid var(--border);background:#ffffff05;padding:7px 10px;font-family:DM Mono,monospace;font-size:9px}.project-link{z-index:1;color:var(--lime);white-space:nowrap;align-items:center;gap:12px;font-family:DM Mono,monospace;font-size:11px;display:inline-flex;position:relative}.project-link svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:18px;transition:transform .25s}.project-card:hover .project-link svg{transform:translate(4px)}.details{border-block:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.details article{padding:55px 0}.details article+article{border-left:1px solid var(--border);padding-left:70px}.details h3{margin:18px 0 10px;font-size:24px}.details h3 .timezone{color:var(--lime);margin-left:8px;font-family:DM Mono;font-size:14px}.language-list{align-items:center;gap:12px;display:flex}.details h3 .language-divider{color:var(--lime);align-self:center;align-items:center;margin:.08em 0 0;font-family:DM Mono;font-size:.65em;line-height:1;display:inline-flex}.details p:last-child{color:#74757d;font-size:13px}.contact{justify-content:space-between;align-items:center;min-height:480px;display:flex}.contact h2{letter-spacing:-.055em;margin:14px 0 0;font-size:clamp(42px,5vw,66px);line-height:1.05}.contact-links{gap:12px;width:270px;display:grid}.contact-button{border:1px solid var(--border);background:#ffffff06;align-items:center;gap:18px;width:100%;padding:20px 22px;text-decoration:none;transition:all .3s;display:flex}.contact-button:hover{border-color:var(--lime);transform:translate(-6px)}.contact-button>svg:first-child{fill:#aeb0b8;width:28px}.contact-button>svg:last-child{width:18px;margin-left:auto}.contact-button span{font-size:15px;font-weight:600}.contact-button small{letter-spacing:.14em;color:#6e7078;margin-bottom:4px;font-family:DM Mono;font-size:8px;display:block}footer{border-top:1px solid var(--border);color:#65666d;justify-content:flex-end;align-items:center;min-height:100px;font-family:DM Mono;font-size:10px;display:flex}footer p{margin-right:auto}footer a:last-child{text-decoration:none;transition:color .2s}footer a:last-child:hover{color:var(--lime)}.reveal{opacity:0;animation:.8s cubic-bezier(.2,.75,.3,1) forwards reveal}.scroll-reveal{opacity:0;transition:opacity .8s cubic-bezier(.2,.75,.3,1),transform .8s cubic-bezier(.2,.75,.3,1);transform:translateY(36px)}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}.details article:nth-child(2).scroll-reveal,.contact-links.scroll-reveal{transition-delay:.12s}.delay-one{animation-delay:.12s}.delay-two{animation-delay:.24s}.delay-three{animation-delay:.38s}@keyframes reveal{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes cursor-blink{50%{opacity:0}}@media (width<=900px){.hero{grid-template-columns:1fr;padding-top:70px}.hero-art{display:none}.skill-grid{grid-template-columns:repeat(2,1fr)}.skill-card{border-right:1px solid var(--border);margin:-1px 0 0 -1px}.section-heading{flex-direction:column;align-items:flex-start;gap:18px}.project-card{grid-template-columns:72px minmax(0,1fr)}.project-link{grid-column:2}.contact{gap:50px}}@media (width<=640px){.watermelon-page h1{white-space:normal;font-size:clamp(64px,21vw,140px)}.legal-nav,.legal-hero,.legal-content,.legal-footer{width:min(100% - 32px,980px)}.legal-nav{min-height:78px}.legal-nav>div{gap:2px}.legal-nav>div a{padding:10px 9px;font-size:12px}.legal-hero{min-height:460px}.legal-hero h1{font-size:clamp(48px,16vw,72px)}.legal-meta{flex-direction:column;gap:8px;margin-top:34px}.legal-scroll{display:none}.legal-content{padding-block:54px 80px}.legal-card{grid-template-columns:34px minmax(0,1fr);gap:12px;padding:34px 0}.legal-card p,.legal-card li{word-break:normal;font-size:14px;line-height:1.85}.legal-card .legal-notice{padding:15px 16px}.page-shell{width:min(100% - 32px,1160px)}.nav{height:78px}.hero{min-height:650px;padding-block:70px 80px}.hero h1{font-size:clamp(43px,13vw,62px)}.intro{font-size:15px}.desktop-break{display:none}.skills-section{padding-block:80px}.section-heading h2{font-size:30px}.skill-grid{grid-template-columns:1fr 1fr}.skill-card{height:160px;padding:18px}.projects-section{padding-block:80px}.project-card{flex-direction:column;align-items:flex-start;gap:26px;min-height:0;padding:28px;display:flex}.project-meta{flex-direction:row;width:100%}.details{grid-template-columns:1fr}.details article{padding:38px 0}.details article+article{border-left:0;border-top:1px solid var(--border);padding-left:0}.contact{flex-direction:column;align-items:flex-start;min-height:auto;padding-block:90px}.contact h2{font-size:43px}.contact-links{width:100%}footer{gap:20px;padding-block:30px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.skill-card{transform:none!important}}
