.about-section{position:relative}.about-container{max-width:var(--content-max);margin-inline:auto}.about-content{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:start}.about-me p{color:var(--text-secondary);margin-bottom:1.35rem}.highlight{color:var(--text-heading);font-weight:600}.inline-link{color:var(--accent);font-weight:500;text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:100% 1px;background-position:0 100%;transition:color var(--transition-fast)}.inline-link:hover{color:var(--accent-hover)}.contact-button{margin-top:.75rem}.skills-card{padding:clamp(1.5rem,3vw,2.25rem);border-radius:var(--radius-xl)}.skills-title{font-size:var(--fs-lg);margin-bottom:1.5rem}.skill-group+.skill-group{margin-top:1.5rem}.skill-group-label{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.7rem}.skills-container{display:flex;flex-wrap:wrap;gap:.6rem}.skill-tag{display:inline-flex;align-items:center;gap:8px;padding:.5rem .95rem;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--field-bg);font-size:var(--fs-sm);font-weight:500;color:var(--text-primary);transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);cursor:default}.skill-tag svg{width:15px;height:15px;color:var(--accent);flex-shrink:0}.skill-tag:hover{border-color:rgba(var(--accent-rgb),.45);background:var(--accent-soft);color:var(--text-heading);transform:translateY(-2px)}@media (max-width:900px){.about-content{grid-template-columns:1fr}}.contact-section{position:relative}.contact-container{max-width:var(--content-max);margin-inline:auto}.contact-card{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow-lg)}.contact-panel{position:relative;display:flex;flex-direction:column;padding:clamp(1.75rem,4vw,3rem);background:radial-gradient(120% 90% at 0 0,rgba(255,255,255,.14),transparent 55%),linear-gradient(150deg,var(--accent),#5028c9 60%,#3c1e9e);color:#ffffff}.panel-title{color:#ffffff;font-size:var(--fs-lg);margin-bottom:.9rem}.panel-copy{color:rgba(255,255,255,.78);font-size:var(--fs-sm);margin-bottom:2rem}.panel-row{display:flex;align-items:center;gap:12px;padding-block:.55rem;color:#ffffff;font-size:var(--fs-sm);font-weight:500;text-decoration:none;transition:opacity var(--transition-fast);word-break:break-all}a.panel-row:hover{opacity:.8}.panel-static{color:rgba(255,255,255,.82)}.panel-row svg{width:18px;height:18px;flex-shrink:0;opacity:.9}.panel-socials{display:flex;gap:10px;margin-top:auto;padding-top:2rem}.panel-socials a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.28);color:#ffffff;transition:background var(--transition-fast),transform var(--transition-fast)}.panel-socials a:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}.panel-socials svg{width:17px;height:17px}.form-container{padding:clamp(1.75rem,4vw,3rem)}.form-field{position:relative;margin-bottom:1.5rem}.form-field input,.form-field textarea{width:100%;padding:1.05rem 1.15rem;font-family:var(--font-body);font-size:var(--fs-base);color:var(--text-primary);background:var(--field-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);resize:vertical}.form-field input:hover,.form-field textarea:hover{border-color:var(--border-strong)}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.18);background:var(--bg-card)}.form-field label{position:absolute;top:1.05rem;left:1.15rem;padding:0 6px;margin-left:-6px;color:var(--text-muted);font-size:var(--fs-base);pointer-events:none;transition:top var(--transition-fast),font-size var(--transition-fast),color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.form-field input:focus~label,.form-field input:not(:placeholder-shown)~label,.form-field textarea:focus~label,.form-field textarea:not(:placeholder-shown)~label{top:0;transform:translateY(-50%);font-size:var(--fs-xs);font-weight:500;color:var(--accent);background:var(--bg-card);border-radius:4px}.form-field.has-error input{border-color:var(--error);box-shadow:0 0 0 3px rgba(239,68,68,.14)}.form-field.has-error label,.validation-error{color:var(--error)}.validation-error{margin-top:.45rem;font-size:var(--fs-xs);font-weight:500}.error-message{margin-bottom:1.25rem;padding:.85rem 1.1rem;border-radius:var(--radius-md);border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.08);color:var(--error);font-size:var(--fs-sm)}.submit-button{width:100%;border:none}.submit-button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.spinner{width:16px;height:16px;border-radius:var(--radius-full);border:2px solid rgba(255,255,255,.35);border-top-color:#ffffff;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.success-message{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:320px}.success-icon{width:52px;height:52px;color:var(--success);margin-bottom:1.1rem}.success-message h3{margin-bottom:.6rem}.success-message p{color:var(--text-secondary);max-width:38ch}@media (max-width:820px){.contact-card{grid-template-columns:1fr}.panel-socials{margin-top:.75rem}}.footer{position:relative;background:#0b0b10;color:rgba(245,245,250,.85);padding:clamp(3.5rem,6vw,5.5rem) var(--space-gutter) 2rem;overflow:hidden}.footer:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(880px,90%);height:1px;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.7),transparent)}.footer-container{max-width:var(--content-max);margin-inline:auto}.footer-content{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);margin-bottom:3rem}.footer-wordmark{display:inline-block;font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em;color:#f5f5fa;text-decoration:none;margin-bottom:1rem}.footer-dot{color:var(--accent)}.footer-description{color:rgba(245,245,250,.55);font-size:var(--fs-sm);max-width:42ch;margin-bottom:1.5rem}.contact-link{display:flex;width:fit-content;align-items:center;gap:10px;color:rgba(245,245,250,.75);font-size:var(--fs-sm);text-decoration:none;transition:color var(--transition-fast)}.contact-link+.contact-link{margin-top:.7rem}.contact-link:hover{color:var(--accent)}.contact-icon{width:17px;height:17px;flex-shrink:0}.footer-label{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,245,250,.4);margin-bottom:1.1rem}.footer-nav ul{list-style:none;display:flex;flex-direction:column;gap:.55rem}.footer-nav a{color:rgba(245,245,250,.65);font-size:var(--fs-sm);text-decoration:none;transition:color var(--transition-fast),padding-left var(--transition-fast)}.footer-nav a:hover{color:#f5f5fa;padding-left:4px}.social-icons{display:flex;gap:10px;margin-bottom:1.5rem}.footer-social-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);border:1px solid rgba(245,245,250,.16);color:rgba(245,245,250,.75);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.footer-social-icon:hover{color:#ffffff;border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.18);transform:translateY(-2px)}.footer-social-icon svg{width:17px;height:17px}.back-to-top{display:inline-flex;align-items:center;gap:8px;padding:.55rem 1.1rem;border-radius:var(--radius-full);border:1px solid rgba(245,245,250,.16);background:transparent;color:rgba(245,245,250,.7);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.back-to-top svg{width:13px;height:13px;transition:transform var(--transition-base)}.back-to-top:hover{color:#ffffff;border-color:rgba(var(--accent-rgb),.6)}.back-to-top:hover svg{transform:translateY(-2px)}.footer-divider{height:1px;background:rgba(245,245,250,.08);margin-bottom:1.5rem}.footer-copyright{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:var(--fs-xs);color:rgba(245,245,250,.45)}.highlight-footer{color:rgba(245,245,250,.8);font-weight:600}.footer-stack{font-family:var(--font-mono);letter-spacing:.06em}@media (max-width:820px){.footer-content{grid-template-columns:1fr 1fr}.footer-info{grid-column:1/-1}.footer-copyright{flex-direction:column;text-align:center}}.scroll-progress{height:3px;z-index:120;background:linear-gradient(90deg,var(--accent),#e452ff);transform:scaleX(0);transform-origin:left}.header,.scroll-progress{position:fixed;top:0;left:0;right:0;pointer-events:none}.header{z-index:100;padding:14px var(--space-gutter) 0}.header-inner{pointer-events:auto;max-width:var(--content-max);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:8px 10px;border-radius:var(--radius-full);border:1px solid transparent;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}.header.scrolled .header-inner{background:var(--glass-bg);border-color:var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);box-shadow:var(--shadow-sm)}.logo-container{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}.profile-image{width:48px;height:48px;border-radius:var(--radius-full);padding:2.5px;background:linear-gradient(135deg,var(--accent),#e452ff);flex-shrink:0}.profile-image img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-full);display:block;border:2px solid var(--bg-body)}.logo-text{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:-.01em;color:var(--text-heading);white-space:nowrap}.logo-dot{color:var(--accent)}.navigation ul{display:flex;align-items:center;gap:2px;list-style:none}.navigation a{display:inline-flex;align-items:baseline;gap:7px;padding:9px 16px;border-radius:var(--radius-full);font-family:var(--font-display);font-size:.9rem;font-weight:600;letter-spacing:.01em;color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast),background var(--transition-fast)}.nav-index{font-family:var(--font-mono);font-size:.65rem;font-weight:500;color:var(--accent);opacity:.75}.navigation a.active,.navigation a:hover{color:var(--text-heading);background:var(--accent-soft)}.navigation a.active{box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.25)}.header-actions{gap:8px}.header-actions,.theme-toggle{display:flex;align-items:center}.theme-toggle{justify-content:center;width:38px;height:38px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.theme-toggle:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);transform:rotate(12deg)}.hamburger{display:none;flex-direction:column;justify-content:center;gap:6px;width:38px;height:38px;padding:0 8px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:transparent;cursor:pointer;z-index:111}.hamburger span{display:block;height:2px;width:100%;border-radius:2px;background:var(--text-heading);transition:transform var(--transition-base),opacity var(--transition-base)}.hamburger.active span:first-child{transform:translateY(4px) rotate(45deg)}.hamburger.active span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}@media (max-width:820px){.hamburger{display:flex}.navigation{position:fixed;inset:0;z-index:110;display:grid;place-items:center;visibility:hidden;transition:visibility .26s ease}.navigation:before{content:"";position:absolute;inset:0;background:var(--menu-bg);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);opacity:0;transition:opacity .2s ease}.navigation.open{visibility:visible}.navigation.open:before{opacity:1}.navigation ul{position:relative;flex-direction:column;gap:.5rem;text-align:center}.navigation a{font-size:var(--fs-xl);font-weight:700;padding:.6rem 1.6rem}.navigation a .nav-index{font-size:.85rem}.navigation li{opacity:0;transform:translateY(16px);transition:opacity .35s var(--ease-out),transform .35s var(--ease-out)}.navigation.open li{opacity:1;transform:none}.navigation.open li:first-child{transition-delay:.13s}.navigation.open li:nth-child(2){transition-delay:.18s}.navigation.open li:nth-child(3){transition-delay:.23s}.navigation.open li:nth-child(4){transition-delay:.28s}.header{z-index:112}.header-actions,.logo-container{position:relative;z-index:111}.header.menu-open .header-inner{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transition:none}}.hero{position:relative;display:flex;flex-direction:column;min-height:100svh;padding:110px var(--space-gutter) 0;overflow:hidden}.hero-spotlight{position:absolute;inset:0;pointer-events:none;background:radial-gradient(620px circle at var(--spot-x,70%) var(--spot-y,25%),rgba(var(--accent-rgb),.09),transparent 70%)}.hero-inner{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;width:100%;max-width:var(--content-max);margin-inline:auto;padding-block:2rem}.hero-badge{display:inline-flex;align-items:center;gap:9px;padding:7px 15px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:1.6rem;animation:hero-rise .7s var(--ease-out) .1s backwards}.badge-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--success);position:relative}.badge-dot:after{content:"";position:absolute;inset:0;border-radius:inherit;background:inherit;animation:badge-ping 2s var(--ease-out) infinite}@keyframes badge-ping{0%{transform:scale(1);opacity:.7}to{transform:scale(2.6);opacity:0}}.hero-eyebrow{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;animation:hero-rise .7s var(--ease-out) .2s backwards}.hero-title{font-size:var(--fs-display);font-weight:700;line-height:1.06;letter-spacing:var(--ls-display);color:var(--text-heading);margin-bottom:clamp(1.6rem,3vw,2.2rem)}.hero-line{display:block;overflow:hidden;padding-block:.06em}.hero-line-inner{display:inline-block;transform:translateY(115%);animation:hero-mask-up .9s var(--ease-out) forwards}.hero-line:first-child .hero-line-inner{animation-delay:.25s}.hero-line:nth-child(2) .hero-line-inner{animation-delay:.37s}.hero-line:nth-child(3) .hero-line-inner{animation-delay:.49s}@keyframes hero-mask-up{to{transform:translateY(0)}}.hero-name{background:linear-gradient(120deg,var(--accent) 20%,#e452ff 85%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.hero-title em{font-style:italic;color:var(--text-muted)}.hero-description{max-width:54ch;font-size:var(--fs-md);line-height:var(--lh-body);color:var(--text-secondary);margin-bottom:clamp(2.2rem,4vw,2.8rem);animation:hero-rise .8s var(--ease-out) .65s backwards}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;animation:hero-rise .8s var(--ease-out) .78s backwards}.magnetic{display:inline-block;transition:transform .25s var(--ease-out)}@keyframes hero-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.scroll-cue{position:absolute;right:var(--space-gutter);bottom:96px;display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;writing-mode:vertical-rl;transition:color var(--transition-base);animation:hero-rise .8s var(--ease-out) .9s backwards}.scroll-cue:hover{color:var(--accent)}.scroll-cue-track{width:1px;height:52px;background:var(--border-strong);position:relative;overflow:hidden}.scroll-cue-dot{position:absolute;left:-1px;width:3px;height:14px;border-radius:var(--radius-full);background:var(--accent);animation:cue-drop 2.2s var(--ease-out) infinite}@keyframes cue-drop{0%{top:-16px}60%,to{top:56px}}.hero-marquee{position:relative;width:100vw;margin-left:calc(-1 * var(--space-gutter));border-top:1px solid var(--border-color);padding-block:1.05rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee-track{display:flex;width:max-content;animation:marquee-scroll 36s linear infinite}.hero-marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{display:inline-flex;align-items:center;gap:2.2rem;padding-right:2.2rem;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.marquee-star{width:9px;height:9px;color:var(--accent);opacity:.6;flex-shrink:0}@keyframes marquee-scroll{to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}.hero-line-inner{transform:none;animation:none}}@media (max-width:820px){.hero{padding-top:92px}.scroll-cue{display:none}}.projects-section{position:relative}.projects-container{max-width:var(--content-max);margin-inline:auto}.projects-list{display:flex;flex-direction:column;gap:clamp(4rem,8vw,7rem)}.project-item{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}.project-item:nth-child(2n) .project-image{order:2}.tilt{transition:transform .3s var(--ease-out);will-change:transform}.browser-mockup{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-color);background:var(--bg-card);box-shadow:var(--shadow-lg);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.tilt:hover .browser-mockup{border-color:rgba(var(--accent-rgb),.35);box-shadow:var(--shadow-lg),0 0 48px -12px rgba(var(--accent-rgb),.35)}.browser-chrome{display:flex;align-items:center;gap:7px;padding:11px 14px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.browser-dot{width:10px;height:10px;border-radius:var(--radius-full)}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.browser-url{margin-left:10px;padding:3px 12px;border-radius:var(--radius-full);background:var(--field-bg);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.browser-viewport{aspect-ratio:2/1;overflow:hidden}.project-screenshot{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:object-position 3.5s ease}.tilt:hover .project-screenshot{object-position:bottom}.project-info{position:relative}.project-index{display:block;font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:500;color:transparent;-webkit-text-stroke:1px rgba(var(--accent-rgb),.55);margin-bottom:.5rem}.project-title{font-size:var(--fs-xl);margin-bottom:.9rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.1rem}.project-tag{padding:.28rem .8rem;border-radius:var(--radius-full);border:1px solid rgba(var(--accent-rgb),.28);background:var(--accent-soft);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;color:var(--accent)}.project-description{color:var(--text-secondary);margin-bottom:1.5rem}.project-links{display:flex;align-items:center;gap:1.75rem}.live-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:var(--fs-sm);font-weight:700;letter-spacing:.04em;text-decoration:none;color:var(--text-secondary);transition:color var(--transition-fast)}.live-link:hover{color:var(--text-heading)}.link-arrow{width:15px;height:15px;transition:transform var(--transition-base)}.live-link:hover .link-arrow{transform:translate(2px,-2px)}@media (max-width:900px){.project-item{grid-template-columns:1fr;gap:1.75rem}.project-item:nth-child(2n) .project-image{order:0}}.email-rail,.social-sidebar{position:fixed;bottom:0;z-index:50;display:flex;flex-direction:column;align-items:center;gap:1.1rem}.social-sidebar{left:clamp(14px,2.5vw,40px)}.email-rail{right:clamp(14px,2.5vw,40px)}.rail-line{width:1px;height:78px;background:var(--border-strong)}.social-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-muted);transition:color var(--transition-fast),transform var(--transition-fast)}.social-icon svg{width:100%;height:100%}.social-icon:hover{color:var(--accent);transform:translateY(-3px)}.email-link{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;color:var(--text-muted);text-decoration:none;writing-mode:vertical-rl;transition:color var(--transition-fast),transform var(--transition-fast)}.email-link:hover{color:var(--accent);transform:translateY(-3px)}@media (max-width:1100px){.email-rail,.social-sidebar{display:none}}