:root{--bg:#08080b;--bg-soft:#0e0e13;--surface:#131319;--surface-2:#1a1a22;--line:#ffffff14;--line-strong:#ffffff29;--text:#f4f4f7;--muted:#9a9aa6;--faint:#6a6a76;--accent:#7c5cff;--accent-2:#22d3ee;--accent-3:#ff6b4a;--glow:#7c5cff80;--max:1200px;--ease:cubic-bezier(.16, 1, .3, 1);--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;scroll-behavior:auto}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.6;overflow-x:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}img{max-width:100%;height:auto;display:block}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#26262f;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#34343f}.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 clamp(20px,4vw,28px)}.section{content-visibility:auto;contain-intrinsic-size:1px 900px;padding:clamp(80px,12vw,140px) 0;scroll-margin-top:80px;position:relative}#hero{scroll-margin-top:0}#contact{scroll-margin-top:80px}.eyebrow{font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-2);align-items:center;gap:10px;font-size:.78rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--accent-2);opacity:.6;width:28px;height:1px}.section-title{font-family:var(--font-display);letter-spacing:-.02em;margin:22px 0 0;font-size:clamp(2.2rem,5.5vw,4rem);font-weight:600;line-height:1.04}.section-title .grad{background:linear-gradient(120deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.lead{color:var(--muted);max-width:640px;margin-top:22px;font-size:clamp(1rem,1.6vw,1.15rem)}.btn{font-family:var(--font-display);letter-spacing:.01em;transition:transform .5s var(--ease), background .4s, color .4s, box-shadow .4s;will-change:transform;border-radius:100px;align-items:center;gap:10px;padding:15px 26px;font-size:.95rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--text);color:#0a0a0c}.btn-primary:hover{box-shadow:0 14px 40px #ffffff2e}.btn-ghost{border:1px solid var(--line-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--text);background:#ffffff0d}.btn .arrow{transition:transform .4s var(--ease)}.btn:hover .arrow{transform:translate(3px,-3px)}.loader{z-index:10000;background:var(--bg);place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.loader-inner{text-align:center;width:min(80vw,360px)}.loader-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(1.4rem,4vw,2rem);font-weight:600;overflow:hidden}.loader-bar{background:var(--line);border-radius:4px;width:100%;height:2px;margin-top:18px;overflow:hidden}.loader-bar span{background:linear-gradient(90deg, var(--accent), var(--accent-2));width:0;height:100%;display:block}.loader-pct{font-family:var(--font-display);color:var(--faint);margin-top:12px;font-size:.85rem}.nav{z-index:800;transition:padding .4s var(--ease), background .4s, border-color .4s;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:22px 28px;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{border-bottom:1px solid var(--line);background:#08080beb;padding:14px 28px}.nav-logo{font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:9px;font-size:1.05rem;font-weight:700;display:flex}.nav-logo img{object-fit:cover;border-radius:10px;width:32px;height:32px;box-shadow:0 0 22px #ffffff14}.nav-links{border:1px solid var(--line);background:#ffffff08;border-radius:100px;align-items:center;gap:6px;padding:6px;display:flex}.nav-links a{font-family:var(--font-display);color:var(--muted);border-radius:100px;padding:8px 16px;font-size:.88rem;transition:color .3s,background .3s}.nav-links a:hover{color:var(--text)}.nav-links a.active{color:var(--text);background:#ffffff12}.nav-cta{font-family:var(--font-display);background:var(--text);color:#0a0a0c;transition:transform .4s var(--ease), box-shadow .4s;border-radius:100px;padding:11px 20px;font-size:.88rem;font-weight:500}.nav-cta:hover{box-shadow:0 10px 30px #ffffff29}.nav-burger{flex-direction:column;gap:5px;padding:8px;display:none}.nav-burger span{background:var(--text);border-radius:2px;width:24px;height:2px;transition:transform .3s,opacity .3s}.nav-burger.open span:first-child{transform:translateY(7px)rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.hero{align-items:center;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero-canvas{z-index:0;pointer-events:none;contain:strict;position:absolute;top:0;bottom:0;left:0;right:0}.hero-canvas-static{background:radial-gradient(55% 45% at 70% 35%,#7c5cff38,#0000 70%),radial-gradient(40% 35% at 30% 70%,#22d3ee1f,#0000 70%)}.hero-grain{z-index:1;pointer-events:none;background:radial-gradient(120% 80% at 80% 0,#7c5cff1f,#0000 60%);position:absolute;top:0;bottom:0;left:0;right:0}.hero-inner{z-index:2;width:100%;position:relative}.hero-status{border:1px solid var(--line);color:var(--muted);font-size:.82rem;font-family:var(--font-display);background:#ffffff08;border-radius:100px;align-items:center;gap:9px;padding:8px 16px;display:inline-flex}.hero-status .pulse{background:#38e07b;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 #38e07b99}@keyframes pulse{0%{box-shadow:0 0 #38e07b80}70%{box-shadow:0 0 0 8px #38e07b00}to{box-shadow:0 0 #38e07b00}}.hero h1{font-family:var(--font-display);letter-spacing:-.03em;margin:26px 0 0;font-size:clamp(2.3rem,8.5vw,7.5rem);font-weight:600;line-height:.95}.hero h1 .line{display:block;overflow:hidden}.hero h1 .grad{background:linear-gradient(110deg, #fff 10%, var(--accent) 55%, var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-sub{max-width:540px;color:var(--muted);margin-top:28px;font-size:clamp(1rem,1.7vw,1.2rem)}.hero-sub strong{color:var(--text);font-weight:600}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:38px;display:flex}.hero-scroll{z-index:2;color:var(--faint);font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;flex-direction:column;align-items:center;gap:10px;font-size:.72rem;display:flex;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.hero-scroll .mouse{border:1px solid var(--line-strong);border-radius:14px;width:22px;height:36px;position:relative}.hero-scroll .mouse:after{content:"";background:var(--muted);width:3px;height:7px;animation:scrolldot 1.8s var(--ease) infinite;border-radius:3px;position:absolute;top:7px;left:50%;transform:translate(-50%)}@keyframes scrolldot{0%{opacity:0;transform:translate(-50%)}40%{opacity:1}80%{opacity:0;transform:translate(-50%,12px)}to{opacity:0}}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--bg-soft);content-visibility:auto;contain-intrinsic-size:1px 80px;padding:22px 0;overflow:hidden}.marquee-track{will-change:transform;align-items:center;gap:48px;animation:32s linear infinite marquee;display:inline-flex}@media (prefers-reduced-motion:reduce){.marquee-track{will-change:auto;animation:none}}.marquee-track span{font-family:var(--font-display);color:var(--faint);align-items:center;gap:48px;font-size:clamp(1.1rem,2.4vw,1.7rem);font-weight:500;display:inline-flex}.marquee-track span:after{content:"✦";color:var(--accent);font-size:.8em}@keyframes marquee{to{transform:translate(-50%)}}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;margin-top:70px;display:grid}.about-grid.with-portrait{grid-template-columns:.82fr 1.18fr;align-items:center;gap:64px}.about-portrait{isolation:isolate;position:relative}.about-portrait-glow{z-index:-1;filter:blur(46px);opacity:.9;background:radial-gradient(55% 55% at 55% 32%,#7c5cff66,#0000 70%),radial-gradient(50% 50% at 30% 80%,#22d3ee38,#0000 70%);position:absolute;top:-18%;bottom:-10%;left:-12%;right:-12%}.about-portrait-frame{border-radius:22px;position:relative;overflow:hidden}.about-portrait-frame:after{content:"";background:linear-gradient(180deg, transparent 55%, var(--bg) 100%), linear-gradient(90deg, var(--bg) 0%, transparent 16% 84%, var(--bg) 100%);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.about-portrait-frame img{filter:saturate(1.02)contrast(1.03);width:100%;display:block;-webkit-mask-image:radial-gradient(130% 115% at 50% 38%,#000 58%,#0000 100%);mask-image:radial-gradient(130% 115% at 50% 38%,#000 58%,#0000 100%)}.about-portrait-tag{z-index:2;border:1px solid var(--line);font-family:var(--font-display);color:var(--text);background:#0c0c12d9;border-radius:100px;align-items:center;gap:9px;padding:8px 14px;font-size:.82rem;display:inline-flex;position:absolute;bottom:14px;left:14px}.about-portrait-tag .pdot{background:#38e07b;border-radius:50%;width:8px;height:8px;box-shadow:0 0 12px #38e07bb3}.about-cards{grid-template-columns:1fr 1fr;gap:18px;margin-top:40px;display:grid}.about-text{flex-direction:column;gap:24px;display:flex}.about-text p{color:var(--text);font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.6}.about-text p.secondary{color:var(--muted);font-size:1.05rem}.about-side{flex-direction:column;gap:18px;display:flex}.about-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:24px}.about-card h4{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-size:.78rem;font-weight:500}.edu-item{border-bottom:1px solid var(--line);padding:14px 0}.edu-item:last-child{border-bottom:none;padding-bottom:0}.edu-item .deg{font-family:var(--font-display);font-size:1rem;font-weight:500}.edu-item .school{color:var(--muted);font-size:.9rem}.edu-item .grade{color:var(--accent-2);font-size:.75rem;font-family:var(--font-display);letter-spacing:.04em;margin-top:4px;display:inline-block}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:24px;margin-top:90px;padding-top:50px;display:grid}.stat .num{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(120deg, #fff, var(--muted));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:600;line-height:1}.stat .lab{color:var(--muted);margin-top:10px;font-size:.92rem}.timeline{margin-top:70px;position:relative}.tl-item{border-top:1px solid var(--line);grid-template-columns:200px 1fr;gap:40px;padding:36px 0;transition:background .4s;display:grid;position:relative}.tl-item:last-child{border-bottom:1px solid var(--line)}.tl-meta .period{font-family:var(--font-display);color:var(--accent-2);font-size:.9rem;font-weight:500}.tl-meta .loc{color:var(--faint);margin-top:6px;font-size:.85rem}.tl-body .role{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:600}.tl-body .co{color:var(--muted);margin-top:2px;font-size:1rem}.tl-points{gap:10px;max-width:720px;margin-top:18px;display:grid}.tl-points li{color:var(--muted);padding-left:22px;font-size:.97rem;list-style:none;position:relative}.tl-points li:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;width:7px;height:7px;position:absolute;top:10px;left:0}.projects-grid{gap:26px;margin-top:70px;display:grid}.proj{border:1px solid var(--line);background:var(--surface);transition:border-color .5s var(--ease), transform .5s var(--ease);border-radius:26px;grid-template-columns:1.1fr 1fr;gap:30px;padding:36px;display:grid;position:relative;overflow:hidden}.proj:before{content:"";background:radial-gradient(60% 90% at 100% 0%, var(--p-accent,var(--accent)), transparent 60%);opacity:.08;transition:opacity .5s;position:absolute;top:0;bottom:0;left:0;right:0}.proj:hover{border-color:var(--line-strong)}.proj:hover:before{opacity:.16}.proj:nth-child(2n){grid-template-columns:1fr 1.1fr}.proj:nth-child(2n) .proj-visual{order:-1}.proj-info{z-index:2;flex-direction:column;display:flex;position:relative}.proj-top{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);align-items:center;gap:14px;font-size:.78rem;display:flex}.proj-top .yr{color:var(--p-accent,var(--accent));margin-left:auto}.proj h3{font-family:var(--font-display);letter-spacing:-.02em;margin-top:18px;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600;line-height:1}.proj .sub{color:var(--muted);margin-top:8px;font-size:1.05rem}.proj .desc{color:var(--muted);max-width:460px;margin-top:18px;font-size:.97rem}.proj-tags{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.proj-tags span{font-family:var(--font-display);border:1px solid var(--line);color:var(--muted);border-radius:100px;padding:6px 12px;font-size:.76rem}.proj-link{font-family:var(--font-display);color:var(--text);align-items:center;gap:10px;width:-moz-fit-content;width:fit-content;margin-top:auto;padding-top:26px;font-size:.95rem;font-weight:500;display:inline-flex}.proj-link .arrow{transition:transform .4s var(--ease)}.proj:hover .proj-link .arrow{transform:translate(4px,-4px)}.proj-visual{z-index:2;border:1px solid var(--line);background:var(--bg-soft);border-radius:18px;place-items:center;min-height:280px;display:grid;position:relative;overflow:hidden}.proj-visual img{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease)}.proj:hover .proj-visual img{transform:scale(1.04)}.proj-visual.poster{background:linear-gradient(160deg,#0c1322,#0a0a0f);align-items:stretch;padding:22px}.proj-visual.poster img{object-fit:contain;border-radius:10px;width:100%;height:100%;max-height:460px}.proj-visual.phones{background:linear-gradient(160deg,#11131c,#0a0a0f);justify-content:center;align-items:center;gap:16px;padding:30px;display:flex}.proj-visual.phones img{border:1px solid var(--line-strong);border-radius:18px;width:auto;height:300px;box-shadow:0 30px 60px #00000080}.proj-visual.phones img:nth-child(2){opacity:.85;margin-top:36px}.proj-mock{text-align:center;padding:30px}.proj-mock .glyph{font-family:var(--font-display);letter-spacing:-.04em;background:linear-gradient(140deg, var(--p-accent,var(--accent)), #fff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(3rem,8vw,5.5rem);font-weight:700}.proj-mock .url{font-family:var(--font-display);color:var(--faint);word-break:break-all;margin-top:12px;font-size:.85rem}.skills-grid{grid-template-columns:repeat(2,1fr);gap:22px;margin-top:70px;display:grid}.skill-card{border:1px solid var(--line);background:var(--surface);transition:border-color .4s, transform .5s var(--ease);border-radius:20px;padding:30px}.skill-card:hover{border-color:var(--line-strong)}.skill-card h4{font-family:var(--font-display);font-size:1.1rem;font-weight:600}.skill-card .count{color:var(--faint);margin-left:8px;font-size:.85rem}.skill-chips{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.skill-chips span{font-family:var(--font-display);background:var(--surface-2);border:1px solid var(--line);color:var(--text);border-radius:100px;padding:9px 15px;font-size:.88rem;transition:background .3s,border-color .3s,color .3s,transform .3s}.skill-chips span:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-3px)}.contact{text-align:center}.contact-inner{border:1px solid var(--line);background:radial-gradient(120% 120% at 50% 0%, #7c5cff1f, transparent 55%), var(--surface);border-radius:32px;padding:clamp(40px,8vw,90px);position:relative;overflow:hidden}.contact h2{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(2.4rem,7vw,5.5rem);font-weight:600;line-height:1}.contact h2 .grad{background:linear-gradient(120deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.contact p{color:var(--muted);max-width:480px;margin:22px auto 0;font-size:1.1rem}.contact-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:40px;display:flex}.contact-meta{color:var(--muted);font-family:var(--font-display);flex-wrap:wrap;justify-content:center;gap:30px;margin-top:44px;font-size:.95rem;display:flex}.contact-meta a:hover{color:var(--text)}.footer{border-top:1px solid var(--line);padding:50px 0 40px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.footer .name{font-family:var(--font-display);font-size:1.1rem;font-weight:600}.footer .copy{color:var(--faint);font-size:.88rem}.footer-socials{font-family:var(--font-display);gap:22px;font-size:.9rem;display:flex}.footer-socials a{color:var(--muted);transition:color .3s}.footer-socials a:hover{color:var(--text)}.to-top{font-family:var(--font-display);color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.to-top:hover{color:var(--text)}.mobile-menu{z-index:700;background:var(--bg);flex-direction:column;justify-content:center;padding:0 28px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.mobile-menu a{font-family:var(--font-display);border-bottom:1px solid var(--line);color:var(--muted);padding:14px 0;font-size:clamp(2rem,9vw,3.2rem);font-weight:600;transition:color .3s}.mobile-menu a:hover{color:var(--text)}@media (max-width:980px){.section{padding:100px 0}.about-grid{grid-template-columns:1fr;gap:40px}.about-grid.with-portrait{grid-template-columns:1fr;gap:36px}.about-portrait{max-width:360px;margin:0 auto}.proj,.proj:nth-child(2n){grid-template-columns:1fr}.proj-visual,.proj:nth-child(2n) .proj-visual{order:0}.stats{grid-template-columns:repeat(2,1fr);gap:30px}.nav-links,.nav-cta{display:none}.nav-burger{display:flex}}@media (max-width:680px){.tl-item{grid-template-columns:1fr;gap:14px}.skills-grid,.about-cards{grid-template-columns:1fr}.proj{border-radius:20px;padding:24px}.proj-visual{min-height:220px}.proj-visual.phones{padding:22px}.proj-visual.phones img{height:200px}.proj-visual.poster{padding:14px}.proj-visual.poster img{max-height:340px}.footer-inner{flex-direction:column;align-items:flex-start}.nav{padding:16px 20px}.nav.scrolled{padding:12px 20px}.hero-actions .btn,.contact-actions .btn{justify-content:center;width:100%}.hero-actions,.contact-actions{width:100%}.stats{gap:24px 18px;margin-top:60px;padding-top:40px}}@media (max-width:420px){.stats{grid-template-columns:1fr 1fr}.proj-visual.phones{flex-direction:row;gap:10px}.proj-visual.phones img{height:170px}.proj-tags span{padding:5px 10px;font-size:.72rem}.contact-meta{gap:14px 20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
