@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500&family=Outfit:wght@500;600;700&display=swap";html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html,body,#root{height:100%;width:100%;margin:0;padding:0;background:transparent}*,*:before,*:after{box-sizing:border-box}body{min-width:320px;min-height:100vh;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%;width:100%;margin:0;padding:0;background:transparent!important;font-family:var(--font-sans, "DM Sans", system-ui, sans-serif);overflow-x:hidden}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;min-height:100vh}.portfolio-root{--font-sans: "DM Sans", system-ui, sans-serif;--font-display: "Outfit", "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius-sm: .5rem;--radius-md: .85rem;--radius-lg: 1.15rem;--ease-out-expo: cubic-bezier(.22, 1, .36, 1);min-height:100vh;width:100vw;overflow-x:hidden;font-family:var(--font-sans);color:#f4f4f9;position:relative;background:transparent!important}.portfolio-root.dark{--bg-0: #020308;--bg-1: #080a10;--surface-1: rgba(18, 20, 28, .94);--surface-2: rgba(28, 31, 42, .88);--border-hairline: rgba(255, 255, 255, .07);--page-fg: #f4f4f8;--page-muted: #94a3b8;--page-subtle: #64748b;--glass-bg: rgba(22, 24, 32, .78);--glass-bg-elevated: rgba(36, 40, 52, .55);--glass-border: var(--border-hairline);--glass-border-strong: rgba(45, 212, 191, .35);--glass-shadow: 0 24px 64px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .04) inset;--accent: #94a3b8;--accent-strong: #2dd4bf;--accent-line: #5eead4;--accent-soft: rgba(45, 212, 191, .14);--energy-glow: 0 0 48px rgba(45, 212, 191, .2);--glow-violet: 0 0 40px rgba(167, 139, 250, .12);--nav-bg: rgba(6, 8, 14, .78);--nav-bg-scrolled: rgba(4, 6, 12, .92);--surface-input: rgba(10, 12, 18, .92);--surface-timeline: rgba(20, 22, 30, .94);--timeline-ring: rgba(8, 10, 16, .98);--footer-bg: #04060c;--footer-border: rgba(148, 163, 184, .12);--footer-muted: #94a3b8;color:var(--page-fg);background-color:var(--bg-0);background-image:radial-gradient(ellipse 120% 70% at 50% -25%,rgba(14,165,233,.12),transparent 55%),radial-gradient(ellipse 80% 50% at 100% 0%,rgba(56,189,248,.05),transparent 45%),linear-gradient(180deg,#060810 0%,var(--bg-0) 42%,#03040a 100%);background-attachment:fixed}.portfolio-root.light{--font-sans: "DM Sans", system-ui, sans-serif;--font-display: "Outfit", "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--bg-0: #f8fafc;--surface-1: rgba(255, 255, 255, .96);--border-hairline: rgba(15, 23, 42, .08);--page-fg: #0f172a;--page-muted: rgba(51, 65, 85, .88);--page-subtle: rgba(71, 85, 105, .9);--glass-bg: rgba(255, 255, 255, .78);--glass-bg-elevated: rgba(255, 255, 255, .92);--glass-border: rgba(15, 23, 42, .08);--glass-border-strong: rgba(14, 165, 233, .2);--glass-shadow: 0 18px 50px rgba(15, 23, 42, .08), 0 0 0 1px rgba(255, 255, 255, .8) inset;--accent: #64748b;--accent-strong: #0284c7;--accent-line: #0369a1;--accent-soft: rgba(14, 165, 233, .1);--nav-bg: rgba(255, 255, 255, .82);--nav-bg-scrolled: rgba(255, 255, 255, .95);--surface-input: rgba(248, 250, 252, .95);--surface-timeline: rgba(255, 255, 255, .92);--timeline-ring: #f8fafc;--footer-bg: #0f172a;--footer-border: rgba(148, 163, 184, .12);--footer-muted: #94a3b8;background:#f8fafc;color:var(--page-fg)}.portfolio-content{position:relative;z-index:1;width:100vw;max-width:none;margin:0;padding:0;background:none}.portfolio-content.scrollable{opacity:0;pointer-events:none;transition:opacity .55s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1))}.portfolio-content.scrollable.is-ready{opacity:1;pointer-events:auto}.portfolio-content>section.portfolio-section:not(:first-child):before{content:"";display:block;height:1px;margin:0 auto 2.5rem;width:min(72rem,92vw);background:linear-gradient(90deg,transparent,rgba(148,163,184,.22),transparent);pointer-events:none}.portfolio-root.dark .portfolio-content>section.portfolio-section:not(:first-child):before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}.film-grain{pointer-events:none;position:fixed;inset:0;z-index:0;opacity:.055;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px}@media(prefers-reduced-motion:reduce){.film-grain{opacity:.04}}.page-loader{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 60% at 50% 40%,#0c0e16f7,#020308 75%)}.page-loader-inner{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.page-loader-mark{width:4.5rem;height:4.5rem;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono, "JetBrains Mono", monospace);font-weight:700;font-size:.85rem;letter-spacing:.06em;color:#99f6e4;border:1px solid rgba(45,212,191,.45);background:linear-gradient(145deg,#2dd4bf2e,#0a0c12e6);box-shadow:0 0 48px #2dd4bf33}.page-loader-line{width:8rem;height:2px;border-radius:2px;transform-origin:center;background:linear-gradient(90deg,transparent,#5eead4,#a78bfa,transparent)}.page-loader-caption{font-family:var(--font-display, "Outfit", sans-serif);font-size:1.05rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f0d9}.cursor-glow{position:fixed;width:320px;height:320px;margin:-160px 0 0 -160px;border-radius:50%;pointer-events:none;z-index:9998;background:radial-gradient(circle,rgba(45,212,191,.14) 0%,rgba(167,139,250,.06) 38%,transparent 68%);mix-blend-mode:screen;will-change:transform}@media(pointer:coarse),(max-width:1023px){.cursor-glow{display:none!important}}@media(prefers-reduced-motion:reduce){.cursor-glow{display:none!important}}html.portfolio-cursor-active body{cursor:none}@media(pointer:coarse),(max-width:1023px){html.portfolio-cursor-active body{cursor:auto}}.hero-name,.work-title,.intro-title,.contact-title,.bento-title,.edu-degree{font-family:var(--font-display, "Outfit", sans-serif)}.hero-eyebrow,.intro-label,.section-kicker,.work-label,.contact-label,.edu-dates{font-family:var(--font-mono, "JetBrains Mono", monospace)}.portfolio-root :is(a,button,input,textarea):focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px}.portfolio-root.dark :is(a,button,input,textarea):focus-visible{outline-color:#5eead4}.bento-card{perspective:980px}.bento-card-tilt-surface{height:100%;min-height:100%;border-radius:inherit;transform-style:preserve-3d;will-change:transform}.section-dot{display:none}.section-accent{display:inline-block;width:2.75rem;height:3px;margin-left:.5rem;vertical-align:middle;border-radius:3px;background:linear-gradient(90deg,var(--accent-line),transparent)}.animated-bg-canvas{position:fixed;top:0;left:0;z-index:0;width:100vw;height:100vh}.navbar{position:fixed;top:0;left:0;width:100vw;z-index:100;background:var(--nav-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .35s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1)),border-color .35s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1)),box-shadow .35s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1)),height .4s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1)),backdrop-filter .35s ease;padding:0 clamp(1rem,4vw,3rem);height:70px;display:flex;justify-content:space-between;align-items:center;box-shadow:none;border-bottom:1px solid var(--glass-border)}.navbar.scrolled{background:var(--nav-bg-scrolled);box-shadow:0 12px 40px #0000002e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);height:64px}.navbar .navbar-title,.navbar .navbar-links a,.navbar .theme-toggle-btn{color:var(--page-fg);transition:color .3s}.navbar .navbar-links a:hover,.navbar .navbar-links a.active,.navbar .navbar-links a.nav-link-active,.navbar .theme-toggle-btn:hover{color:var(--accent-strong)}.navbar .navbar-links a.nav-link-active:after,.navbar .navbar-links a.active:after{width:100%}.navbar-left{display:flex;align-items:center;gap:1.2rem}.logo-mark{width:40px;height:40px;border-radius:10px;background:linear-gradient(145deg,#0ea5e938,#0f172a66);color:var(--accent-strong);font-weight:700;font-size:.72rem;letter-spacing:-.02em;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);margin-right:.5rem;font-family:JetBrains Mono,ui-monospace,monospace}.logo-mark:hover{border-color:#0ea5e973}.navbar-title{font-size:1.25rem;font-weight:700;color:var(--page-fg);letter-spacing:.5px;-webkit-user-select:none;user-select:none}.navbar-links{display:flex;gap:1.15rem;align-items:center}.navbar-links a{color:var(--page-fg);font-weight:600;text-decoration:none;font-size:.98rem;letter-spacing:.02em;transition:color .2s;position:relative}.navbar-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--accent-line);transition:width .3s ease;border-radius:2px}.navbar-links a:hover:after,.navbar-links a.active:after,.navbar-links a.nav-link-active:after{width:100%}.skip-link{position:fixed;top:.75rem;left:50%;transform:translate(-50%) translateY(-120%);z-index:10001;padding:.55rem 1rem;border-radius:var(--radius-sm, .5rem);font-size:.85rem;font-weight:600;text-decoration:none;color:#020308;background:#5eead4;border:1px solid rgba(0,0,0,.08);transition:transform .25s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1))}.skip-link:focus{transform:translate(-50%) translateY(0);outline:none}.skip-link:focus-visible{outline:2px solid #fff;outline-offset:3px}.sidebar-nav a.nav-link-active{color:var(--accent-strong)}.theme-toggle-btn{background:none;border:none;font-size:2rem;cursor:pointer;margin-left:1.2rem;transition:transform .2s,color .2s;outline:none;display:flex;align-items:center;justify-content:center;height:100%;padding:0 .2rem;color:var(--page-fg)}.theme-toggle-btn:hover{transform:scale(1.18) rotate(-10deg)}@media(max-width:768px){.navbar{padding:0 2vw;height:60px}.navbar.scrolled{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.navbar-title{font-size:1.1rem}.navbar-links{gap:1.2rem}.navbar-links a{font-size:.9rem}.logo-mark{width:36px;height:36px;font-size:1.3rem}.theme-toggle-btn{font-size:1.6rem}}@media(max-width:480px){.navbar{padding:0 3vw}.navbar.scrolled{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.navbar-left,.navbar-links{gap:.8rem}.navbar-title{font-size:1rem}.navbar-links a{font-size:.9rem}.logo-mark{width:32px;height:32px;font-size:1.1rem}.theme-toggle-btn{font-size:1.5rem;margin-left:.8rem}}.hero-section{min-height:100vh;width:100vw;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;background:transparent!important;box-shadow:none;box-sizing:border-box;padding:4.75rem 0 5.5rem;position:relative}.hero-content{margin-top:0;margin-bottom:0;margin-left:8vw;z-index:2;display:flex;flex-direction:column;max-width:min(640px,92vw);align-self:center}.hero-hi{font-family:DM Sans,system-ui,sans-serif;font-size:clamp(1.5rem,4vw,2.75rem);color:var(--page-muted);font-weight:600;margin-right:.35rem;letter-spacing:-.02em;line-height:1.15}.hero-name{font-family:DM Sans,system-ui,sans-serif;font-size:clamp(2.5rem,6vw,3.75rem);color:var(--page-fg);font-weight:700;letter-spacing:-.03em;line-height:1.08;text-shadow:none}.hero-content h1{margin-bottom:1rem}.hero-subtitle{font-family:DM Sans,system-ui,sans-serif;font-size:clamp(1.1rem,2.2vw,1.35rem);color:var(--page-muted);font-weight:500;margin-top:1rem;margin-bottom:1.75rem;max-width:38rem;line-height:1.55}.hero-scroll-cue{position:absolute;left:50%;transform:translate(-50%);bottom:2.5rem;z-index:4;color:var(--page-muted);display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:999px;border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:color .2s,border-color .2s,background .2s}.hero-scroll-cue:hover{color:var(--accent-strong);border-color:#0ea5e959}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-image-3d-container{margin-left:auto;margin-right:6vw;margin-top:0;margin-bottom:0;width:min(380px,38vw);height:min(380px,38vw);max-width:420px;max-height:420px;border-radius:20px;background:transparent;position:relative;display:flex;align-items:center;justify-content:center;z-index:2;align-self:center}.hero-image-frame{width:100%;height:100%;border-radius:20px;padding:3px;background:linear-gradient(145deg,#0ea5e980,#22d3ee47 45%,#3341558c);box-shadow:0 24px 80px #00000059,0 0 0 1px #ffffff0f inset}.hero-image-3d{width:100%;height:100%;border-radius:17px;box-shadow:none;border:none;background:#0f172a;display:block;object-fit:cover}.hero-copy-shell{display:flex;flex-direction:column;align-items:inherit;width:100%;max-width:100%}.portfolio-root.dark .hero-section{isolation:isolate;align-items:center;overflow-x:hidden}.portfolio-root.dark .hero-section:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 100% 75% at 50% -30%,rgba(45,212,191,.11),transparent 58%),radial-gradient(ellipse 50% 42% at 100% 35%,rgba(251,191,36,.055),transparent 50%),radial-gradient(ellipse 55% 45% at 0% 75%,rgba(148,163,184,.07),transparent 52%),linear-gradient(180deg,#07080b,#050506 45%,#05050666)}.portfolio-root.dark .hero-content{position:relative;z-index:2;margin-top:0;margin-left:clamp(1.25rem,6vw,5rem)}@media(min-width:993px){.portfolio-root.dark .hero-content.hero-content-left{margin-left:clamp(2rem,7vw,6rem)}}.portfolio-root.dark .hero-copy-shell{position:relative;padding:clamp(1.65rem,3.8vw,2.6rem) clamp(1.35rem,3.5vw,2.35rem);border-radius:1.2rem;border:1px solid rgba(255,255,255,.065);background:linear-gradient(155deg,#16181ff0,#0a0b0eb8);box-shadow:0 0 0 1px #ffffff08 inset,0 36px 100px #00000094;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);max-width:min(42rem,94vw)}.portfolio-root.dark .hero-copy-shell:before{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,rgba(45,212,191,.45),transparent);opacity:.85;border-radius:2px}.portfolio-root.dark .hero-eyebrow{font-family:JetBrains Mono,ui-monospace,monospace;color:#8b919d;letter-spacing:.11em;border-left:2px solid rgba(45,212,191,.85);padding-left:.85rem;margin-left:.05rem}.portfolio-root.dark .hero-hi{color:#6b7280;font-weight:500}.portfolio-root.dark .hero-name{background:none;-webkit-background-clip:unset;background-clip:unset;color:#f8fafc!important;-webkit-text-fill-color:#f8fafc;text-shadow:0 2px 28px rgba(0,0,0,.65)}.portfolio-root.dark .hero-subtitle{color:#9ca3af;font-weight:400;line-height:1.62}.portfolio-root.dark .hero-pill{border-radius:.45rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;padding:.4rem .75rem;border:1px solid rgba(255,255,255,.1);background:#ffffff09;color:#eceef2}.portfolio-root.dark .hero-pill.muted{border-color:#ffffff0f;color:#7d8490;background:transparent}.portfolio-root.dark .hero-actions .hero-secondary-btn{border-radius:.65rem!important;border:1px solid rgba(255,255,255,.14)!important;background:#ffffff0a!important;color:#f3f4f6!important}.portfolio-root.dark .hero-actions .hero-secondary-btn:hover{border-color:#2dd4bf73!important;background:#2dd4bf12!important}.portfolio-root.dark .hero-actions .cta-btn.hero-cv-btn{border-radius:.65rem!important;background:#f1f5f9!important;color:#0a0b0f!important;border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 14px 40px #0006!important}.portfolio-root.dark .hero-actions .cta-btn.hero-cv-btn:hover{filter:none;background:#fff!important;box-shadow:0 20px 52px #00000073,0 0 0 1px #2dd4bf47!important}.portfolio-root.dark .hero-image-3d-container{position:relative;z-index:2;margin-top:0}.portfolio-root.dark .hero-image-frame{padding:2px;border-radius:1.15rem;background:linear-gradient(145deg,#cbd5e138,#2dd4bf47 48%,#0f766e59);box-shadow:0 28px 90px #000000ad,0 0 0 1px #ffffff0f inset,0 1px #ffffff17 inset}.portfolio-root.dark .hero-image-3d{border-radius:1.05rem;background:#101218}.portfolio-root.dark .hero-scroll-cue{z-index:3;border-radius:.6rem;border-color:#ffffff1a;background:#0c0e12e0;color:#9ca3af;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.portfolio-root.dark .hero-scroll-cue:hover{color:#5eead4;border-color:#2dd4bf6b}@media(max-width:992px){.portfolio-root.dark .hero-copy-shell{margin-left:auto;margin-right:auto}.portfolio-root.dark .hero-eyebrow{border-left:none;padding-left:0;padding-bottom:.65rem;border-bottom:2px solid rgba(45,212,191,.45);display:inline-block;margin-left:auto;margin-right:auto;text-align:center}}.intro-section{width:100vw;min-height:60vh;background:transparent;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:80px 0 60px 8vw;z-index:2}.intro-inner{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:1.25rem;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:2.5rem 2.5rem 2rem;max-width:700px;margin-bottom:2.5rem;box-shadow:0 18px 50px #0000001f}.intro-label{color:var(--accent-strong);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.75rem;text-align:left}.intro-title{font-family:DM Sans,system-ui,sans-serif;font-size:clamp(2.25rem,5vw,3.25rem);font-weight:700;color:var(--page-fg);margin-bottom:1.2rem;text-align:left;letter-spacing:-.03em;line-height:1.1}.intro-desc{color:var(--page-muted);font-size:1.05rem;max-width:600px;text-align:left;margin:0 0 .5rem;line-height:1.7}.intro-cards{display:flex;gap:1rem;justify-content:flex-start;align-items:stretch;margin-top:.5rem;flex-wrap:wrap}.intro-card-pro{flex:1 1 160px;max-width:220px;min-height:128px;padding:1.25rem 1.15rem;border-radius:14px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.intro-card-pro:hover{border-color:#0ea5e959;box-shadow:0 12px 40px #0000001f}.intro-card-svg{color:var(--accent-strong);flex-shrink:0}.intro-card-title{color:var(--page-fg);font-size:.95rem;font-weight:600;text-align:left;line-height:1.35;letter-spacing:-.01em}.portfolio-root.dark .intro-section{position:relative;isolation:isolate}.portfolio-root.dark .intro-section:before{content:"";position:absolute;left:0;right:0;top:2.5rem;height:min(70vh,520px);z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 55% at 20% 30%,rgba(45,212,191,.06),transparent 55%),radial-gradient(ellipse 50% 40% at 85% 60%,rgba(251,191,36,.04),transparent 50%);opacity:1}.portfolio-root.dark .intro-inner,.portfolio-root.dark .intro-card-pro{position:relative;z-index:1}.portfolio-root.dark .intro-inner{border-radius:1.2rem;border:1px solid rgba(255,255,255,.065);background:linear-gradient(155deg,#16181ff0,#0a0b0eb8);box-shadow:0 0 0 1px #ffffff08 inset,0 32px 90px #00000080;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.portfolio-root.dark .intro-inner:before{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,rgba(45,212,191,.4),transparent);border-radius:2px;opacity:.85;pointer-events:none}.portfolio-root.dark .intro-label{color:#5eead4;letter-spacing:.12em}.portfolio-root.dark .intro-title{background:none;-webkit-background-clip:unset;background-clip:unset;color:#f8fafc!important;-webkit-text-fill-color:#f8fafc;text-shadow:0 2px 20px rgba(0,0,0,.75),0 1px 2px rgba(0,0,0,.9)}.portfolio-root.dark .intro-desc{color:#a1a8b5;line-height:1.72}.portfolio-root.dark .intro-card-pro{border-radius:.65rem;border:1px solid rgba(255,255,255,.08);background:#0c0e12a6;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 4px 24px #00000040}.portfolio-root.dark .intro-card-pro:hover{border-color:#2dd4bf66;box-shadow:0 16px 48px #00000073;transform:translateY(-2px)}.portfolio-root.dark .intro-card-svg{color:#5eead4}.portfolio-root.dark .intro-card-title{color:#eceef2}.work-section{width:100vw;min-height:100vh;background:transparent;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:80px 0 60px 8vw;z-index:2}.section-kicker{color:var(--accent-strong);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.65rem;text-align:left}.section-kicker.muted-kicker{color:var(--page-muted)}.work-label{color:var(--accent-strong);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.65rem;text-align:left}.work-title{font-family:DM Sans,system-ui,sans-serif;font-size:clamp(2.25rem,4.5vw,3.25rem);font-weight:700;color:var(--page-fg);margin-bottom:2.5rem;text-align:left;letter-spacing:-.03em;line-height:1.05}.timeline-centered{position:relative;width:100%;min-height:1600px;margin-top:.5rem;padding-bottom:200px}.timeline-line-centered{position:absolute;left:50%;top:0;width:2px;height:100%;background:linear-gradient(180deg,#38bdf859,#94a3b81f);border-radius:3px;z-index:0;transform:translate(-50%)}.timeline-card-centered{position:absolute;width:38vw;min-width:220px;max-width:440px;background:var(--surface-timeline);border-radius:1rem;box-shadow:var(--glass-shadow);padding:1.2rem 1.1rem 1rem;z-index:2;border-left:4px solid var(--accent-line)}.timeline-card-centered.left{left:calc(50% - 35vw);text-align:right;border-left:none;border-right:4px solid var(--accent-line)}.timeline-card-centered.right{left:52%;text-align:left}.timeline-card-centered.show{opacity:1;transform:translateY(0) scale(1)}.timeline-circle-centered{position:absolute;left:50%;width:80px;height:80px;background:var(--timeline-ring);border:3px solid var(--glass-border-strong);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:900;color:var(--page-fg);z-index:3;box-shadow:0 8px 28px #00000059,0 0 0 1px #ffffff0f inset;transform:translate(-50%)}.timeline-logo{width:100%;height:100%;border-radius:50%;object-fit:contain;background:#fff;display:block;margin:0 auto;border:none;box-shadow:none;padding:8px}.timeline-header h3{font-size:1.08rem;font-weight:700;color:var(--page-fg);margin-bottom:.15rem}.timeline-company{color:var(--accent-strong);font-size:.98rem;font-weight:700;margin-bottom:.1rem}.timeline-date{color:var(--page-muted);font-size:.92rem;font-weight:500;margin-bottom:.5rem}.timeline-desc{color:var(--page-fg);font-size:.98rem;margin:0;padding-left:1.1em;line-height:1.5;opacity:.92}.timeline-desc li{text-align:justify}.timeline-card-centered.left .timeline-header h3,.timeline-card-centered.left .timeline-company,.timeline-card-centered.left .timeline-date{text-align:right}.timeline-card-centered.left .timeline-desc{text-align:left}.skills-section{display:flex;flex-direction:column;align-items:center;margin:60px 0;width:100%}.skills-row{display:flex;flex-direction:row;justify-content:center;gap:2.5rem}.skills-row-offset{margin-left:90px;margin-top:2.5rem}.contact-section{width:100%;margin:60px 0 80px;padding-bottom:1rem}.contact-section-body{display:flex;flex-direction:column;align-items:center;gap:2.5rem;width:100%;max-width:920px;margin:0 auto;padding:0 clamp(1.25rem,5vw,3rem);box-sizing:border-box}.contact-details-wrap{width:100%}.contact-details{width:100%;padding:clamp(1.75rem,4vw,2.5rem) clamp(1.5rem,4vw,2.75rem);border-radius:1.25rem;box-sizing:border-box}.contact-details-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.contact-detail-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.15rem;min-width:0;border-radius:.85rem;background:var(--surface-input);border:1px solid var(--glass-border);transition:border-color .2s,box-shadow .2s}.contact-detail-item:hover{border-color:#0ea5e959;box-shadow:0 4px 20px #0ea5e914}.contact-detail-item--wide{grid-column:1 / -1}.contact-detail-icon-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:.65rem;background:#0ea5e91a;border:1px solid rgba(14,165,233,.2)}.contact-detail-icon{color:var(--accent-strong)}.contact-detail-body{flex:1;min-width:0}.contact-detail-label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--page-muted);margin-bottom:.4rem}.contact-detail-value{font-size:1.02rem;line-height:1.5;color:var(--page-fg)}.contact-detail-value p{margin:0;line-height:1.55}.contact-detail-value a{color:var(--accent-strong);font-weight:500;text-decoration:none;overflow-wrap:anywhere;transition:color .2s}.contact-detail-value a:hover{color:var(--page-fg);text-decoration:underline;text-underline-offset:3px}.contact-section-flex{display:flex;flex-direction:column;align-items:center;width:100%}.contact-container{display:flex;justify-content:center;width:100%;max-width:920px;background:transparent}.contact-form{display:flex;flex-direction:column;gap:1.8rem;background:var(--glass-bg);border:1px solid var(--glass-border);padding:3.5rem 2.8rem;border-radius:1.5rem;box-shadow:var(--glass-shadow);max-width:700px;min-width:520px;min-height:520px;width:100%}.contact-form label{display:flex;flex-direction:column;align-items:flex-start;width:100%;color:var(--page-fg);font-size:1.25rem;font-weight:600;margin-bottom:.2rem;gap:.4rem}.contact-form input,.contact-form textarea{width:100%;background:var(--surface-input);color:var(--page-fg);border:1px solid var(--glass-border);border-radius:.6rem;padding:1.1rem 1.2rem;font-size:1.15rem;margin-top:.2rem;margin-bottom:.5rem;outline:none;transition:box-shadow .2s,border-color .2s;box-sizing:border-box}.contact-form input:focus,.contact-form textarea:focus{box-shadow:0 0 0 2px #0ea5e959;border-color:var(--accent-strong)}.contact-form button{background:linear-gradient(135deg,#0369a1,#0ea5e9 55%,#38bdf8);color:#f8fafc;border:none;border-radius:.6rem;padding:1.1rem 2.6rem;font-size:1.2rem;font-weight:600;cursor:pointer;margin-top:.7rem;transition:filter .2s,transform .2s}.contact-form button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.contact-form button:disabled{background:var(--page-subtle);cursor:not-allowed;opacity:.65}.contact-label{color:var(--page-muted);font-size:1.2rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin-bottom:.2rem}.contact-title{font-size:clamp(2rem,4vw,3.2rem);font-weight:700;color:var(--page-fg);margin-bottom:1.2rem;letter-spacing:-.02em}.contact-result{margin-top:1.2rem;font-size:1.2rem;font-weight:600;text-align:center}.contact-result.success{color:#4ade80}.contact-result.error{color:#f87171}.contact-form-honeypot{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.contact-form-note{margin:0 0 .35rem;padding:.85rem 1rem;font-size:.9rem;line-height:1.45;color:var(--page-muted);background:var(--surface-input);border:1px solid var(--glass-border);border-radius:.5rem}.contact-form-note a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}.contact-form-code{font-size:.85em;font-family:var(--font-mono, ui-monospace, monospace);word-break:break-all}.contact-form-fallback{margin-top:.75rem;font-size:.95rem;color:var(--page-muted);text-align:center;line-height:1.5}.contact-form-fallback a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px;word-break:break-word}.contact-3d-illustration{display:flex;align-items:center;justify-content:center;width:min(280px,70vw);height:min(280px,70vw);margin:0;flex-shrink:0}.custom-footer{background:var(--footer-bg);color:var(--page-fg);width:100vw;min-width:100vw;padding:1.35rem 0 1rem;margin-top:0;display:flex;justify-content:center;align-items:center;font-family:DM Sans,system-ui,sans-serif;border-top:1px solid var(--footer-border)}.footer-copyright{font-size:1.05rem;margin-bottom:.2rem;color:var(--footer-muted);font-weight:600}.footer-content{display:flex;flex-direction:column;align-items:center;width:100%;gap:.7rem}.footer-socials{display:flex;gap:2.2rem;margin-top:.2rem}.footer-icon-link{color:var(--accent-strong);transition:color .2s,transform .2s;display:flex;align-items:center;cursor:pointer;text-decoration:none;z-index:1}.footer-icon-link:hover{color:var(--page-fg);transform:scale(1.12)}.footer-icon{width:2.1em;height:2.1em;display:block}.portfolio-root.dark .navbar{border-bottom-color:#1e293bf2}.portfolio-root.dark .navbar.scrolled{box-shadow:0 12px 48px #0000008c}.portfolio-root.dark .sidebar-overlay{background:#0009}.portfolio-root.light,.portfolio-root.light h1,.portfolio-root.light h2,.portfolio-root.light h3,.portfolio-root.light h4,.portfolio-root.light h5,.portfolio-root.light h6,.portfolio-root.light p,.portfolio-root.light .navbar,.portfolio-root.light .navbar-title,.portfolio-root.light .hero-section,.portfolio-root.light .hero-content,.portfolio-root.light .intro-section,.portfolio-root.light .intro-title,.portfolio-root.light .intro-desc,.portfolio-root.light .intro-card-title,.portfolio-root.light .work-section,.portfolio-root.light .timeline-company,.portfolio-root.light .timeline-date,.portfolio-root.light .skills-section,.portfolio-root.light .skills-grid,.portfolio-root.light .skills-row,.portfolio-root.light .skills-row-offset{color:#18182a!important}.portfolio-root.light .logo-mark{background:linear-gradient(145deg,#0ea5e926,#f1f5f9f2);color:#0369a1!important;border-color:#0f172a1a}.portfolio-root.light .timeline-logo{background:#fff}.portfolio-root.light .timeline-card{background:#fff;color:#18182a!important}.portfolio-root.light .timeline-card-centered.glass-panel{background:#fffffff0!important;border-color:#0ea5e91f!important}.portfolio-root.light .intro-card{background:#c3c3deeb!important;color:#18182a!important;box-shadow:0 4px 32px #0001}.portfolio-root.light .intro-label{color:#0284c7!important}.portfolio-root.light .intro-dot{color:#7c3aed!important}.portfolio-root.light .intro-card-icon,.portfolio-root.light .intro-card-title{color:#18182a!important}.portfolio-root.light .timeline-desc{color:#18182a!important;opacity:1}.portfolio-root.light .timeline-header h3,.portfolio-root.light .timeline-content,.portfolio-root.light .timeline-desc li,.portfolio-root.light .skills-section .skill-icon-title{color:#18182a!important}.portfolio-root.light .intro-section .intro-cards .intro-card{background:#c3c3deeb!important;color:#18182a!important;box-shadow:0 4px 32px #0001!important}.portfolio-root.light .intro-inner{background:#fff!important;color:#18182a!important;box-shadow:0 4px 32px #0001!important}.portfolio-root.light .custom-footer{background:#181f3a!important}.portfolio-root.light .footer-copyright{color:#b3b8d1!important}.portfolio-root.light .intro-card-pro{background:#ffffffeb!important;border-color:#0f172a14!important;box-shadow:0 10px 36px #0f172a0f!important}.portfolio-root.light .intro-card-pro .intro-card-svg{color:#0284c7!important}.portfolio-root.light .contact-section-flex{background:transparent!important;color:#18182a!important}.portfolio-root.light .contact-form{background:#fff!important;color:#18182a!important}.portfolio-root.light .contact-title{background:linear-gradient(105deg,#0f172a,#0369a1 55%,#0d9488);-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent!important}.portfolio-root.light .contact-label,.portfolio-root.light .contact-form label{color:#18182a!important}.portfolio-root.light .contact-form input,.portfolio-root.light .contact-form textarea{background:#f0f0f7!important;color:#18182a!important}.portfolio-root.light .contact-form button{background:linear-gradient(135deg,#0369a1,#0ea5e9 55%,#38bdf8)!important;color:#f8fafc!important}@media(max-width:1200px){.hero-name{font-size:3.2rem}.hero-subtitle{font-size:1.8rem}.intro-title,.work-title{font-size:3.2rem}.contact-title{font-size:2.8rem}.hero-image-3d-container{width:min(300px,72vw);height:min(300px,72vw);margin:1.5rem auto 0}}@media(max-width:992px){.hero-section{flex-direction:column;text-align:center;justify-content:center;padding:4.5rem 1.25rem}.hero-content{margin:0 auto;align-items:center;text-align:center}.hero-image-3d-container{margin:1.5rem auto 0;width:min(260px,70vw);height:min(260px,70vw)}.timeline-card-centered{width:45vw}.contact-section-flex,.contact-section-body{flex-direction:column;align-items:center;gap:2rem}.contact-form,.contact-details{min-width:100%;max-width:100%}}@media(min-width:900px){.contact-section-body{flex-direction:row;align-items:center;justify-content:center;gap:2.5rem 3.5rem;max-width:1100px}.contact-details-wrap{flex:1;min-width:0}}@media(max-width:640px){.contact-details-grid{grid-template-columns:1fr}.contact-detail-item--wide{grid-column:auto}.contact-3d-illustration{width:min(220px,55vw);height:min(220px,55vw)}}@media(max-width:768px){.navbar{flex-direction:row;height:64px;min-height:64px;padding:0 clamp(1rem,4vw,2rem)}.navbar-links{display:none}.navbar-title{font-size:.95rem}.hero-name{font-size:2.8rem}.hero-subtitle{font-size:1.5rem;margin:1rem auto}.hero-image-3d-container{width:min(220px,58vw);height:min(220px,58vw)}.intro-section,.work-section{padding:60px 0 40px 4vw;align-items:center}.intro-inner,.timeline-card-centered{width:90vw;max-width:100%}.intro-title,.work-title{font-size:2.5rem}.timeline-centered{min-height:auto}.timeline-card-centered{position:static!important;width:100%!important;max-width:100%!important;margin:4rem 0 0!important}.timeline-card-centered.left,.timeline-card-centered.right{left:0!important;text-align:left!important;border-right:none!important;border-left:4px solid var(--accent-line)!important}.timeline-circle-centered{top:0!important;transform:translate(-50%,-50%)!important}.skills-row,.skills-row-offset{flex-wrap:wrap;margin-left:0!important;justify-content:center;gap:1.5rem}.skills-row-offset{margin-top:1.5rem}.contact-form{padding:2rem 1.5rem;min-height:auto;min-width:100%}.contact-title{font-size:2.2rem}.footer-content{flex-direction:column;gap:1rem}.footer-socials{gap:1.5rem}}@media(max-width:576px){.hero-name{font-size:2.2rem}.hero-hi{font-size:1.8rem}.hero-subtitle{font-size:1.2rem}.hero-image-3d-container{width:160px;height:160px}.hero-image-3d{width:120px;height:120px}.intro-title,.work-title{font-size:2rem}.intro-card{width:100%;max-width:100%;height:auto;min-height:160px;padding:1.5rem}.contact-title{font-size:1.8rem}.contact-form{padding:1.5rem}.contact-form label{font-size:1.1rem}.contact-form input,.contact-form textarea{padding:.9rem;font-size:1rem}.contact-form button{padding:.9rem 1.5rem;font-size:1.1rem;width:100%}.footer-copyright{font-size:1rem}}@media(max-width:480px){.hero-name{font-size:1.8rem}.hero-hi{font-size:1.5rem}.hero-subtitle{font-size:1rem}.intro-title,.work-title,.contact-title{font-size:1.6rem}.intro-desc,.timeline-header h3{font-size:1rem}.timeline-company,.timeline-desc{font-size:.9rem}.footer-socials{gap:1rem}.footer-icon{width:1.7em;height:1.7em}.hero-image-3d-container{width:140px;height:140px;margin-top:0}.hero-image-3d{width:90px;height:90px;border-width:5px}.hero-image-glow-ring{box-shadow:0 0 8px 2px #00eaffcc,0 0 16px 4px #7f5af0cc,0 0 0 2px #181f3a}.bottom-scroll,.hero-scroll-indicator.bottom-scroll{bottom:40px}.intro-card{width:120px;height:120px;min-width:120px;max-width:120px;min-height:120px;max-height:120px;padding:1rem;margin-bottom:.8rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.intro-card-icon{font-size:2rem;margin-bottom:.5rem}.intro-card-title{font-size:1rem;text-align:center}}@media(max-width:375px){.hero-name{font-size:1.6rem}.hero-hi{font-size:1.3rem}.hero-image-3d-container{width:140px;height:140px}.hero-image-3d{width:100px;height:100px}.intro-title,.work-title,.contact-title{font-size:1.4rem}.contact-form{padding:1.2rem}.bottom-scroll,.hero-scroll-indicator.bottom-scroll{bottom:24px}}@media(max-width:320px){.navbar{height:auto;padding:.5rem 0}.navbar-left{flex-direction:column;align-items:center;gap:.5rem}.navbar-title{font-size:.85rem;text-align:center}.navbar-links{gap:.8rem;margin-top:.5rem}.navbar-links a{font-size:.9rem}.theme-toggle-btn{margin:0;font-size:1.5rem}.hero-section{padding-top:5rem;min-height:auto}.hero-content{margin:0 auto;padding:0 1rem}.hero-hi{font-size:1.4rem}.hero-name{font-size:1.6rem;line-height:1.2}.hero-subtitle{font-size:.95rem;margin:.8rem 0}.hero-image-3d-container{width:120px;height:120px;margin:1rem auto}.hero-image-3d{width:90px;height:90px;border-width:3px}.hero-image-glow-ring{box-shadow:0 0 32px 8px #00eaff99,0 0 64px 16px #7f5af099,0 0 0 12px #181f3a}.intro-section{padding:2rem .5rem!important}.intro-inner{padding:1rem}.intro-title{font-size:1.5rem}.intro-desc{font-size:.95rem;line-height:1.6}.intro-card{width:100%;min-height:120px;padding:1rem;margin-bottom:.8rem}.intro-card-icon{font-size:2rem;margin-bottom:.8rem}.intro-card-title{font-size:1.1rem}.work-section{padding:2rem .5rem!important}.work-title{font-size:1.5rem;margin-bottom:1.5rem}.timeline-card-centered{padding:1rem .8rem}.timeline-header h3{font-size:.95rem}.timeline-company{font-size:.85rem}.timeline-date{font-size:.8rem}.timeline-desc{font-size:.85rem;padding-left:.8rem}.timeline-circle-centered{width:50px;height:50px}.skills-row,.skills-row-offset{gap:.8rem;margin-top:.8rem!important}.contact-section,.contact-section-flex{margin:2rem 0}.contact-section-body{padding:0 1rem}.contact-container{min-width:100%;padding:0 .5rem}.contact-form{min-width:100%;padding:1.5rem 1rem}.contact-title{font-size:1.5rem}.contact-label,.contact-form label{font-size:1rem}.contact-form input,.contact-form textarea{padding:.8rem;font-size:.95rem}.contact-form button{padding:.9rem;font-size:1rem}.contact-result{font-size:.95rem}.contact-3d-illustration{min-width:200px;min-height:200px;max-width:280px;max-height:280px}.footer-content{padding:0 .5rem}.footer-copyright{font-size:.9rem;text-align:center}.footer-socials{gap:1rem}.footer-icon{width:1.5em;height:1.5em}}.section-animate{opacity:0;transform:translate(60px);transition:opacity .7s cubic-bezier(.4,2,.3,1),transform .7s cubic-bezier(.4,2,.3,1);will-change:opacity,transform}.section-animate.visible{opacity:1;transform:translate(0)}.section-animate-left{opacity:0;transform:translate(-60px);transition:opacity .7s cubic-bezier(.4,2,.3,1),transform .7s cubic-bezier(.4,2,.3,1);will-change:opacity,transform}.section-animate-left.visible{opacity:1;transform:translate(0)}.hero-actions .cta-btn{border-radius:2em;font-size:1.05rem;padding:.65em 1.25em;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s;display:inline-flex;align-items:center;justify-content:center;text-align:center}.cta-btn.hero-cv-btn{background:linear-gradient(135deg,#0284c7,#0ea5e9,#38bdf8);color:#f8fafc;font-weight:600;border:none;border-radius:2em;font-size:1.05rem;padding:.7em 1.2em;margin-top:0;box-shadow:0 8px 28px #0ea5e938;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;min-width:unset;width:auto;max-width:220px;transition:transform .2s,box-shadow .2s,filter .2s}.cta-btn.hero-cv-btn:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 14px 36px #0ea5e947}.type-cursor{display:inline-block;width:1ch;color:var(--accent-strong);animation:blink-cursor .9s steps(1) infinite}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.envelope-svg-3d-anim{display:flex;align-items:center;justify-content:center;width:100%;height:100%;animation:float-envelope 2.8s ease-in-out infinite alternate}@keyframes float-envelope{0%{transform:translateY(0)}50%{transform:translateY(-32px) scale(1.04)}to{transform:translateY(0)}}@media(max-width:480px){.hero-section{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(4.25rem,env(safe-area-inset-top,0px)) 1.2rem 1.2rem}.hero-content{margin:0 auto;padding:0 .5rem;align-items:center;text-align:center}.cta-btn.hero-cv-btn{width:100%;max-width:180px;font-size:1rem;padding:.6em 1em}.hero-image-3d-container{margin:1.2rem auto 0;width:180px;height:180px}.hero-image-3d{width:150px;height:150px;border-width:8px}}.navbar-links .desktop-links{display:flex}.hamburger-menu{display:none;background:none;border:none;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;cursor:pointer;z-index:120}.hamburger-menu span{background:var(--page-fg);height:5px;width:28px;margin:6px 0;border-radius:3px;display:block;transition:background .2s}@media(max-width:768px){.navbar{height:64px;min-height:64px;position:relative;z-index:200}.hamburger-menu{display:flex!important;position:absolute;right:18px;top:50%;transform:translateY(-50%);z-index:9999;background:none;border:none;padding:0;width:44px;height:44px;align-items:center;justify-content:center}.hamburger-menu span{background:var(--page-fg);height:3px;width:22px;margin:3px 0;border-radius:2px;display:block;transition:background .2s}}.sidebar-overlay{position:fixed;inset:0;background:#00000059;z-index:110}.sidebar-nav{position:fixed;top:0;left:0;width:72vw;max-width:320px;height:100vh;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--glass-border);box-shadow:8px 0 40px #00000059;z-index:120;display:flex;flex-direction:column;padding:2.2rem 1.5rem 1.5rem;animation:sidebar-slide-in .25s cubic-bezier(.4,2,.3,1)}@keyframes sidebar-slide-in{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.sidebar-nav a{color:var(--page-fg);font-size:1.2rem;font-weight:600;margin-bottom:1.5rem;text-decoration:none;transition:color .2s}.sidebar-nav a:hover{color:var(--accent-strong)}.sidebar-close{background:none;border:none;color:var(--page-muted);font-size:2.2rem;position:absolute;top:1rem;right:1.2rem;cursor:pointer}.sidebar-nav .theme-toggle-btn{margin-top:2rem;font-size:1.6rem;color:var(--accent-strong);background:none;border:none;cursor:pointer}.ambient-grid{pointer-events:none;position:fixed;inset:0;z-index:0;opacity:.4;background-image:linear-gradient(rgba(148,163,184,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.06) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 20%,black 20%,transparent 70%);mask-image:radial-gradient(ellipse 70% 60% at 50% 20%,black 20%,transparent 70%)}.portfolio-root.light .ambient-grid{opacity:.55;background-image:linear-gradient(rgba(15,23,42,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.05) 1px,transparent 1px)}.mesh-gradient{pointer-events:none;position:fixed;inset:0;z-index:0;opacity:.35;background:radial-gradient(ellipse 70% 55% at 12% 0%,rgba(14,165,233,.14),transparent 58%),radial-gradient(ellipse 55% 45% at 88% 8%,rgba(56,189,248,.08),transparent 52%),radial-gradient(ellipse 50% 45% at 50% 100%,rgba(14,165,233,.06),transparent 50%)}.portfolio-root.light .mesh-gradient{opacity:.5;background:radial-gradient(ellipse 70% 50% at 10% 0%,rgba(14,165,233,.12),transparent 55%),radial-gradient(ellipse 50% 40% at 92% 15%,rgba(2,132,199,.08),transparent 50%),radial-gradient(ellipse 45% 40% at 50% 100%,rgba(14,165,233,.05),transparent 48%)}.portfolio-root.dark .ambient-grid{opacity:.55;background-image:linear-gradient(rgba(148,163,184,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.09) 1px,transparent 1px);-webkit-mask-image:radial-gradient(ellipse 85% 70% at 50% 15%,black 15%,transparent 72%);mask-image:radial-gradient(ellipse 85% 70% at 50% 15%,black 15%,transparent 72%)}@keyframes dark-aurora-pulse{0%,to{opacity:.5}50%{opacity:.66}}.portfolio-root.dark .mesh-gradient{opacity:.55;background:radial-gradient(ellipse 90% 60% at 50% -10%,rgba(34,211,238,.16),transparent 58%),radial-gradient(ellipse 55% 45% at 0% 30%,rgba(167,139,250,.07),transparent 50%),radial-gradient(ellipse 50% 50% at 100% 70%,rgba(56,189,248,.08),transparent 50%),radial-gradient(ellipse 40% 35% at 80% 20%,rgba(251,191,36,.05),transparent 50%);animation:dark-aurora-pulse 14s ease-in-out infinite}.glass-panel{background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:1.25rem;box-shadow:var(--glass-shadow)}.hero-eyebrow{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--page-muted);margin-bottom:1rem;max-width:36rem;line-height:1.5}.hero-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.hero-pill{display:inline-flex;align-items:center;font-size:.85rem;font-weight:600;padding:.35rem .85rem;border-radius:999px;border:1px solid var(--glass-border);background:#0ea5e91a;color:var(--page-fg)}.hero-pill.muted{font-weight:500;background:transparent;color:var(--page-muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.hero-secondary-btn{background:transparent!important;color:var(--page-fg)!important;border:1px solid var(--glass-border)!important;box-shadow:none!important}.hero-secondary-btn:hover{border-color:var(--accent-strong)!important;transform:translateY(-2px)}.section-heading{width:100%;max-width:900px;margin-bottom:2rem;padding:0 8vw}.section-heading.tight{margin-bottom:1.25rem}.section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}.section-lead{margin-top:1rem;font-size:1.08rem;line-height:1.65;color:var(--page-muted);max-width:52ch}.section-lead.centered-text{margin-left:auto;margin-right:auto}.projects-section{width:100vw;padding:80px 0 40px;z-index:2}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.25rem;padding:0 clamp(1rem,5vw,8vw) 2rem;max-width:1280px;margin:0 auto}.bento-card{grid-column:span 6;padding:1.5rem 1.5rem 1.35rem;display:flex;flex-direction:column;gap:.85rem;min-height:100%;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.bento-card:hover{transform:translateY(-4px);border-color:#0ea5e947;box-shadow:0 24px 60px #0000002e}.bento-card.span-wide{grid-column:span 12}.bento-card.span-tall{grid-column:span 6;grid-row:span 2;min-height:320px}.bento-card.span-default{grid-column:span 6}@media(max-width:992px){.bento-card,.bento-card.span-wide,.bento-card.span-tall,.bento-card.span-default{grid-column:span 12;grid-row:auto;min-height:unset}}.project-status{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .65rem;border-radius:999px;width:fit-content}.project-status.tone-live{background:#22c55e2e;color:#4ade80;border:1px solid rgba(34,197,94,.35)}.project-status.tone-shipped{background:#94a3b81f;color:var(--page-fg);border:1px solid rgba(148,163,184,.28)}.project-status.tone-wip{background:#fbbf2424;color:#fbbf24;border:1px solid rgba(251,191,36,.4)}.portfolio-root.light .project-status.tone-wip{color:#b45309;background:#fbbf2438;border-color:#d9770659}.bento-title{font-size:1.35rem;font-weight:700;color:var(--page-fg);margin-top:.35rem;line-height:1.25}.bento-blurb{font-size:.98rem;line-height:1.55;color:var(--page-muted)}.bento-bullets{margin:0;padding-left:1.15rem;color:var(--page-fg);font-size:.92rem;line-height:1.5}.bento-bullets li{margin-bottom:.35rem}.bento-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto}.tech-chip{font-size:.75rem;font-weight:600;padding:.28rem .55rem;border-radius:.45rem;background:#38bdf81f;color:var(--page-fg);border:1px solid rgba(56,189,248,.22)}.tech-chip.soft{background:#94a3b81a;border-color:#94a3b838;color:var(--page-fg)}.bento-link{font-size:.92rem;font-weight:700;color:var(--accent-strong);text-decoration:none;margin-top:.25rem;transition:color .2s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1)),transform .2s var(--ease-out-expo, cubic-bezier(.22, 1, .36, 1))}.bento-link:hover{text-decoration:underline}.bento-link.muted{color:var(--page-muted);font-weight:600;cursor:default}.education-section{width:100vw;padding:40px 0 60px;z-index:2}.education-card{margin:0 clamp(1rem,5vw,8vw);max-width:900px;padding:1.75rem 2rem;display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;justify-content:space-between;align-items:flex-start}.edu-degree{font-size:1.25rem;font-weight:700;color:var(--page-fg);margin-bottom:.35rem}.edu-school{color:var(--page-muted);font-size:1rem;margin-bottom:.25rem}.edu-dates{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.88rem;color:var(--accent-strong)}.edu-facts{list-style:none;padding:0;margin:0;font-size:.95rem;color:var(--page-fg);line-height:1.7}.edu-facts li strong{color:var(--accent-strong);font-weight:600}.skill-chips-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:720px;margin:2rem auto 0;padding:0 1.5rem}.portfolio-root.light .bento-title,.portfolio-root.light .bento-bullets,.portfolio-root.light .edu-degree,.portfolio-root.light .edu-facts{color:var(--page-fg)!important}.portfolio-root.light .bento-blurb,.portfolio-root.light .edu-school{color:var(--page-muted)!important}.portfolio-root.light .projects-section,.portfolio-root.light .education-section{color:var(--page-fg)}.portfolio-root.light .hero-hi,.portfolio-root.light .hero-subtitle{color:var(--page-fg)!important}.portfolio-root.light .hero-name{color:var(--accent-strong)!important}.portfolio-root.light .hero-eyebrow,.portfolio-root.light .hero-pill.muted{color:var(--page-muted)!important}.portfolio-root.light .hero-pill{background:#0ea5e91a;color:var(--page-fg)}.portfolio-root.light .section-lead{color:var(--page-muted)!important}.scroll-to-top{position:fixed;right:1.25rem;bottom:1.5rem;z-index:200;width:3rem;height:3rem;border-radius:12px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--page-fg);cursor:pointer;box-shadow:0 12px 40px #0003;opacity:0;transform:translateY(12px) scale(.94);pointer-events:none;transition:opacity .35s ease,transform .35s ease,border-color .2s,color .2s,background .2s;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.scroll-to-top.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.scroll-to-top:hover{color:var(--accent-strong);border-color:#0ea5e973}.portfolio-root.light .scroll-to-top{box-shadow:0 10px 30px #0f172a1f}.skill-icon-card{display:flex;flex-direction:column;align-items:center;gap:.5rem}.skill-icon-card-inner{width:108px;height:108px;border-radius:16px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.skill-icon-card:hover .skill-icon-card-inner{border-color:#0ea5e959;box-shadow:0 12px 32px #00000026;transform:translateY(-3px)}.skill-icon-img{width:52px;height:52px;object-fit:contain}.skill-icon-label{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--page-muted)}.contact-mail-visual{position:relative;display:flex;align-items:center;justify-content:center;width:min(320px,80vw);height:min(320px,80vw)}.contact-mail-ring{position:absolute;inset:8%;border-radius:50%;border:1px solid var(--glass-border);opacity:.6;animation:mail-ring-pulse 3.2s ease-in-out infinite}@keyframes mail-ring-pulse{0%,to{transform:scale(1);opacity:.45}50%{transform:scale(1.04);opacity:.85}}.contact-mail-icon{color:var(--accent-strong);filter:drop-shadow(0 12px 28px rgba(14,165,233,.25))}@media(prefers-reduced-motion:reduce){.contact-mail-ring,.portfolio-root.dark .mesh-gradient,.portfolio-root.dark .section-accent,.portfolio-root.light .section-accent{animation:none}}@keyframes dark-accent-glow{0%,to{opacity:.85;filter:brightness(1)}50%{opacity:1;filter:brightness(1.15)}}.portfolio-root.dark .section-accent{height:4px;border-radius:4px;background:linear-gradient(90deg,#5eead4,#a78bfa,#38bdf8,transparent);animation:dark-accent-glow 3.5s ease-in-out infinite}.portfolio-root.dark .section-kicker,.portfolio-root.dark .work-label{color:#5eead4;letter-spacing:.16em;text-shadow:0 0 28px rgba(45,212,191,.22)}.portfolio-root.dark .section-kicker.muted-kicker{color:#94a3b8;text-shadow:none}.portfolio-root.dark .work-title,.portfolio-root.dark .contact-title{background:none;-webkit-background-clip:unset;background-clip:unset;color:#f8fafc!important;-webkit-text-fill-color:#f8fafc;text-shadow:0 2px 24px rgba(0,0,0,.8),0 1px 2px rgba(0,0,0,.95)}.portfolio-root.dark .section-lead{color:#cbd5e1;font-size:1.1rem}.portfolio-root.dark .projects-section{position:relative;padding-top:5.5rem}.portfolio-root.dark .projects-section:before{content:"";position:absolute;inset:0 0 auto;height:min(50vh,420px);pointer-events:none;z-index:0;background:radial-gradient(ellipse 90% 120% at 50% -20%,rgba(45,212,191,.045),transparent 62%),radial-gradient(ellipse 50% 40% at 100% 30%,rgba(167,139,250,.035),transparent 50%)}.portfolio-root.dark .projects-section .section-heading,.portfolio-root.dark .projects-section .bento-grid{position:relative;z-index:1}.portfolio-root.dark .bento-card.glass-panel{position:relative;border-radius:1.05rem;border:1px solid rgba(255,255,255,.08);background:linear-gradient(165deg,#1c1f2af5,#0c0e14c7);box-shadow:0 0 0 1px #ffffff0a inset,0 20px 56px #00000080;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden}.portfolio-root.dark .bento-card.glass-panel:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(94,234,234,.45),transparent);opacity:.7;pointer-events:none}.portfolio-root.dark .bento-card:hover{transform:translateY(-6px);border-color:#2dd4bf59;box-shadow:0 0 0 1px #2dd4bf1f,0 28px 72px #00000094,var(--energy-glow)}.portfolio-root.dark .bento-title{letter-spacing:-.02em}.portfolio-root.dark .bento-blurb{color:#9ca3af}.portfolio-root.dark .tech-chip{background:#2dd4bf1a;border-color:#2dd4bf47;color:#e2e8f0}.portfolio-root.dark .tech-chip.soft{background:#94a3b814;border-color:#94a3b833;color:#cbd5e1}.portfolio-root.dark .bento-link:not(.muted){color:#5eead4}.portfolio-root.dark .work-section{position:relative;padding-top:5rem}.portfolio-root.dark .work-section:before{content:"";position:absolute;left:0;right:0;top:0;height:min(45vh,380px);pointer-events:none;z-index:0;background:radial-gradient(ellipse 70% 80% at 0% 40%,rgba(56,189,248,.04),transparent 55%),radial-gradient(ellipse 60% 50% at 100% 60%,rgba(45,212,191,.035),transparent 50%)}.portfolio-root.dark .work-section>div:first-of-type{position:relative;z-index:1}.portfolio-root.dark .work-section .timeline.timeline-centered{position:relative;z-index:1}.portfolio-root.dark .timeline-line-centered{width:3px;background:linear-gradient(180deg,#5eead4,#2dd4bf73 28%,#64748b59 55%,#a78bfa40);box-shadow:0 0 24px #2dd4bf40}.portfolio-root.dark .timeline-card-centered.glass-panel{background:linear-gradient(155deg,#181a22f5,#0b0d12e0);box-shadow:0 0 0 1px #ffffff0a inset,0 22px 50px #0000007a;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.portfolio-root.dark .timeline-card-centered.left{border-right:4px solid rgba(45,212,191,.65)}.portfolio-root.dark .timeline-card-centered.right{border-left:4px solid rgba(45,212,191,.65)}.portfolio-root.dark .timeline-circle-centered{border-color:#2dd4bf8c;box-shadow:0 0 0 4px #2dd4bf1a,0 14px 40px #0000008c,inset 0 1px #ffffff14}.portfolio-root.dark .timeline-desc{color:#d1d5db;opacity:1}.portfolio-root.dark .education-section{position:relative;padding-top:3.5rem}.portfolio-root.dark .education-section:before{content:"";position:absolute;inset:0 0 auto;height:240px;pointer-events:none;z-index:0;background:radial-gradient(ellipse 70% 100% at 80% 0%,rgba(251,191,36,.06),transparent 60%)}.portfolio-root.dark .education-section>.section-heading{position:relative;z-index:1}.portfolio-root.dark .education-card.glass-panel{position:relative;z-index:1;border-radius:1.1rem;border:1px solid rgba(255,255,255,.08);background:linear-gradient(160deg,#1a1c26f2,#0c0e14cc);box-shadow:0 0 0 1px #ffffff0a inset,0 24px 60px #0000007a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.portfolio-root.dark .edu-degree{background:none;-webkit-background-clip:unset;background-clip:unset;color:#f1f5f9!important;-webkit-text-fill-color:#f1f5f9;text-shadow:0 2px 18px rgba(0,0,0,.7)}.portfolio-root.dark .edu-school{color:#9ca3af}.portfolio-root.dark .edu-facts{color:#e2e8f0}.portfolio-root.dark .skills-section{position:relative;margin-top:80px;margin-bottom:80px}.portfolio-root.dark .skills-section:before{content:"";position:absolute;left:50%;top:0;transform:translate(-50%);width:min(900px,100%);height:280px;pointer-events:none;z-index:0;background:radial-gradient(ellipse 60% 80% at 50% 0%,rgba(167,139,250,.08),transparent 65%),radial-gradient(ellipse 50% 60% at 30% 40%,rgba(45,212,191,.06),transparent 55%)}.portfolio-root.dark .skills-section>.section-heading{position:relative;z-index:1}.portfolio-root.dark .skills-section .skills-row,.portfolio-root.dark .skills-section .skills-row-offset,.portfolio-root.dark .skills-section .skill-chips-wrap{position:relative;z-index:1}.portfolio-root.dark .skill-icon-card-inner{border-radius:1rem;border:1px solid rgba(255,255,255,.1);background:linear-gradient(145deg,#202330f2,#0e1016d9);box-shadow:0 0 0 1px #ffffff0a inset,0 12px 36px #0006;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.portfolio-root.dark .skill-icon-card:hover .skill-icon-card-inner{border-color:#a78bfa73;box-shadow:0 0 0 1px #a78bfa26,0 18px 48px #0000008c,0 0 40px #a78bfa1f;transform:translateY(-5px) scale(1.02)}.portfolio-root.dark .skill-icon-label{color:#a1a8b5}.portfolio-root.dark .contact-section,.portfolio-root.dark .contact-section-flex{position:relative;padding-top:2rem;padding-bottom:2rem}.portfolio-root.dark .contact-section:before,.portfolio-root.dark .contact-section-flex:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 55% 70% at 20% 50%,rgba(45,212,191,.07),transparent 55%),radial-gradient(ellipse 45% 60% at 85% 30%,rgba(56,189,248,.06),transparent 50%)}.portfolio-root.dark .contact-container,.portfolio-root.dark .contact-3d-illustration{position:relative;z-index:1}.portfolio-root.dark .contact-form,.portfolio-root.dark .contact-details{border-radius:1.2rem;border:1px solid rgba(255,255,255,.1);background:linear-gradient(165deg,#1a1c26f5,#0a0c12e0);box-shadow:0 0 0 1px #ffffff0a inset,0 28px 70px #0000008c;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.portfolio-root.dark .contact-detail-item{background:#ffffff08;border-color:#ffffff14}.portfolio-root.dark .contact-detail-item:hover{border-color:#5eead459;box-shadow:0 4px 24px #2dd4bf1a}.portfolio-root.dark .contact-detail-icon-wrap{background:#2dd4bf1f;border-color:#2dd4bf40}.portfolio-root.dark .contact-detail-icon,.portfolio-root.dark .contact-detail-value a{color:#5eead4}.portfolio-root.dark .contact-detail-value a:hover{color:#f0fdfa}.portfolio-root.dark .contact-form input:focus,.portfolio-root.dark .contact-form textarea:focus{box-shadow:0 0 0 2px #2dd4bf73;border-color:#5eead4}.portfolio-root.dark .contact-form button{background:linear-gradient(135deg,#0d9488,#14b8a6 40%,#5eead4);box-shadow:0 12px 32px #14b8a659}.portfolio-root.dark .contact-label{color:#5eead4;letter-spacing:.14em}.portfolio-root.dark .contact-3d-illustration{filter:drop-shadow(0 20px 50px rgba(45,212,191,.15))}.portfolio-root.dark .custom-footer{position:relative;background:linear-gradient(180deg,#050810,#0a0f1a);border-top:1px solid rgba(45,212,191,.15);box-shadow:0 -20px 60px #00000073}.portfolio-root.dark .footer-icon-link:hover{color:#5eead4;filter:drop-shadow(0 0 12px rgba(45,212,191,.45))}.portfolio-root.dark .scroll-to-top{border-radius:14px;border:1px solid rgba(45,212,191,.25);background:linear-gradient(145deg,#161a24f2,#0c0e14e6);box-shadow:0 0 0 1px #ffffff0d inset,0 16px 44px #00000080,0 0 32px #2dd4bf1f;color:#e2e8f0}.portfolio-root.dark .scroll-to-top:hover{color:#5eead4;border-color:#2dd4bf8c}.portfolio-root.dark .logo-mark{background:linear-gradient(145deg,#2dd4bf40,#a78bfa1f);border-color:#2dd4bf59;color:#99f6e4;box-shadow:0 0 24px #2dd4bf26}.portfolio-root.dark .sidebar-nav{border-right:1px solid rgba(45,212,191,.12);box-shadow:8px 0 48px #0000008c,inset 0 0 0 1px #ffffff0a}.portfolio-root.light .work-title{background:linear-gradient(105deg,#0f172a,#0369a1 55%,#0d9488);-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent!important}.portfolio-root.light .section-accent{height:4px;border-radius:4px;background:linear-gradient(90deg,#0ea5e9,#14b8a6,transparent)}.portfolio-root.light .bento-card:hover{border-color:#0ea5e959;box-shadow:0 26px 56px #0f172a1f}
