/*! Copyright (c) 2026 David Pinheiro. All rights reserved. Third-party rights remain with their owners. */
/*!
 * David Pinheiro Portfolio - © 2026 All Rights Reserved
 * https://davidpinheiro.dev
 * Unauthorized copying or redistribution prohibited.
 */:root{--color-violet: #8B5CF6;--color-violet-light: #A78BFA;--color-violet-dark: #7C3AED;--color-violet-glow: rgba(139, 92, 246, .4);--color-violet-soft: rgba(139, 92, 246, .1);--color-blue: #3B82F6;--color-blue-light: #60A5FA;--bg: #FAFAFA;--bg-elevated: #FFFFFF;--bg-subtle: #F4F4F5;--text: #18181B;--text-muted: #52525B;--text-subtle: #71717A;--border: #E4E4E7;--border-hover: #D4D4D8;--accent: var(--color-violet);--accent-light: var(--color-violet-light);--accent-dark: var(--color-violet-dark);--accent-glow: var(--color-violet-glow);--accent-soft: rgba(139, 92, 246, .08);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--space-section: clamp(4rem, 10vw, 7rem);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--container-max: 1200px;--sidebar-width: 40px;--nav-drawer-width: 280px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-glow: 0 0 40px var(--accent-glow);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--transition-theme: .5s ease;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--tr-fast: .2s var(--ease-out-expo);--tr-medium: .3s var(--ease-out-expo);--tr-slow: .5s var(--ease-out-expo)}html.scrolled-dark,body.scrolled-dark{--bg: #09090B;--bg-elevated: #18181B;--bg-subtle: #27272A;--text: #FAFAFA;--text-muted: #A1A1AA;--text-subtle: #71717A;--border: #27272A;--border-hover: #3F3F46;--accent-soft: rgba(139, 92, 246, .18);--shadow-glow: 0 0 50px rgba(139, 92, 246, .5)}html.scrolled-orange,body.scrolled-orange{--bg: #FF6A00;--bg-elevated: rgba(255, 255, 255, .2);--bg-subtle: rgba(255, 255, 255, .15);--text: #46146E;--text-muted: #5A1E8C;--text-subtle: #6B21A8;--border: rgba(70, 20, 110, .25);--border-hover: rgba(70, 20, 110, .4);--accent: #46146E;--accent-light: #6B21A8;--accent-dark: #3B1162;--accent-soft: rgba(70, 20, 110, .15);--accent-glow: rgba(70, 20, 110, .4);--shadow-glow: 0 8px 32px rgba(70, 20, 110, .25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:none;background-color:#fafafa;background-color:var(--bg);transition:background-color 1.2s cubic-bezier(.4,0,.2,1)}html.smooth-scroll{scroll-behavior:auto}html::-webkit-scrollbar{display:none}@media(max-width:768px){html:not(.scrolled-dark):not(.scrolled-orange){background-color:#fafafa!important}}body{font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--text);background-color:transparent!important;overflow-x:hidden;overflow-x:clip;transition:none}html.theme-ready,html.theme-ready body{transition:background 1.2s cubic-bezier(.4,0,.2,1),background-color 1.2s cubic-bezier(.4,0,.2,1),color .8s ease}html.scrolled-dark,html.scrolled-orange,html.theme-ready{background-color:var(--bg)}#tsparticles{position:fixed;inset:0;z-index:-1;pointer-events:none}body.page--home:not(.scrolled-dark):not(.scrolled-orange) #tsparticles,body.page--home:not(.scrolled-dark):not(.scrolled-orange) .floating-particles{-webkit-mask-image:linear-gradient(to right,#000 0%,#000 42%,transparent 62%,transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 42%,transparent 62%,transparent 100%)}body.page--home.scrolled-dark #tsparticles,body.page--home.scrolled-orange #tsparticles,body.page--home.scrolled-dark .floating-particles,body.page--home.scrolled-orange .floating-particles{-webkit-mask-image:none;mask-image:none}body.page--home.scrolled-dark #tsparticles{opacity:1;visibility:visible}body.page--home.scrolled-dark #tsparticles canvas{opacity:.72!important}@media(max-width:768px){#tsparticles{background-color:#fafafa}#tsparticles,#tsparticles canvas,#starfield-canvas,.gradient-bg,.floating-particles{height:var(--stable-viewport-height, 100svh)!important}body.page--home:not(.scrolled-dark):not(.scrolled-orange) #tsparticles,body.page--home:not(.scrolled-dark):not(.scrolled-orange) .floating-particles{-webkit-mask-image:linear-gradient(to right,#000 0%,#000 28%,transparent 52%,transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 28%,transparent 52%,transparent 100%)}html.scrolled-dark #tsparticles{background-color:#09090b}html.scrolled-orange #tsparticles{background-color:#ff6a00}}#starfield-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 0s 1s}body.nav-open{overflow:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none;transition:color var(--tr-fast)}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}ul,ol{list-style:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.gradient-bg{position:fixed;inset:0;z-index:-2;overflow:hidden}.gradient-blob{position:absolute;border-radius:50%;filter:blur(120px);opacity:.25;animation:float 25s ease-in-out infinite;transition:opacity var(--transition-theme)}.gradient-blob--1{width:600px;height:600px;background:linear-gradient(135deg,var(--color-violet) 0%,var(--color-violet-light) 100%);top:-200px;right:-100px;animation-delay:0s}.gradient-blob--2{width:500px;height:500px;background:linear-gradient(135deg,var(--color-violet-light) 0%,#C4B5FD 100%);bottom:-150px;left:-100px;animation-delay:-7s}.gradient-blob--3{width:400px;height:400px;background:linear-gradient(135deg,#DDD6FE 0%,var(--color-violet) 100%);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:-14s;opacity:.15}html.scrolled-dark .gradient-blob,html.scrolled-dark .gradient-blob--3{opacity:0}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,-30px) scale(1.05)}50%{transform:translate(-20px,20px) scale(.95)}75%{transform:translate(-30px,-20px) scale(1.02)}}@media(max-width:768px){.gradient-bg{display:none!important}}@media(prefers-reduced-motion:reduce){.gradient-blob{animation:none}}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-xl)}@media(max-width:768px){.container{padding:0 var(--space-lg)}}main{position:relative;padding-left:calc(var(--sidebar-width) + var(--space-lg));padding-right:calc(var(--sidebar-width) + var(--space-lg))}@media(max-width:768px){main{padding-left:var(--space-md);padding-right:var(--space-md)}}.header-brand{position:fixed;top:2.5rem;left:2.5rem;z-index:1000;height:48px;display:inline-flex;align-items:center;text-decoration:none;color:var(--text);font-family:var(--font-sans);font-size:1.45rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px);transition:opacity .3s cubic-bezier(.16,1,.3,1),visibility .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1),color .45s cubic-bezier(.16,1,.3,1)}.header-brand:hover{color:var(--accent)}.header-brand__short{display:none}.header-actions{position:fixed;top:2.5rem;right:2.5rem;z-index:1000;display:flex;align-items:center;gap:var(--space-sm);transition:opacity var(--tr-fast),visibility var(--tr-fast)}body.nav-open .header-actions{opacity:0;visibility:hidden;pointer-events:none}.pill{display:inline-flex;align-items:center;height:48px;padding:0 1.625rem;border:1px solid transparent;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:.875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--tr-medium),border-color var(--tr-medium),color var(--tr-medium),opacity var(--tr-medium),visibility var(--tr-medium),transform var(--tr-medium)}.pill:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.pill--talk{background:var(--text);color:var(--bg)}.pill--talk:hover{background:var(--accent);color:#fff}html.scrolled-dark .pill--talk,body.scrolled-dark .pill--talk{background:#ff6b2c;color:#18181b}html.scrolled-orange .pill--talk,body.scrolled-orange .pill--talk{color:#fff}html.scrolled-orange .pill--talk:hover,body.scrolled-orange .pill--talk:hover{background:var(--accent-light);color:#fff}body.contact-visible .pill--talk{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px)}body.page--home:not(.hero-passed) .pill--talk{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px)}html.pv-open body.page--home .pill--talk{opacity:1;visibility:visible;pointer-events:auto;transform:none}.pill__arrow{display:inline-flex;overflow:hidden;width:0;margin-right:0;transition:width var(--tr-medium),margin-right var(--tr-medium)}.pill__arrow i{display:inline-block;font-style:normal;transform:translate(-100%);transition:transform var(--tr-medium)}.pill--talk:hover .pill__arrow,.pill--talk:focus-visible .pill__arrow{width:.9em;margin-right:.5em}.pill--talk:hover .pill__arrow i,.pill--talk:focus-visible .pill__arrow i{transform:translate(0)}.pill__dot{width:5px;height:5px;margin-left:.7em;border-radius:var(--radius-full);background:currentColor;transition:width var(--tr-medium),margin-left var(--tr-medium),opacity var(--tr-medium)}.pill--talk:hover .pill__dot,.pill--talk:focus-visible .pill__dot{width:0;margin-left:0;opacity:0}.pill--menu{background:var(--bg-elevated);color:var(--text);border-color:var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.pill--menu:hover{border-color:var(--accent);color:var(--accent)}.pill__dots{display:inline-flex;align-items:center;gap:4px;margin-left:.7em;transition:transform var(--tr-medium)}.pill__dots i{width:5px;height:5px;border-radius:var(--radius-full);background:currentColor}.pill--menu:hover .pill__dots,.pill--menu:focus-visible .pill__dots,.pill--menu[aria-expanded=true] .pill__dots{transform:rotate(90deg)}.pill__arrow--static,.pill__arrow--end{position:absolute;top:50%;flex:none;align-items:center;justify-content:center;width:.9em;height:1.3em;line-height:1;margin:0;overflow:visible;opacity:1;pointer-events:none;transition:transform var(--transition-slow)}.pill__arrow--static{left:var(--space-md);transform:translate3d(0,-50%,0);transition-delay:.2s}.pill__arrow--end{right:var(--space-md);transform:translate3d(calc(var(--space-xl) + var(--space-xs)),-50%,0);transition-delay:0s}.pill__arrow--static i,.pill__arrow--end i{line-height:1;transform:translateY(-.01em);transition:none}.pill--back{position:relative;background:#fff;color:#111;border:1px solid rgba(255,255,255,.9);box-shadow:0 4px 16px #0000002e;font-family:var(--font-sans);font-weight:600;letter-spacing:.08em;text-transform:uppercase;justify-content:center;padding-inline:calc(var(--space-xl) + var(--space-xs));overflow:hidden}.pill--back:hover{background:#fff;color:#000;box-shadow:0 6px 22px #00000047;transform:translateY(-1px)}.pill--back:hover .pill__arrow--static{transform:translate3d(calc(0px - var(--space-xl)),-50%,0);transition-delay:0s}.pill--back:hover .pill__arrow--end{transform:translate3d(0,-50%,0);transition-delay:.2s}html.pv-open .header-actions{z-index:9998}html.pv-open .header-brand{left:6vw;opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);z-index:9998;color:var(--project-accent)}html.pv-open .header-brand:hover{opacity:.85}html.pv-open .nav-drawer{z-index:9999}html.pv-open .nav-overlay{z-index:9998}html.pv-open .pill--menu{background:var(--project-accent);color:var(--project-fg);border-color:transparent}html.pv-open .pill--back{background:#fff;color:#111;border:none;box-shadow:0 4px 18px #00000040}html.pv-open .pill--back:hover{background:#fff;color:#000;box-shadow:0 6px 24px #00000059;transform:translateY(-1px)}html.pv-open .pill--talk{background:var(--project-fg);color:var(--project-bg)}@media(max-width:900px),(hover:none){html.pv-open .header-brand{left:var(--space-lg)}}@media(max-width:640px){.header-actions{top:var(--space-md);right:var(--space-md);gap:var(--space-xs)}.header-brand{top:var(--space-md);left:var(--space-md);height:40px;font-size:.85rem;letter-spacing:.08em}html.pv-open .header-brand{left:var(--space-lg);font-size:1.15rem;height:40px}.pill{height:40px;padding:0 var(--space-md);font-size:.75rem;letter-spacing:.04em}.pill--back{padding-inline:var(--space-lg)}.pill__arrow--static{left:var(--space-sm)}.pill__arrow--end{right:var(--space-sm)}}@media(max-width:480px){.header-brand__full{display:none}.header-brand__short{display:inline;font-weight:800;letter-spacing:.08em}}@media(prefers-reduced-motion:reduce){.pill,.pill__arrow,.pill__arrow i,.pill__dot,.pill__dots{transition:none}}.menu-toggle{position:fixed;top:2.5rem;right:2.5rem;z-index:1000;width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:border-color var(--tr-fast),box-shadow var(--tr-fast),transform var(--tr-fast),background-color var(--transition-theme)}body.scrolled-dark .menu-toggle,html.scrolled-dark .menu-toggle{background:#18181bcc}.menu-toggle:hover{border-color:var(--accent);box-shadow:var(--shadow-glow);transform:scale(1.05)}.menu-toggle__bar{width:20px;height:2px;background:var(--text);border-radius:var(--radius-full);transition:transform var(--transition-fast),opacity var(--transition-fast),background-color var(--transition-theme)}.menu-toggle[aria-expanded=true] .menu-toggle__bar:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.menu-toggle[aria-expanded=true] .menu-toggle__bar:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .menu-toggle__bar:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.nav-drawer{position:fixed;top:0;right:0;z-index:999;width:min(350px,90vw);height:100vh;padding:var(--space-2xl) var(--space-xl);background:#ffffffe6;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-left:1px solid rgba(139,92,246,.1);transform:translate(100%);transition:transform .5s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.nav-drawer.is-open{transform:translate(0)}body.scrolled-dark .nav-drawer,html.scrolled-dark .nav-drawer{background:#09090beb;border-left-color:#8b5cf633}body.scrolled-orange .nav-drawer,html.scrolled-orange .nav-drawer{background:#f97316f2;border-left-color:#581c8733}@media(max-width:768px){.nav-drawer{height:100dvh;padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}}.nav-drawer__close{position:absolute;top:var(--space-lg);right:var(--space-lg);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:50%;color:var(--text);cursor:pointer;transition:all .3s ease}.nav-drawer__close:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:rotate(90deg)}body.scrolled-orange .nav-drawer__close{border-color:#46146e4d;color:#46146e}body.scrolled-orange .nav-drawer__close:hover{background:#46146e;border-color:#46146e;color:#fff}.nav-drawer__header{margin-bottom:var(--space-2xl);padding-top:var(--space-xl)}.nav-drawer__name{display:block;font-size:1.25rem;font-weight:700;color:var(--text);margin-bottom:var(--space-xs)}.nav-drawer__tag{display:inline-block;font-size:.75rem;font-weight:500;color:var(--accent);background:var(--accent-soft);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full)}body.scrolled-orange .nav-drawer__name{color:#46146e}body.scrolled-orange .nav-drawer__tag{background:#46146e26;color:#46146e}.nav-drawer__list{list-style:none;padding:0;margin:0 0 var(--space-xl) 0;flex:1}.nav-drawer__item{opacity:0;transform:translate(30px);transition:opacity .4s ease,transform .4s ease;transition-delay:calc(var(--i) * .08s)}.nav-drawer.is-open .nav-drawer__item{opacity:1;transform:translate(0)}.nav-drawer__link{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;text-decoration:none;color:var(--text);font-size:1.15rem;font-weight:500;position:relative;transition:all .3s ease}.nav-drawer__link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--accent);transition:width var(--tr-medium)}.nav-drawer__link:hover{color:var(--accent);padding-left:var(--space-sm)}.nav-drawer__link:hover:after{width:100%}body.scrolled-orange .nav-drawer__link:hover{color:#3b1162}body.scrolled-orange .nav-drawer__link:after{background:#46146e}.nav-drawer__icon{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);opacity:.6;min-width:24px}body.scrolled-orange .nav-drawer__icon{color:#581c87}.nav-drawer__link.is-active{color:var(--accent)}.nav-drawer__link.is-active .nav-drawer__icon{opacity:1}.nav-drawer__link.is-active:after{width:60%}body.scrolled-orange .nav-drawer__link.is-active{color:#3b1162}.nav-drawer__pages{margin:0 calc(var(--space-xl) * -1) var(--space-lg);padding:var(--space-lg) var(--space-xl);background:#8b5cf614;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:0}.nav-drawer__pages-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.nav-drawer__pages-label:before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.nav-drawer__page-link{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);margin:var(--space-sm) 0;font-size:1rem;font-weight:600;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);transition:all .3s ease}.nav-drawer__page-link:before{content:"\2192";font-size:1.1rem;color:var(--accent);transition:transform .3s ease}.nav-drawer__page-link:hover{color:#fff;background:var(--accent);border-color:var(--accent);transform:translate(4px);box-shadow:0 4px 15px var(--accent-glow)}.nav-drawer__page-link:hover:before{transform:translate(4px)}body.scrolled-dark .nav-drawer__pages{background:#8b5cf61a}body.scrolled-dark .nav-drawer__page-link{background:#ffffff0d;border-color:#8b5cf633}body.scrolled-dark .nav-drawer__page-link:hover{background:var(--accent);border-color:var(--accent)}body.scrolled-orange .nav-drawer__pages{background:#46146e1f}body.scrolled-orange .nav-drawer__pages-label{color:#46146e}body.scrolled-orange .nav-drawer__pages-label:before{background:#46146e}body.scrolled-orange .nav-drawer__page-link{color:#46146e;background:#fff6;border-color:#46146e4d}body.scrolled-orange .nav-drawer__page-link:before{color:#46146e}body.scrolled-orange .nav-drawer__page-link:hover{color:#fff;background:#46146e;border-color:#46146e;box-shadow:0 4px 15px #46146e66}.nav-drawer__footer{padding-top:var(--space-lg);border-top:1px solid var(--border)}.nav-drawer__lang{display:flex;align-items:center;gap:var(--space-sm)}.lang-separator{color:var(--text-muted);opacity:.5}.nav-overlay{position:fixed;inset:0;z-index:998;background:#00000080;opacity:0;visibility:hidden;transition:all var(--transition-normal)}.nav-overlay.is-visible{opacity:1;visibility:visible}.lang-switch{display:flex;gap:var(--space-sm)}.lang-btn{padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:500;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.lang-btn:hover{border-color:var(--accent);color:var(--accent)}.lang-btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.sidebar{position:fixed;bottom:0;z-index:100;display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);opacity:0;pointer-events:none;transform:translateY(-50px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}.sidebar--left{left:var(--space-xl)}.sidebar--right{right:var(--space-xl)}body.sidebar-visible .sidebar{opacity:1;pointer-events:auto;transform:translateY(0)}body.contact-visible .sidebar{opacity:0;pointer-events:none;transform:translateY(-50px)}.sidebar__icon{color:var(--text-muted);font-size:1.25rem;padding:var(--space-sm);transition:color var(--transition-fast),transform var(--transition-fast)}.sidebar__icon:hover{color:var(--accent);transform:translateY(-3px)}.sidebar__email{writing-mode:vertical-rl;font-size:.875rem;font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-muted);padding:var(--space-md) var(--space-sm);transition:color var(--transition-fast),letter-spacing var(--transition-fast)}.sidebar__email:hover{color:var(--accent);letter-spacing:.08em}.sidebar__line{width:1px;height:90px;background:var(--text-subtle)}@media(max-width:768px){.sidebar{display:none}}.section__kicker{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:var(--space-sm)}.section__title{font-size:clamp(2rem,5vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.2;margin-bottom:var(--space-md);color:var(--text);transition:color var(--transition-theme)}.section__subtitle{font-size:1.125rem;color:var(--text-muted);max-width:600px;margin-bottom:var(--space-2xl)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.9rem 1.85rem;font-size:.95rem;font-weight:600;text-decoration:none;border-radius:12px;overflow:hidden;isolation:isolate;transition:color .3s ease,transform .2s ease,box-shadow .3s ease,border-color 0s;z-index:1;white-space:nowrap}.btn:after{content:"";position:absolute;top:-50%;left:-10%;width:150%;height:200%;transform:translate(-150%) rotate(20deg);transform-origin:bottom left;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease;z-index:-1;opacity:0;pointer-events:none}.btn:hover:after{transform:translate(0) rotate(0);opacity:1}.btn:active{opacity:.9}.btn--primary{background:var(--accent);color:#fff;border:2px solid var(--accent)}.btn--primary:after{background:#7c3aed}.btn--primary:hover{color:#fff;box-shadow:0 8px 24px #8b5cf666}body.scrolled-dark .btn--primary{background:var(--accent);border-color:var(--accent)}body.scrolled-dark .btn--primary:after{background:#6d28d9}body.scrolled-dark .btn--primary:hover{box-shadow:0 8px 24px #8b5cf680}body.scrolled-orange .btn--primary{background:#581c87;border-color:#581c87;color:#fff}body.scrolled-orange .btn--primary:after{background:#3b0764}body.scrolled-orange .btn--primary:hover{box-shadow:0 8px 24px #581c8780}.btn--secondary{background:transparent;color:var(--accent);border:2px solid var(--accent)}.btn--secondary:after{background:#ff6b2c}.btn--secondary:not(:hover):after{opacity:0!important;transform:translate(-150%) rotate(20deg)!important}.btn--secondary:hover{color:#fff;border-color:#ff6b2c;box-shadow:0 8px 24px #ff6b2c59}body.scrolled-dark .btn--secondary{color:var(--accent);border-color:var(--accent)}body.scrolled-dark .btn--secondary:after{background:#ff6b2c}body.scrolled-dark .btn--secondary:hover{color:#fff;border-color:#ff6b2c;box-shadow:0 8px 24px #ff6b2c66}body.scrolled-orange .btn--secondary{color:#46146e;border-color:#46146e;background:transparent}body.scrolled-orange .btn--secondary:after{background:#ff6b2c}body.scrolled-orange .btn--secondary:hover{color:#46146e;border-color:#ff6b2c;box-shadow:0 8px 24px #ff6b2c66}.btn--large{padding:var(--space-lg) var(--space-2xl);font-size:1.125rem}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);font-size:.875rem;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-full);transition:background-color var(--tr-fast),border-color var(--tr-fast),color var(--tr-fast),transform var(--tr-fast)}.badge:hover{transform:scale(1.05)}.badge i{font-size:.75rem;color:var(--accent)}.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:var(--space-4xl) 0;overflow:hidden}.hero>.container{position:relative;z-index:1}.hero__kicker{font-size:1rem;font-weight:500;color:var(--accent);margin-bottom:var(--space-lg)}.hero__title{font-size:clamp(2.5rem,8vw,4rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;margin-bottom:var(--space-md)}.hero__title>span:first-child{display:inline-block;opacity:0;transform:translateY(20px);animation:heroFadeIn .8s cubic-bezier(.4,0,.2,1) .3s forwards;will-change:transform,opacity}.hero__name{display:block;min-width:300px;min-height:1.1em;width:fit-content;position:relative;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:0;transform:translateY(30px);animation:heroFadeIn 1s cubic-bezier(.4,0,.2,1) .6s forwards}.hero__name:after{content:attr(data-text);position:absolute;left:0;top:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.8) 50%,transparent 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;background-size:200% 100%;background-position:-100% 0;animation:heroShine 3s ease-in-out 1.8s forwards}@keyframes heroFadeIn{to{opacity:1;transform:translateY(0)}}@keyframes heroShine{0%{background-position:-100% 0;opacity:0}20%{opacity:1}to{background-position:200% 0;opacity:0}}.hero__name{text-shadow:0 0 0 transparent;animation:heroFadeIn 1s cubic-bezier(.4,0,.2,1) .6s forwards,heroGlow 4s ease-in-out 2.5s infinite}@keyframes heroGlow{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 20px rgba(139,92,246,.3))}}body.scrolled-dark .hero__name{animation:heroFadeIn 1s cubic-bezier(.4,0,.2,1) .6s forwards,heroGlowDark 4s ease-in-out 2.5s infinite}@keyframes heroGlowDark{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 30px rgba(139,92,246,.5))}}body.scrolled-orange .hero__name{animation:heroFadeIn 1s cubic-bezier(.4,0,.2,1) .6s forwards,heroGlowOrange 4s ease-in-out 2.5s infinite}@keyframes heroGlowOrange{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 20px rgba(70,20,110,.4))}}@media(prefers-reduced-motion:reduce){.hero__title>span:first-child,.hero__name{opacity:1;transform:none;animation:none}.hero__name:after{display:none}}.hero__tagline{font-size:clamp(1.25rem,3vw,1.75rem);font-weight:600;color:var(--text);margin-bottom:var(--space-lg);min-height:3.4em}.hero__name{white-space:nowrap!important}@media(max-width:768px){[data-scramble]:not(.scramble-done) .shuffle-char:not(.space){display:inline-block;min-width:.42em;text-align:center}}@media(max-width:768px){.hero__tagline{min-height:3.4em}}.typewriter-container{display:inline-block;min-height:1.5em;min-width:130px;text-align:left}.typewriter-text{color:inherit}.typewriter-cursor{color:var(--accent);font-weight:300;animation:blink 1s infinite;margin-left:2px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.hero__subtitle{font-size:1.125rem;color:var(--text-muted);max-width:600px;margin-bottom:var(--space-2xl)}.hero__subtitle-copy--mobile,.hero__announcement-copy--mobile{display:none}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-2xl)}.hero__actions .btn--primary{background:#fff;border-color:var(--border);color:#18181b;box-shadow:0 8px 24px #18181b1a}.hero__actions .btn--primary:after{background:#18181b}.hero__actions .btn--primary:hover,.hero__actions .btn--primary:focus-visible{color:#fff;border-color:#18181b;box-shadow:0 10px 28px #18181b2e}.hero__actions .hero__projects-link.btn{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 24px #8b5cf64d}.hero__actions .hero__projects-link.btn:after{background:var(--accent-dark)}.hero__actions .hero__projects-link.btn:hover,.hero__actions .hero__projects-link.btn:focus-visible{background:var(--accent);border-color:var(--accent-dark);color:#fff;box-shadow:0 10px 30px #8b5cf66b}.contact__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-2xl)}.hero__badges{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.hero__note{margin-top:var(--space-md);font-size:.8rem;color:var(--text-subtle)}.about{padding:var(--space-section) 0}.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3xl);align-items:start}@media(max-width:900px){.about__grid{grid-template-columns:1fr}}.about__content p{color:var(--text-muted);margin-bottom:var(--space-lg)}.about__resume-link{margin-top:var(--space-lg)}.about__lead{font-size:1.125rem;color:var(--text)!important;font-weight:400}.about__lead .about__hl{color:var(--accent);font-weight:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}.about__highlights{display:flex;flex-direction:column;gap:var(--space-md)}.highlight-card{display:flex;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md)}.highlight-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-md);font-size:1.25rem;flex-shrink:0}.highlight-card__content h3{font-size:1rem;font-weight:600;margin-bottom:var(--space-xs)}.highlight-card__content p{font-size:.875rem;color:var(--text-muted);margin:0}.projects{padding:0 0 var(--space-section)}.projects__intro{min-height:auto;display:flex;flex-direction:column;justify-content:center;position:relative;padding:clamp(3rem,6vh,4.5rem) 0 clamp(1.25rem,2.5vh,2rem);overflow:hidden}.projects__intro:before{content:"";position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);width:clamp(320px,65vw,900px);height:clamp(220px,45vh,520px);background:radial-gradient(ellipse at center,rgba(139,92,246,.055) 0%,rgba(59,130,246,.025) 45%,transparent 72%);pointer-events:none;z-index:0;filter:blur(50px)}.projects__intro-container{display:flex;flex-direction:column;justify-content:space-between;width:100%;position:relative;z-index:1}.projects__intro-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(1.5rem,3.5vh,2.75rem)}.projects__intro-eyebrow{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:0}.projects__intro-counter{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.12em;color:var(--text-subtle);opacity:.75}.projects__intro-title{font-family:var(--font-sans);font-size:clamp(4.5rem,14.2vw,14.8rem);font-weight:700;line-height:.82;letter-spacing:-.055em;text-transform:uppercase;color:var(--text);margin:0 0 clamp(1.75rem,4vh,2.75rem) 0;padding:0;display:block;width:100%;user-select:none;-webkit-user-select:none;will-change:transform,opacity,letter-spacing;transition:color var(--transition-theme)}.projects__intro-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:2.5rem}.projects__intro-desc{font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.55;color:#fff;max-width:460px;margin:0}.pill--cta{height:56px;padding:0 2.25rem;font-size:.875rem;font-weight:600;letter-spacing:.08em;background:var(--color-violet);color:#fff;border-color:#a78bfa80;box-shadow:0 4px 24px #8b5cf642;position:relative;overflow:hidden;isolation:isolate;flex-shrink:0;transition:transform var(--tr-medium),border-color var(--tr-medium),color var(--tr-medium),box-shadow var(--tr-medium)}.projects__intro-cta{margin-right:clamp(5rem,9.2vw,8.25rem)}.pill--cta:before{content:"";position:absolute;inset:0;background:#fafafa;transform:scaleX(0);transform-origin:right center;transition:transform var(--tr-medium);z-index:0}.pill--cta:hover:before,.pill--cta:focus-visible:before{transform:scaleX(1);transform-origin:left center}.pill--cta:hover,.pill--cta:focus-visible{color:#46146e;border-color:#8b5cf699;transform:scale(1.02);box-shadow:0 8px 32px #8b5cf657}.pill--cta .pill__arrow,.pill--cta .pill__label,.pill--cta .pill__dot{position:relative;z-index:1}.pill--cta:hover .pill__arrow,.pill--cta:focus-visible .pill__arrow{width:.9em;margin-right:.5em}.pill--cta:hover .pill__arrow i,.pill--cta:focus-visible .pill__arrow i{transform:translate(0)}.pill--cta:hover .pill__dot,.pill--cta:focus-visible .pill__dot{width:0;margin-left:0;opacity:0}.projects__intro-eyebrow,.projects__intro-counter,.projects__intro-desc,.projects__intro-cta{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease-out-expo),transform .7s var(--ease-out-expo)}.projects__intro-eyebrow,.projects__intro-counter{transition-delay:.02s}.projects__intro-title{opacity:0;transform:translateY(28px);letter-spacing:-.02em;transition:opacity .85s var(--ease-out-expo),transform .85s var(--ease-out-expo),letter-spacing 1s var(--ease-out-expo);transition-delay:.08s}.projects__intro-desc{transition-delay:.16s}.projects__intro-cta{transition-delay:.24s}.projects__intro.is-visible .projects__intro-eyebrow,.projects__intro.is-visible .projects__intro-counter,.projects__intro.is-visible .projects__intro-desc,.projects__intro.is-visible .projects__intro-cta{opacity:1;transform:translateY(0)}.projects__intro.is-visible .projects__intro-title{opacity:1;transform:translateY(0);letter-spacing:-.055em}.chapter-curtain{position:fixed;inset:0;z-index:1000000;pointer-events:none;display:none;overflow:hidden}.chapter-curtain.is-active{display:block;pointer-events:auto}.chapter-curtain__glass{position:absolute;inset:0;pointer-events:none;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);-webkit-mask-image:radial-gradient(circle var(--glass-radius, 0px) at var(--glass-x, 0px) var(--glass-y, 0px),transparent 70%,rgba(0,0,0,.35) 85%,transparent 100%);mask-image:radial-gradient(circle var(--glass-radius, 0px) at var(--glass-x, 0px) var(--glass-y, 0px),transparent 70%,rgba(0,0,0,.35) 85%,transparent 100%)}.chapter-curtain__glass--center{-webkit-mask-image:radial-gradient(circle var(--glass-radius, 0px) at var(--glass-x, 0px) var(--glass-y, 0px),#000 70%,transparent 100%);mask-image:radial-gradient(circle var(--glass-radius, 0px) at var(--glass-x, 0px) var(--glass-y, 0px),#000 70%,transparent 100%)}.chapter-curtain__surface{position:absolute;inset:0;background:transparent;will-change:clip-path,transform}body.chapter-orb-active .custom-cursor,body.chapter-orb-active .jelly-blob{visibility:hidden}@media(max-width:900px){.projects__intro{min-height:auto;padding:clamp(3.5rem,6vh,4.5rem) 0 clamp(1.25rem,2.5vh,2rem)}.projects__intro-counter{display:none}.projects__intro-title{font-size:clamp(3.8rem,15vw,6.5rem);margin-bottom:1.5rem}.projects__intro-bottom{flex-direction:column;align-items:flex-start;gap:1.5rem}.projects__intro-desc{align-self:center;max-width:100%;text-align:center}.pill--cta{height:50px;padding:0 1.75rem;margin-right:0;font-size:.8125rem}}@media(max-width:480px){.projects__intro-title{font-size:clamp(3.9rem,17.2vw,5.2rem);letter-spacing:-.04em}.pill--cta{width:100%;justify-content:center}}@media(prefers-reduced-motion:reduce){.projects__intro-eyebrow,.projects__intro-counter,.projects__intro-title,.projects__intro-desc,.projects__intro-cta{opacity:1!important;transform:none!important;letter-spacing:-.055em!important;transition:none!important}.pill--cta,.pill--cta:before{transition:none!important}}.projects__bleed{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:0 5vw}.projects__group-title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:var(--space-2xl) 0 var(--space-lg)}.projects__group-title:first-of-type{margin-top:clamp(1.25rem,2.5vh,2rem)}.projects__grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:2vw;row-gap:80px}@media(max-width:900px){.projects__group-title{text-align:right}.projects__grid{grid-template-columns:1fr;row-gap:var(--space-2xl)}.projects__intro-cta{margin-right:0;max-width:100%}.projects__bleed{width:100%;margin-inline:0;padding-inline:0}.project-card{min-width:0}.project-card__title{overflow-wrap:anywhere}.project-card__tags{line-height:1.5}}@media(max-width:768px),(hover:none){.custom-cursor,.jelly-blob{display:none!important}.pill{min-height:44px}[data-aos=fade-left]:not(.aos-animate),[data-aos=fade-right]:not(.aos-animate){transform:translate3d(0,var(--space-lg),0)}}@media(max-width:480px){.projects__intro-cta{width:100%;justify-content:center}.projects__intro-desc{font-size:1rem}.hero__name{min-width:0;max-width:100%;overflow-wrap:anywhere}.hero__title{font-size:clamp(2rem,9vw,2.5rem)}.contact__actions{width:100%}.contact__actions>a{width:100%;max-width:100%;padding-inline:var(--space-md)}}@media(max-width:768px){.hero{height:var(--mobile-hero-height, auto);min-height:var(--mobile-hero-height, auto);padding:4.25rem 0 2.25rem}.hero__kicker{margin-bottom:1rem;font-size:.875rem}.hero__title{margin-bottom:.75rem}.hero__tagline{min-height:2.8em;margin-bottom:1rem}.hero__subtitle{margin-bottom:1.25rem;font-size:1rem;line-height:1.55}.hero__subtitle-copy--desktop,.hero__announcement-copy--desktop{display:none}.hero__subtitle-copy--mobile,.hero__announcement-copy--mobile{display:inline}.hero__announcement{width:100%;justify-content:center;margin-bottom:1.1rem!important;padding:.65rem .8rem!important;font-size:.78rem!important;white-space:nowrap}.hero__actions{width:100%;flex-direction:column;align-items:center;gap:var(--space-sm);margin-bottom:1.1rem}.hero__actions .btn--primary{width:100%;min-height:56px}.hero__actions .hero__projects-link.btn{width:100%;min-height:56px;padding:0 var(--space-xl);border:2px solid var(--accent);background:var(--accent);color:#fff;box-shadow:0 8px 24px #8b5cf64d}.hero__actions .hero__projects-link.btn:hover,.hero__actions .hero__projects-link.btn:focus-visible{color:#fff;background:var(--accent);border-color:var(--accent-dark);box-shadow:0 10px 30px #8b5cf666}.hero__badges{justify-content:center;gap:.35rem}.hero__badges .badge{padding:.25rem .5rem;font-size:.72rem}.hero__badges .badge:nth-child(3),.hero__note{display:none}}.project-card{display:block;text-decoration:none;color:inherit}.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:var(--radius-md)}.project-card__image{position:relative;width:100%;aspect-ratio:20 / 13;overflow:hidden;border-radius:var(--radius-lg);background:var(--accent-soft)}.project-card__image img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.card-stage{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}.project-card__image.is-warped{overflow:visible;background:none}.project-card__image.is-warped img{opacity:0}.project-card__tags{margin-top:1.35vw;font-family:var(--font-sans);font-size:.9vw;line-height:1.15;font-weight:400;letter-spacing:normal;text-transform:uppercase;color:var(--text)}.project-card__title{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;font-family:var(--font-sans);font-size:clamp(2.25rem,4.2vw,3.85rem);line-height:1.08;font-weight:500;letter-spacing:-.025em;margin-top:1.2vw;color:var(--text);transition:color var(--transition-fast, .15s)}@media(max-width:900px){.project-card__tags{margin-top:var(--space-md);font-size:.75rem;letter-spacing:.08em}.project-card__title{font-size:clamp(1.75rem,6.5vw,2.75rem);margin-top:var(--space-sm)}}.project-card__letters{display:inline-block;overflow:hidden;vertical-align:bottom;height:1.3em;margin-top:-.15em;margin-bottom:-.15em;padding-right:2.5em;margin-right:-2.5em}.project-card__letter{display:inline-block;vertical-align:top;height:1.3em;white-space:pre;will-change:transform}.project-card__letter>span{display:block;height:1.3em;line-height:1.3}.project-card__tags{min-height:1.15em}.project-card__arrow{position:absolute;left:0;top:calc(-.2em + 2px);overflow:hidden;width:max-content;height:1.3em;line-height:1.3;white-space:nowrap;color:var(--text);pointer-events:none}.project-card__arrow>span{display:inline-block;transform:translate(-100%);will-change:transform}.project-card__arrow svg,.projects__intro-cta .pill__arrow svg{width:1em;height:1em;vertical-align:-.125em}@media(prefers-reduced-motion:reduce){.project-card__arrow{position:static;margin-right:.83em}.project-card__arrow>span{transform:none}}.tech-tag{padding:6px 14px;font-size:.75rem;font-weight:600;background:linear-gradient(135deg,#8b5cf614,#a855f70d);color:var(--text-muted);border-radius:var(--radius-full);border:1px solid rgba(139,92,246,.1);transition:all .3s ease}.tech-tag:hover{background:linear-gradient(135deg,#8b5cf626,#a855f71a);color:var(--accent);border-color:#8b5cf640;transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf626}.techstack{padding-top:var(--space-section);padding-bottom:2rem}.marquee{width:100%;overflow:hidden;margin:var(--space-2xl) 0;padding:var(--space-xl) 0;background:var(--bg-elevated);border-top:1px solid var(--border);border-bottom:1px solid var(--border);transition:background-color var(--transition-theme),border-color var(--transition-theme)}.marquee__track{display:flex;width:fit-content;animation:marquee 30s linear infinite}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__content{display:flex;gap:var(--space-3xl);padding:0 var(--space-xl)}.tech-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);width:80px}.tech-item i{font-size:2.5rem;line-height:1;color:var(--color-blue);transition:color var(--transition-fast),transform var(--transition-fast),filter var(--transition-fast)}.tech-item:hover i{color:var(--color-blue-light);transform:translateY(-2px);filter:drop-shadow(0 0 8px rgba(59,130,246,.4))}.tech-item span{font-size:.75rem;font-weight:500;color:var(--text-muted);transition:color var(--transition-fast)}.tech-item:hover span{color:var(--text)}@media(prefers-reduced-motion:reduce){.marquee__track{animation:none}}.creative{padding:var(--space-section) 0}@media(min-width:769px){.creative{min-height:100vh;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding:clamp(3rem,6vh,5rem) 0}}.creative__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xl)}@media(max-width:768px){.creative__grid{grid-template-columns:1fr}}.creative-card{position:relative;min-height:300px;border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:flex-end}.creative-card--photo{background:linear-gradient(135deg,#1a1a2e,#16213e)}.creative-card--music{background:linear-gradient(135deg,#0f0f23,#1a1a2e)}.creative-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,#000c,#0003);transition:all var(--transition-normal)}.creative-card:hover .creative-card__overlay{background:linear-gradient(to top,#8b5cf6cc,#8b5cf64d)}.creative-card__content{position:relative;z-index:1;padding:var(--space-xl);color:#fff}.creative-card__content i{font-size:2rem;margin-bottom:var(--space-md);opacity:.8}.creative-card__content h3{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-sm)}.creative-card__content p{font-size:.95rem;opacity:.8;margin-bottom:var(--space-md)}.creative-card__tools{display:flex;gap:var(--space-md);margin-bottom:var(--space-md);opacity:.7;transition:opacity var(--transition-fast)}.creative-card:hover .creative-card__tools{opacity:1}.tool-icon{display:flex;flex-direction:column;align-items:center;gap:4px;color:#ffffffd9;transition:color var(--transition-fast),transform var(--transition-fast)}.tool-icon svg{width:20px;height:20px}.tool-icon span{font-size:.65rem;font-weight:500;white-space:nowrap}.tool-icon:hover{color:#fff;transform:scale(1.05)}.creative-card__cta{display:inline-flex;align-items:baseline;gap:var(--space-sm);font-size:.95rem;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3);opacity:0;transform:translateY(15px);transition:all .5s cubic-bezier(.34,1.56,.64,1)}.creative-card:hover .creative-card__cta{opacity:1;transform:translateY(0)}.creative-card__cta i{position:relative;top:2px;font-size:1.1em;color:var(--accent-light);transition:transform .4s cubic-bezier(.34,1.56,.64,1),color .3s ease}.creative-card:hover .creative-card__cta i{transform:translate(6px) scale(1.1);color:#fff}.creative-card__link{color:var(--accent);text-decoration:underline;text-underline-offset:2px;transition:color var(--transition-fast)}.creative-card__link:hover{color:#fff}.contact{padding-top:var(--space-section);padding-bottom:clamp(4rem,8vw,6rem);text-align:center}@media(min-width:769px){.contact{min-height:100vh;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding:clamp(3rem,6vh,5rem) 0}}@media(max-width:768px){.contact{padding:var(--space-section) 0}}.contact .section__subtitle{margin-left:auto;margin-right:auto}.contact .section__title{max-width:12ch;margin-left:auto;margin-right:auto;margin-bottom:clamp(1.25rem,2.5vw,2rem);padding-bottom:.12em;font-size:clamp(4.5rem,8.5vw,8rem);line-height:.88;letter-spacing:-.065em}.contact .section__title.text-reveal-ready .word{padding-bottom:.12em;margin-bottom:-.12em}.contact .section__title.text-reveal-ready.text-revealed .word{overflow:visible}@media(max-width:768px){.contact .section__title{max-width:9ch;font-size:clamp(2rem,12vw,5.25rem);line-height:.92;letter-spacing:-.055em}}.contact__content{display:flex;flex-direction:column;align-items:center;gap:var(--space-2xl)}.contact__info{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xl)}.contact__info p{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-muted)}.contact__info i{color:var(--accent)}.contact__social{display:flex;gap:var(--space-lg)}.contact__social a{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-full);transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.contact__social a:hover{color:#fff;background:var(--accent);border-color:var(--accent);transform:translateY(-3px)}.footer{padding:var(--space-2xl) 0;text-align:center;border-top:1px solid var(--border);transition:border-color var(--transition-theme),background-color var(--transition-theme)}.footer p{color:var(--text-muted);font-size:.875rem}.footer__legal{margin-top:var(--space-sm);font-size:.8rem!important;color:var(--text-subtle)!important}html.scrolled-orange,body.scrolled-orange{background:#ff6a00}body.scrolled-orange{background:transparent!important}html.scrolled-orange{background:#ff6a00}body.scrolled-orange .gradient-blob{opacity:.15}body.scrolled-orange .gradient-blob--1{background:linear-gradient(135deg,#46146e,#6b21a8)}body.scrolled-orange .gradient-blob--2{background:linear-gradient(135deg,#5a1e8c,#46146e)}body.scrolled-orange .menu-toggle{background:#ffffff40;backdrop-filter:blur(12px)}body.scrolled-orange .menu-toggle__bar{background:#46146e}body.scrolled-orange .nav-drawer{background:#ffa046f2}body.scrolled-orange .nav-drawer__link{color:#46146e}body.scrolled-orange .nav-drawer__link:hover{background:#46146e1a}body.scrolled-orange .sidebar__icon,body.scrolled-orange .sidebar__email{color:#46146e}body.scrolled-orange .sidebar__icon:hover,body.scrolled-orange .sidebar__email:hover{color:#3b1162}body.scrolled-orange .sidebar__line{background:#46146e}body.scrolled-orange .highlight-card{background:#fff3;backdrop-filter:blur(12px);border-color:#ffffff40}body.scrolled-orange .highlight-card:hover{background:#ffffff4d;border-color:#46146e66}body.scrolled-orange .highlight-card__icon{background:#46146e33;color:#46146e}body.scrolled-orange .tech-tag{background:#46146e26;color:#46146e;border:1px solid rgba(70,20,110,.3)}body.scrolled-orange .btn--primary{background:#1a0530;color:#fff;box-shadow:0 8px 24px #1a053080}body.scrolled-orange .btn--primary:hover{background:#2d0a4e;transform:translateY(-2px);box-shadow:0 12px 32px #1a053099}body.scrolled-orange .btn--secondary{border-color:#46146e;color:#46146e}body.scrolled-orange .btn--secondary:hover{background:#46146e1a}body.scrolled-orange .marquee{background:#ffffff59;border-color:#46146e4d;box-shadow:0 4px 20px #46146e26}body.scrolled-orange .tech-item i{color:#1a0530}body.scrolled-orange .tech-item span{color:#1a0530;font-weight:600}body.scrolled-orange .creative-card{box-shadow:0 8px 32px #46146e4d;border:1px solid rgba(70,20,110,.2)}body.scrolled-orange .creative-card--photo{background:linear-gradient(135deg,#2d1b4e,#1e1338)}body.scrolled-orange .creative-card--music{background:linear-gradient(135deg,#1e1338,#2d1b4e)}body.scrolled-orange .creative-card__overlay{background:linear-gradient(to top,#46146ee6,#46146e4d)}body.scrolled-orange .creative-card:hover .creative-card__overlay{background:linear-gradient(to top,#46146ef2,#46146e80)}body.scrolled-orange .contact__social a{background:#fff6;border-color:#1a05304d;color:#1a0530}body.scrolled-orange .contact__social a:hover{background:#1a0530;color:#fff;border-color:#1a0530}body.scrolled-orange .footer{background:#46146e1a;border-color:#46146e33}body.scrolled-orange .badge{background:#ffffff40;border-color:#46146e4d;color:#46146e}body.scrolled-orange .badge i{color:#46146e}body.scrolled-orange .section__kicker{color:#2d0a4e;text-shadow:0 1px 2px rgba(255,255,255,.2)}body.scrolled-orange .section__title,body.scrolled-orange .section__title .word,body.scrolled-orange .section__title .letter{color:#1a0530!important;-webkit-text-fill-color:#1A0530!important;text-shadow:none}body.scrolled-orange .section__subtitle{color:#2d0a4e}body.scrolled-orange .project-card__badge{background:#46146e33;color:#46146e}body.scrolled-orange .project-card__badge--award{background:#ffffff59;color:#7c2d12}body.scrolled-orange .project-card__badge--bootcamp{color:#46146e;background:#46146e26;border-color:#46146e4d}body.scrolled-orange .project-card__badge--soon,body.scrolled-orange .project-card__badge--concept{color:#fff}body.scrolled-orange .project-card__description{color:#5a1e8c}body.scrolled-orange .project-card__link{color:#46146e}body.scrolled-orange .project-card__link:hover{color:#3b1162}body.scrolled-orange .highlight-card__content h3{color:#46146e}body.scrolled-orange .highlight-card__content p{color:#5a1e8c}body.scrolled-orange .contact__info p{color:#1a0530;font-weight:500}body.scrolled-orange .contact__info i{color:#3b1162}body.scrolled-orange .footer p{color:#46146e}body.scrolled-orange .footer__legal{color:#5a1e8c!important}.section__title,.section__kicker,.section__subtitle,.highlight-card,.project-card,.tech-tag,.btn,.footer,.sidebar__icon,.sidebar__email,.nav-drawer,.menu-toggle,.marquee,.tech-item i,.tech-item span,.contact__social a,.badge,.gradient-blob{transition:background-color 1.2s cubic-bezier(.4,0,.2,1),background 1.2s cubic-bezier(.4,0,.2,1),color .8s ease,border-color .6s ease,box-shadow .6s ease}[data-aos]{transition-timing-function:cubic-bezier(.4,0,.2,1)}[data-aos=fade-right]{transform:translate(-100px);opacity:0}[data-aos=fade-right].aos-animate{transform:translate(0);opacity:1}[data-aos=fade-left]{transform:translate(100px);opacity:0}[data-aos=fade-left].aos-animate{transform:translate(0);opacity:1}[data-aos=fade-up]{transform:translateY(60px);opacity:0}[data-aos=fade-up].aos-animate{transform:translateY(0);opacity:1}[data-aos=zoom-in]{transform:scale(.8);opacity:0}[data-aos=zoom-in].aos-animate{transform:scale(1);opacity:1}@media(prefers-reduced-motion:reduce){[data-aos]{transform:none!important;opacity:1!important;transition:none!important}}@media(max-width:480px){:root{--space-section: 3rem}.hero{min-height:var(--mobile-hero-height, auto);padding:var(--space-3xl) 0}.hero__actions{flex-direction:column}.hero__actions .btn{width:100%}.btn--large{padding:var(--space-md) var(--space-xl);font-size:1rem}}@media(hover:none)and (pointer:coarse){#tsparticles,#tsparticles canvas,#starfield-canvas,.gradient-bg,.floating-particles{height:var(--stable-viewport-height, 100svh)!important}.hero{height:var(--mobile-hero-height, auto);min-height:var(--mobile-hero-height, auto)}}.project-card,.creative-card{transition:transform .4s cubic-bezier(.25,.46,.45,.94),box-shadow .4s cubic-bezier(.25,.46,.45,.94),border-color .3s ease,background-color var(--transition-theme)}.creative-card.aos-animate:hover,.creative-card:not([data-aos]):hover{transform:translateY(-6px)!important;box-shadow:0 16px 32px #0000001a;border-color:var(--accent)}body.scrolled-dark .project-card__badge{background:linear-gradient(135deg,#8b5cf64d,#a855f733);border-color:#8b5cf666;color:#fff}body.scrolled-dark .tech-tag{background:linear-gradient(135deg,#8b5cf61f,#a855f714);border-color:#8b5cf633;color:#ffffffb3}body.scrolled-dark .tech-tag:hover{background:linear-gradient(135deg,#8b5cf640,#a855f72e);border-color:#8b5cf666;color:#a855f7;box-shadow:0 4px 12px #8b5cf633}body.scrolled-dark .project-card__links{border-top-color:#8b5cf626}body.scrolled-dark .project-card__link:after{background:linear-gradient(90deg,#a855f7,#c084fc)}body.scrolled-orange .creative-card.aos-animate:hover{box-shadow:0 16px 32px #581c8726;border-color:#581c87}@media(prefers-reduced-motion:reduce){.project-card,.creative-card{transition:none}.project-card:hover,.creative-card:hover{transform:none!important}}.highlight-card{transform-style:preserve-3d;transition:border-color .3s ease,background-color var(--transition-theme)}.highlight-card:hover{border-color:var(--accent)}.highlight-card .js-tilt-glare{border-radius:inherit;overflow:hidden}.highlight-card .js-tilt-glare-inner{background:linear-gradient(135deg,#ffffff59,#fff0 60%)!important}body.scrolled-dark .highlight-card .js-tilt-glare-inner{background:linear-gradient(135deg,#8b5cf640,#8b5cf600 60%)!important}body.scrolled-orange .highlight-card .js-tilt-glare-inner{background:linear-gradient(135deg,#581c8740,#581c8700 60%)!important}@media(max-width:768px){.highlight-card{transform:none!important}}@media(prefers-reduced-motion:reduce){.highlight-card{transform:none!important}}.text-reveal-ready{overflow:hidden}.text-reveal-ready .word{display:inline-block;overflow:hidden}.text-reveal-ready .letter{display:inline-block;transform:translateY(100%);opacity:0;transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .6s ease;transition-delay:calc(var(--word-index) * .1s + var(--letter-index) * .03s)}.text-reveal-ready.text-revealed .letter{transform:translateY(0);opacity:1}.hero__title.text-reveal-ready .letter{transition-delay:calc(var(--word-index) * .15s + var(--letter-index) * .04s)}.section__title.text-reveal-ready .letter{transition-delay:calc(var(--word-index) * .08s + var(--letter-index) * .02s)}@media(prefers-reduced-motion:reduce){.text-reveal-ready .letter,.text-reveal-ready .word{transform:none!important;opacity:1!important;transition:none!important}}.hero__title.text-revealed .letter{text-shadow:0 0 0 transparent;animation:textGlow 2s ease-out forwards;animation-delay:calc(var(--word-index) * .15s + var(--letter-index) * .04s + .5s)}@keyframes textGlow{0%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 20px rgba(139,92,246,.4)}to{text-shadow:0 0 0 transparent}}body.scrolled-dark .hero__title.text-revealed .letter{animation-name:textGlowDark}@keyframes textGlowDark{0%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 30px rgba(139,92,246,.6)}to{text-shadow:0 0 0 transparent}}body.scrolled-orange .hero__title.text-revealed .letter{animation-name:textGlowOrange}@keyframes textGlowOrange{0%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 20px rgba(88,28,135,.4)}to{text-shadow:0 0 0 transparent}}.gradient-text{background:linear-gradient(135deg,#8b5cf6,#f97316);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero__name{background:linear-gradient(135deg,#8b5cf6,#a78bfa,#f59e0b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}body.scrolled-dark .section__kicker{color:#a78bfa!important}body.scrolled-dark .section__title,body.scrolled-dark .section__title .word,body.scrolled-dark .section__title .letter{color:#fafafa!important;-webkit-text-fill-color:#FAFAFA!important}body.scrolled-dark .section__subtitle{color:#a1a1aa!important}body.scrolled-orange .section__title{background:linear-gradient(135deg,#581c87,#6b21a8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.how-i-build{padding:var(--space-section) 0}.standards-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.65fr);align-items:end;gap:var(--space-xl)}.standards-header .section__kicker{grid-column:1 / -1;margin-bottom:0}.standards-header .section__title{max-width:8ch;margin-bottom:0;font-size:clamp(3.5rem,7vw,6.5rem);line-height:.9;letter-spacing:-.055em}.standards-header:after{content:"01 \2014  03";justify-self:end;padding-bottom:.45rem;color:var(--text-subtle);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.16em}.standards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem}@media(max-width:900px){.standards-header{grid-template-columns:1fr}.standards-header:after{display:none}.standards-grid{grid-template-columns:1fr;gap:1.5rem}}@media(max-width:768px){.standard-card{padding:1.5rem}.creative-card__cta{opacity:1!important;transform:translateY(0)!important}}.standard-card{position:relative;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem;transition:all var(--tr-medium);height:100%;display:flex;flex-direction:column;overflow:hidden}.standard-card__index{position:absolute;top:1.5rem;right:1.5rem;z-index:1;color:var(--text-subtle);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em}.standard-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#8b5cf61a,#a855f70d);opacity:0;transition:opacity .4s ease;pointer-events:none;z-index:0}.standard-card:hover{transform:translateY(-5px);border-color:var(--accent-light);box-shadow:0 12px 32px #0000001f,0 4px 12px #8b5cf626}.standard-card:hover:before{opacity:1}.standard-card:hover .standard-icon{transform:scale(1.1) rotate(-3deg)}.standard-icon{position:relative;z-index:1;width:56px;height:56px;background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin-bottom:2rem;transition:all var(--tr-medium)}.standard-title{position:relative;z-index:1;font-size:1.35rem;font-weight:700;color:var(--text);margin-bottom:1rem}.standard-text{position:relative;z-index:1;font-size:1.05rem;color:var(--text-muted);line-height:1.7;flex:1}html{scrollbar-width:thin;scrollbar-color:#8B5CF6 #18181B}html::-webkit-scrollbar{display:block;width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary, #18181B);border-radius:5px}::-webkit-scrollbar-thumb{background:var(--accent, #8B5CF6);border:2px solid var(--bg-secondary, #18181B);border-radius:5px;transition:all .3s ease}::-webkit-scrollbar-thumb:hover{background:#a78bfa;box-shadow:0 0 8px #8b5cf6,0 0 16px #8b5cf6,0 0 24px #a78bfa,inset 0 0 8px #fff3;border-color:transparent}::-webkit-scrollbar-thumb:active{background:#7c3aed;box-shadow:0 0 12px #8b5cf6,0 0 20px #8b5cf6,inset 0 0 10px #ffffff4d}body.scrolled-orange::-webkit-scrollbar-thumb{background:#581c87}body.scrolled-orange::-webkit-scrollbar-thumb:hover{background:#6b21a8;box-shadow:0 0 8px #581c87,0 0 16px #581c87,0 0 24px #6b21a8}body.scrolled-orange{scrollbar-color:#581C87 #FF6A00}body.scrolled-dark .hero:before{display:none}.floating-particles{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;transition:opacity .8s ease}.particle{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;animation:floatStar var(--duration) ease-in-out infinite;animation-delay:var(--delay)}.particle--tiny{background:#fff9;box-shadow:0 0 2px #ffffff80}.particle--star{background:#fffc;box-shadow:0 0 4px #fff6}.particle--glow{background:radial-gradient(circle,rgba(167,139,250,.8) 0%,transparent 70%);box-shadow:0 0 6px #a78bfa99}.particle--accent{background:radial-gradient(circle,#8B5CF6 0%,transparent 70%);box-shadow:0 0 8px #8b5cf680}@keyframes floatStar{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-20px) scale(1.2)}}.particle{opacity:.1;transition:opacity 1s ease,background 1s ease,box-shadow 1s ease}.particle--tiny{opacity:.08}.particle--star{opacity:.1}.particle--glow{opacity:.08}.particle--accent{opacity:.1}body.scrolled-dark .floating-particles{opacity:0!important;pointer-events:none;transition:opacity .8s ease}body.scrolled-dark #starfield-canvas{opacity:1;visibility:visible;transition:opacity 1s ease,visibility 0s 0s}body.scrolled-orange .particle--tiny{opacity:.2;background:#46146ea8;box-shadow:0 0 2px #46146e6b}body.scrolled-orange .particle--star{opacity:.24;background:#46146ed1;box-shadow:0 0 4px #46146e7a}body.scrolled-orange .particle--glow{opacity:.18;background:radial-gradient(circle,rgba(70,20,110,.82) 0%,transparent 70%)}body.scrolled-orange .particle--accent{opacity:.22;background:radial-gradient(circle,#46146E 0%,transparent 70%)}@media(prefers-reduced-motion:reduce){.particle{animation:none;opacity:.3}body.scrolled-dark .hero:before{animation:none}}.hover-lift{transition:all .3s ease}.hover-lift:hover{transform:translateY(-2px);color:var(--accent)}.sidebar a,.nav-drawer__link,.footer a{transition:all .3s ease}.sidebar a:hover,.footer a:hover{transform:translateY(-2px)}.badge{transition:background-color var(--tr-fast),border-color var(--tr-fast),color var(--tr-fast),transform var(--tr-fast),box-shadow var(--tr-fast)}.badge:hover{transform:scale(1.05) translateY(-2px);box-shadow:0 4px 12px var(--accent-glow)}.jelly-blob{position:fixed;left:0;top:0;width:0;height:0;border-radius:100px;pointer-events:none;z-index:9999;backdrop-filter:invert(100%);-webkit-backdrop-filter:invert(100%);border:2px solid rgba(255,255,255,.9);will-change:transform,width,height,opacity;opacity:0;transition:opacity .15s ease}@media(hover:none)and (pointer:coarse){.jelly-blob{display:none!important}}.custom-cursor{width:20px;height:20px;background:radial-gradient(circle at 30% 30%,#c8a0ff 60%,#a855f7);border-radius:50%;position:fixed;top:-10px;left:-10px;z-index:99999;pointer-events:none;will-change:transform;backface-visibility:hidden;box-shadow:0 0 15px 5px #ffffff52,0 0 35px 12px #ffffff29,0 0 60px 20px #ffffff14,0 0 80px 30px #a855f721;transition:opacity .3s ease,box-shadow .3s ease,background .3s ease}body.scrolled-orange .custom-cursor{background:radial-gradient(circle at 30% 30%,#ffc896 60%,#f97316);box-shadow:0 0 15px 5px #ffffff52,0 0 35px 12px #ffffff29,0 0 60px 20px #ffffff14,0 0 80px 30px #f9731621}body:not(.scrolled-dark):not(.scrolled-orange) .custom-cursor{background:radial-gradient(circle at 30% 30%,#dcb4ff 60%,#a855f7);box-shadow:0 0 12px 4px #a855f742,0 0 30px 10px #a855f721,0 0 50px 18px #a855f712}@media(hover:none)and (pointer:coarse){.custom-cursor{display:none!important}}.hero__name.gradient-text-animated{background:linear-gradient(90deg,#7c3aed,#8b5cf6,#a855f7,#c026d3,#d946ef,#ec4899,#f43f5e,#ef4444,#f97316,#fb923c,#f59e0b,#fb923c,#f97316,#ef4444,#f43f5e,#ec4899,#d946ef,#c026d3,#a855f7,#8b5cf6,#7c3aed)!important;background-size:200% 100%!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;animation:heroFadeIn 1s cubic-bezier(.4,0,.2,1) .6s forwards,gradient-flow 3s linear 1.6s infinite!important}.hero__name.gradient-text-animated:after{display:none!important}@keyframes gradient-flow{0%{background-position:0% center}to{background-position:200% center}}.hero__name.gradient-text-animated:hover{animation-play-state:paused!important}body.scrolled-orange .hero__name.gradient-text-animated{background:linear-gradient(90deg,#d97706,#f59e0b,#fbbf24,#f97316,#fb923c,#a855f7,#c084fc,#a855f7,#fb923c,#f97316,#fbbf24,#f59e0b,#d97706)!important;background-size:200% 100%!important}body.scrolled-dark .hero__name.gradient-text-animated{background:linear-gradient(90deg,#a855f7,#c084fc,#d8b4fe,#e879f9,#f0abfc,#fb923c,#fdba74,#fb923c,#f0abfc,#e879f9,#d8b4fe,#c084fc,#a855f7)!important;background-size:200% 100%!important}.shuffle-char{display:inline-block;transition:transform .1s ease-out,opacity .1s ease;will-change:transform,opacity;transform-origin:left center}.shuffle-char.space{width:.25em}.no-scramble .nsc{-webkit-text-fill-color:currentColor}.no-scramble .nsc--1,.no-scramble .nsc--2{color:#7c3aed}.no-scramble .nsc--3{color:#8b5cf6}.shuffle-char.revealed{animation:char-pop .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes char-pop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.resume-btn-mobile{display:none!important}.resume-btn-desktop{display:inline-flex!important}@media(max-width:768px){.resume-btn-desktop{display:none!important}.resume-btn-mobile{display:inline-flex!important}}.standards-footer{display:flex;justify-content:flex-end;margin-top:3rem;opacity:0;animation:fadeIn .8s ease-out forwards 1s}.standards-link{display:inline-flex;align-items:center;min-height:3.5rem;padding:.85rem 1.25rem;font-size:.95rem;font-weight:600;color:var(--text);text-decoration:none;border:1px solid var(--border-hover);border-radius:var(--radius-full);transition:all var(--transition-fast)}.standards-link:hover{color:#fff;background:var(--accent-dark);border-color:var(--accent-dark);transform:translateY(-2px)}@media(max-width:768px){.standards-header .section__title{font-size:clamp(3.25rem,15vw,4.75rem)}.standards-footer,.standards-link{width:100%}.standards-link{justify-content:center;text-align:center}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.scroll-progress{display:none;position:fixed;top:0;left:0;z-index:9999;width:0;height:3px;background:linear-gradient(90deg,#8b5cf6,#d946ef,#f97316);border-radius:0 2px 2px 0;transition:opacity .3s ease;will-change:width;pointer-events:none}body.scrolled-orange .scroll-progress{background:linear-gradient(90deg,#ffffffb3,#fff)}body.scrolled-dark .scroll-progress{box-shadow:0 0 12px #8b5cf699}@media(max-width:768px){.scroll-progress{display:block}}@media print{.scroll-progress{display:none!important}}.hero__name,.hero__name.gradient-text-animated,body.scrolled-dark .hero__name,body.scrolled-dark .hero__name.gradient-text-animated,body.scrolled-orange .hero__name,body.scrolled-orange .hero__name.gradient-text-animated{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;-webkit-text-fill-color:currentColor!important}.hero .hero__name.hero__name--settled{min-width:0;opacity:1;transform:none;animation:none;filter:none;text-shadow:none;font-size:1.08em;letter-spacing:-.045em;background:none;color:var(--accent-dark);-webkit-text-fill-color:currentColor}.hero__name--settled:after{content:none}.hero__name-color{display:inline-block;color:var(--accent-dark);background:none;-webkit-text-fill-color:currentColor;animation:none}.hero__name-static,.hero__glyph{color:var(--accent-dark);-webkit-text-fill-color:currentColor}.hero__name-static{display:inline-block}.hero__glyph{display:inline-block;transform-origin:left center;backface-visibility:hidden}.hero__glyph--space{width:.25em!important}@media(max-width:768px){.hero__glyph{transform-origin:center center}}.hero .hero__tagline{display:block;min-height:0;line-height:1.35;animation:none}.hero__tagline-build,.hero__tagline-understand{display:block;white-space:nowrap}.hero .typewriter-container{min-width:5.9em;color:var(--accent);vertical-align:baseline}.hero .typewriter-container--build{min-width:10.8em}.hero__tagline-understand .typewriter-container,.hero__tagline-understand .typewriter-cursor{color:#ff6a00}.typewriter-text{display:inline-block}.hero__description{display:inline-block;animation:none}html.hero-motion-pending .hero__title>span:first-child,html.hero-motion-pending .hero__name-color,html.hero-motion-pending .hero .hero__tagline,html.hero-motion-pending .hero__description{opacity:0;animation:none!important}html.hero-motion-pending .hero :is(.hero__kicker,.hero__actions,.hero__badges,.hero__note){opacity:0;animation:none!important}html.hero-motion-ready:not(.hero-name-prepared) .hero__name-color{opacity:0;animation:none!important}html.hero-motion-ready .hero__title>span:first-child{animation:heroFadeIn .45s var(--ease-out-expo) .05s both}html.hero-motion-ready.hero-name-prepared .hero__name-color{animation:heroNameColourIn .58s ease-out .22s backwards}html.hero-motion-ready .hero .hero__tagline{animation:heroSupportingIn .8s var(--ease-out-expo) .94s backwards}html.hero-motion-ready .hero__description{animation:heroSupportingIn .8s var(--ease-out-expo) 1.06s backwards}html.hero-motion-ready .hero .hero__kicker{animation:heroSupportingIn .8s var(--ease-out-expo) .82s backwards}html.hero-motion-ready .hero .hero__actions{animation:heroSupportingIn .8s var(--ease-out-expo) 1.18s backwards}html.hero-motion-ready .hero .hero__badges{animation:heroSupportingIn .8s var(--ease-out-expo) 1.3s backwards}html.hero-motion-ready .hero .hero__note{animation:heroSupportingIn .8s var(--ease-out-expo) 1.42s backwards}@keyframes heroSupportingIn{0%{opacity:0;transform:translate3d(0,var(--space-lg),0)}to{opacity:1;transform:translateZ(0)}}#tsparticles canvas{transition:opacity .6s var(--ease-out-expo)}#tsparticles:not(.hero-particles-ready) canvas{opacity:0!important}.hero__hl{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}@keyframes heroNameColourIn{0%{opacity:0}to{opacity:1}}@keyframes heroFacetsIn{0%{opacity:0;transform:translateY(var(--space-md));clip-path:inset(100% 0 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}@keyframes heroDescriptionIn{0%{opacity:0;transform:translateY(var(--space-lg));clip-path:inset(100% 0 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}@media(prefers-reduced-motion:reduce){html.hero-motion-ready .hero :is(.hero__kicker,.hero__tagline,.hero__description,.hero__actions,.hero__badges,.hero__note,.hero__name-color),html.hero-motion-ready .hero__title>span:first-child{animation:none!important;opacity:1;transform:none}.hero__name-color,.hero .hero__tagline,.hero__description{animation:none}.hero__artwork,#tsparticles canvas{transition:none}}@media(max-width:768px){.hero .hero__tagline{font-size:clamp(1rem,4.8vw,1.25rem)}.hero__tagline-understand{display:block}}html,body{background-color:#f5f5f5;font-family:var(--font-sans);color:var(--text);margin:0;padding:0;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;align-items:center;min-height:100vh;overflow-y:auto}@keyframes fadeInSlide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page{background-color:transparent;width:210mm;min-height:297mm;padding:0;margin:50px auto 20px;box-sizing:border-box;position:relative;border-radius:4px;z-index:10;isolation:isolate;animation:fadeInSlide .8s ease-out forwards;transform:scale(.85);transform-origin:top center}#tsparticles{position:absolute!important;top:0;left:0;width:100%;height:100%;z-index:-10!important;pointer-events:none}.gradient-bg{position:absolute!important;inset:0;width:100%;height:100%;z-index:-20!important;background:transparent!important;overflow:hidden}.cv-container{display:grid;grid-template-columns:32% 68%;min-height:297mm}.cv-sidebar{padding:20px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;z-index:5}.cv-main{background-color:#fff6;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");background-blend-mode:overlay;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:10px;margin:12px 15px 12px 0;box-shadow:0 10px 30px #00000014;padding:12px 25px;display:flex;flex-direction:column;justify-content:flex-start;height:fit-content;align-self:center;word-wrap:break-word;overflow-wrap:break-word;gap:5px}.cv-photo-wrapper{width:120px;height:120px;border-radius:50%;border:4px solid white;box-shadow:0 4px 15px #00000014;flex-shrink:0;overflow:hidden;background:#fff;margin-bottom:8px}.cv-photo{width:100%;height:100%;object-fit:cover;object-position:50% 20%;transform:scale(1.25);border-radius:50%;display:block}.sidebar-header{margin-bottom:15px}.cv-name{font-family:var(--font-sans);font-weight:800;font-size:1.6rem;color:var(--text);line-height:1.1;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:10px}.cv-title{font-family:var(--font-sans);font-weight:500;font-size:.85rem;color:var(--accent);margin:0;line-height:1.4}.sidebar-contact{display:flex;flex-direction:column;gap:6px;width:100%;margin-bottom:6px}.contact-item{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.8rem;color:var(--text-muted)}.contact-item i{color:var(--accent);font-size:.9rem;width:16px}.contact-item a{color:inherit;text-decoration:none}.contact-item a:hover{text-decoration:underline;color:var(--accent)}.sidebar-links{display:flex;flex-direction:column;gap:6px;width:100%}.sidebar-links a{font-size:.8rem;color:var(--text);text-decoration:none;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;padding:3px 6px;border-radius:4px;transition:background .2s}.sidebar-links a i{color:var(--accent)}.sidebar-links a:hover{background:#00000008;color:var(--accent)}.sidebar-skills{margin-top:30px;width:100%;text-align:left;background:#fff3;backdrop-filter:blur(8px);padding:20px;border-radius:12px;border:1px solid rgba(255,255,255,.3)}.sidebar-section-title{font-size:.8rem;font-weight:800;color:var(--text);text-transform:uppercase;letter-spacing:.05em;margin-bottom:20px;border-bottom:none;padding-bottom:0;display:flex;align-items:center;gap:8px;justify-content:flex-start}.sidebar-section-title i{color:var(--accent);font-size:.9rem}.sidebar-skills-grid{display:flex;flex-direction:column;gap:10px}.sidebar-skill-item{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%}.sidebar-skill-label{font-size:.75rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.02em;display:block;margin-bottom:0}.sidebar-skill-value{display:flex;flex-wrap:wrap;gap:4px}.sidebar-skill-tag{font-size:.7rem;color:var(--text);background:#fff9;padding:3px 8px;border-radius:4px;border:1px solid rgba(0,0,0,.05);font-weight:500;white-space:nowrap}.cv-section{margin-bottom:5px}.cv-section-title{font-size:.8rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding-bottom:1px;margin-bottom:3px;display:flex;align-items:center;gap:6px}.cv-section-title i{color:var(--accent);font-size:.9em}.cv-text{font-size:.75rem;line-height:1.35;color:var(--text);margin:0 0 2px}.cv-text strong,.cv-list strong{color:#000;font-weight:700}.skills-grid{display:flex;flex-direction:column;gap:3px}.skill-category{display:flex;font-size:.77rem;line-height:1.4}.skill-label{font-weight:600;color:var(--text);width:115px;flex-shrink:0}.skill-row{display:flex;font-size:.82rem;line-height:1.35}.skill-label{font-weight:600;color:var(--text);width:100px;flex-shrink:0}.skill-value{color:var(--text-muted)}.project-item{margin-bottom:2px}.project-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1px}.project-title{font-size:.8rem;font-weight:700;color:var(--text);margin:0}.project-date{font-size:.75rem;color:var(--text-muted);font-style:italic}.project-tech{font-size:.75rem;color:var(--accent);font-weight:500;margin-bottom:1px}.cv-list{margin:0;padding-left:14px;font-size:.75rem;color:var(--text-muted);line-height:1.35}.job-item{margin-bottom:2px}.job-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1px}.job-title{font-size:.8rem;font-weight:700;color:var(--text);margin:0}.job-date{font-size:.75rem;color:var(--text-muted);font-style:italic}.creative-grid{display:flex;flex-direction:column;gap:3px}.creative-item,.edu-item{font-size:.79rem;line-height:1.4}.edu-item{margin-bottom:1px}.edu-school{font-weight:700;color:var(--text)}.edu-detail{color:var(--text-muted);font-style:italic;font-size:.77rem}.highlight{font-weight:600;color:var(--text)}.cv-footer{margin-top:auto;padding-top:20px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.75rem;text-align:center;opacity:.7}.download-btn,.back-link{position:fixed;z-index:100;box-shadow:0 4px 15px #0000001a;border-radius:50px;border:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--font-sans);transition:transform .2s}.download-btn{bottom:20px;right:20px;background:var(--accent);color:#fff;padding:10px 20px;font-weight:600;font-size:.9rem}.back-link{top:20px;left:20px;background:#fff;color:var(--text);padding:8px 16px;font-size:.85rem;font-weight:500}.download-btn:hover,.back-link:hover{transform:translateY(-2px)}.interactive-hint{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:100;font-family:var(--font-sans);font-size:.85rem;font-weight:500;color:var(--accent);background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:8px 20px;border-radius:50px;box-shadow:0 4px 15px #0000001a;margin:0;opacity:1;transition:opacity .5s ease-out;pointer-events:none}.interactive-hint.hidden{opacity:0}@media print{.interactive-hint{display:none!important}}.tech-stack-banner{grid-column:1 / -1;background:#fff;padding:15px 30px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:10px;margin-bottom:10px;display:flex;flex-direction:column;gap:10px}.banner-title{font-size:.9rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0;display:flex;align-items:center;gap:8px}.banner-title i{color:var(--accent)}.tech-pills-container{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tech-pill{display:flex;align-items:center;gap:6px;background:#f3f4f6;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500;color:var(--text);border:1px solid #e5e7eb}.tech-pill-featured{background:#f5f3ff;border-color:#ddd6fe;color:var(--accent)}.tech-icon{width:16px;height:16px;fill:currentColor;display:block}.tech-details{display:flex;flex-direction:column;gap:4px}.tech-stack-text{font-size:.8rem;color:var(--text-muted);margin:0;line-height:1.4}.tech-stack-text strong{color:var(--text);font-weight:600}.bottom-grid{min-height:auto!important;display:grid;grid-template-columns:32% 68%}.empty-sidebar{padding:0}.bottom-content{padding-top:10px!important}@media print{.tech-stack-banner{break-inside:avoid;border-top:1px solid #ddd!important;border-bottom:1px solid #ddd!important}.tech-pill{background:#fff!important;border:1px solid #ddd!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4 portrait;margin:0}body{background:#fff;box-shadow:none;margin:0;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.download-btn,.download-btn-mobile,.back-link{display:none!important}.page{width:100%;min-height:297mm;height:auto;margin:0;padding:0;box-shadow:none;border-radius:0;overflow:visible;transform:none;animation:none}.cv-container{min-height:297mm;height:auto;display:flex!important;align-items:flex-start!important}.cv-sidebar{flex:0 0 32%!important;width:32%!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.cv-main{flex:1!important;align-self:flex-start!important;background-color:#ffffff59!important;background-image:none!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:10px!important;margin:5px 15px 5px 0!important;box-shadow:none!important;border:1px solid rgba(0,0,0,.06)!important;padding:10px 25px!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.cv-sidebar{-webkit-print-color-adjust:exact;print-color-adjust:exact}#tsparticles,.gradient-bg{display:block!important;position:absolute!important;z-index:-10!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.gradient-blob{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.cv-photo-wrapper{box-shadow:none!important;border:3px solid #eee!important;border-radius:50%!important;overflow:hidden!important;mask-image:radial-gradient(circle,#fff 100%,#000)}}.download-btn-mobile{display:none}.download-btn-desktop{display:flex}@media screen and (max-width:768px){.interactive-hint,.download-btn-desktop{display:none!important}.download-btn-mobile{display:flex!important;text-decoration:none}}.invoice-header-row{display:flex;justify-content:space-between;margin-bottom:1.5rem;border-bottom:2px solid var(--border);padding-bottom:.5rem}.invoice-title{font-size:2rem;font-weight:800;color:var(--text);letter-spacing:-.02em;margin:0}.invoice-meta{text-align:right}.invoice-meta-item{font-size:.9rem;color:var(--text-muted);margin-bottom:.2rem}.invoice-meta-item strong{color:var(--text)}.client-section{margin-bottom:2rem;padding:1rem;background:#00000005;border-radius:8px}.client-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-weight:700;margin-bottom:.5rem;display:block}.invoice-table{width:100%;border-collapse:collapse;margin-bottom:2rem}.invoice-table th{text-align:left;padding:10px;border-bottom:2px solid var(--border);color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.invoice-table td{padding:12px 10px;border-bottom:1px solid var(--border);font-size:.9rem;color:var(--text)}.invoice-table td.qty,.invoice-table td.price,.invoice-table td.total{text-align:right;font-family:var(--font-mono)}.invoice-table th.right-align{text-align:right}[contenteditable=true]{border-bottom:1px dashed transparent;transition:border-color .2s;min-width:20px;display:inline-block}[contenteditable=true]:hover,[contenteditable=true]:focus{border-bottom-color:var(--accent);outline:none;background:#8b5cf60d}.totals-section{display:flex;justify-content:flex-end;margin-bottom:2rem}.totals-table{width:40%}.totals-row{display:flex;justify-content:space-between;padding:3px 0;font-size:.9rem;color:var(--text-muted)}.totals-row.final{border-top:2px solid var(--text);margin-top:5px;padding-top:5px;font-weight:700;font-size:1.1rem;color:var(--text)}.totals-row span:last-child{font-family:var(--font-mono)}.footer-note{font-size:.75rem;color:var(--text-muted);border-top:1px solid var(--border);padding-top:.5rem;line-height:1.4}.add-row-btn{background:var(--bg-elevated);border:1px dashed var(--accent);color:var(--accent);width:100%;padding:8px;border-radius:6px;cursor:pointer;font-size:.8rem;margin-bottom:2rem;transition:all .2s}.add-row-btn:hover{background:var(--accent-soft)}@media print{.add-row-btn{display:none!important}[contenteditable=true]{border-bottom:none!important}.client-section{background:#f9f9f9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-bottom:.5rem!important;padding:.5rem 1rem!important}.invoice-header-row,.invoice-table{margin-bottom:.5rem!important}.invoice-table th,.invoice-table td{padding:4px 10px!important}.totals-section{margin-bottom:.5rem!important}.extra-sections{margin-top:.75rem!important;padding:.75rem 1rem!important}.footer-note{margin-top:.5rem!important;padding-top:.25rem!important}.action-col{display:none!important}}@media print{body.cv-page{margin:0!important;padding:0!important;overflow:visible!important}body.cv-page .page{width:100%!important;max-height:297mm!important;height:auto!important;transform:none!important;transform-origin:top left!important;overflow:visible!important;isolation:auto!important}body.cv-page .cv-container{width:100%!important;max-height:297mm!important;height:auto!important;grid-template-columns:32% 68%!important}body.cv-page .cv-sidebar,body.cv-page .cv-main{min-width:0!important;overflow:visible!important}body.cv-page .cv-main{margin:10px 10px 10px 0!important;padding:16px 18px!important}body.cv-page .sidebar-skills{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#ffffff26!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body.cv-page .project-header,body.cv-page .job-header{gap:8px}body.cv-page .project-title,body.cv-page .job-title{min-width:0}body.cv-page .project-date,body.cv-page .job-date{flex-shrink:0}body.cv-page .sidebar-skill-tag{white-space:normal!important}body.cv-page .cv-text,body.cv-page .project-tech,body.cv-page .contact-item,body.cv-page .project-title,body.cv-page .job-title,body.cv-page .cv-list li,body.cv-page .sidebar-skill-tag{overflow-wrap:anywhere;word-break:break-word}}@media screen and (max-width:768px){html,body.cv-page{width:100%}body.cv-page .page{width:100%;min-height:0;transform:none;padding:var(--space-md);margin-top:var(--space-4xl)}body.cv-page .cv-container{display:flex;flex-direction:column;width:100%}body.cv-page .cv-sidebar,body.cv-page .cv-main{width:100%;min-width:0;padding:var(--space-lg)}body.cv-page .job-header,body.cv-page .project-header{flex-wrap:wrap;gap:var(--space-xs)}body.cv-page .cv-text,body.cv-page .cv-list,body.cv-page .contact-item{overflow-wrap:anywhere}}.delete-btn{color:#ef4444;opacity:.3;padding:4px;border-radius:4px;cursor:pointer;transition:all .2s}.delete-btn:hover{opacity:1;background:#ef44441a}
