@font-face{font-family:valofont;src:url(/assets/Valorax-lg25V-6fGX-RhT.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neu;src:url(/assets/Neue-B6TuYrZz.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:juana;src:url(/assets/juana-DAT4E6uv.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:circuit;src:url(/assets/Circuit-g1PqcNHE.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}h1{font-family:valofont,Neu,Helvetica Neue,sans-serif}p{font-family:juana,serif}.hero-content h1{text-transform:uppercase;font-family:valofont,sans-serif;font-weight:400}.reveal-text h1{text-transform:uppercase;font-family:circuit,sans-serif;font-weight:400}.footer-col a{color:var(--text-secondary);opacity:.7;text-transform:uppercase;font-size:.95rem;text-decoration:none;transition:opacity .3s}.showreel-text p{text-transform:uppercase;font-family:juana,serif}*{-webkit-tap-highlight-color:transparent}::selection{background-color:var(--accent);color:var(--bg-primary)}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a0a;--bg-secondary:#111;--bg-overlay:#0a0a0a;--bg-card:#ffffff08;--bg-hover:#ffffff0d;--text-primary:#e0e0e0;--text-secondary:#fff;--text-muted:#555;--text-body:#aaa;--border-subtle:#ffffff1a;--border-medium:#ffffff26;--accent:#38f9d7cc;--accent-bg:#38f9d714;--accent-border:#38f9d74d;--transition-bg:#000;--canvas-glow:#fff3;--skill-hover-bg:#fff;--skill-hover-color:#0a0a0a;--heading-shadow:0 0 60px #ffffff14, 0 4px 20px #0009;--heading-shadow-sm:0 2px 12px #00000080;--heading-glow:0 0 80px #38f9d70f}body.light-mode{--bg-primary:#f5f5f5;--bg-secondary:#e8e8e8;--bg-overlay:#f0f0f0;--bg-card:#0000000a;--bg-hover:#0000000f;--text-primary:#1a1a1a;--text-secondary:#111;--text-muted:#888;--text-body:#555;--border-subtle:#0000001a;--border-medium:#00000026;--accent:#14b4a0e6;--accent-bg:#14b4a01a;--accent-border:#14b4a066;--transition-bg:#fff;--canvas-glow:#0000001a;--skill-hover-bg:#111;--skill-hover-color:#fff;--heading-shadow:0 2px 30px #00000014, 0 1px 8px #0000001f;--heading-shadow-sm:0 1px 6px #0000001a;--heading-glow:0 0 60px #14b4a00f}.theme-toggle{border:1px solid var(--border-subtle);cursor:pointer;pointer-events:auto;color:var(--text-secondary);z-index:301;mix-blend-mode:normal;background:0 0;border-radius:30px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;transition:border-color .3s,background-color .3s;display:flex;position:relative}.theme-toggle:hover{border-color:var(--accent);background:var(--accent-bg)}.theme-toggle .theme-icon{font-size:1rem;line-height:1;transition:transform .4s cubic-bezier(.16,1,.3,1)}.theme-toggle .theme-label{text-transform:uppercase;letter-spacing:.1em;font-family:Courier New,monospace;font-size:.65rem}.page-loader{z-index:10000;background-color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100vw;height:100vh;transition:transform .8s cubic-bezier(.76,0,.24,1);display:flex;position:fixed;top:0;left:0}.page-loader.loader-exit{transform:translateY(-100%)}.loader-brand{color:#0a0a0a;text-transform:lowercase;letter-spacing:.05em;font-family:valofont,sans-serif;font-size:clamp(2.5rem,6vw,4rem)}.loader-counter{color:#0a0a0a;font-family:valofont,monospace;font-size:clamp(2rem,4vw,4rem);font-weight:200;line-height:1}.loader-bar-track{background:#0000001a;border-radius:2px;width:min(80%,400px);height:3px;overflow:hidden}.loader-bar-fill{background:#0a0a0a;border-radius:2px;height:100%;transition:width .1s linear}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:valofont,Arial,sans-serif;transition:background-color .4s,color .4s,background .4s;overflow-x:hidden}@media (width<=768px){#webgl-canvas{display:none!important}}.noise-overlay{z-index:9998;pointer-events:none;opacity:.03;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}@media (width<=768px){.noise-overlay{display:none}}main{padding-bottom:5rem}#webgl-canvas{z-index:0;pointer-events:none;width:100vw;height:100vh;filter:drop-shadow(0 0 10px var(--canvas-glow));position:absolute;top:0;right:0}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}.custom-cursor{pointer-events:none;mix-blend-mode:difference;z-index:9999;background:#fff;border-radius:50%;width:20px;height:20px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.nav{z-index:300;width:100%;color:var(--text-secondary);pointer-events:none;background:0 0;justify-content:space-between;align-items:center;padding:1.2rem 3rem;transition:background .4s,box-shadow .4s,-webkit-backdrop-filter .4s,backdrop-filter .4s;display:flex;position:fixed;top:0;left:0}body.light-mode .nav{-webkit-backdrop-filter:blur(16px);background:#f5f5f5bf;border-bottom:1px solid #0000000f;box-shadow:0 1px 20px #00000014,0 1px 3px #0000000a}body:not(.light-mode) .nav{-webkit-backdrop-filter:blur(12px);background:#0a0a0a99;border-bottom:1px solid #ffffff0d;box-shadow:0 1px 20px #0000004d}.nav-left,.menu-toggle,.nav-right-controls{pointer-events:auto}.nav-right-controls{align-items:center;gap:1rem;display:flex}.menu-toggle{cursor:pointer;z-index:301;background:0 0;border:none;padding:10px;position:relative}.line{transform-origin:50%;width:100%;height:2px;transition:transform .3s ease-in-out,opacity .3s ease-in-out,background-color .4s;display:block;background-color:var(--text-secondary)!important}.menu-overlay{background-color:var(--bg-overlay);z-index:90;will-change:transform;justify-content:space-between;width:100vw;height:100vh;padding:100px 8vw 8rem;display:flex;position:fixed;top:0;left:0;transform:translateY(-100%)}.hamburger-box{flex-direction:column;justify-content:space-between;width:30px;height:24px;display:flex;position:relative}.line{background-color:var(--text-secondary);transform-origin:50%;width:100%;height:2px;transition:transform .3s,opacity .3s,background-color .4s;display:block}.menu-toggle.is-active .line-1{transform:translateY(11px)rotate(45deg)}.menu-toggle.is-active .line-2{opacity:0}.menu-toggle.is-active .line-3{transform:translateY(-11px)rotate(-45deg)}.menu-links{flex-direction:column;gap:1rem;display:flex}.menu-item{color:var(--text-secondary);text-transform:uppercase;opacity:0;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:6vw;line-height:.9;text-decoration:none;transition:color .3s;transform:translateY(20px)}.menu-item:hover{color:#888;font-style:italic}.menu-num{vertical-align:middle;color:var(--text-muted);margin-right:2rem;font-family:Courier New,monospace;font-size:1.5rem}.menu-info{opacity:0;flex-direction:column;gap:1rem;padding-top:2rem;font-family:Helvetica Neue,sans-serif;display:flex}.menu-info h3{text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem;font-size:.9rem}.menu-info a{color:var(--text-secondary);font-size:1.2rem;text-decoration:none;transition:opacity .2s,color .4s}.menu-info a:hover{opacity:.6}.menu-email{margin-top:4rem}.hero-section{z-index:2;flex-direction:column;justify-content:space-between;width:100vw;height:100vh;padding:8rem 3rem 3rem;display:flex;position:relative}.hero-content h1{letter-spacing:-.02em;color:var(--text-secondary);text-shadow:var(--heading-shadow);margin-top:2vw;font-size:clamp(3rem,10vw,10rem);font-weight:400;line-height:1.15;transition:color .4s,text-shadow .4s}.bottom-nav{z-index:100;justify-content:space-between;align-items:flex-end;width:100%;padding:1.5rem 3rem;transition:color .4s;display:flex;position:fixed;bottom:0;left:0}.nav-group{gap:3rem;display:flex}.nav-link{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;opacity:.7;font-family:Helvetica Neue,sans-serif;font-size:1.1rem;text-decoration:none;transition:opacity .3s,color .4s;position:relative}.nav-link:hover{opacity:1}.nav-link:after{content:"";background-color:#fff;width:0%;height:1px;transition:width .3s;position:absolute;bottom:-5px;left:0}.nav-link:hover:after{width:100%}.nav-num{opacity:.5;vertical-align:top;margin-right:5px;font-family:Courier New,monospace;font-size:.7rem}@media (width<=768px){.nav{padding:1rem 1.5rem}.brand{font-size:1.4rem}.current-time{display:none}.nav-right-controls{gap:.6rem}.theme-toggle{padding:5px 10px;font-size:.75rem}.theme-toggle .theme-icon{font-size:.85rem}.theme-toggle .theme-label{font-size:.55rem}.hamburger-box{width:24px;height:20px}.menu-overlay{flex-direction:column;gap:2rem;padding:5rem 2rem 2rem;overflow-y:auto}.menu-links{gap:.5rem}.menu-item{font-size:clamp(1.5rem,7vw,3rem);line-height:1}.menu-num{margin-right:1rem;font-size:.75rem}.menu-info{padding-top:1rem}.menu-info h3{font-size:.8rem}.menu-info a{font-size:1rem}.menu-email{margin-top:2rem}.bottom-nav{background:var(--bg-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;align-items:center;gap:.8rem;padding:1rem 1.5rem}.custom-cursor{display:none}.nav-group{justify-content:space-between;gap:1.5rem;width:100%}.nav-link{font-size:.85rem}}.nav-left{flex-direction:column;gap:.5rem;display:flex}.brand{color:var(--text-secondary);letter-spacing:-.02em;font-size:1.6rem;font-weight:700;text-decoration:none;transition:color .4s}.current-time{opacity:.6;font-family:Courier New,monospace;font-size:.8rem}.hero-footer{border-top:1px solid var(--border-medium);justify-content:space-between;align-items:flex-end;padding-top:2rem;font-family:Helvetica Neue,sans-serif;font-size:1rem;display:flex}.read-more{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;text-decoration:none}@media (width<=768px){.hero-section{justify-content:center;height:70vh;padding:5rem 1.5rem 6rem}.hero-content h1{margin-top:0;font-size:clamp(2.5rem,13vw,6rem)}.hero-footer{flex-direction:column;align-items:flex-start;gap:1rem}}.about-content,.contact-content,.projects-container,.playground-container{opacity:0;transform:translateY(40px)}.projects-container{max-width:1600px;margin:0 auto;padding:12rem 5vw 10vw}.project-header{margin-bottom:10vh}.project-item{border-top:1px solid var(--border-medium);grid-template-columns:auto minmax(0,200px) 1fr auto;align-items:center;gap:2rem;padding:3rem 1.5rem;transition:background-color .4s,transform .2s;display:grid;position:relative}.project-item:hover{background-color:var(--bg-hover)}.project-item:hover .project-preview video{transform:scale(1.05);box-shadow:0 8px 30px #38f9d726}.project-item:hover .project-arrow{color:#38f9d7e6;transform:translate(6px)}.project-item:hover h2{color:#38f9d7e6}.project-item:last-child{border-bottom:1px solid var(--border-medium)}.meta{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);white-space:nowrap;font-family:Courier New,monospace;font-size:.7rem}.project-preview{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;flex-shrink:0;width:200px;height:120px;overflow:hidden}.project-preview video{object-fit:cover;width:100%;height:100%;transition:transform .5s,box-shadow .4s;display:block}.project-preview-placeholder{color:#38f9d74d;justify-content:center;align-items:center;width:100%;height:100%;font-size:1.5rem;display:flex}.project-info h2{text-transform:uppercase;letter-spacing:-.01em;margin-bottom:.6rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(1.2rem,2.5vw,2rem);line-height:1.15;transition:color .3s}.project-info p{color:var(--text-muted);max-width:480px;font-family:Helvetica Neue,sans-serif;font-size:.85rem;line-height:1.6}.project-arrow{color:var(--text-muted);font-size:1.5rem;transition:transform .3s,color .3s}@media (width<=768px){.project-item{grid-template-columns:1fr;gap:1rem;padding:2rem 1rem}.project-preview{width:100%;height:180px}.project-arrow{display:none}}.reveal-text{line-height:1;display:block;overflow:hidden}.reveal-text span,.reveal-text h1{display:block;transform:translateY(100%)}.page-hero{flex-direction:column;justify-content:flex-end;min-height:50vh;padding:8rem 3rem 3rem;display:flex}.page-hero-content h1{letter-spacing:-.02em;color:var(--text-secondary);text-shadow:var(--heading-shadow);font-size:clamp(2.5rem,9vw,9rem);font-weight:400;line-height:1.05;transition:color .4s,text-shadow .4s}.page-subtitle{opacity:.5;letter-spacing:.04em;margin-top:1.5rem;padding:0 3rem;font-family:Helvetica Neue,sans-serif;font-size:1.1rem;line-height:1.6}.section-label{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:1.5rem;font-family:Courier New,monospace;font-size:.75rem;display:block}.about-content{padding:6rem 3rem}.about-philosophy{border-top:1px solid var(--border-medium);margin-bottom:6rem;padding-top:4rem}.about-statement{text-transform:uppercase;letter-spacing:-.01em;color:var(--text-secondary);text-shadow:var(--heading-shadow);margin-bottom:2rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(1.6rem,3.5vw,3.5rem);line-height:1.2}.about-statement em{color:#38f9d7d9;text-shadow:0 0 30px #38f9d726;font-style:italic}.about-bio{color:var(--text-body);max-width:700px;font-family:Helvetica Neue,sans-serif;font-size:1.1rem;line-height:1.8}.about-intro{border-top:1px solid var(--border-medium);grid-template-columns:1fr 1fr;gap:6rem;margin-bottom:6rem;padding-top:4rem;display:grid}.about-col p{opacity:.8;font-family:Helvetica Neue,sans-serif;font-size:1.1rem;line-height:1.8}.about-skills{border-top:1px solid var(--border-medium);margin-bottom:6rem;padding-top:4rem}.skills-grid{grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.skill-item{border:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.05em;padding:2rem;font-family:Helvetica Neue,sans-serif;font-size:1rem;transition:background-color .3s,color .3s}.skill-item:hover{background-color:var(--skill-hover-bg);color:var(--skill-hover-color)}.about-timeline{border-top:1px solid var(--border-medium);padding-top:4rem}.timeline-title{text-transform:uppercase;color:var(--text-secondary);text-shadow:var(--heading-shadow);letter-spacing:-.01em;margin-bottom:4rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(1.5rem,3vw,3rem);line-height:1.1}.timeline{position:relative}.timeline-item{gap:2rem;margin-bottom:0;padding-bottom:3rem;display:flex;position:relative}.timeline-marker{flex-direction:column;flex-shrink:0;align-items:center;width:20px;display:flex}.timeline-dot{z-index:1;background:#38f9d7cc;border:2px solid #38f9d766;border-radius:50%;flex-shrink:0;width:14px;height:14px;box-shadow:0 0 12px #38f9d74d}.timeline-line{background:linear-gradient(#38f9d766,#38f9d70d);flex:1;width:2px;margin-top:4px}.timeline-content{flex:1;padding-bottom:1rem}.timeline-tag{text-transform:uppercase;letter-spacing:.15em;color:#38f9d7cc;background:#38f9d714;border:1px solid #38f9d733;border-radius:20px;margin-bottom:1rem;padding:.25rem .75rem;font-family:Courier New,monospace;font-size:.7rem;display:inline-block}.timeline-content h3{text-transform:uppercase;color:var(--text-secondary);text-shadow:var(--heading-shadow-sm);margin-bottom:.4rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(1.1rem,2vw,1.6rem);line-height:1.2}.timeline-content h4{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:1rem;font-family:Courier New,monospace;font-size:.8rem}.timeline-content p{color:var(--text-body);max-width:550px;font-family:Helvetica Neue,sans-serif;font-size:.95rem;line-height:1.7}@media (width<=768px){.about-intro{grid-template-columns:1fr;gap:2.5rem}.about-col p{font-size:1rem;line-height:1.7}.skills-grid{grid-template-columns:repeat(2,1fr)}.skill-item{padding:1.5rem;font-size:.85rem}.page-hero{min-height:40vh;padding:5rem 1.5rem 2rem}.page-hero-content h1{font-size:12vw}.page-subtitle{padding:0 1.5rem;font-size:.95rem}.about-content,.contact-content,.playground-container{padding:3rem 1.5rem}.about-philosophy{margin-bottom:4rem}.about-statement{font-size:clamp(1.3rem,5vw,2rem)}.about-bio{font-size:.95rem;line-height:1.7}.about-intro,.about-skills{margin-bottom:4rem}.timeline-title{margin-bottom:2.5rem;font-size:clamp(1.3rem,5vw,2rem)}.timeline-item{gap:1.2rem;padding-bottom:2rem}.timeline-content h3{font-size:1.1rem}.timeline-content p{font-size:.85rem;line-height:1.6}.timeline-dot{width:12px;height:12px}.timeline-marker{width:16px}}@media (width<=480px){.about-statement{font-size:clamp(1.1rem,5.5vw,1.6rem)}.about-bio{font-size:.85rem}.timeline-content h3{font-size:1rem}.timeline-content h4{font-size:.7rem}.timeline-content p{font-size:.8rem}.timeline-tag{padding:.2rem .6rem;font-size:.6rem}}.contact-content{padding:6rem 3rem}.contact-grid{border-top:1px solid var(--border-medium);grid-template-columns:2fr 1fr 1fr;gap:4rem;padding-top:4rem;display:grid}.contact-link-big{color:var(--text-secondary);text-shadow:var(--heading-shadow-sm);font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(1.5rem,3vw,3.5rem);line-height:1.2;text-decoration:none;transition:opacity .3s}.contact-link-big:hover{opacity:.6}.contact-socials{flex-direction:column;gap:1rem;display:flex}.social-link{color:var(--text-secondary);opacity:.8;font-family:Helvetica Neue,sans-serif;font-size:1.2rem;text-decoration:none;transition:opacity .3s}.social-link:hover{opacity:1}.contact-detail{opacity:.7;font-family:Helvetica Neue,sans-serif;font-size:1.2rem;line-height:1.6}.contact-cta{border-top:1px solid var(--border-medium);margin-top:8rem;padding-top:4rem}.contact-cta p{opacity:.6;max-width:600px;font-family:Helvetica Neue,sans-serif;font-size:1.5rem;line-height:1.6}@media (width<=768px){.contact-grid{grid-template-columns:1fr;gap:2rem}.contact-link-big{font-size:7vw}.social-link,.contact-detail{font-size:1rem}.contact-cta{margin-top:4rem;padding-top:2rem}.contact-cta p{font-size:1.2rem}}.playground-container{padding:3rem 3rem 6rem}.playground-grid{grid-template-columns:1fr 1fr;gap:1px;display:grid}.lab-item{border:1px solid var(--border-subtle);padding:3rem;transition:background-color .4s;position:relative}.lab-item:hover{background-color:var(--bg-hover)}.lab-item h3{text-transform:uppercase;margin-bottom:1rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:1.8rem}.lab-item p{opacity:.6;margin-bottom:1.5rem;font-family:Helvetica Neue,sans-serif;font-size:1rem;line-height:1.6}.lab-num{color:var(--text-muted);margin-bottom:1.5rem;font-family:Courier New,monospace;font-size:.8rem}.lab-tag{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border:1px solid var(--border-medium);padding:.3rem .8rem;font-family:Courier New,monospace;font-size:.75rem;display:inline-block}@media (width<=768px){.playground-grid{grid-template-columns:1fr}.lab-item{padding:2rem}.lab-item h3{font-size:1.4rem}.lab-item p{font-size:.9rem}}.page-transition{background-color:var(--transition-bg);z-index:9999;will-change:transform;width:100vw;height:100vh;position:fixed;top:0;left:0;transform:translateY(100%)}.meta{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-family:Courier New,monospace;font-size:.8rem}.project-item-link{color:inherit;text-decoration:none;display:block}.project-item{position:relative}.project-arrow{opacity:0;color:#38f9d7cc;font-size:2rem;transition:all .4s;position:absolute;top:50%;right:2rem;transform:translateY(-50%)translate(-10px)}.project-item-link:hover .project-arrow{opacity:1;transform:translateY(-50%)translate(0)}.project-item-link:hover .project-item{background:var(--bg-card)}.project-info h2{text-transform:uppercase;text-shadow:var(--heading-shadow-sm);margin-bottom:1rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(1.5rem,3vw,3.5rem);line-height:1.1}.project-info p{opacity:.6;max-width:500px;font-family:Helvetica Neue,sans-serif;font-size:1rem;line-height:1.6}.pd-back{padding:8rem 4rem 0}.pd-back-link{color:#38f9d7b3;letter-spacing:.05em;font-family:Courier New,monospace;font-size:.85rem;text-decoration:none;transition:color .3s}.pd-back-link:hover{color:#38f9d7}.pd-hero{opacity:0;transform:translateY(60px)}.pd-showcase,.pd-readme{opacity:0;transform:translateY(40px)}.pd-hero{padding:3rem 4rem 2rem}.pd-hero-meta{align-items:center;gap:2rem;margin-bottom:1.5rem;display:flex}.pd-hero-meta .section-label{text-transform:uppercase;letter-spacing:.15em;color:#38f9d7cc;font-family:Courier New,monospace;font-size:.8rem}.pd-date{color:var(--text-muted);font-family:Courier New,monospace;font-size:.75rem}.pd-hero h1{text-transform:uppercase;text-shadow:var(--heading-shadow);letter-spacing:-.02em;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(2rem,5vw,5rem);line-height:1.05}.pd-content{padding:0 4rem 4rem}.pd-showcase{align-items:flex-start;gap:3rem;margin-bottom:4rem;display:flex}.pd-video-area{flex:3;min-width:0}.pd-video-area .video-wrapper{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden}.pd-video-area .video-wrapper video{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.pd-video-area .video-placeholder{aspect-ratio:16/9;color:#444;text-transform:uppercase;letter-spacing:.15em;flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-family:Courier New,monospace;font-size:.9rem;display:flex}.pd-video-area .video-placeholder .play-icon{color:#38f9d766;font-size:3rem}.pd-info-side{flex-direction:column;flex:2;gap:2.5rem;display:flex}.pd-description h3{text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:1.2rem}.pd-description p{color:var(--text-body);font-family:Helvetica Neue,sans-serif;font-size:1.1rem;line-height:1.8}.pd-meta-block h4{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:.8rem;font-family:Courier New,monospace;font-size:.75rem}.pd-tags{flex-wrap:wrap;gap:.5rem;display:flex}.pd-tag{color:#38f9d7cc;text-transform:uppercase;letter-spacing:.05em;border:1px solid #38f9d74d;border-radius:20px;padding:.35rem .8rem;font-family:Courier New,monospace;font-size:.75rem}.pd-stats{gap:1.5rem;display:flex}.pd-stat{flex-direction:column;gap:.2rem;display:flex}.pd-stat-num{font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:1.5rem}.pd-stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-family:Courier New,monospace;font-size:.65rem}.pd-link-btn{border:1px solid var(--border-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-radius:8px;margin-bottom:.5rem;padding:.8rem 1.5rem;font-family:Courier New,monospace;font-size:.85rem;text-decoration:none;transition:all .3s;display:inline-block}.pd-link-btn:hover{color:#38f9d7;background:#38f9d71a;border-color:#38f9d780}.pd-link-btn--live{background:#38f9d714;border-color:#38f9d74d}.pd-readme{background:#ffffff05;border:1px solid #ffffff0f;border-radius:12px;padding:3rem}.pd-readme h3{text-transform:uppercase;letter-spacing:.15em;color:#555;margin-bottom:1.5rem;font-family:Courier New,monospace;font-size:.8rem}.pd-readme-content{color:#999;font-family:Helvetica Neue,sans-serif;font-size:.95rem;line-height:1.8}.pd-readme-content h2,.pd-readme-content h3,.pd-readme-content h4{color:#eee;text-transform:uppercase;margin:1.5rem 0 .8rem;font-family:valofont,Neu,Helvetica Neue,sans-serif}.pd-readme-content code{color:#38f9d7e6;background:#38f9d714;border-radius:4px;padding:.1em .4em;font-family:Courier New,monospace;font-size:.85em}.pd-readme-content strong{color:#ccc}@media (width<=768px){.pd-back{padding:5rem 1.5rem 0}.pd-hero{padding:1.5rem 1.5rem 1rem}.pd-hero h1{font-size:clamp(1.8rem,8vw,3rem)}.pd-hero-meta{flex-wrap:wrap;gap:1rem}.pd-content{padding:0 1.5rem 2rem}.pd-showcase{flex-direction:column;gap:2rem}.pd-description p{font-size:1rem;line-height:1.7}.pd-stat-num{font-size:1.3rem}.pd-readme{padding:1.5rem}.pd-readme-content{font-size:.9rem;line-height:1.7}}.showreel-section{z-index:2;grid-template-columns:1fr 1fr;align-items:center;gap:3rem;padding:6rem 3rem;display:grid;position:relative}.showreel-text h2{text-transform:uppercase;text-shadow:var(--heading-shadow);letter-spacing:-.01em;margin-bottom:1.5rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(2rem,4.5vw,5rem);line-height:1.08}.showreel-text p{opacity:.6;max-width:400px;font-family:Helvetica Neue,sans-serif;font-size:1rem;line-height:1.7}.showreel-video{position:relative}.video-wrapper{aspect-ratio:16/10;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:12px;width:100%;position:relative;overflow:hidden}.video-wrapper video{object-fit:cover;width:100%;height:100%}.video-placeholder{color:#fff;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:linear-gradient(135deg,#111 0%,#1a1a2e 100%);flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-family:Courier New,monospace;font-size:.9rem;transition:background .4s;display:flex;position:absolute;inset:0}.video-placeholder:hover{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%)}.play-icon{opacity:.8;font-size:2.5rem}@media (width<=768px){.showreel-section{grid-template-columns:1fr;gap:2rem;padding:3rem 1.5rem}.showreel-text h2{font-size:8vw}.showreel-text p{font-size:.9rem;line-height:1.6}}.github-section{z-index:2;padding:6rem 3rem;position:relative}.github-header{margin-bottom:2.5rem}.github-header h2{text-transform:uppercase;text-shadow:var(--heading-shadow);letter-spacing:-.01em;margin-bottom:.5rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(2rem,4.5vw,5rem)}.github-username{color:#38f9d7cc;font-family:Courier New,monospace;font-size:.9rem;text-decoration:none;transition:color .3s}.github-username:hover{color:#38f9d7}.github-profile-card{background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;align-items:center;gap:1.5rem;margin-bottom:3rem;padding:1.5rem 2rem;display:flex}.gh-avatar{object-fit:cover;border:2px solid #38f9d766;border-radius:50%;width:72px;height:72px}.gh-profile-info h3{text-transform:uppercase;margin-bottom:.3rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:1.3rem}.gh-profile-info .gh-location{color:var(--text-muted);margin-top:.3rem;font-family:Helvetica Neue,sans-serif;font-size:.85rem}.contribution-board{grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(52,1fr);gap:3px;margin-bottom:3rem;padding:1rem 0;display:grid;overflow-x:auto}.contrib-cell{aspect-ratio:1;border-radius:2px;width:100%;min-width:10px;transition:transform .2s,opacity .2s}.contrib-cell:hover{z-index:5;transform:scale(1.8)}.contrib-0{background-color:var(--bg-hover)}.contrib-1{background-color:#38f9d733}.contrib-2{background-color:#38f9d766}.contrib-3{background-color:#38f9d7a6}.contrib-4{background-color:#38f9d7e6}.github-stats{gap:4rem;display:flex}.stat{flex-direction:column;gap:.3rem;display:flex}.stat-num{font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:2.5rem}.stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-family:Courier New,monospace;font-size:.75rem}@media (width<=768px){.github-section{padding:3rem 1.5rem}.github-header h2{font-size:8vw}.github-profile-card{gap:1rem;padding:1rem 1.2rem}.gh-avatar{width:52px;height:52px}.gh-profile-info h3{font-size:1.1rem}.contribution-board{gap:2px}.github-stats{flex-wrap:wrap;gap:2rem}.stat-num{font-size:2rem}}.recent-projects-section{z-index:2;padding:6rem 3rem;position:relative}.recent-header{margin-bottom:4rem}.recent-header h2{text-transform:uppercase;text-shadow:var(--heading-shadow);letter-spacing:-.01em;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(2rem,4.5vw,5rem)}.recent-projects-grid{border-top:1px solid var(--border-medium)}.recent-project{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:3rem;padding:2.5rem 0;text-decoration:none;transition:padding-left .4s,background-color .3s;display:flex}.recent-project:hover{background-color:var(--bg-card);padding-left:2rem}.recent-project:hover .rp-arrow{opacity:1;transform:translate(10px)}.rp-num{color:var(--text-muted);min-width:30px;font-family:Courier New,monospace;font-size:.8rem}.rp-info{flex:1}.rp-info h3{text-transform:uppercase;text-shadow:var(--heading-shadow-sm);letter-spacing:-.01em;margin-bottom:.3rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(1.3rem,2vw,2.2rem)}.rp-info p{opacity:.5;font-family:Helvetica Neue,sans-serif;font-size:.9rem}.rp-arrow{opacity:.3;font-size:1.5rem;transition:transform .4s,opacity .4s}.view-all-link{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;opacity:.6;margin-top:3rem;font-family:Helvetica Neue,sans-serif;font-size:1rem;text-decoration:none;transition:opacity .3s;display:inline-block}.view-all-link:hover{opacity:1}@media (width<=768px){.recent-projects-section{padding:3rem 1.5rem}.recent-header{margin-bottom:2rem}.recent-header h2{font-size:8vw}.recent-project{gap:1.5rem;padding:1.5rem 0}.rp-info h3{font-size:1.2rem}.rp-info p{font-size:.8rem}.rp-arrow{font-size:1.2rem}.view-all-link{margin-top:2rem;font-size:.85rem}}.gallery-section{z-index:2;padding:6rem 3rem;position:relative}.gallery-header{margin-bottom:4rem}.gallery-header h2{text-transform:uppercase;text-shadow:var(--heading-shadow);letter-spacing:-.01em;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(2rem,4.5vw,5rem)}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.gallery-item{cursor:pointer;position:relative;overflow:hidden}.gallery-item:hover .gallery-img{border-radius:20px;transform:scale(1.08)}.gallery-item:hover .gallery-caption{opacity:1;transform:translateY(0)}.gallery-img{aspect-ratio:4/3;will-change:transform;border-radius:8px;width:100%;transition:transform .6s cubic-bezier(.16,1,.3,1),border-radius .6s cubic-bezier(.16,1,.3,1);overflow:hidden}.gallery-img img{object-fit:cover;width:100%;height:100%;display:block}.gallery-caption{color:#fff;text-transform:uppercase;letter-spacing:.1em;opacity:0;text-shadow:0 2px 8px #000c;font-family:Helvetica Neue,sans-serif;font-size:.9rem;transition:opacity .4s,transform .4s;position:absolute;bottom:1.5rem;left:1.5rem;transform:translateY(10px)}@media (width<=768px){.gallery-section{padding:3rem 1.5rem}.gallery-header{margin-bottom:2rem}.gallery-header h2{font-size:8vw}.gallery-grid{grid-template-columns:1fr 1fr;gap:.8rem}.gallery-caption{font-size:.75rem;bottom:.8rem;left:.8rem}}.site-footer{z-index:2;border-top:1px solid var(--border-subtle);padding:6rem 3rem 2rem;position:relative}.footer-top{grid-template-columns:1fr 1fr;gap:3rem;margin-bottom:4rem;display:grid}.footer-cta h2{text-transform:uppercase;text-shadow:var(--heading-shadow);letter-spacing:-.02em;margin-bottom:2rem;font-family:valofont,Neu,Helvetica Neue,sans-serif;font-size:clamp(2.5rem,5vw,6rem);line-height:1.08}.footer-cta-btn{border:1px solid var(--text-secondary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;padding:1rem 2.5rem;font-family:Helvetica Neue,sans-serif;font-size:1rem;text-decoration:none;transition:background-color .3s,color .3s;display:inline-block}.footer-cta-btn:hover{background-color:var(--text-secondary);color:var(--bg-primary)}.footer-links{grid-template-columns:1fr 1fr 1fr;gap:2rem;display:grid}.footer-col{flex-direction:column;gap:.8rem;display:flex}.footer-col h4{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:.5rem;font-family:Courier New,monospace;font-size:.75rem}.footer-col a{color:var(--text-secondary);opacity:.7;text-transform:uppercase;font-family:Helvetica Neue,sans-serif;font-size:.95rem;text-decoration:none;transition:opacity .3s}.footer-col a:hover{opacity:1}.footer-col p{opacity:.5;font-family:Helvetica Neue,sans-serif;font-size:.95rem}.footer-bottom{border-top:1px solid var(--border-subtle);color:var(--text-muted);letter-spacing:.05em;justify-content:space-between;align-items:center;padding-top:2rem;font-family:Courier New,monospace;font-size:.75rem;display:flex}@media (width<=768px){.site-footer{padding:3rem 1.5rem 1.5rem}.footer-top{grid-template-columns:1fr;gap:2rem;margin-bottom:2rem}.footer-cta h2{font-size:10vw}.footer-cta-btn{padding:.8rem 1.5rem;font-size:.85rem}.footer-links{grid-template-columns:1fr 1fr;gap:1.5rem}.footer-bottom{text-align:center;flex-direction:column;gap:.5rem}}@media (width<=480px){.hero-content h1{font-size:clamp(2.5rem,13vw,4.5rem)}.menu-item{font-size:clamp(1.3rem,8vw,2.5rem);line-height:1}.menu-num{margin-right:.6rem;font-size:.65rem}.gallery-grid{grid-template-columns:1fr;gap:1rem}.skills-grid,.footer-links{grid-template-columns:1fr}.footer-cta h2{font-size:12vw}.showreel-text h2,.github-header h2,.recent-header h2,.gallery-header h2{font-size:10vw}.github-stats{gap:1.5rem}.stat-num{font-size:1.8rem}.recent-project{gap:1rem}.rp-info h3{font-size:1rem}.loader-text{font-size:2.5rem}.pd-hero h1{font-size:clamp(1.5rem,9vw,2.5rem)}.contact-link-big{font-size:8vw}.page-hero-content h1{font-size:11vw}.bottom-nav{padding:.8rem 1rem}.nav-link{font-size:.75rem}.contact-link-big{word-break:break-all;overflow-wrap:break-word}.menu-email p{word-break:break-all;overflow-wrap:break-word;font-size:.8rem}.contact-cta p{font-size:1rem}.pd-back{padding:5rem 1rem 0}.pd-hero{padding:1.5rem 1rem 1rem}.pd-content{padding:0 1rem 2rem}.pd-link-btn{text-align:center;padding:.7rem 1.2rem;font-size:.75rem;display:block}.pd-readme{padding:1rem}.pd-readme-content{font-size:.85rem}.pd-stats{gap:1rem}.pd-stat-num{font-size:1.1rem}.lab-item{padding:1.5rem}.lab-item h3{font-size:1.2rem}.lab-item p{font-size:.8rem}.lab-tag{padding:.25rem .6rem;font-size:.65rem}.footer-col a,.footer-col p{font-size:.8rem}main{padding-bottom:6rem}}@media (width>=769px) and (width<=1024px){.project-item{grid-template-columns:auto 150px 1fr auto;gap:1.5rem;padding:2rem 1rem}.project-preview{width:150px;height:90px}.project-info h2{font-size:clamp(1.2rem,2.2vw,2rem)}.project-info p{max-width:350px;font-size:.85rem}.showreel-section{gap:2rem;padding:4rem 2rem}.github-section{padding:4rem 2rem}.contribution-board{gap:2px}.recent-projects-section,.gallery-section{padding:4rem 2rem}.site-footer{padding:4rem 2rem 2rem}.footer-top{gap:2rem}.footer-cta h2{font-size:clamp(2rem,4vw,4rem)}.about-intro{gap:3rem}.skills-grid{grid-template-columns:repeat(3,1fr)}.contact-grid{grid-template-columns:1fr 1fr;gap:3rem}.lab-item{padding:2rem}.pd-showcase{gap:2rem}.pd-content{padding:0 2.5rem 3rem}.pd-hero{padding:2rem 2.5rem 1.5rem}.pd-back{padding:7rem 2.5rem 0}.page-hero{padding:6rem 2rem 2rem}.about-content,.contact-content{padding:4rem 2rem}.playground-container{padding:2rem 2rem 4rem}.projects-container{padding:10rem 3vw 8vw}}
