.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:20px 0;transition:var(--transition)}.navbar--scrolled{padding:14px 0;background:#0a0a0bd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}.navbar_inner{max-width:var(--max-width);margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}.navbar_logo{display:flex;align-items:center;gap:10px;text-decoration:none}.navbar_logo-mark{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;color:var(--secondary);font-family:var(--font-display);font-size:1.1rem;font-weight:700;border:1.5px solid var(--secondary);border-radius:8px;transition:var(--transition)}.navbar_logo:hover .navbar_logo-mark{background:var(--secondary);color:var(--bg)}.navbar_logo-text{font-family:var(--font-body);font-weight:500;font-size:.95rem;color:var(--text);letter-spacing:-.3px}.navbar_links{display:flex;align-items:center;gap:4px;list-style:none}.navbar_link{font-size:.82rem;font-weight:400;color:var(--text-secondary);padding:8px 14px;border-radius:var(--radius-sm);transition:var(--transition);letter-spacing:.3px;position:relative}.navbar_link:after{content:"";position:absolute;bottom:4px;left:50%;width:0;height:1px;background:var(--secondary);transition:width .3s cubic-bezier(.16,1,.3,1),left .3s cubic-bezier(.16,1,.3,1)}.navbar_link:hover{color:var(--cream)}.navbar_link:hover:after{width:60%;left:20%}.navbar_resume-btn{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:500;color:var(--secondary);padding:7px 18px;border:1px solid rgba(0,212,255,.3);border-radius:100px;transition:var(--transition);letter-spacing:.5px;margin-left:8px}.navbar_resume-btn:hover{background:var(--secondary-dim);border-color:var(--secondary)}.navbar_hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;z-index:1001}.navbar_hamburger span{display:block;width:20px;height:1.5px;background:var(--text);border-radius:2px;transition:var(--transition)}.navbar_hamburger--open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.navbar_hamburger--open span:nth-child(2){opacity:0}.navbar_hamburger--open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.navbar_overlay{display:none}@media(max-width:768px){.navbar_hamburger{display:flex}.navbar_links{position:fixed;top:0;right:-100%;width:260px;height:100vh;flex-direction:column;align-items:flex-start;gap:4px;padding:80px 28px 28px;background:var(--bg-surface);border-left:1px solid var(--border);transition:right .4s cubic-bezier(.16,1,.3,1);z-index:1000}.navbar_links--open{right:0}.navbar_link{font-size:.95rem;padding:12px 16px;width:100%}.navbar_resume-btn{margin-top:12px;margin-left:0;text-align:center;justify-content:center;width:100%}.navbar_actions{flex-direction:row-reverse;width:100%;justify-content:center;margin-top:8px}.navbar_overlay{display:block;position:fixed;inset:0;background:#0009;z-index:999}}.blueprint{--mx: 0px;--my: 0px;position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.blueprint_grid{position:absolute;inset:-60px;opacity:.28;background-image:linear-gradient(rgba(0,212,255,.6) 2px,transparent 2px),linear-gradient(90deg,rgba(0,212,255,.6) 2px,transparent 2px),linear-gradient(rgba(0,212,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,255,.22) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:calc(-60px + var(--mx)) calc(-60px + var(--my)),calc(-60px + var(--mx)) calc(-60px + var(--my)),calc(var(--mx) * .5) calc(var(--my) * .5),calc(var(--mx) * .5) calc(var(--my) * .5);animation:gridDrift 60s linear infinite,gridPulse 8s ease-in-out infinite;transition:background-position .3s cubic-bezier(.16,1,.3,1)}.blueprint_dots{position:absolute;inset:-60px;opacity:.35;background-image:radial-gradient(circle,rgba(0,212,255,.6) 1px,transparent 1px);background-size:24px 24px;background-position:calc(var(--mx) * .5) calc(var(--my) * .5);transition:background-position .3s cubic-bezier(.16,1,.3,1);animation:gridDrift 60s linear infinite,gridPulse 8s ease-in-out infinite 4s}@keyframes gridDrift{0%{transform:translate(0)}to{transform:translate(24px,24px)}}@keyframes gridPulse{0%,to{opacity:.28}50%{opacity:.18}}.blueprint_fade{position:absolute;inset:0;background:radial-gradient(ellipse 85% 75% at 50% 50%,transparent 0%,rgba(10,10,11,.35) 55%,var(--bg) 100%)}.cursor-spotlight{--cx: -100px;--cy: -100px;position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(900px circle at var(--cx) var(--cy),rgba(41,219,255,.204),rgba(167,139,250,.05) 40%,transparent 50%);transition:background .2s ease}@media(max-width:768px){.cursor-spotlight{display:none}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:140px 32px 100px;overflow:hidden;background:transparent;z-index:1}.hero_glow{position:absolute;top:35%;left:50%;width:700px;height:500px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(0,212,255,.05) 0%,rgba(167,139,250,.03) 40%,transparent 70%);pointer-events:none}.hero_noise{position:absolute;inset:0;opacity:.03;background-image: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");pointer-events:none}.hero_content{position:relative;z-index:2;max-width:800px;opacity:0;transform:translateY(32px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}.hero_content--visible{opacity:1;transform:translateY(0)}.hero_headline{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .35em;margin-bottom:20px;animation:fadeSlideUp .8s .2s both}.hero_greeting{font-family:var(--font-body);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400;color:var(--cream);letter-spacing:-.5px;white-space:nowrap}.hero_name{font-family:Unica One,sans-serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:100;font-style:italic;color:#9ad1d4;letter-spacing:-.5px;white-space:nowrap;position:relative}.hero_name:after{content:"";position:absolute;bottom:2px;left:0;width:100%;height:2px;background:linear-gradient(90deg,#FBBF24,transparent);opacity:.4}.hero_typing-line{display:flex;align-items:baseline;margin-bottom:32px;min-height:1.8em;animation:fadeSlideUp .8s .4s both}.hero_typing-prefix{font-family:var(--font-body);font-size:1.25rem;font-weight:300;color:var(--text-secondary);margin-right:6px;white-space:nowrap}.hero_typing-role{font-family:var(--font-mono);font-size:1.2rem;font-weight:700;color:var(--secondary);white-space:nowrap}.hero_typing-cursor{font-family:var(--font-mono);font-size:1.3rem;font-weight:300;color:var(--secondary);animation:blink .8s step-end infinite;margin-left:1px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hero_tagline{font-size:1.05rem;font-weight:300;color:var(--text-secondary);line-height:1.8;margin-bottom:40px;max-width:540px;animation:fadeSlideUp .8s .65s both}.hero_tagline-accent{color:var(--cream);font-weight:500;letter-spacing:.5px}.hero_actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:48px;animation:fadeSlideUp .8s .8s both}.hero_btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;font-family:var(--font-body);font-size:.85rem;font-weight:500;border-radius:100px;transition:var(--transition);letter-spacing:.3px;cursor:pointer}.hero_btn--primary{background:var(--secondary);color:var(--bg)}.hero_btn--primary:hover{box-shadow:0 0 30px #00d4ff40;transform:translateY(-2px)}.hero_btn--primary svg{transition:transform .3s ease}.hero_btn--primary:hover svg{transform:translate(3px,-3px)}.hero_btn--ghost{color:var(--text-secondary);border:1px solid var(--border-hover);background:transparent}.hero_btn--ghost:hover{color:var(--cream);border-color:var(--text-muted);transform:translateY(-2px)}.hero_social{display:flex;gap:8px;animation:fadeSlideUp .8s .95s both}.hero_social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--text-muted);border:1px solid var(--border);transition:var(--transition)}.hero_social-link:hover{color:var(--secondary);border-color:#00d4ff4d;transform:translateY(-3px);box-shadow:0 4px 12px #00d4ff26}.hero_scroll-cue{position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.hero_scroll-track{width:1px;height:48px;background:var(--border);position:relative;overflow:hidden}.hero_scroll-dot{width:3px;height:8px;background:var(--secondary);border-radius:4px;position:absolute;left:-1px;animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%{top:-10px;opacity:0}30%{opacity:1}to{top:48px;opacity:0}}@media(max-width:768px){.hero{padding:120px 20px 80px}.hero_headline{flex-wrap:wrap}.hero_name{letter-spacing:-.3px}.hero_typing-line{flex-wrap:wrap}.hero_typing-prefix{font-size:1.05rem}.hero_typing-role{font-size:1rem}}.about_hero-row{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.about_intro{display:flex;flex-direction:column}.about_intro .section-title{margin-top:12px}.about_intro-text{font-size:.95rem;color:var(--text-secondary);margin-top:20px;line-height:1.9;font-weight:300}.about_intro-reflection{margin-top:20px;padding-left:20px;border-left:2px solid var(--primary);font-size:.88rem;font-style:italic;color:var(--text-secondary);line-height:1.85;font-weight:300;letter-spacing:.01em}.about_intro-reflection em{color:var(--primary);font-style:italic;font-weight:400}.about_stats{display:flex;flex-direction:column;gap:0}.about_stat{display:flex;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--border);transition:var(--transition)}.about_stat:first-child{border-top:1px solid var(--border)}.about_stat:hover{padding-left:8px}.about_stat-value{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--secondary);min-width:64px;line-height:1}.about_stat:nth-child(2) .about_stat-value{color:var(--primary)}.about_stat:nth-child(3) .about_stat-value{color:var(--tertiary)}.about_stat:nth-child(4) .about_stat-value{color:var(--secondary)}.about_stat-info{display:flex;flex-direction:column;gap:2px}.about_stat-label{font-size:.85rem;font-weight:500;color:var(--cream)}.about_stat-sub{font-size:.72rem;color:var(--text-muted);letter-spacing:.5px}a.about_stat--link{text-decoration:none;position:relative;cursor:pointer}a.about_stat--link:hover{background:linear-gradient(90deg,rgba(0,212,255,.04),transparent 70%);padding-left:12px}a.about_stat--link:hover .about_stat-label{color:var(--secondary)}.about_stat-arrow{color:var(--text-muted);margin-left:auto;opacity:0;transform:translate(-4px);transition:var(--transition)}a.about_stat--link:hover .about_stat-arrow{opacity:1;transform:translate(0);color:var(--secondary)}.about_extras{margin-top:72px}.about_extras-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.about_readme{background:#0a0a0bcc;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.about_readme-header{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff08;border-bottom:1px solid var(--border)}.about_readme-dot{width:10px;height:10px;border-radius:50%}.about_readme-dot--red{background:#ff5f56}.about_readme-dot--yellow{background:#ffbd2e}.about_readme-dot--green{background:#27c93f}.about_readme-filename{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);margin-left:8px;letter-spacing:.3px}.about_readme-body{padding:20px 24px;font-family:var(--font-mono)}.about_readme-heading{font-size:.82rem;color:var(--secondary);font-weight:600;margin-bottom:16px}.about_readme-list{list-style:none;display:flex;flex-direction:column;gap:10px}.about_readme-list li{display:flex;align-items:flex-start;gap:10px;font-size:.8rem;color:var(--text-secondary);line-height:1.6;font-weight:300}.about_readme-bullet{color:var(--primary);font-weight:600;flex-shrink:0}.about_hottakes{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;border-left:2px solid var(--tertiary);display:flex;flex-direction:column;justify-content:center}.about_hottakes-title{font-family:var(--font-body);font-size:.72rem;font-weight:600;color:var(--cream);letter-spacing:.3px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.about_hottakes-fire{font-size:.9rem}.about_hottakes-list{display:flex;flex-direction:column;gap:0}.about_hottake{font-size:.76rem;color:var(--text-secondary);line-height:1.65;font-weight:300;padding:8px 0;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:8px}.about_hottake:last-child{border-bottom:none;padding-bottom:0}.about_hottake:first-child{padding-top:0}.about_hottake-marker{color:var(--tertiary);font-family:var(--font-mono);font-weight:600;flex-shrink:0;opacity:.5;font-size:.78rem}.about_obsession{display:flex;align-items:center;gap:20px;padding:20px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.about_obsession-label{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--secondary);white-space:nowrap}.about_obsession-pulse{width:6px;height:6px;border-radius:50%;background:var(--secondary);animation:obsessionPulse 2s ease-in-out infinite}@keyframes obsessionPulse{0%,to{opacity:1;box-shadow:0 0 #00d4ff66}50%{opacity:.6;box-shadow:0 0 0 6px #00d4ff00}}.about_obsession-tags{display:flex;flex-wrap:wrap;gap:8px}.about_obsession-tag{font-size:.76rem;font-weight:400;color:var(--text-secondary);padding:6px 16px;background:#ffffff08;border:1px solid var(--border);border-radius:100px;transition:var(--transition);cursor:default}.about_obsession-tag:hover{color:var(--secondary);border-color:#00d4ff4d;background:#00d4ff0f}@media(max-width:768px){.about_hero-row{grid-template-columns:1fr;gap:40px}.about_extras-row{grid-template-columns:1fr}.about_obsession{flex-direction:column;align-items:flex-start;gap:12px}}.tech-section{background:#071b24;position:relative;z-index:1;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.tech_grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tech_card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .4s ease,box-shadow .4s ease;position:relative;overflow:hidden}.tech_card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;opacity:0;transition:opacity .4s ease}.tech_card--violet:before{background:var(--primary)}.tech_card--blue:before{background:var(--secondary)}.tech_card--rose:before{background:var(--tertiary)}.tech_card:hover{border-color:var(--border-hover);transform:translateY(-6px) scale(1.01);box-shadow:var(--shadow-glow)}.tech_card:hover:before{opacity:1}.tech_card:active{transform:translateY(-2px) scale(.99)}.tech_card--violet:hover{border-color:#a78bfa40}.tech_card--blue:hover{border-color:#00d4ff40}.tech_card--rose:hover{border-color:#f472b640}.tech_card-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.tech_card-icon{font-size:1rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.tech_card--violet .tech_card-icon{color:var(--primary);background:#a78bfa1a}.tech_card--blue .tech_card-icon{color:var(--secondary);background:#00d4ff1a}.tech_card--rose .tech_card-icon{color:var(--tertiary);background:#f472b61a}.tech_card-title{font-family:var(--font-body);font-size:.82rem;font-weight:600;color:var(--cream);letter-spacing:.3px}.tech_card-tags{display:flex;flex-wrap:wrap;gap:8px}.tech_tag{display:inline-flex;align-items:center;padding:7px 16px;font-size:.76rem;font-weight:400;color:var(--text-secondary);background:#ffffff08;border:1px solid var(--border);border-radius:100px;transition:var(--transition);cursor:default;white-space:nowrap}.tech_card--violet .tech_tag:hover{color:var(--primary);border-color:#a78bfa4d;background:#a78bfa0f}.tech_card--blue .tech_tag:hover{color:var(--secondary);border-color:#00d4ff4d;background:#00d4ff0f}.tech_card--rose .tech_tag:hover{color:var(--tertiary);border-color:#f472b64d;background:#f472b60f}.tech_exploring{margin-top:40px;padding:20px 0;border-top:1px solid var(--border);display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tech_exploring-label{font-size:.72rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--tertiary);white-space:nowrap}.tech_exploring-text{font-size:.85rem;color:var(--text-secondary);font-weight:300;letter-spacing:.3px}@media(max-width:900px){.tech_grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.tech_grid{grid-template-columns:1fr}.tech_exploring{flex-direction:column;align-items:flex-start;gap:8px}}.projects_featured{display:flex;flex-direction:column;gap:20px;margin-top:56px;margin-bottom:72px}.project-featured{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:44px 40px;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s ease,box-shadow .4s ease;position:relative;overflow:hidden}.project-featured:before{content:"";position:absolute;top:0;left:0;width:3px;height:0;background:var(--secondary);transition:height .5s cubic-bezier(.16,1,.3,1)}.project-featured:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.project-featured:hover:before{height:100%}.project-featured_meta{display:flex;align-items:center;gap:12px;margin-bottom:16px}.project-featured_type{font-size:.68rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--secondary)}.project-featured_abbr{font-size:.65rem;font-weight:500;color:var(--text-muted);background:var(--border);padding:2px 10px;border-radius:4px;letter-spacing:1px}.project-featured_title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--cream);margin-bottom:16px;line-height:1.2;letter-spacing:-.5px}.project-featured_desc{font-size:.9rem;color:var(--text-secondary);line-height:1.8;margin-bottom:24px;max-width:700px;font-weight:300}.project-featured_highlights{list-style:none;margin-bottom:28px;display:grid;grid-template-columns:1fr 1fr;gap:8px 32px}.project-featured_highlights li{display:flex;align-items:flex-start;gap:10px;font-size:.82rem;color:var(--text-secondary);line-height:1.6;font-weight:300}.project-featured_bullet{color:var(--secondary);flex-shrink:0;margin-top:2px}.project-featured_stack{display:flex;flex-wrap:wrap;gap:6px}.project-featured_bottom{display:flex;align-items:flex-start;gap:20px;padding-top:20px;border-top:1px solid var(--border);flex-wrap:wrap}.project-featured_lesson{font-size:.76rem;color:var(--text-muted);font-style:italic;line-height:1.7;font-weight:300;flex:1;min-width:200px;padding-left:16px;border-left:1px dashed var(--border)}.project-featured_tech{font-size:.7rem;font-weight:400;color:var(--text-muted);background:#ffffff08;border:1px solid var(--border);padding:4px 12px;border-radius:100px;letter-spacing:.3px;transition:var(--transition)}.project-featured_tech:hover{color:var(--primary);border-color:#a78bfa4d}.projects_other-header{display:flex;align-items:center;gap:20px;margin-bottom:28px}.projects_other-title{font-family:var(--font-body);font-size:.78rem;font-weight:500;color:var(--text-muted);letter-spacing:.5px;white-space:nowrap}.projects_other-line{flex:1;height:1px;background:var(--border)}.projects_grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;perspective:1000px}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s ease,box-shadow .4s ease;display:flex;flex-direction:column;transform-style:preserve-3d}.project-card:hover{border-color:var(--border-hover);transform:translateY(-6px) rotateX(2deg) rotateY(-1deg);box-shadow:var(--shadow-glow)}.project-card_top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.project-card_icon{color:var(--tertiary);opacity:.7}.project-card_type{font-size:.65rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--tertiary);opacity:.7}.project-card_title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--cream);margin-bottom:12px;line-height:1.3}.project-card_desc{font-size:.82rem;color:var(--text-secondary);line-height:1.75;margin-bottom:16px;flex:1;font-weight:300}.project-card_highlights{list-style:none;margin-bottom:20px}.project-card_highlights li{font-size:.76rem;color:var(--text-secondary);padding-left:16px;position:relative;margin-bottom:6px;line-height:1.6;font-weight:300}.project-card_highlights li:before{content:"▹";position:absolute;left:0;color:var(--secondary);opacity:.6}.project-card_stack{display:flex;flex-wrap:wrap;gap:6px;padding-top:16px;border-top:1px solid var(--border);margin-top:auto}.project-card_stack span{font-size:.68rem;font-weight:400;color:var(--text-muted)}.project-card_stack span:not(:last-child):after{content:"·";margin-left:6px;color:var(--text-muted);opacity:.4}.project_actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.project_actions--compact{margin-top:16px;padding-top:16px}.project_action{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:.72rem;font-weight:500;letter-spacing:.5px;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:100px;text-decoration:none;transition:var(--transition);cursor:pointer}.project_action:hover{transform:translateY(-1px)}.project_action--code:hover,.project_action--arch:hover{color:var(--secondary);border-color:#00d4ff59;background:#00d4ff0f}.project_action--demo:hover{color:var(--tertiary);border-color:#f472b659;background:#f472b60f}.project_lesson{margin-top:16px;padding-top:16px;border-top:1px dashed var(--border)}.project_lesson--compact{margin-top:12px;padding-top:12px}.project_lesson-label{font-size:.65rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--tertiary);opacity:.7;display:block;margin-bottom:6px}.project_lesson-text{font-size:.8rem;color:var(--text-muted);line-height:1.7;font-weight:300;font-style:italic}@media(max-width:900px){.projects_grid,.project-featured_highlights{grid-template-columns:1fr}}@media(max-width:580px){.project-featured{padding:28px 24px}}.playground{position:relative;z-index:1;background:transparent;padding-bottom:80px}.playground_subtitle{font-size:.9rem;color:var(--text-muted);font-weight:300;margin-top:8px}.playground_canvas-wrap{position:relative;width:100%;height:420px;max-width:var(--max-width);margin:0 auto;padding:0 32px;cursor:crosshair}.playground_canvas{width:100%;height:100%;border:1px solid var(--border);border-radius:var(--radius-lg);background:#0a0a0b99;display:block}.playground_controls{position:absolute;bottom:16px;right:48px;display:flex;align-items:center;gap:12px}.playground_count{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);letter-spacing:.5px}.playground_reset{font-family:var(--font-mono);font-size:.68rem;font-weight:400;color:var(--text-muted);background:transparent;border:1px solid var(--border);padding:4px 14px;border-radius:100px;cursor:pointer;transition:var(--transition);letter-spacing:.5px}.playground_reset:hover{color:var(--tertiary);border-color:#f472b64d}.playground_overload{font-family:var(--font-mono);font-size:.68rem;font-weight:400;color:var(--tertiary);background:transparent;border:1px solid rgba(244,114,182,.25);padding:4px 14px;border-radius:100px;cursor:pointer;transition:var(--transition);letter-spacing:.5px}.playground_overload:hover{color:#fff;border-color:var(--tertiary);background:#f472b61a;box-shadow:0 0 20px #f472b626}@keyframes playground-shake{0%,to{transform:translate(0)}10%{transform:translate(-6px,3px)}20%{transform:translate(5px,-4px)}30%{transform:translate(-4px,5px)}40%{transform:translate(6px,-2px)}50%{transform:translate(-3px,-5px)}60%{transform:translate(4px,4px)}70%{transform:translate(-5px,-3px)}80%{transform:translate(3px,5px)}90%{transform:translate(-4px,-4px)}}.playground_shake{animation:playground-shake .6s ease-in-out}@media(max-width:768px){.playground_canvas-wrap{height:320px;padding:0 20px}.playground_controls{right:36px}}.experience-section{background:#1c1707;position:relative;z-index:1}.exp_cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:56px;position:relative}.exp_cards:after{content:"";position:absolute;top:50%;left:calc(50% - 20px);width:40px;height:2px;background:linear-gradient(90deg,var(--secondary),var(--primary));opacity:.25;border-radius:2px;pointer-events:none}.exp_card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s ease,box-shadow .4s ease;position:relative}.exp_card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.exp_card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;opacity:0;transition:opacity .4s ease}.exp_card:first-child:before{background:var(--secondary)}.exp_card:last-child:before{background:var(--primary)}.exp_card:hover:before{opacity:1}.exp_card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.exp_card-tag{font-size:.62rem;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--secondary);background:var(--secondary-dim);padding:3px 12px;border-radius:100px}.exp_card:last-child .exp_card-tag{color:var(--primary);background:var(--primary-dim)}.exp_card-period{font-size:.7rem;color:var(--text-muted);font-weight:400}.exp_card-role{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--cream);letter-spacing:-.3px;margin-bottom:6px;line-height:1.3}.exp_card-company{font-size:.85rem;font-weight:500;color:var(--secondary);margin-bottom:20px}.exp_card:last-child .exp_card-company{color:var(--primary)}.exp_card-location{color:var(--text-muted);font-weight:400}.exp_card-points{list-style:none}.exp_card-points li{display:flex;align-items:flex-start;gap:10px;font-size:.82rem;color:var(--text-secondary);line-height:1.8;margin-bottom:10px;font-weight:300}.exp_card-bullet{color:var(--secondary);flex-shrink:0;margin-top:4px;opacity:.7}.exp_card:last-child .exp_card-bullet{color:var(--primary)}.exp_footnote{text-align:center;font-size:.82rem;color:var(--text-muted);font-weight:300;margin-top:32px;font-style:italic;letter-spacing:.2px}@media(max-width:768px){.exp_cards{grid-template-columns:1fr}.exp_cards:after{display:none}.exp_card{padding:24px 20px}}.opensource_card{display:flex;gap:24px;margin-top:40px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;border-left:2px dashed rgba(0,212,255,.2);transition:var(--transition)}.opensource_card:hover{border-color:var(--border-hover);border-left-color:#00d4ff66}.opensource_branch{display:flex;flex-direction:column;align-items:center;flex-shrink:0;padding-top:4px}.opensource_branch-line{width:2px;height:20px;background:var(--secondary);opacity:.3}.opensource_branch-line--dashed{background:none;border-left:2px dashed rgba(0,212,255,.2);height:40px}.opensource_branch-dot{width:10px;height:10px;border-radius:50%;border:2px dashed var(--secondary);background:transparent;margin:4px 0;opacity:.5}.opensource_content{flex:1}.opensource_status{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);margin-bottom:12px}.opensource_status-icon{color:var(--text-muted);font-size:.9rem}.opensource_note{font-size:.85rem;color:var(--text-muted);line-height:1.8;font-weight:300;margin-bottom:16px;max-width:520px}.opensource_link{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.78rem;color:var(--secondary);transition:var(--transition);letter-spacing:.3px}.opensource_link:hover{color:var(--cream);transform:translate(4px)}@media(max-width:480px){.opensource_branch{display:none}.opensource_card{padding:24px 20px}}.education_grid{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;margin-top:56px;align-items:start}.education_degrees{display:flex;flex-direction:column;gap:16px}.education_card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;position:relative;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s ease,box-shadow .4s ease}.education_card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.education_current-badge{position:absolute;top:16px;right:16px;font-size:.62rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--bg);background:var(--tertiary);padding:3px 12px;border-radius:100px}.education_degree{font-family:var(--font-display);font-size:1.15rem;color:var(--cream);font-weight:600;margin-bottom:4px;padding-right:80px;letter-spacing:-.3px}.education_minor{font-size:.8rem;color:var(--primary);font-weight:400;margin-bottom:8px;opacity:.9}.education_institution{font-size:.85rem;color:var(--text-secondary);font-weight:400;margin-bottom:14px}.education_meta{display:flex;gap:16px;font-size:.78rem;color:var(--text-muted);margin-bottom:18px}.education_period{font-weight:400}.education_score{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.education_score-value{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--primary)}.education_score-highlight{font-size:.68rem;font-weight:500;color:var(--primary);background:var(--primary-dim);padding:2px 10px;border-radius:4px;letter-spacing:.5px}.education_certs{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;transition:var(--transition)}.education_certs:hover{border-color:var(--border-hover)}.education_certs-title{font-family:var(--font-body);font-size:.72rem;font-weight:500;color:var(--text-muted);letter-spacing:2px;margin-bottom:24px;text-transform:uppercase}.education_certs-list{display:flex;flex-direction:column;gap:16px}.education_cert-item{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--text-secondary);font-weight:300;transition:var(--transition)}.education_cert-item:hover{color:var(--cream)}@media(max-width:768px){.education_grid{grid-template-columns:1fr}.education_degree{padding-right:0}.education_current-badge{position:static;display:inline-block;margin-bottom:12px}}.contact{background:#111113d9;position:relative;z-index:1}.contact_inner{text-align:center;max-width:580px;margin:0 auto}.contact_title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:700;color:var(--cream);margin-bottom:20px;letter-spacing:-1px}.contact_text{font-size:.95rem;color:var(--text-secondary);line-height:1.8;margin-bottom:40px;font-weight:300}.contact_links{display:flex;flex-direction:column;align-items:center;gap:24px}.contact_email-row{display:flex;align-items:center;gap:8px}.contact_link--primary{display:inline-flex;align-items:center;gap:10px;font-size:.9rem;font-weight:500;color:var(--bg);background:var(--secondary);padding:14px 36px;border-radius:100px;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease;letter-spacing:.3px}.contact_link--primary:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 40px #f472b633}.contact_copy{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:transparent;border:1px solid var(--border);border-radius:100px;color:var(--text-muted);cursor:pointer;transition:var(--transition);font-family:var(--font-body)}.contact_copy:hover{color:var(--tertiary);border-color:#f472b64d}.contact_copy-label{font-size:.72rem;font-weight:400;letter-spacing:.3px}.contact_socials{display:flex;gap:12px}.contact_social{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:400;color:var(--text-muted);padding:10px 22px;border:1px solid var(--border);border-radius:100px;background:transparent;transition:var(--transition)}.contact_social:hover{color:var(--tertiary);border-color:#f472b64d;transform:translateY(-2px)}@media(max-width:480px){.contact_email-row{flex-direction:column;gap:12px}}.footer{border-top:1px solid var(--border);padding:48px 24px 32px;background:#0a0a0be6;position:relative;z-index:1}.footer_inner{max-width:var(--max-width);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}.footer_credit{font-size:.82rem;color:var(--text-muted);line-height:1.8;max-width:520px;font-weight:300}.footer_highlight{color:var(--text-secondary);font-weight:500;transition:color .3s ease}.footer_highlight:hover{color:var(--secondary)}.footer_bottom{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:400px;gap:20px}.footer_links{display:flex;gap:20px}.footer_link{font-size:.78rem;color:var(--text-muted);transition:var(--transition);font-weight:400;position:relative}.footer_link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--secondary);transition:width .3s cubic-bezier(.16,1,.3,1)}.footer_link:hover{color:var(--secondary)}.footer_link:hover:after{width:100%}.footer_year{font-size:.68rem;color:var(--text-muted);opacity:.6}@media(max-width:768px){.footer_bottom{flex-direction:column;gap:12px}}:root{--bg: #0A0A0B;--bg-surface: #111113;--bg-card: #161618;--bg-card-hover:#1C1C1F;--primary: #A78BFA;--primary-dim: rgba(167, 139, 250, .1);--primary-glow: rgba(167, 139, 250, .05);--secondary: #A2D6F9;--secondary-dim:rgba(0, 212, 255, .1);--tertiary: #FF99C8;--tertiary-dim: rgba(244, 114, 182, .1);--cream: #EEEEF0;--text: #D4D4D8;--text-secondary:#A1A1AA;--text-muted: #63636E;--border: rgba(255, 255, 255, .06);--border-hover: rgba(255, 255, 255, .12);--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 20px rgba(0,0,0,.4);--shadow-lg: 0 8px 40px rgba(0,0,0,.5);--shadow-glow: 0 0 60px rgba(0,212,255,.06);--radius: 16px;--radius-sm: 10px;--radius-lg: 24px;--font-display: "Syne", sans-serif;--font-body: "Space Grotesk", sans-serif;--font-mono: "Space Mono", monospace;--transition: all .4s cubic-bezier(.16, 1, .3, 1);--max-width: 1100px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden;transition:background-color .4s ease,color .4s ease}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.1;color:var(--text)}.section{padding:120px 32px;max-width:var(--max-width);margin:0 auto;position:relative;z-index:1}.section-label{font-family:var(--font-body);font-size:.7rem;font-weight:500;letter-spacing:4px;text-transform:uppercase;color:var(--secondary);margin-bottom:20px;display:inline-flex;align-items:center;gap:12px;padding:6px 0}.section-label:before{content:"";display:inline-block;width:0;height:1px;background:var(--secondary);transition:width .6s cubic-bezier(.16,1,.3,1)}.fade-in.visible .section-label:before,[data-reveal].revealed .section-label:before{width:24px}#about .section-label,#about .section-label:before{color:var(--secondary)}#about .section-label:before{background:var(--secondary)}#skills .section-label{color:var(--primary)}#skills .section-label:before{background:var(--primary)}#projects .section-label{color:var(--tertiary)}#projects .section-label:before{background:var(--tertiary)}#experience .section-label{color:var(--secondary)}#experience .section-label:before{background:var(--secondary)}#playground .section-label{color:var(--tertiary)}#playground .section-label:before{background:var(--tertiary)}#opensource .section-label{color:var(--secondary)}#opensource .section-label:before{background:var(--secondary)}.section-title{font-size:clamp(2.2rem,4.5vw,3.2rem);margin-bottom:16px;color:var(--cream);letter-spacing:-1px}.section-subtitle{font-size:1rem;color:var(--text-secondary);max-width:520px;line-height:1.8;font-weight:300}.fade-in{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.fade-in.visible{opacity:1;transform:translateY(0)}.fade-in-delay-1{transition-delay:.08s}.fade-in-delay-2{transition-delay:.16s}.fade-in-delay-3{transition-delay:.24s}.fade-in-delay-4{transition-delay:.32s}.fade-in-delay-5{transition-delay:.4s}.slide-left{opacity:0;transform:translate(-40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.slide-right{opacity:0;transform:translate(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.slide-left.visible,.slide-right.visible{opacity:1;transform:translate(0)}.scale-in{opacity:0;transform:scale(.92);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.scale-in.visible{opacity:1;transform:scale(1)}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}[data-reveal].revealed{opacity:1;transform:translateY(0)}[data-reveal=slide-left]{transform:translate(-40px)}[data-reveal=slide-left].revealed{transform:translate(0)}[data-reveal=slide-right]{transform:translate(40px)}[data-reveal=slide-right].revealed{transform:translate(0)}[data-reveal=scale]{transform:scale(.88)}[data-reveal=scale].revealed{transform:scale(1)}[data-reveal=blur]{filter:blur(8px);transform:translateY(16px)}[data-reveal=blur].revealed{filter:blur(0);transform:translateY(0)}.section-title{transition:letter-spacing .4s cubic-bezier(.16,1,.3,1)}.magnetic-hover{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease}.magnetic-hover:hover{transform:translateY(-3px)}@keyframes borderGlow{0%,to{border-color:#00d4ff26}50%{border-color:#a78bfa40}}.section-divider{width:60px;height:2px;background:linear-gradient(90deg,var(--secondary),var(--primary));border:none;margin:0 0 24px;border-radius:2px;opacity:.5}::selection{background:var(--secondary);color:var(--bg)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media(max-width:768px){.section{padding:80px 20px}}
