@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-sans-latin-400-normal-gapTbOY8.woff2) format("woff2"),url(/assets/geist-sans-latin-400-normal-BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-sans-latin-500-normal-uokXdC-Q.woff2) format("woff2"),url(/assets/geist-sans-latin-500-normal-CN2lyvyL.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/geist-sans-latin-600-normal-DFOURf8L.woff2) format("woff2"),url(/assets/geist-sans-latin-600-normal-CA1yjETN.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/geist-sans-latin-700-normal-BmN9tIp5.woff2) format("woff2"),url(/assets/geist-sans-latin-700-normal-CjScfYeH.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-LC9RFr9I.woff2) format("woff2"),url(/assets/geist-mono-latin-400-normal-CoULgQGM.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-latin-500-normal-D3o2eNa9.woff2) format("woff2"),url(/assets/geist-mono-latin-500-normal-DOxI7kZ4.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}:root{--background-primary: #0B1220;--background-secondary: #111827;--surface-accent: #1A2236;--text-primary: #E6EDF3;--text-secondary: #94A3B8;--text-headings: #F4F7FA;--text-headings-soft: #DDE6EE;--accent-primary: #E84A3A;--accent-primary-soft: #FF7A70;--accent-primary-muted: #F06A5F;--accent-primary-hover: #FF8A80;--accent-primary-rgb: 232, 74, 58;--accent-secondary: #4ADE80;--accent-tertiary: #60A5FA;--link-color: var(--accent-primary-hover);--accent-secondary-on-bg: #0B1220;--border-color: rgba(255, 255, 255, .08);--border-color-strong: rgba(255, 255, 255, .18);--glow-color-primary: rgba(var(--accent-primary-rgb), .28);--glow-color-secondary: rgba(74, 222, 128, .3);--glow-color-tertiary: rgba(96, 165, 250, .3);--font-family-main: "Geist Sans", "Inter", "Segoe UI", sans-serif;--font-family-mono: "JetBrains Mono", "Geist Mono", ui-monospace, monospace;--border-radius-small: 6px;--border-radius-medium: 10px;--border-radius-large: 16px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .4);--shadow-md: 0 4px 10px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .04);--transition-fast: .2s ease;--transition-medium: .3s ease;--transition-slow: .5s ease}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:max(80px,calc(80px + env(safe-area-inset-top)));-webkit-overflow-scrolling:touch}body{font-family:var(--font-family-main);color:var(--text-primary);background-color:var(--background-primary);line-height:1.6;min-height:100vh;min-height:100dvh;margin:0;padding:0;overflow-x:hidden;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--text-headings);font-weight:700;line-height:1.2}a{color:var(--link-color);text-decoration:none;transition:color var(--transition-medium)}a:hover{color:var(--accent-secondary)}:where([data-underline-links=true]) a{text-decoration:underline}button{cursor:pointer;font-family:var(--font-family-main);border:none;background:none}ul,ol{list-style-position:inside}img{max-width:100%;height:auto;will-change:transform}@media(hover:none){*{-webkit-tap-highlight-color:transparent}*:hover{transform:none!important}}@keyframes shimmer{0%{background-position:200% center}to{background-position:-200% center}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes pulse{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.7;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gentle-pulse{0%,to{box-shadow:0 0 20px #ffd70066}50%{box-shadow:0 0 30px #ffd70099}}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}@keyframes chomp{0%,to{transform:scale(1.1) rotate(0)}50%{transform:scale(1.2) rotate(180deg)}}@keyframes blast-off{0%{transform:scale(1.1) translateY(0)}50%{transform:scale(1.2) translateY(-10px)}to{transform:scale(1.1) translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:absolute;top:-100px;left:1rem;z-index:9999;padding:.65rem 1rem;background:var(--accent-primary);color:var(--text-headings);border-radius:var(--border-radius-medium);font-weight:600;transition:top var(--transition-fast)}.skip-link:focus,.skip-link:focus-visible{top:1rem;outline:2px solid var(--border-color-strong);outline-offset:2px}main:focus,main:focus-visible{outline:none}.container{width:100%;max-width:1800px;margin:0 auto;padding:0 1rem}section{padding:6rem 0;position:relative}.gradient-text{color:var(--text-headings)}.gradient-text span.emoji-native{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;color:initial!important;-webkit-text-fill-color:initial!important;text-fill-color:initial!important}.gradient-text .emoji-native{background:none;-webkit-text-fill-color:initial;text-fill-color:initial;font-size:inherit}.accent-text{color:var(--accent-primary)}.section-title{font-size:3rem;font-weight:800;margin-bottom:2rem;display:inline-block;position:relative;text-align:left;color:var(--text-headings-soft);text-shadow:none}.section-title .emoji-native{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;color:initial!important;-webkit-text-fill-color:initial!important;text-fill-color:initial!important;font-size:inherit}.section-title-icon{margin-left:.45rem;color:var(--accent-primary-muted, var(--accent-primary));font-size:.72em;vertical-align:.08em}.section-title:after{content:"";position:absolute;left:0;bottom:-15px;width:100px;height:5px;background:var(--accent-primary);border-radius:3px}.section-subtitle{color:var(--text-secondary);font-size:1.2rem;max-width:700px;margin:0 0 3rem;line-height:1.6}@media(max-width:1200px){.container{max-width:95%;padding:0 .5rem}}@media(max-width:992px){.container{padding:0 2rem}}@media(max-width:480px){.container{padding:0 1rem}.section-title{font-size:2rem}}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.8rem;border-radius:var(--border-radius-medium);font-weight:600;transition:all var(--transition-medium);box-shadow:var(--shadow-sm);will-change:transform;-webkit-tap-highlight-color:transparent}.primary-button{background:linear-gradient(135deg,var(--accent-primary),var(--accent-primary-muted));color:var(--text-headings)}.primary-button:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 0 15px var(--glow-color-primary),0 0 25px var(--glow-color-primary)}.secondary-button{background-color:transparent;color:var(--accent-primary);border:2px solid var(--accent-primary)}.secondary-button:hover{background-color:var(--accent-primary);color:var(--text-headings);transform:translateY(-3px) scale(1.03);box-shadow:0 0 15px var(--glow-color-primary)}.tertiary-button{background-color:transparent;color:var(--text-secondary);border:1px solid var(--text-secondary)}.tertiary-button:hover{background-color:var(--text-secondary);color:var(--background-primary);transform:translateY(-3px) scale(1.03)}.pacman-cta{background:linear-gradient(135deg,gold,orange)!important;color:#000!important;font-weight:700;box-shadow:0 0 20px #ffd70080;animation:gentle-pulse 2s ease-in-out infinite}.pacman-cta:hover{background:linear-gradient(135deg,orange,gold)!important;transform:translateY(-5px) scale(1.08)!important;box-shadow:0 0 30px #ffd700cc!important}@media(hover:none){.primary-button:hover,.secondary-button:hover,.tertiary-button:hover,.pacman-cta:hover{transform:none!important;box-shadow:none!important}}@media(max-width:480px){.primary-button,.secondary-button{padding:.6rem 1.2rem;font-size:.9rem}}.btn-tertiary{background-color:transparent;color:var(--accent-primary);border:1px solid var(--accent-primary)}.btn-tertiary:hover{background-color:var(--accent-primary);color:var(--text-headings)}.close-btn{background:#f44!important;color:#fff!important;border:none!important;border-radius:50%!important;width:35px!important;height:35px!important;min-width:35px!important;min-height:35px!important;max-width:35px!important;max-height:35px!important;cursor:pointer!important;font-size:1.25rem!important;font-weight:700!important;transition:all .2s ease!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;padding:0!important;flex-shrink:0!important;aspect-ratio:1 / 1!important;box-sizing:border-box!important}.close-btn:hover{background:#f66!important;transform:scale(1.1)!important}@media(max-width:768px){.btn{padding:.8rem 1.8rem;font-size:.95rem}.close-btn{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;max-width:30px!important;max-height:30px!important;font-size:1.125rem!important}}@media(max-width:480px){.btn{padding:.7rem 1.5rem;font-size:.9rem}}.lazy-load{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.lazy-load.loaded{opacity:1;transform:translateY(0)}.lazy-image{background:rgba(var(--accent-primary-rgb),.1);filter:blur(5px);transition:filter .3s ease}.lazy-image.loaded{filter:blur(0)}@media(max-width:768px){.defer-animation{animation:none!important}.defer-animation.in-view{animation:inherit}}.content-visibility-auto{content-visibility:auto;contain-intrinsic-size:0 500px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.lazy-load{opacity:1;transform:none}}@media(max-width:768px){.mobile-no-backdrop-filter{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.mobile-no-box-shadow{box-shadow:none!important}.mobile-simple-gradient{background:var(--accent-primary)!important}.mobile-will-change-transform{will-change:transform}.mobile-gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}}.main-header{position:fixed;top:0;width:100%;z-index:1000;background-color:#0b1220cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:calc(1rem + env(safe-area-inset-top)) 0 1rem;border-bottom:1px solid var(--border-color);transition:all var(--transition-medium);will-change:transform,background-color}.main-header.scrolled{background-color:#0b1220f2;box-shadow:0 0 10px #00000080;padding:calc(.6rem + env(safe-area-inset-top)) 0 .6rem}.header-content{display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.8rem;font-weight:700;white-space:nowrap}.logo-text{font-weight:600}.logo-text .accent{color:var(--accent-primary)}.main-nav{display:flex}.nav-list{display:flex;gap:2.5rem;list-style:none}.nav-link{background:transparent;border:0;color:var(--text-primary);font:inherit;font-weight:500;position:relative;padding:.5rem 0;cursor:pointer}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--accent-primary);transition:width var(--transition-medium)}.nav-link:hover,.nav-link.active,.nav-link[aria-current=true]{color:var(--link-color)}.nav-link:hover:after,.nav-link.active:after,.nav-link[aria-current=true]:after{width:100%}.nav-link:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:4px;border-radius:2px}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:space-between;width:44px;height:44px;background:rgba(var(--accent-primary-rgb),.15);border:1px solid var(--border-color);border-radius:var(--border-radius-medium);cursor:pointer;padding:11px 8px;z-index:1001;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.mobile-menu-toggle:hover,.mobile-menu-toggle.open{background:rgba(var(--accent-primary-rgb),.28);border-color:var(--accent-primary)}.mobile-menu-toggle .bar{height:2.5px;width:100%;background-color:var(--text-headings);border-radius:10px;transition:var(--transition-medium);display:block}.mobile-menu-toggle.open .bar:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.mobile-menu-toggle.open .bar:nth-child(2){opacity:0}.mobile-menu-toggle.open .bar:nth-child(3){transform:rotate(-45deg) translate(6px,-5px)}.header-actions,.header-actions__desktop-tools{display:flex;gap:1rem;align-items:center}.mobile-only-tools{display:none}.language-toggle{display:inline-flex;align-items:center;gap:.25rem}.lang-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary, var(--text-primary));padding:.3rem .55rem;font-size:.75rem;font-weight:600;letter-spacing:.04em;border-radius:var(--border-radius-medium);cursor:pointer;transition:color var(--transition-medium),border-color var(--transition-medium),background-color var(--transition-medium)}@media(hover:none),(max-width:768px){.lang-btn{min-width:44px;min-height:44px;padding:.55rem .6rem;font-size:.8rem}}.lang-btn:hover{color:var(--text-headings);border-color:var(--accent-primary)}.lang-btn:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.lang-btn.active{background-color:rgba(var(--accent-primary-rgb),.18);color:var(--link-color);border-color:var(--accent-primary)}.lang-divider{color:var(--text-secondary, var(--text-primary));opacity:.4;font-size:.75rem}.resume-button{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background-color:rgba(var(--accent-primary-rgb),.15);color:var(--accent-primary);border:2px solid var(--accent-primary);border-radius:var(--border-radius-medium);font-weight:600;transition:all var(--transition-medium)}.resume-button .icon{font-size:1.1rem}.resume-button:hover{background-color:var(--accent-primary);color:var(--text-headings);transform:translateY(-2px);box-shadow:0 0 15px var(--glow-color-primary)}.contact-button{display:inline-block;padding:.6rem 1.2rem;background-color:var(--accent-primary);color:var(--text-headings);border-radius:var(--border-radius-medium);font-weight:600;transition:all var(--transition-medium)}.contact-button:hover{background-color:var(--accent-secondary);color:var(--accent-secondary-on-bg);transform:translateY(-2px);box-shadow:0 0 15px var(--glow-color-secondary)}.contact-button:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.mobile-menu-toggle:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px;border-radius:4px}@media(max-width:768px){.main-nav{display:none;position:absolute;top:100%;left:0;width:100%;background-color:var(--surface-accent);padding:1rem 0;box-shadow:0 10px 20px #0000001a;z-index:999}.main-nav.open{display:block}.nav-list{flex-direction:column;gap:0;align-items:center}.nav-link{padding:1rem;width:100%;text-align:center}.mobile-menu-toggle{display:flex}.header-content{position:relative;justify-content:flex-start;gap:.5rem}.logo{font-size:1.4rem;margin-right:auto}.header-actions__desktop-tools{display:none}.header-actions{gap:.5rem}.mobile-only-tools{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem;margin-top:.5rem;border-top:1px solid var(--border-color);width:100%}.resume-button,.contact-button{padding:.5rem .8rem;font-size:.85rem}.resume-button .icon{font-size:1rem}}@media(max-width:480px){.main-header{padding:calc(.5rem + env(safe-area-inset-top)) 0 .5rem}.main-header.scrolled{padding:calc(.4rem + env(safe-area-inset-top)) 0 .4rem}.logo{font-size:1.2rem}.header-actions{gap:.4rem}.resume-button,.contact-button{padding:.45rem .6rem;font-size:.75rem;white-space:nowrap}.resume-button .icon{font-size:.9rem}.resume-button .icon{display:none}}@media(max-width:380px){.logo{font-size:1.1rem}.header-actions{gap:.3rem}.resume-button,.contact-button{padding:.4rem .5rem;font-size:.7rem}}.hero-section{min-height:85vh;display:flex;align-items:center;padding-top:7rem;padding-bottom:2rem;border-top:none;background:radial-gradient(ellipse 60% 50% at 85% 15%,rgba(var(--accent-primary-rgb),.07),transparent 60%),var(--background-primary);overflow:hidden;position:relative}.hero-section:before{display:none}.hero-section>.container{position:relative;z-index:1;display:flex;gap:3rem;align-items:center}.hero-content{display:flex;flex-direction:column;max-width:54%;animation:fadeInLeft 1s ease-out}.hero-supertitle{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-primary);margin-bottom:.85rem;line-height:1.4;font-weight:600;font-family:var(--font-family-mono)}.hero-title{max-width:760px;font-size:clamp(1.95rem,3.35vw,2.8rem);margin-bottom:1.15rem;line-height:1.22;text-wrap:balance;color:var(--text-headings-soft)}.hero-title-highlight{color:var(--text-headings);text-decoration-line:underline;text-decoration-color:rgba(var(--accent-primary-rgb),.5);text-decoration-thickness:.08em;text-underline-offset:.16em}.hero-title-highlight:nth-of-type(2){text-decoration-color:#60a5fa85}.hero-inline-icon{margin:0 .18em;color:var(--accent-primary-muted);font-size:.72em;vertical-align:.08em}.hero-subtitle{font-size:1.15rem;color:var(--text-secondary);margin-bottom:1.75rem;line-height:1.5}.hero-accent-with{color:var(--text-headings-soft);font-weight:700}.path-selector{display:flex;gap:.75rem;margin-bottom:1.75rem;flex-wrap:wrap}.path-button{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.2rem;border-radius:var(--border-radius-medium);background-color:var(--surface-accent);color:var(--text-primary);font-weight:500;font-size:.95rem;transition:all var(--transition-medium);border:1px solid var(--border-color);will-change:transform}.path-button .icon{font-size:1.1rem}.path-button:hover,.path-button.active{background-color:var(--accent-primary);color:var(--text-headings);transform:translateY(-3px);box-shadow:0 0 15px var(--glow-color-primary)}.hero-cta-container{display:flex;gap:1.5rem;margin-bottom:0;align-items:center;justify-content:flex-start}.hero-cta-container .primary-button{display:flex;align-items:center;gap:.6rem;padding:.8rem 1.5rem;border-radius:var(--border-radius-medium);font-weight:600;font-size:1rem;transition:all var(--transition-medium);border:2px solid;cursor:pointer;text-decoration:none;will-change:transform}.projects-cta{background-color:var(--accent-primary);color:var(--text-headings);border-color:var(--accent-primary)}.projects-cta:hover,.projects-cta.active{background-color:var(--link-color);border-color:var(--link-color);transform:translateY(-3px);box-shadow:0 0 20px var(--glow-color-primary)}.hero-cta-container .primary-button .icon{font-size:1.1rem}.hero-visual{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;animation:fadeInRight 1s ease-out .3s forwards;position:relative;gap:2rem}.hero-video-container{width:100%;max-width:550px;aspect-ratio:16 / 9;border-radius:var(--border-radius-large);overflow:hidden;box-shadow:0 0 40px rgba(var(--accent-primary-rgb),.18);border:2px solid rgba(var(--accent-primary-rgb),.18);transition:all var(--transition-medium);background:#000}.hero-video-container:hover{box-shadow:0 0 60px rgba(var(--accent-primary-rgb),.25);transform:scale(1.02)}.hero-video{width:100%;height:100%;object-fit:cover}.hero-avatar-container{position:relative;width:100%;max-width:500px;height:450px}.hero-avatar-container .avatar-container{height:100%;box-shadow:0 0 40px rgba(var(--accent-primary-rgb),.18);border:3px solid rgba(var(--accent-primary-rgb),.18);transition:all var(--transition-medium);background:#0b122099}.hero-avatar-container .avatar-container:hover{box-shadow:0 0 60px rgba(var(--accent-primary-rgb),.25);border-color:rgba(var(--accent-primary-rgb),.28);transform:scale(1.02)}.hero-profile-section{display:flex;flex-direction:column;align-items:center;gap:1rem}.profile-image-container{position:relative;width:300px;height:300px;border-radius:50%;overflow:hidden;border:4px solid rgba(var(--accent-primary-rgb),.35);box-shadow:0 0 30px rgba(var(--accent-primary-rgb),.16);transition:all var(--transition-medium);cursor:pointer}.profile-image-container:hover{border-color:rgba(var(--accent-primary-rgb),.55);box-shadow:0 0 45px rgba(var(--accent-primary-rgb),.24);transform:scale(1.05)}.profile-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-medium)}.profile-image-container:hover .profile-image{transform:scale(1.1)}.profile-hint{color:var(--text-secondary);font-size:.9rem;font-style:italic;opacity:.8;transition:opacity var(--transition-fast)}.profile-image-container:hover+.profile-hint{opacity:1;color:var(--accent-primary)}.tech-constellation{position:relative;width:100%;height:400px}.tech-node{position:absolute;padding:.8rem 1.2rem;background-color:var(--surface-accent);border-radius:var(--border-radius-medium);color:var(--text-primary);font-weight:600;border:1px solid var(--border-color-strong);box-shadow:0 0 12px #00000059;animation:float 5s ease-in-out infinite;z-index:5;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.tech-node:hover{transform:scale(1.15) translateY(-7px);color:var(--text-headings);border-color:rgba(var(--accent-primary-rgb),.55);box-shadow:0 0 24px var(--glow-color-primary)}.tech-node--ai{background-color:var(--surface-accent)}.tech-node--ai:hover{box-shadow:0 0 24px var(--glow-color-primary)}.tech-node--tech{background-color:var(--surface-accent)}.tech-node--tech:hover{box-shadow:0 0 24px var(--glow-color-primary)}.tech-node--business{background-color:var(--surface-accent)}.tech-node--business:hover{box-shadow:0 0 24px var(--glow-color-primary)}.tech-node--product{background-color:var(--surface-accent)}.tech-node--product:hover{box-shadow:0 0 24px var(--glow-color-primary)}.constellation-lines{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.constellation-line{stroke:var(--accent-primary);stroke-width:1.5;opacity:.3;transition:opacity .3s ease,stroke-width .3s ease}.tech-constellation:hover .constellation-line{opacity:.75;stroke-width:2px}@media(max-width:1400px){.hero-section>.container{gap:2rem}}@media(max-width:992px){.hero-section{text-align:center;min-height:75vh;padding-top:6.5rem;padding-bottom:1.5rem}.hero-section>.container{flex-direction:column;gap:2rem}.hero-content{max-width:100%;margin-bottom:0}.hero-title{font-size:clamp(1.9rem,5vw,2.6rem);margin-bottom:.75rem;max-width:820px}.hero-supertitle{font-size:.78rem;margin-bottom:.7rem}.hero-subtitle{font-size:1.1rem;margin-bottom:1.5rem}.hero-cta-container{justify-content:center;margin-bottom:1.5rem}.profile-image-container{width:250px;height:250px}.hero-visual{max-width:100%;margin-top:0}}@media(max-width:768px){.hero-section{padding-top:6rem}.profile-image-container{width:200px;height:200px}}@media(max-width:600px){.hero-section{min-height:60vh;padding-top:6.5rem;padding-bottom:1.5rem}.hero-section>.container{flex-direction:column;align-items:stretch;gap:1.2rem}.hero-content{max-width:100%;width:100%;margin-bottom:0;align-items:stretch;text-align:center}.hero-title{font-size:clamp(1.5rem,7vw,2.1rem);margin-bottom:.8rem;line-height:1.18}.hero-supertitle{font-size:.7rem;letter-spacing:.06em;margin-bottom:.5rem}.hero-subtitle{font-size:.9rem;margin-bottom:1.2rem;line-height:1.4}.hero-visual{flex-direction:column;align-items:center;width:100%;gap:.5rem;margin-top:0;position:static}.hero-cta-container{margin-top:1rem;flex-direction:column;width:100%;gap:1rem;justify-content:center;align-items:center}.hero-cta-container .primary-button{width:100%;max-width:280px;justify-content:center;padding:.8rem 1rem;font-size:.95rem}.hero-video-container{width:95%;max-width:400px}}@media(max-width:480px){.hero-section{padding-top:5.5rem}.profile-image-container{width:180px;height:180px}.path-selector{gap:.5rem}.path-button{padding:.5rem 1rem;font-size:.85rem}}@media(max-width:380px){.hero-section{padding-top:5rem}.hero-title{font-size:clamp(1.4rem,4vw,1.8rem)}.hero-subtitle{font-size:.85rem}.hero-supertitle{font-size:.65rem}.profile-image-container{width:160px;height:160px}}.about-me-section{padding:60px 20px;background-color:var(--background-secondary)}.about-me-content{max-width:1000px;margin:0 auto;color:var(--text-primary)}.about-me-layout{display:flex;align-items:flex-start;gap:2.5rem;text-align:left}.images-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.seattle-image-container{width:250px;height:140px;border-radius:15px;overflow:hidden;border:3px solid rgba(var(--accent-primary-rgb),.28);cursor:pointer;transition:transform var(--transition-medium),box-shadow var(--transition-medium);padding:0;background:none;display:block;font:inherit;color:inherit}.seattle-image-container:hover{transform:scale(1.05);box-shadow:0 0 20px var(--glow-color-primary)}.seattle-image-container:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.profile-image-button{background:none;border:0;padding:0;margin:0;cursor:pointer;display:inline-block;line-height:0;font:inherit;color:inherit}.profile-image-button:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:4px;border-radius:50%}.seattle-image{width:100%;height:100%;object-fit:cover}.profile-image-container{flex-shrink:0;width:220px;height:220px;text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin-top:-80px}.profile-image{width:220px;height:220px;min-width:220px;min-height:220px;aspect-ratio:1 / 1;box-sizing:border-box;border-radius:50%;object-fit:cover;object-position:center;border:3px solid var(--accent-primary);cursor:pointer;transition:transform var(--transition-medium),box-shadow var(--transition-medium);display:block;margin:0 0 .5rem;will-change:transform}.profile-image:hover{transform:scale(1.05);box-shadow:0 0 20px var(--glow-color-primary)}.profile-hint{font-size:.85rem;color:var(--text-secondary);font-style:italic;margin-top:.5rem}.about-text{flex-grow:1}.about-text p{margin-bottom:1.5rem;font-size:1rem;line-height:1.7;color:var(--text-primary)}.about-text p:last-child{margin-bottom:0}.about-text p strong{font-size:1.2rem;color:var(--accent-primary);display:block;margin-bottom:.5rem;font-weight:700}.about-text p:nth-child(2){font-size:1.1rem;font-weight:500;color:var(--text-primary)}.about-text p:nth-child(3){font-size:1rem;line-height:1.8}.about-cta{font-size:.95rem;color:var(--text-secondary);border-top:1px solid var(--border-color);padding-top:1rem;margin-top:1rem}.about-cta em{font-style:italic;opacity:.9}@media(max-width:768px){.about-me-section{padding:40px 20px}.about-me-layout{flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.profile-image-container{width:160px;height:160px;flex-shrink:0;margin-bottom:1.5rem;margin-top:0}.profile-image{width:160px;height:160px;min-width:160px;min-height:160px;aspect-ratio:1 / 1;object-fit:cover;object-position:center;border-radius:50%;box-sizing:border-box}.about-text{text-align:left}.about-text p{font-size:.95rem;line-height:1.6}.seattle-image-container{width:200px;height:110px}}@media(hover:none){.profile-image:hover{transform:none;box-shadow:none}}.finnish-flag-inline{width:1.1rem;height:.85rem;object-fit:contain;display:inline-block;vertical-align:middle;margin:0 .15rem;position:relative;top:-1px}.video-link{background:none;border:none;color:var(--accent-primary);text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit;padding:0;margin:0;transition:color var(--transition-fast)}.video-link:hover{color:var(--accent-secondary);text-decoration:none}.philosophy-section{padding:5rem 0 4rem;background:linear-gradient(180deg,var(--background-primary) 0%,rgba(11,18,32,.96) 100%);position:relative}.philosophy-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 15% 25%,rgba(var(--accent-primary-rgb),.1),transparent 70%),radial-gradient(ellipse 50% 40% at 85% 75%,rgba(96,165,250,.08),transparent 70%);z-index:0}.philosophy-section>.container{position:relative;z-index:1}.philosophy-header{text-align:center;margin-bottom:2.5rem}.philosophy-subtitle{color:var(--text-secondary);font-size:1.05rem;margin-top:.5rem;max-width:640px;margin-left:auto;margin-right:auto;line-height:1.55}.philosophy-callout{position:relative;max-width:780px;margin:0 auto 3rem;padding:2.25rem 2.5rem;background:linear-gradient(135deg,rgba(var(--accent-primary-rgb),.18),#60a5fa1a);border:1px solid rgba(var(--accent-primary-rgb),.35);border-radius:var(--border-radius-large);box-shadow:0 0 40px rgba(var(--accent-primary-rgb),.18);text-align:center}.philosophy-callout-icon{display:inline-block;font-size:2.4rem;margin-bottom:.75rem;filter:drop-shadow(0 0 12px rgba(var(--accent-primary-rgb),.45))}.philosophy-callout-heading{font-size:clamp(1.45rem,2.8vw,1.85rem);color:var(--text-headings);margin-bottom:1rem;line-height:1.25}.philosophy-callout-body{font-size:1.1rem;line-height:1.65;color:var(--text-primary);margin:0 auto;max-width:620px}.philosophy-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.philosophy-card{background-color:var(--surface-accent);border:1px solid var(--border-color);border-radius:var(--border-radius-medium);padding:1.5rem 1.5rem 1.6rem;transition:transform var(--transition-medium),border-color var(--transition-medium),box-shadow var(--transition-medium)}.philosophy-card:hover{transform:translateY(-3px);border-color:rgba(var(--accent-primary-rgb),.5);box-shadow:0 0 22px rgba(var(--accent-primary-rgb),.18)}.philosophy-card-icon{display:inline-block;font-size:1.6rem;margin-bottom:.6rem}.philosophy-card-heading{font-size:1.1rem;color:var(--text-headings);margin-bottom:.55rem;line-height:1.3}.philosophy-card-body{color:var(--text-secondary);font-size:.96rem;line-height:1.55;margin:0}@media(max-width:768px){.philosophy-section{padding:3.5rem 0 2.5rem}.philosophy-callout{padding:1.75rem 1.5rem;margin-bottom:2rem}.philosophy-callout-body{font-size:1rem}.philosophy-card{padding:1.25rem}}@media(max-width:480px){.philosophy-callout{padding:1.4rem 1.1rem}.philosophy-callout-icon{font-size:2rem}.philosophy-callout-heading{font-size:1.25rem}.philosophy-callout-body{font-size:.95rem}}@media(hover:none){.philosophy-card:hover{transform:none;box-shadow:none}}.speaking-section{padding:4.5rem 0 4rem;background-color:var(--background-primary)}.speaking-header{text-align:center;margin-bottom:2.5rem}.speaking-subtitle{color:var(--text-secondary);font-size:1.05rem;margin-top:.5rem;max-width:640px;margin-left:auto;margin-right:auto;line-height:1.55}.speaking-list{list-style:none;padding:0;margin:0 auto;max-width:880px;display:flex;flex-direction:column;gap:1rem}.speaking-item{display:grid;grid-template-columns:56px 1fr;gap:1.1rem;padding:1.25rem 1.5rem;background-color:var(--surface-accent);border:1px solid var(--border-color);border-radius:var(--border-radius-medium);transition:transform var(--transition-medium),border-color var(--transition-medium),box-shadow var(--transition-medium)}.speaking-item:hover{transform:translateY(-2px);border-color:rgba(var(--accent-primary-rgb),.45);box-shadow:0 0 18px rgba(var(--accent-primary-rgb),.15)}.speaking-icon{font-size:1.85rem;display:flex;align-items:center;justify-content:center;align-self:flex-start;width:56px;height:56px;border-radius:var(--border-radius-medium);background:linear-gradient(135deg,rgba(var(--accent-primary-rgb),.18),#60a5fa1a);border:1px solid rgba(var(--accent-primary-rgb),.25)}.speaking-body{display:flex;flex-direction:column;gap:.3rem;min-width:0}.speaking-meta{display:flex;flex-wrap:wrap;gap:.6rem;align-items:baseline;font-size:.82rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.speaking-venue{color:var(--accent-primary);font-weight:600}.speaking-year{color:var(--text-secondary);opacity:.85}.speaking-title{font-size:1.05rem;color:var(--text-headings);margin:0;line-height:1.35}.speaking-details{color:var(--text-secondary);font-size:.95rem;line-height:1.55;margin:.15rem 0 0}@media(max-width:768px){.speaking-section{padding:3.5rem 0 2.5rem}.speaking-item{padding:1rem 1.1rem;grid-template-columns:48px 1fr;gap:.9rem}.speaking-icon{width:48px;height:48px;font-size:1.55rem}.speaking-title{font-size:1rem}.speaking-details{font-size:.9rem}}@media(max-width:480px){.speaking-item{grid-template-columns:42px 1fr;gap:.75rem;padding:.9rem 1rem}.speaking-icon{width:42px;height:42px;font-size:1.4rem}.speaking-meta{font-size:.75rem;gap:.4rem}}@media(hover:none){.speaking-item:hover{transform:none;box-shadow:none}}.section-kicker{margin:0 0 .65rem;color:var(--accent-primary);font-family:var(--font-family-mono);font-size:.78rem;font-weight:600;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}.avatar-section-header,.about-section__header,.experience-section__header{max-width:820px;margin:0 auto 2.5rem;text-align:center}.avatar-section-header .section-title,.experience-section__header .section-title,.about-section__header .section-title{margin-bottom:1rem}.about-section{padding:5rem 0;background:var(--background-secondary)}.about-section__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:2rem;align-items:stretch}.about-section__profile,.about-section__philosophy,.about-section__speaking{background:#ffffff06;border:1px solid var(--border-color);border-radius:var(--border-radius-large);padding:1.6rem}.about-section__profile{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1.6rem;align-items:center}.about-section__profile .profile-image-container{margin-top:-72px}.about-section__philosophy{background:radial-gradient(ellipse 70% 55% at 90% 10%,rgba(var(--accent-primary-rgb),.12),transparent 70%),#ffffff06}.about-section__philosophy .philosophy-callout-icon{margin-bottom:.75rem}.about-section__philosophy-grid{margin-top:1.25rem}.about-section__speaking{margin-top:1.25rem;display:grid;grid-template-columns:minmax(220px,.35fr) minmax(0,1fr);gap:1.4rem}.about-section__speaking .speaking-list{max-width:none}.about-section__speaking-subtitle{color:var(--text-secondary);line-height:1.55}.experience-section{padding:5.5rem 0;background:radial-gradient(ellipse 70% 45% at 10% 0%,rgba(var(--accent-primary-rgb),.05),transparent 70%),var(--background-primary)}.experience-impact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:2rem}.experience-impact-actions{display:flex;justify-content:center;margin:-.75rem 0 2rem}.experience-impact-card,.experience-role,.experience-quote,.skills-education__card{background:#ffffff06;border:1px solid var(--border-color);border-radius:var(--border-radius-medium)}.experience-impact-card{padding:1.25rem;box-shadow:inset 0 1px #ffffff0a}.experience-impact-value{display:block;margin-bottom:.5rem;color:var(--accent-primary-muted);font-size:clamp(1.55rem,3vw,2.25rem);font-weight:800;line-height:1;text-shadow:none}.experience-impact-card h3{color:var(--text-headings-soft);font-size:.95rem;margin-bottom:.55rem}.experience-impact-card p,.experience-role__summary,.experience-role li,.experience-quote blockquote{color:var(--text-secondary);line-height:1.55}.experience-impact-card p{font-size:.88rem;margin:0}.experience-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.34fr);gap:1.5rem;align-items:start}.experience-timeline{display:flex;flex-direction:column;gap:1rem}.experience-role{display:grid;grid-template-columns:140px minmax(0,1fr);gap:1.25rem;padding:1.35rem}.experience-role__meta{color:var(--accent-primary-soft);font-family:var(--font-family-mono);font-size:.78rem;line-height:1.45;text-transform:uppercase}.experience-role h3{margin:0 0 .25rem;color:var(--text-headings);font-size:1.12rem}.experience-role__company{margin:0 0 .7rem;color:var(--text-primary);font-size:.92rem}.experience-role ul{margin:.9rem 0 0;padding-left:1.1rem}.experience-role li+li{margin-top:.45rem}.experience-toggle{align-self:flex-start;padding:.65rem 1rem;color:var(--text-primary);background:rgba(var(--accent-primary-rgb),.07);border:1px solid rgba(var(--accent-primary-rgb),.2);border-radius:var(--border-radius-medium);cursor:pointer}.experience-role__heading{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:flex-start}.experience-role__toggle{background:transparent;border:1px solid var(--border-color);color:var(--accent-primary);width:30px;height:30px;border-radius:50%;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease,border-color .2s ease;justify-self:end;flex-shrink:0}.experience-role__toggle:hover,.experience-role__toggle:focus-visible{background-color:rgba(var(--accent-primary-rgb),.16);color:var(--background-primary);border-color:rgba(var(--accent-primary-rgb),.16)}.experience-toggle:hover,.experience-toggle:focus-visible{color:var(--accent-primary-hover)}.experience-toggle:focus-visible,.experience-role__toggle:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.experience-testimonials{display:flex;flex-direction:column;gap:1rem}.experience-quote{margin:0;padding:1.25rem;position:relative;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.experience-quote:hover,.experience-quote:focus-visible{border-color:rgba(var(--accent-primary-rgb),.34);box-shadow:0 0 18px rgba(var(--accent-primary-rgb),.09);transform:translateY(-2px)}.experience-quote:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.experience-quote__text{display:block;margin:0 1.3rem 1rem 0;font-size:.95rem;color:var(--text-primary);line-height:1.55;font-style:italic}.experience-quote__text:before{content:"“";margin-right:.15em;color:var(--accent-primary);font-size:1.1em;font-style:normal;font-weight:600}.experience-quote__author{display:flex;flex-direction:column;gap:.2rem;color:var(--text-primary)}.experience-quote__author span{color:var(--text-secondary);font-size:.82rem}.experience-quote__cta{display:inline-block;margin-top:.8rem;color:var(--accent-primary);font-family:var(--font-family-mono);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.experience-quote__affordance{position:absolute;right:1rem;top:1.2rem;color:var(--accent-primary);opacity:.8}.skills-education{margin-top:2rem}.skills-education__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.skills-education__card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;padding:1.25rem}.skills-education__icon{color:var(--accent-primary);font-size:1.5rem;line-height:1}.skills-education__card h3{color:var(--text-headings);font-size:1rem;margin-bottom:.35rem}.skills-education__card p,.skills-education__card span,.skills-education__card li{color:var(--text-secondary);font-size:.88rem;line-height:1.45}.skills-education__card ul{margin:.4rem 0 0;padding-left:1rem}.skills-education__details{margin-top:.8rem}.skills-education__meta-block{margin-top:.9rem}.skills-education__meta-block strong{display:block;margin-bottom:.45rem;color:var(--text-primary);font-size:.82rem}.skills-education__tags{display:flex;flex-wrap:wrap;gap:.4rem}.skills-education__tags span{padding:.28rem .55rem;color:var(--text-secondary);background:#ffffff0a;border:1px solid var(--border-color);border-radius:var(--border-radius-small);font-size:.78rem;line-height:1.25}.skills-education__toggle{margin-top:1rem;padding:.65rem 1rem;color:var(--text-primary);background:rgba(var(--accent-primary-rgb),.07);border:1px solid rgba(var(--accent-primary-rgb),.2);border-radius:var(--border-radius-medium);cursor:pointer}.skills-education__toggle:hover,.skills-education__toggle:focus-visible{color:var(--accent-primary-hover)}.skills-education__toggle:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}@media(max-width:1100px){.experience-impact-grid,.skills-education__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-section__grid,.experience-layout,.about-section__speaking,.about-section__profile{grid-template-columns:1fr}}@media(max-width:700px){.avatar-section-header,.about-section__header,.experience-section__header{margin-bottom:1.6rem;text-align:left}.avatar-section-header .section-title,.experience-section__header .section-title,.about-section__header .section-title{font-size:clamp(1.85rem,9vw,2.4rem)}.about-section,.experience-section{padding:3.5rem 0}.experience-impact-grid,.skills-education__grid{grid-template-columns:1fr}.experience-impact-card{padding:1rem}.experience-impact-value{font-size:1.65rem}.experience-role{grid-template-columns:1fr;gap:.7rem;padding:1rem}.experience-role__meta{font-size:.72rem}.about-section__profile,.about-section__philosophy,.about-section__speaking{padding:1.15rem}.about-section__profile .images-container{order:2}.about-section__profile .about-text{order:1}.about-section__profile .profile-image-container{margin-top:0}.experience-quote,.skills-education__card{padding:1rem}}.avatar-section-skeleton{width:100%;min-height:620px;background-color:#030409}@media(max-width:600px){.avatar-section-skeleton{min-height:540px}}.avatar-display-placeholder{width:100%;height:100%;pointer-events:none}.avatar-section{padding:4rem 0;position:relative;overflow:hidden;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);width:100%;display:flex;justify-content:center;background-color:#030409;background-image:radial-gradient(ellipse at 50% 100%,rgba(var(--accent-primary-rgb),.05) 0%,transparent 60%);perspective:600px}.avatar-chat-panel{position:relative;display:flex;width:100%;min-width:0}.avatar-chat-panel--collapsed{align-items:flex-start;justify-content:flex-end}.avatar-ui-toggle{position:absolute;top:-2.4rem;right:0;z-index:5;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;font:inherit;font-size:.75rem;letter-spacing:.04em;color:var(--text-primary);background:#0b12208c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(var(--accent-primary-rgb),.32);border-radius:var(--border-radius-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.avatar-chat-panel--collapsed .avatar-ui-toggle{top:0}.avatar-ui-toggle:hover{background:rgba(var(--accent-primary-rgb),.14);border-color:var(--accent-primary)}.avatar-ui-toggle:focus-visible{background:rgba(var(--accent-primary-rgb),.14);border-color:var(--accent-primary);outline:2px solid var(--border-color-strong);outline-offset:2px}.avatar-ui-toggle:active{transform:scale(.97)}.avatar-ui-toggle-icon{font-size:.95rem;line-height:1}.avatar-section:before,.avatar-section:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-repeat:repeat;z-index:0;animation-timing-function:linear;animation-iteration-count:infinite}.avatar-section:before{background-image:radial-gradient(1px 1px at 25% 25%,rgba(255,255,255,1),transparent),radial-gradient(1px 1px at 75% 25%,rgba(100,150,255,.9),transparent),radial-gradient(1.5px 1.5px at 50% 50%,rgba(255,255,255,1),transparent),radial-gradient(1px 1px at 25% 75%,rgba(255,200,100,.8),transparent),radial-gradient(1.5px 1.5px at 75% 75%,rgba(255,255,255,1),transparent),radial-gradient(1px 1px at 10% 40%,rgba(120,180,255,.9),transparent),radial-gradient(1px 1px at 90% 60%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 40% 10%,rgba(255,255,255,1),transparent),radial-gradient(1px 1px at 60% 90%,rgba(80,120,255,.8),transparent),radial-gradient(1.5px 1.5px at 80% 40%,rgba(255,255,255,1),transparent),radial-gradient(1px 1px at 20% 60%,rgba(255,180,80,.9),transparent),radial-gradient(1px 1px at 50% 20%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 30% 80%,rgba(100,150,255,.7),transparent),radial-gradient(1px 1px at 70% 30%,rgba(255,255,255,1),transparent),radial-gradient(1px 1px at 85% 85%,rgba(120,180,255,.8),transparent),radial-gradient(1.5px 1.5px at 15% 15%,rgba(255,255,255,1),transparent);background-size:300px 300px;animation-name:move-stars-forward;animation-duration:95s}.avatar-section:after{background-image:radial-gradient(1.5px 1.5px at 22% 30%,rgba(255,255,255,.95),transparent),radial-gradient(1px 1px at 78% 22%,rgba(120,170,255,.85),transparent),radial-gradient(1.5px 1.5px at 60% 65%,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 32% 72%,rgba(255,200,130,.75),transparent),radial-gradient(1.5px 1.5px at 12% 80%,rgba(180,210,255,.85),transparent),radial-gradient(1px 1px at 88% 88%,rgba(255,255,255,.85),transparent);background-size:420px 420px;animation-name:move-stars-forward;animation-duration:110s}.avatar-content{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:2rem;align-items:stretch;max-width:1400px;margin-left:auto;margin-right:auto;width:100%;position:relative;z-index:1;perspective:2000px}.avatar-credential-strip{position:relative;z-index:1;max-width:1100px;margin:1.75rem auto 0;padding:.85rem 1.25rem;text-align:center;font-size:.92rem;line-height:1.5;color:var(--text-secondary);background:#0b12208c;border:1px solid rgba(var(--accent-primary-rgb),.16);border-radius:var(--border-radius-medium);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}@media(max-width:768px){.avatar-credential-strip{margin-top:1.25rem;padding:.75rem 1rem;font-size:.82rem;line-height:1.45}}@media(max-width:480px){.avatar-credential-strip{font-size:.76rem}}.magma-planet-canvas{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.magma-planet-canvas canvas{width:100%!important;height:100%!important;display:block}.black-hole-canvas{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.black-hole-canvas canvas{width:100%!important;height:100%!important;display:block}.avatar-display-container{width:100%;min-width:260px;max-width:420px;height:460px;min-height:460px;max-height:460px;align-self:center;justify-self:center;background:#0b122052;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:var(--border-radius-large);border:1px solid rgba(var(--accent-primary-rgb),.4);overflow:hidden;box-shadow:inset 0 0 24px rgba(var(--accent-primary-rgb),.1),0 4px 30px #00000080;display:flex;flex-direction:column;justify-content:center;align-items:center}.avatar-display-container canvas{opacity:.74}.avatar-container{width:100%;height:100%;position:relative;will-change:transform;transform:translateZ(0)}.avatar-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--text-secondary);z-index:10;margin:0 auto 1rem}.loading-spinner{width:40px;height:40px;border:3px solid rgba(var(--accent-primary-rgb),.3);border-top:3px solid var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.avatar-debug-panel{position:absolute;top:10px;right:10px;z-index:10}.debug-toggle{background:rgba(var(--accent-primary-rgb),.8);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--border-radius-small);cursor:pointer;font-size:.85rem;transition:all var(--transition-fast)}.debug-toggle:hover{background:var(--accent-primary);transform:scale(1.05)}.debug-content{position:absolute;top:100%;right:0;margin-top:.5rem;background:#0b1220f2;border:1px solid var(--border-color);border-radius:var(--border-radius-medium);padding:1rem;min-width:250px;max-width:300px;max-height:70vh;overflow-y:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 20px #0000004d}.debug-section{margin-bottom:1rem}.debug-section:last-child{margin-bottom:0}.debug-section h4{color:var(--accent-primary);font-size:.9rem;margin-bottom:.5rem;border-bottom:1px solid rgba(var(--accent-primary-rgb),.3);padding-bottom:.25rem}.debug-button{background:var(--accent-secondary);color:var(--text-headings);border:none;padding:.4rem .8rem;border-radius:var(--border-radius-small);cursor:pointer;font-size:.8rem;transition:all var(--transition-fast);width:100%;margin-bottom:.25rem}.debug-button:hover{background:var(--accent-primary);transform:translateY(-1px)}.morph-targets-grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;max-height:200px;overflow-y:auto}.morph-test-button{background:rgba(var(--accent-primary-rgb),.2);color:var(--text-primary);border:1px solid rgba(var(--accent-primary-rgb),.4);padding:.3rem .5rem;border-radius:var(--border-radius-small);cursor:pointer;font-size:.7rem;transition:all var(--transition-fast);text-align:center}.morph-test-button:hover{background:rgba(var(--accent-primary-rgb),.4);border-color:var(--accent-primary);transform:scale(1.02)}.more-targets{grid-column:1 / -1;text-align:center;color:var(--text-secondary);font-size:.7rem;font-style:italic;padding:.25rem}@media(max-width:1200px)and (min-width:993px){.avatar-display-container{max-width:380px;height:420px;min-height:420px;max-height:420px}.avatar-content{grid-template-columns:minmax(0,380px) minmax(0,1fr)}}@media(max-width:1200px){.avatar-content{gap:1.5rem}.container{max-width:95%;padding:0 .5rem}}@media(max-width:992px){.avatar-content{grid-template-columns:1fr;gap:1.5rem;max-width:680px}.avatar-display-container,.avatar-chat-container{height:auto;min-height:unset;max-height:unset;width:100%}.avatar-chat-panel{padding-top:3rem}.avatar-chat-panel--collapsed{min-height:3rem;padding-top:0}.avatar-chat-panel .avatar-ui-toggle{top:0;right:0}}@media(max-width:768px){html,body{touch-action:pan-y;-webkit-overflow-scrolling:touch}.avatar-display-container{touch-action:pan-y!important;-webkit-overflow-scrolling:touch}.avatar-display-container canvas{touch-action:none!important;pointer-events:none!important}.avatar-section{padding:3.75rem 0 2rem}.avatar-content{gap:1rem;padding:0 .5rem}.avatar-display-container,.avatar-chat-container{height:400px}}@media(max-width:600px){.avatar-section{padding:3.5rem 0 1rem;background-color:var(--background-primary);width:100%;min-height:calc(var(--vh, 1vh) * 100 - 1rem);display:flex;flex-direction:column}.avatar-section .container{padding-left:.5rem;padding-right:.5rem;width:100%;max-width:100%;margin:0 auto;flex-grow:1;display:flex;flex-direction:column}.avatar-content{display:flex;flex-direction:column;align-items:stretch;gap:1rem;width:100%;flex-grow:1;min-height:0}.avatar-display-container{flex-shrink:0;width:100%;height:280px;min-height:250px;position:relative;border-radius:12px;overflow:hidden;background-color:#2a2a3e;box-shadow:0 2px 10px #0003}.avatar-display-container .avatar-container{width:100%!important;height:100%!important;border-radius:12px;overflow:hidden}.avatar-display-container .avatar-container canvas{width:100%!important;height:100%!important;display:block}.avatar-chat-container{flex-grow:1;display:flex;flex-direction:column;width:100%;min-height:620px;max-height:calc(100vh - 360px);background-color:var(--chat-bg-color, #1F1D33);border-radius:12px;box-shadow:0 5px 15px #0000001a;overflow:hidden;padding:0}}@media(max-width:480px){.avatar-section{padding:3.5rem 0 2rem}.avatar-display-container,.avatar-chat-container{height:350px}.debug-content{right:-10px;min-width:200px;max-width:250px}.morph-targets-grid{grid-template-columns:1fr}.avatar-content{touch-action:pan-y}}@media(max-width:480px){.avatar-section{touch-action:pan-y;-webkit-overflow-scrolling:touch}.avatar-content{touch-action:pan-y}}@keyframes move-stars-forward{0%{transform:translateZ(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateZ(400px);opacity:0}}.cockpit-frame{position:absolute;inset:0;z-index:2;pointer-events:none}.cockpit-bar{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.5rem;background:linear-gradient(180deg,#141a2c00,#0a0e1ad9 35%,#060810f2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.cockpit-bar-top{top:0;height:48px;clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 100%,0 100%);box-shadow:inset 0 -1px #ffaa3c66,0 4px 14px #00000059}.cockpit-bar-bottom{bottom:0;height:32px;background:linear-gradient(0deg,#141a2c00,#0a0e1ad9 35%,#060810f2);clip-path:polygon(0 0,100% 0,calc(100% - 18px) 100%,18px 100%);box-shadow:inset 0 1px #ffaa3c66,0 -4px 14px #00000059}.cockpit-tag{display:flex;align-items:baseline;gap:.5rem;font-family:Menlo,Monaco,Consolas,monospace;letter-spacing:.08em;font-variant-numeric:tabular-nums;flex-shrink:0}.cockpit-tag-id{font-size:10px;color:#ffaa3c8c;text-transform:uppercase}.cockpit-tag-name{font-size:12px;color:#ffc864f2;text-transform:uppercase;font-weight:600}.cockpit-panel{display:flex;align-items:baseline;gap:.45rem;padding:.2rem .65rem;background:#0000004d;border-left:1px solid rgba(255,170,60,.25);border-radius:0 1px 1px 0;flex-shrink:0}.cockpit-panel-label{font-family:Menlo,Monaco,Consolas,monospace;font-size:9px;letter-spacing:.18em;color:#ffaa3c8c;text-transform:uppercase;white-space:nowrap}.cockpit-panel-value{font-family:Menlo,Monaco,Consolas,monospace;font-size:12px;letter-spacing:.04em;color:#ffc864f2;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.cockpit-panel-status{gap:.4rem}.cockpit-light{width:6px;height:6px;border-radius:50%;display:inline-block}.cockpit-light-ok{background:#50dc78d9;box-shadow:0 0 6px #50dc78b3}.cockpit-light-active{background:#ffaa3ce6;box-shadow:0 0 6px #ffaa3cb3;animation:cockpit-pulse 1.6s ease-in-out infinite}.cockpit-light-standby{background:#788caa80}@keyframes cockpit-pulse{0%,to{opacity:.5}50%{opacity:1}}.cockpit-panel-warp{flex:1 1 auto;max-width:240px;align-items:center}.cockpit-warp-track{position:relative;flex:1;height:2px;min-width:120px;background:#ffaa3c2e;overflow:hidden;border-radius:1px}.cockpit-warp-track:before{content:"";position:absolute;top:0;left:0;width:35%;height:100%;background:linear-gradient(to right,transparent 0%,rgba(255,170,60,.95) 50%,transparent 100%);animation:cockpit-warp-sweep 3.4s linear infinite}@keyframes cockpit-warp-sweep{0%{transform:translate(-100%)}to{transform:translate(285%)}}@media(max-width:768px){.cockpit-bar{gap:.5rem;padding:0 .75rem}.cockpit-tag-id,.cockpit-panel-status,.cockpit-panel-warp{display:none}.cockpit-bar-top{height:36px}.cockpit-bar-bottom{height:26px}.cockpit-panel{padding:.15rem .5rem;gap:.3rem}.cockpit-panel-label{font-size:8px;letter-spacing:.14em}.cockpit-panel-value,.cockpit-tag-name{font-size:10px}}.comet-field{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.comet{position:absolute;top:0;left:0;width:var(--comet-length, 240px);height:12px;opacity:0;transform-origin:100% 50%;animation:comet-pass var(--comet-duration, 45s) linear infinite;animation-delay:var(--comet-delay, 0s);will-change:transform,opacity}.comet-ion-tail{position:absolute;right:0;top:50%;width:100%;height:1.5px;margin-top:-.75px;border-radius:1.5px;background:linear-gradient(to right,#b4dcff00,#b4dcff0a 35%,#bee1ff2e 65%,#d7eeffb3 88%,#f0f8fff2 97%,#fff);filter:drop-shadow(0 0 3px rgba(225,240,255,.85)) drop-shadow(0 0 8px rgba(180,220,255,.55)) drop-shadow(0 0 16px rgba(140,200,255,.25))}.comet-dust-tail{position:absolute;right:0;top:50%;width:90%;height:6px;margin-top:-3px;border-radius:6px;background:linear-gradient(to right,#ffdcb400,#ffe1be0a 40%,#ffe6c824 70%,#fff0dc66 92%,#fff8eb99);filter:drop-shadow(0 0 5px rgba(255,225,190,.45)) drop-shadow(0 0 12px rgba(255,210,170,.22));transform-origin:100% 50%;transform:rotate(8deg)}.comet-coma{position:absolute;right:-8px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(220,240,255,.55) 0%,rgba(190,225,255,.32) 25%,rgba(160,210,255,.14) 55%,rgba(140,200,255,.04) 80%,transparent 100%);filter:blur(2px)}.comet-nucleus{position:absolute;right:-3px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#fff,#f8fcfff2,#dcf0ffb3 60%,#b4dcff00);filter:drop-shadow(0 0 4px rgba(255,255,255,.85));animation:comet-nucleus-flicker .85s ease-in-out infinite}@keyframes comet-nucleus-flicker{0%,to{opacity:.92;transform:scale(1)}35%{opacity:1;transform:scale(1.12)}60%{opacity:.82;transform:scale(.95)}}@keyframes comet-pass{0%,0.5%{transform:translate(var(--comet-start-x),var(--comet-start-y)) rotate(var(--comet-angle, 135deg));opacity:0}1%{transform:translate(var(--comet-start-x),var(--comet-start-y)) rotate(var(--comet-angle, 135deg));opacity:1}4%{transform:translate(var(--comet-end-x),var(--comet-end-y)) rotate(var(--comet-angle, 135deg));opacity:1}4.5%,to{transform:translate(var(--comet-end-x),var(--comet-end-y)) rotate(var(--comet-angle, 135deg));opacity:0}}.comet-1{--comet-length: 220px;--comet-start-x: 40vw;--comet-start-y: -2vw;--comet-end-x: -15vw;--comet-end-y: 40vw;--comet-angle: 142.6deg;--comet-delay: 0s}.comet-2{--comet-length: 280px;--comet-start-x: 60vw;--comet-start-y: -2vw;--comet-end-x: 115vw;--comet-end-y: 40vw;--comet-angle: 37.4deg;--comet-delay: 11s}.comet-2 .comet-ion-tail{background:linear-gradient(to right,#ffdcb400,#ffe1be0f 35%,#ffe8c838 65%,#fff2d7b3 88%,#fffaebf2 97%,#fffcf0);filter:drop-shadow(0 0 3px rgba(255,240,215,.85)) drop-shadow(0 0 8px rgba(255,220,180,.55)) drop-shadow(0 0 16px rgba(255,200,150,.25))}.comet-2 .comet-dust-tail{height:8px;margin-top:-4px;border-radius:8px;background:linear-gradient(to right,#ffc88c00,#ffcd960f 40%,#ffd7a538 70%,#ffe1b48c 92%,#ffebc3bf);filter:drop-shadow(0 0 6px rgba(255,200,140,.55)) drop-shadow(0 0 14px rgba(255,180,110,.28));transform:rotate(10deg)}.comet-2 .comet-coma{background:radial-gradient(circle at 50% 50%,rgba(255,240,215,.6) 0%,rgba(255,225,190,.35) 25%,rgba(255,210,170,.16) 55%,rgba(255,200,150,.04) 80%,transparent 100%)}.comet-2 .comet-nucleus{background:radial-gradient(circle at 50% 50%,#fffffa,#fff8e6f2,#ffebd2b3 60%,#ffdcb400);filter:drop-shadow(0 0 4px rgba(255,250,225,.85))}.comet-3{--comet-length: 180px;--comet-start-x: 50vw;--comet-start-y: 5vw;--comet-end-x: -15vw;--comet-end-y: 25vw;--comet-angle: 162.9deg;--comet-delay: 22s}.comet-4{--comet-length: 240px;--comet-start-x: 50vw;--comet-start-y: 5vw;--comet-end-x: 115vw;--comet-end-y: 25vw;--comet-angle: 17.1deg;--comet-delay: 33s}.nebula-backdrop{position:absolute;inset:-10%;z-index:0;pointer-events:none;overflow:hidden}.nebula-cloud{position:absolute;border-radius:50%;filter:blur(20px);mix-blend-mode:screen;will-change:transform}.nebula-cloud--purple{width:70%;height:80%;left:-12%;bottom:-20%;background:radial-gradient(ellipse 35% 30% at 35% 60%,rgba(255,95,130,.85) 0%,rgba(220,70,110,.55) 28%,rgba(170,45,90,.22) 60%,transparent 85%),radial-gradient(ellipse 28% 33% at 65% 45%,rgba(225,80,135,.7) 0%,rgba(180,55,105,.38) 35%,transparent 78%),radial-gradient(ellipse 60% 15% at 50% 73%,rgba(245,110,145,.5) 0%,transparent 82%),radial-gradient(circle 5% at 38% 57%,rgba(255,220,230,.95) 0%,transparent 70%),radial-gradient(circle 3.5% at 60% 48%,rgba(255,200,215,.8) 0%,transparent 75%),radial-gradient(ellipse 80% 70% at 50% 55%,rgba(190,65,110,.28) 0%,transparent 100%);animation:nebula-drift-1 90s ease-in-out infinite alternate}.nebula-cloud--teal{width:65%;height:75%;right:-14%;top:-22%;background:radial-gradient(ellipse 32% 30% at 60% 55%,rgba(70,220,245,.8) 0%,rgba(45,180,215,.5) 35%,transparent 78%),radial-gradient(ellipse 60% 9% at 45% 50%,rgba(95,230,250,.55) 0%,transparent 82%),radial-gradient(ellipse 24% 30% at 35% 65%,rgba(55,185,220,.55) 0%,transparent 80%),radial-gradient(circle 4.5% at 58% 53%,rgba(220,255,255,.95) 0%,transparent 75%),radial-gradient(circle 3% at 38% 62%,rgba(195,250,255,.8) 0%,transparent 75%),radial-gradient(ellipse 75% 70% at 50% 55%,rgba(35,145,185,.25) 0%,transparent 100%);animation:nebula-drift-2 110s ease-in-out infinite alternate}.nebula-cloud--magenta{width:55%;height:60%;left:28%;top:22%;background:radial-gradient(ellipse 30% 26% at 50% 50%,rgba(255,175,75,.8) 0%,rgba(225,140,50,.5) 35%,transparent 78%),radial-gradient(ellipse 26% 24% at 70% 58%,rgba(245,160,70,.62) 0%,transparent 78%),radial-gradient(ellipse 40% 13% at 35% 45%,rgba(250,175,90,.5) 0%,transparent 82%),radial-gradient(circle 3.5% at 48% 48%,rgba(255,245,200,.95) 0%,transparent 75%),radial-gradient(circle 2.8% at 56% 55%,rgba(255,230,180,.85) 0%,transparent 75%),radial-gradient(ellipse 70% 65% at 50% 50%,rgba(205,130,50,.25) 0%,transparent 100%);animation:nebula-drift-3 130s ease-in-out infinite alternate}@keyframes nebula-drift-1{0%{transform:translate(0) scale(1)}to{transform:translate(8%,-4%) scale(1.08)}}@keyframes nebula-drift-2{0%{transform:translate(0) scale(1.05)}to{transform:translate(-6%,5%) scale(1)}}@keyframes nebula-drift-3{0%{transform:translate(0) scale(1)}to{transform:translate(4%,-3%) scale(1.06)}}.star-twinkles{position:absolute;inset:0;z-index:1;pointer-events:none}.star-twinkle{position:absolute;border-radius:50%;animation:star-twinkle var(--twinkle-dur, 3s) ease-in-out infinite;animation-delay:var(--twinkle-delay, 0s)}.star-twinkle--size-m{width:3px;height:3px}.star-twinkle--size-s{width:2px;height:2px}.star-twinkle--white{background:radial-gradient(circle,white 0%,rgba(255,255,255,.6) 40%,transparent 70%);filter:drop-shadow(0 0 4px rgba(255,255,255,.9))}.star-twinkle--cool{background:radial-gradient(circle,rgba(220,235,255,1) 0%,rgba(140,200,255,.6) 40%,transparent 70%);filter:drop-shadow(0 0 5px rgba(140,200,255,.85))}.star-twinkle--warm{background:radial-gradient(circle,rgba(255,240,215,1) 0%,rgba(255,200,140,.6) 40%,transparent 70%);filter:drop-shadow(0 0 5px rgba(255,200,140,.85))}@keyframes star-twinkle{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1.4)}}@media(prefers-reduced-motion:reduce){.cockpit-light-active,.cockpit-warp-track:before,.comet,.comet-nucleus,.nebula-cloud,.star-twinkle{animation:none}.comet{display:none}.star-twinkle{opacity:.6}}.avatar-section.is-paused:before,.avatar-section.is-paused:after,.nebula-backdrop.is-paused .nebula-cloud,.star-twinkles.is-paused .star-twinkle,.comet-field.is-paused .comet,.comet-field.is-paused .comet-nucleus{animation-play-state:paused}.avatar-chat-container{background:transparent;border-radius:var(--border-radius-large);border:1px solid rgba(var(--accent-primary-rgb),.3);box-shadow:inset 0 0 2px 1px #ffffff0d,0 0 25px rgba(var(--accent-primary-rgb),.2),0 10px 30px #00000080;display:flex;flex-direction:column;position:relative;width:100%;max-width:860px;margin:0 auto;height:650px;overflow:hidden;box-sizing:border-box;flex-grow:1;min-height:0;transition:transform .4s cubic-bezier(.25,.46,.45,.94)}@media(hover:hover)and (pointer:fine){.avatar-chat-container{transform:rotateY(-15deg) rotateX(4deg) translateZ(50px)}.avatar-chat-container:hover{transform:rotateY(-2deg) rotateX(0) translateZ(0)}}.avatar-chat-container:before,.avatar-chat-container:after{content:"";position:absolute;width:20px;height:20px;border-color:var(--accent-primary);border-style:solid;z-index:2;transition:all .3s ease}.avatar-chat-container:before{top:10px;left:10px;border-width:2px 0 0 2px}.avatar-chat-container:after{bottom:10px;right:10px;border-width:0 2px 2px 0}.avatar-chat-wrapper{display:flex;gap:2rem;align-items:flex-start;width:100%;margin-bottom:3rem;margin-top:3rem;padding-top:2rem}.chat-header{padding:.5rem 1rem;border-bottom:1px solid rgba(var(--accent-primary-rgb),.2);background:transparent;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;flex-shrink:0;min-height:0;position:relative}.chat-header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--accent-primary);filter:blur(2px)}.chat-status{display:flex;align-items:center;gap:.4rem;color:var(--text-headings);font-weight:600;font-size:.9rem;text-shadow:0 0 5px rgba(var(--accent-primary-rgb),.5)}.status-dot{width:8px;height:8px;background:var(--accent-secondary);border-radius:50%;animation:pulse 2s ease-in-out infinite;box-shadow:0 0 8px var(--accent-secondary)}.speaking-indicator{color:var(--accent-primary);animation:pulse 1s ease-in-out infinite;text-shadow:0 0 5px var(--accent-primary)}.chat-subtitle{color:var(--text-secondary);font-size:.75rem;font-style:italic}.stop-speaking-btn{background:#ff6b6bcc;color:#fff;border:none;padding:.25rem .5rem;border-radius:var(--border-radius-small);font-size:.7rem;cursor:pointer;transition:all var(--transition-fast)}.stop-speaking-btn:hover{background:#ff6b6b;transform:scale(1.05)}.chat-header-actions{display:flex;gap:.5rem;align-items:center}.clear-chat-btn{background:rgba(var(--accent-primary-rgb),.6);color:#fff;border:none;padding:.25rem .5rem;border-radius:var(--border-radius-small);font-size:.7rem;cursor:pointer;transition:all var(--transition-fast)}.clear-chat-btn:hover{background:rgba(var(--accent-primary-rgb),.9);transform:scale(1.05)}.enable-speech-btn{background:var(--accent-primary);color:#fff;border:none;padding:.3rem .6rem;border-radius:var(--border-radius-small);cursor:pointer;font-size:.7rem;transition:all var(--transition-fast);box-shadow:0 2px 8px rgba(var(--accent-primary-rgb),.3)}.enable-speech-btn:hover{background:var(--accent-secondary);color:var(--accent-secondary-on-bg);transform:scale(1.05)}.chat-messages{flex-grow:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.85rem;min-height:0;background:transparent;-webkit-overflow-scrolling:touch;will-change:scroll-position}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#0b12204d;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:rgba(var(--accent-primary-rgb),.5);border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(var(--accent-primary-rgb),.7)}.message{display:flex;align-items:flex-start;animation:fadeInUp .3s ease-out;width:100%}.message.user{justify-content:flex-end}.message.avatar{justify-content:flex-start}.message-content{padding:.7rem 1rem;border-radius:10px;color:var(--text-primary);width:fit-content;max-width:min(86%,640px);position:relative;font-size:1rem;line-height:1.6;box-shadow:0 4px 12px #0000004d;word-wrap:break-word;flex:0 1 auto;background:linear-gradient(135deg,#0b1220cc,#141228bd);border:1px solid rgba(var(--accent-primary-rgb),.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.message.avatar .message-content{padding-right:2.75rem}.message-paragraph{margin:0}.message-paragraph+.message-paragraph{margin-top:.7em}.message.user .message-content{background:linear-gradient(135deg,#0d1220cc,#0f1c30bd);border-color:#5ac8fa80;color:var(--text-primary)}.contact-ctas{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.contact-ctas__btn{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.85rem;font-weight:500;border-radius:999px;border:1px solid rgba(var(--accent-primary-rgb),.45);color:var(--text-primary);background:#0b122099;text-decoration:none;cursor:pointer;transition:all var(--transition-fast)}.contact-ctas__btn:hover{background:#0b1220c7;color:var(--text-headings);border-color:var(--accent-primary);transform:translateY(-1px)}.contact-ctas__btn--primary{background:var(--accent-primary);color:var(--text-headings);border-color:var(--accent-primary)}.contact-ctas__btn--primary:hover{background:var(--accent-secondary);color:var(--accent-secondary-on-bg);border-color:var(--accent-secondary)}.inline-project-card{display:flex;align-items:center;gap:.7rem;width:100%;margin-top:.75rem;padding:.55rem .7rem;border:1px solid rgba(var(--accent-primary-rgb),.45);border-radius:6px;background:#0b1220b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.inline-project-card:hover,.inline-project-card:focus-visible{background:rgba(var(--accent-primary-rgb),.15);border-color:var(--accent-primary);transform:translateY(-1px)}.inline-project-card:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.inline-project-card__thumb{flex-shrink:0;width:56px;height:56px;object-fit:cover;border-radius:4px;background:#0b12208c}.inline-project-card__body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.inline-project-card__title{font-size:.95rem;font-weight:600;color:var(--text-headings);line-height:1.3}.inline-project-card__hint{font-size:.78rem;color:var(--accent-primary)}.language-badge{position:absolute;top:.5rem;left:.5rem;font-size:.95rem;line-height:1;opacity:.7;pointer-events:none}.message.avatar .message-content{padding-left:2rem}.speak-again-btn{position:absolute;top:.5rem;right:.5rem;background:none;border:none;color:var(--accent-secondary);cursor:pointer;padding:.25rem;border-radius:var(--border-radius-small);transition:all var(--transition-fast);font-size:1rem;opacity:.7;line-height:1}.speak-again-btn:hover:not(:disabled){opacity:1;background:rgba(var(--accent-primary-rgb),.2);transform:scale(1.1)}.speak-again-btn:disabled{opacity:.3;cursor:not-allowed}.typing-indicator{background:#0b1220c7;border:1px solid rgba(var(--accent-primary-rgb),.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.7rem 1rem;border-radius:var(--border-radius-medium);display:flex;gap:.5rem;align-items:center;max-width:85%}.typing-indicator span{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;animation:typing 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.chat-suggestions{padding:.6rem 1.75rem .6rem 1rem;border-top:1px solid rgba(var(--accent-primary-rgb),.2);display:flex;flex-wrap:wrap;gap:.5rem;background:transparent;flex-shrink:0;max-height:90px;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;position:relative}.hide-pills-btn{position:absolute;top:.15rem;right:.25rem;background:transparent;color:var(--text-secondary);border:none;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border-radius:4px;cursor:pointer;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast);z-index:1}.hide-pills-btn:hover{background:rgba(var(--accent-primary-rgb),.25);color:var(--text-headings)}.hide-pills-btn:focus-visible,.show-pills-inline-btn:focus-visible,.enable-speech-btn:focus-visible,.stop-speaking-btn:focus-visible,.clear-chat-btn:focus-visible,.speak-again-btn:focus-visible,.chat-send-button:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.show-pills-inline-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;margin:.6rem 1rem;padding:.5rem 1rem;background:rgba(var(--accent-primary-rgb),.12);color:var(--accent-primary);border:1px dashed rgba(var(--accent-primary-rgb),.5);border-radius:5px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.show-pills-inline-btn:hover{background:rgba(var(--accent-primary-rgb),.28);border-color:var(--accent-primary);border-style:solid;color:var(--text-headings);transform:translateY(-1px)}.suggestion-chip{background:#0b12208c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--accent-primary);border:1px solid var(--accent-primary);padding:.4rem .85rem;border-radius:5px;font-size:.85rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-weight:500;will-change:transform;position:relative;overflow:hidden;max-width:320px;text-overflow:ellipsis;box-shadow:inset 0 0 10px rgba(var(--accent-primary-rgb),.2)}.suggestion-chip__label{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.suggestion-chip:after{content:"";position:absolute;top:0;left:-150%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(var(--accent-primary-rgb),.4),transparent);transition:left .5s ease}.suggestion-chip:hover:after{left:150%}.suggestion-chip:hover:not(:disabled){background:rgba(var(--accent-primary-rgb),.3);color:var(--text-headings);transform:translateY(-2px) scale(1.02);box-shadow:0 4px 15px rgba(var(--accent-primary-rgb),.2),inset 0 0 15px rgba(var(--accent-primary-rgb),.3)}.suggestion-chip:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.suggestion-chip:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.chat-input-form{padding:.65rem 1rem max(.65rem,env(safe-area-inset-bottom));border-top:1px solid rgba(var(--accent-primary-rgb),.2);display:flex;gap:.75rem;background:transparent;border-radius:0 0 var(--border-radius-large) var(--border-radius-large);flex-shrink:0;min-height:0;position:relative}.chat-input{flex:1;background:#0b1220eb;border:1px solid rgba(var(--accent-primary-rgb),.3);border-radius:5px;padding:.65rem 1rem;color:var(--text-primary);font-size:1rem;transition:all var(--transition-fast)}.chat-input:focus,.chat-input:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px;border-color:var(--accent-primary);box-shadow:inset 0 0 10px rgba(var(--accent-primary-rgb),.1);background:#0b1220}.chat-input:disabled{cursor:not-allowed;background:#0b122099;border-color:rgba(var(--accent-primary-rgb),.2);color:var(--text-secondary)}.chat-input:disabled::placeholder{color:#ffffff73}.chat-send-button{background:var(--accent-primary);color:var(--text-headings);border:none;border-radius:5px;padding:.65rem 1.1rem;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;min-width:56px;font-weight:600;overflow:hidden;position:relative;box-shadow:0 2px 8px #0006}.chat-send-button i{position:relative;z-index:1}.chat-send-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#fff3;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease}.chat-send-button:hover:not(:disabled){background:var(--accent-secondary);color:var(--accent-secondary-on-bg);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--accent-primary-rgb),.3)}.chat-send-button:hover:not(:disabled):before{width:200px;height:200px}.chat-send-button:disabled{opacity:.5;cursor:not-allowed;transform:none}@media(max-width:992px){.avatar-chat-container{height:auto;width:100%;margin:0}.enable-speech-btn{padding:.5rem 1rem;font-size:.8rem}.chat-messages{min-height:200px}.chat-suggestions{max-height:100px}}@media(max-width:768px){.avatar-chat-container{height:auto;width:100%;margin:0}.enable-speech-btn{padding:.5rem 1rem;font-size:.8rem}.chat-messages{min-height:200px}.chat-suggestions{max-height:100px}}@media(max-width:414px){.avatar-chat-container{width:100%;margin:0;height:auto}.enable-speech-btn{font-size:.75rem;padding:.4rem .8rem}.chat-messages{min-height:150px;padding:.75rem 1rem}.chat-suggestions{max-height:80px;padding:.6rem 2rem .6rem .8rem}.suggestion-chip{font-size:.75rem;padding:.35rem .6rem}}@media(max-width:375px){.avatar-chat-container{width:100%;margin:0;height:auto}.enable-speech-btn{font-size:.7rem;padding:.3rem .6rem}.chat-messages{min-height:120px}.chat-suggestions{max-height:70px}.suggestion-chip{font-size:.7rem;padding:.3rem .5rem}}@media(max-width:600px){.avatar-chat-container{width:100%;margin:0;height:auto}.enable-speech-btn{font-size:.9rem;padding:.6em 1.2em}.chat-header{padding:.7rem 1rem;font-size:.9rem;flex-shrink:0;border-bottom:1px solid var(--border-color, #3A3860)}.chat-messages{padding:1rem;flex-grow:1;overflow-y:auto;min-height:200px;max-height:250px;background-color:#0b122033}.chat-suggestions{padding:.7rem 2rem .7rem 1rem;border-top:1px solid var(--border-color, #3A3860);flex-shrink:0;background-color:var(--chat-bg-color, #1F1D33);max-height:80px;overflow-y:auto}.chat-input-form{display:flex;align-items:center;padding:.7rem 1rem max(.7rem,env(safe-area-inset-bottom));border-top:1px solid var(--border-color, #3A3860);background-color:var(--chat-bg-color, #1F1D33);flex-shrink:0}.chat-input{font-size:16px;padding:.7rem 1rem}.chat-send-button{padding:.7rem 1rem;font-size:.9rem}.chat-send-button i{line-height:1}.message-content,.typing-indicator,.inline-project-card,.suggestion-chip{-webkit-backdrop-filter:none;backdrop-filter:none}}@media(max-height:700px)and (max-width:400px){.avatar-chat-container{height:auto}.chat-messages{min-height:100px}}.feedback-controls{display:flex;gap:.35rem;margin-top:.75rem;padding-top:.5rem;align-items:center;justify-content:flex-start;border-top:1px solid rgba(var(--accent-primary-rgb),.15)}.feedback-controls--commenting{flex-direction:column;align-items:stretch}.feedback-btn{background:transparent;border:1px solid rgba(var(--accent-primary-rgb),.25);border-radius:999px;padding:.15rem .5rem;font-size:.85rem;cursor:pointer;line-height:1;color:var(--text-primary);transition:background .15s ease,transform .15s ease,border-color .15s ease}@media(hover:none),(max-width:600px){.feedback-btn{min-height:44px;min-width:44px;padding:.55rem .9rem}}.feedback-btn:hover{background:rgba(var(--accent-primary-rgb),.12);border-color:rgba(var(--accent-primary-rgb),.6);transform:translateY(-1px)}.feedback-btn:active{transform:translateY(0)}.feedback-btn:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.feedback-btn--up:hover{background:#50dc7826;border-color:#50dc7899}.feedback-btn--down:hover{background:#f0505026;border-color:#f0505099}.feedback-thanks{font-size:.75rem;color:#ffffff8c;font-style:italic}.feedback-comment-input{width:100%;min-height:3rem;padding:.5rem;font:inherit;font-size:.85rem;color:var(--text-primary);background:#0a0a1473;border:1px solid rgba(var(--accent-primary-rgb),.35);border-radius:6px;resize:vertical;box-sizing:border-box}.feedback-comment-input:focus,.feedback-comment-input:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px;border-color:var(--accent-primary)}.feedback-comment-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.35rem}.feedback-comment-btn{font-size:.8rem;padding:.2rem .7rem;border-radius:4px;cursor:pointer;border:1px solid rgba(var(--accent-primary-rgb),.3);background:transparent;color:var(--text-primary);transition:background .15s ease}.feedback-comment-btn--send{background:rgba(var(--accent-primary-rgb),.5);border-color:rgba(var(--accent-primary-rgb),.8)}.feedback-comment-btn--send:hover{background:rgba(var(--accent-primary-rgb),.75)}.feedback-comment-btn--skip:hover{background:rgba(var(--accent-primary-rgb),.15)}.paste-detection-bar{display:flex;flex-direction:column;gap:.5rem;padding:.6rem .75rem;margin:0 .75rem .5rem;background:rgba(var(--accent-primary-rgb),.12);border:1px solid rgba(var(--accent-primary-rgb),.35);border-radius:8px;font-size:.85rem;color:var(--text-primary)}.paste-detection-hint{opacity:.85;line-height:1.35}.paste-detection-actions{display:flex;flex-wrap:wrap;gap:.4rem}.paste-detection-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;font-size:.8rem;border-radius:4px;border:1px solid rgba(var(--accent-primary-rgb),.45);background:#0a0a1480;color:var(--text-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease}@media(hover:none),(max-width:600px){.paste-detection-btn{min-height:44px;padding:.6rem .95rem;font-size:.9rem}}.paste-detection-btn:hover{background:rgba(var(--accent-primary-rgb),.25);border-color:rgba(var(--accent-primary-rgb),.8)}.paste-detection-btn:disabled{opacity:.45;cursor:not-allowed}.paste-detection-btn--dismiss{margin-left:auto;padding:.2rem .55rem;font-size:1rem;line-height:1}.paste-detection-btn--warn{border-color:#dca532b3;background:#dca5321f}.paste-detection-btn--warn:hover{background:#dca53240;border-color:#dca532f2}.paste-detection-btn__warn-suffix{color:#f5c35a}.paste-detection-warn{font-size:.78rem;line-height:1.35;color:#f5c35a;opacity:.95}.fit-card{margin-top:.6rem;border:1px solid rgba(var(--accent-primary-rgb),.35);border-radius:8px;background:#0a0a148c;overflow:hidden}.fit-card__header{display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem .75rem;border:none;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}.fit-card__rating{flex:0 0 auto;padding:.2rem .55rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:4px;background:rgba(var(--accent-primary-rgb),.45);color:#fff}.fit-card__verdict--strong .fit-card__rating{background:#50c8788c}.fit-card__verdict--partial .fit-card__rating{background:#dcaa3c8c}.fit-card__verdict--unlikely .fit-card__rating{background:#dc5a5a8c}.fit-card__headline{flex:1 1 auto;font-size:.9rem;line-height:1.35}.fit-card__chevron{flex:0 0 auto;opacity:.6;font-size:.95rem}.fit-card__self-note{padding:.45rem .75rem;font-size:.8rem;color:#ffffffbf;background:rgba(var(--accent-primary-rgb),.18);border-top:1px solid rgba(var(--accent-primary-rgb),.3)}.fit-card__body{padding:.6rem .75rem .75rem;display:flex;flex-direction:column;gap:.65rem;border-top:1px solid rgba(var(--accent-primary-rgb),.25)}.fit-card__section{display:flex;flex-direction:column;gap:.3rem}.fit-card__section-title{margin:0;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#ffffffb3}.fit-card__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.fit-card__strength,.fit-card__gap{display:flex;flex-direction:column;gap:.15rem;padding:.4rem .55rem;border-radius:6px;background:#0a0a1480;border-left:3px solid rgba(var(--accent-primary-rgb),.5)}.fit-card__gap--minor{border-left-color:#dcaa3c73}.fit-card__gap--moderate{border-left-color:#dc823c99}.fit-card__gap--major{border-left-color:#dc5a5aa6}.fit-card__requirement{font-size:.85rem;font-weight:500;line-height:1.3}.fit-card__evidence,.fit-card__adjacent{font-size:.8rem;line-height:1.4;color:#ffffffc7}.fit-card__adjacent--none{font-style:italic;color:#ffc8c8b3}.fit-card__next-step p{margin:0;font-size:.85rem;line-height:1.4}.fit-card__disclaimer{margin:0;font-size:.72rem;font-style:italic;color:#ffffff8c;padding-top:.4rem;border-top:1px dashed rgba(var(--accent-primary-rgb),.25)}.retro-games-floating{position:fixed;bottom:2rem;right:2rem;background:#2c2a4af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:1rem;box-shadow:0 0 30px #00ff004d;border:2px solid rgba(0,255,0,.3);z-index:100;animation:float 4s ease-in-out infinite;will-change:transform;transform:translateZ(0)}.games-mini-title{font-size:.9rem;color:var(--accent-secondary);margin-bottom:.5rem;text-align:center;font-weight:600}.games-mini-container{display:flex;gap:.5rem}.game-quick-launch{width:50px;height:50px;border-radius:12px;background:#00ff001a;border:2px solid rgba(0,255,0,.3);display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;transition:all var(--transition-fast);will-change:transform}.game-quick-launch:hover{background:#0f03;transform:scale(1.1) rotate(5deg);box-shadow:0 0 20px #00ff0080}.game-quick-launch.pacman:hover{animation:chomp .5s ease-in-out}.game-quick-launch.space:hover{animation:blast-off .5s ease-out}.retro-games-section{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:linear-gradient(135deg,#001c,#0b1220cc);border-radius:var(--border-radius-large);border:2px solid rgba(0,255,0,.3);box-shadow:0 0 30px #0f03;animation:subtle-glow 4s ease-in-out infinite}.games-title{font-family:Courier New,monospace;font-size:1.5rem;font-weight:700;color:var(--accent-secondary);text-shadow:0 0 10px var(--accent-secondary);text-align:center;letter-spacing:1px}.games-subtitle{font-family:Courier New,monospace;font-size:.9rem;color:var(--text-secondary);text-align:center;font-style:italic;margin-bottom:.5rem}.games-container{display:flex;gap:2rem;align-items:center;justify-content:center;flex-wrap:wrap}.games-tagline{font-family:Courier New,monospace;font-size:.85rem;color:var(--accent-primary);text-align:center;animation:gentle-blink 3s ease-in-out infinite;margin-top:.5rem}.games-tagline span{padding:.5rem 1rem;background:rgba(var(--accent-primary-rgb),.1);border-radius:var(--border-radius-small);border:1px solid rgba(var(--accent-primary-rgb),.3)}@media(max-width:992px){.retro-games-floating{bottom:1rem;right:1rem;padding:.75rem}.games-container{gap:1rem}}@media(max-width:768px){.games-container{flex-direction:column;gap:1.5rem}.games-title{font-size:1.2rem}.games-subtitle{font-size:.8rem}.retro-games-section{padding:1.5rem}}@media(max-width:600px){.retro-games-floating{position:static;width:100%;max-width:350px;margin:1.5rem auto .5rem;padding:1rem;border-radius:8px;order:3;flex-direction:row;align-items:center;gap:.8rem;background:#2c2a4ad9;border:1px solid rgba(0,255,0,.2);box-shadow:0 0 15px #00ff0026;animation:none!important}.games-mini-title{font-size:.85rem!important;margin-bottom:0!important;flex-shrink:0}.games-mini-subtitle{display:none!important}.games-mini-container{display:flex;flex-direction:row;gap:.5rem;justify-content:center;margin-left:auto}.game-quick-launch{width:50px;height:50px;font-size:1.5rem;border-radius:8px;border-width:1px;animation:none!important}}@media(max-width:480px){.retro-games-section{padding:1rem}.games-title{font-size:1rem}.games-subtitle{font-size:.75rem}.retro-games-floating{transform:scale(.9)}}@media(hover:none){.game-quick-launch:hover{transform:none!important;box-shadow:none!important;animation:none!important}.retro-games-floating{animation:none!important}}@keyframes subtle-glow{0%,to{box-shadow:0 0 30px #0f03;border-color:#00ff004d}50%{box-shadow:0 0 40px #0f06;border-color:#00ff0080}}@keyframes gentle-blink{0%,50%{opacity:1}25%{opacity:.7}75%{opacity:.9}}@keyframes games-pulse{0%,to{box-shadow:0 0 20px #00ff0080}50%{box-shadow:0 0 30px #00ff00b3}}.projects-section{position:relative;padding:8rem 0 6rem;margin-top:0;border-bottom:1px solid rgba(var(--accent-primary-rgb),.1);background:linear-gradient(to bottom,#0b1220e6,#191728e6)}.featured-projects-title{margin-bottom:2rem}.project-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:3rem;justify-content:center}.filter-button{background-color:var(--surface-default);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-small);padding:.7rem 1.5rem;font-size:1rem;cursor:pointer;transition:all var(--transition-medium);will-change:transform}.filter-button:hover{background-color:var(--surface-accent);transform:translateY(-2px)}.filter-button.active{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.filter-button:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.projects-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch}.project-card.featured-top{grid-column:span 7;grid-row:span 2;background:radial-gradient(ellipse 80% 55% at 100% 0%,rgba(var(--accent-primary-rgb),.08),transparent 70%),linear-gradient(135deg,var(--surface-accent) 0%,rgba(var(--accent-primary-rgb),.05) 100%);border:2px solid rgba(var(--accent-primary-rgb),.3);position:relative}.project-card.featured-top:before{content:"SELECTED WORK";position:absolute;top:1rem;left:1rem;background:var(--accent-primary);color:#fff;padding:.4rem .8rem;border-radius:var(--border-radius-small);font-size:.75rem;font-weight:700;letter-spacing:.5px;z-index:10;box-shadow:0 2px 8px rgba(var(--accent-primary-rgb),.4)}.project-card.featured-top .project-image-container{aspect-ratio:21 / 10}.project-card.featured-top .project-title-container h4{font-size:1.5rem;color:var(--accent-primary)}.project-card.featured-top .project-description-clamp{-webkit-line-clamp:4;line-clamp:4;max-height:6.4em;min-height:80px}.project-card{grid-column:span 5;background-color:#ffffff06;border-radius:var(--border-radius-medium);overflow:hidden;border:1px solid var(--border-color);box-shadow:0 4px 8px #0000000d;transition:transform var(--transition-medium),box-shadow var(--transition-medium),border-color var(--transition-medium);height:100%;display:flex;flex-direction:column;position:relative;isolation:isolate}.project-card:hover{transform:translateY(-3px);border-color:rgba(var(--accent-primary-rgb),.35);box-shadow:0 0 24px rgba(var(--accent-primary-rgb),.12)}.project-card .project-image-container{width:100%;aspect-ratio:16 / 9;overflow:hidden;background-color:var(--background-primary);border-radius:8px 8px 0 0;position:relative;cursor:pointer;border:0;padding:0;margin:0;display:block;color:inherit;font:inherit;text-align:left}.project-card .project-image-container:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px;border-radius:8px 8px 0 0}.project-card .project-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-medium)}.project-card .project-image[src*=Claude_AI_logo],.project-modal-image[src*=Claude_AI_logo],img[src*=Claude_AI_logo]{background:#fff;object-fit:contain;padding:12% 16%}.project-card:hover .project-image[src*=Claude_AI_logo]{transform:none}.project-card:hover .project-image{transform:scale(1.05)}.project-card .project-content{padding:1.2rem;flex-grow:1;display:flex;flex-direction:column;justify-content:space-between}.project-title-container{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem}.project-title-container h4{margin-bottom:0;flex-grow:1;font-size:1.2rem;color:var(--text-headings)}.project-links{display:flex;gap:.75rem;align-items:center}.github-link-icon,.pdf-link-icon{font-size:1.5rem;color:var(--text-secondary);transition:color .3s ease;flex-shrink:0}.github-link-icon:hover{color:var(--accent-primary)}.pdf-link-icon:hover{color:#dc3545}.project-card .project-description-clamp{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;margin-bottom:15px;min-height:0;max-height:4.8em;flex-grow:1;color:var(--text-secondary);line-height:1.6;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.project-card .tag-container{margin-bottom:1.1rem;display:flex;flex-wrap:wrap;gap:.5rem}.tag{background-color:rgba(var(--accent-primary-rgb),.1);color:var(--accent-primary);padding:.4rem .8rem;border-radius:var(--border-radius-small);font-size:.9rem}.assignment-tag{background-color:rgba(var(--accent-primary-rgb),.14)!important;color:var(--accent-primary)!important;font-weight:600;border:1px solid rgba(var(--accent-primary-rgb),.3)}.project-card .details-button{margin-top:auto;width:100%;background-color:rgba(var(--accent-primary-rgb),.1);color:var(--text-headings);border:1px solid rgba(var(--accent-primary-rgb),.28);border-radius:var(--border-radius-small);padding:.8rem 1.2rem;font-size:1rem;cursor:pointer;transition:background-color var(--transition-medium),border-color var(--transition-medium);display:inline-flex;align-items:center;gap:.5rem;justify-content:center}.project-card .details-button:hover{background-color:var(--accent-primary);border-color:var(--accent-primary)}.project-card .details-button:focus-visible,.github-link-icon:focus-visible,.pdf-link-icon:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.play-icon-overlay{position:absolute;inset:0;background-color:#0000004d;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity .3s ease;pointer-events:none}.view-details-overlay{position:absolute;inset:0;background-color:#0009;display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:0;transition:opacity .3s ease;color:#fff;text-align:center;pointer-events:none;border-radius:inherit}.project-image-container:hover .view-details-overlay{opacity:1}.view-details-overlay i.fas.fa-eye{font-size:2.5rem;margin-bottom:.75rem}.view-details-overlay span{font-size:1.1rem;font-weight:500}.no-projects-message{text-align:center;padding:3rem;font-size:1.2rem;color:var(--text-secondary);background-color:var(--surface-default);border-radius:var(--border-radius-medium);border:1px dashed var(--border-color)}@media(max-width:992px){.projects-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.project-card,.project-card.featured-top{grid-column:span 6}}@media(hover:none){.project-card:hover{transform:none;box-shadow:0 4px 8px #0000000d}.project-card:hover .project-image{transform:none}}.projects-subsection-title{margin-top:5rem}.project-glow{--x: 50%;--y: 50%;position:absolute;inset:0;background:radial-gradient(200px circle at var(--x) var(--y),rgba(255,140,0,.25) 0%,rgba(var(--accent-primary-rgb),.18) 40%,transparent 70%);opacity:0;transition:opacity .3s ease-out;pointer-events:none;z-index:0;border-radius:inherit}.project-card:hover .project-glow{opacity:1}.archived-projects-section{margin-top:4rem;padding-top:2rem;border-top:1px solid rgba(var(--accent-primary-rgb),.2)}.archived-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;background-color:var(--surface-default);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-medium);padding:1.2rem 1.5rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all var(--transition-medium);margin-bottom:1.5rem}.archived-toggle:hover{background-color:var(--surface-accent);border-color:rgba(var(--accent-primary-rgb),.4);transform:translateY(-2px)}.archived-toggle.open{background-color:rgba(var(--accent-primary-rgb),.1);border-color:var(--accent-primary)}.archived-toggle:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.archived-toggle .toggle-text{color:var(--text-primary)}.archived-toggle i{color:var(--accent-primary);transition:transform var(--transition-medium)}.archived-projects-list{display:flex;flex-direction:column;gap:1rem;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.archived-project-item{display:flex;justify-content:space-between;align-items:center;background-color:var(--surface-default);border:1px solid var(--border-color);border-radius:var(--border-radius-medium);padding:1.5rem;cursor:pointer;transition:all var(--transition-medium);color:inherit;font:inherit;text-align:left;width:100%}.archived-project-item:hover{background-color:var(--surface-accent);border-color:rgba(var(--accent-primary-rgb),.4);transform:translate(8px);box-shadow:0 4px 12px rgba(var(--accent-primary-rgb),.15)}.archived-project-item:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px}.archived-project-content{flex:1}.archived-project-name{font-size:1.1rem;font-weight:600;color:var(--text-headings);margin-bottom:.5rem}.archived-project-description{font-size:.95rem;color:var(--text-secondary);margin-bottom:.75rem;line-height:1.5}.archived-project-tags{display:flex;flex-wrap:wrap;gap:.5rem}.archived-project-arrow{font-size:1.2rem;color:var(--text-secondary);transition:all var(--transition-medium);margin-left:1rem;flex-shrink:0}.archived-project-item:hover .archived-project-arrow{color:var(--accent-primary);transform:translate(4px)}@media(max-width:768px){.projects-section{padding:5rem 0 4rem}.project-filters{justify-content:flex-start;gap:.6rem;margin-bottom:2rem}.filter-button{padding:.55rem .85rem;font-size:.88rem}.project-card.featured-top .project-image-container{aspect-ratio:16 / 9}.project-card .project-content{padding:1rem}.project-card.featured-top .project-title-container h4,.project-title-container h4{font-size:1.08rem}.project-card .project-description-clamp,.project-card.featured-top .project-description-clamp{-webkit-line-clamp:3;line-clamp:3;max-height:4.8em;min-height:0}.archived-projects-section{margin-top:3rem}.archived-toggle{padding:1rem;font-size:1rem}.archived-project-item{padding:1rem;flex-direction:column;align-items:flex-start}.archived-project-item:hover{transform:translate(0);transform:translateY(-4px)}.archived-project-arrow{align-self:flex-end;margin-left:0;margin-top:.5rem}.archived-project-name{font-size:1rem}.archived-project-description{font-size:.9rem}}@media(hover:none){.archived-toggle:hover{transform:none}.archived-project-item:hover{transform:none;box-shadow:none}}.expertise-section{position:relative;padding:6rem 0;background-color:var(--background-secondary);border-top:1px solid var(--border-color);overflow:hidden}.expertise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}.expertise-card{background-color:var(--surface-accent);padding:2rem;border-radius:var(--border-radius-medium);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:transform var(--transition-medium),box-shadow var(--transition-medium);cursor:pointer;will-change:transform}.expertise-card:hover{transform:translateY(-10px);box-shadow:0 0 20px var(--glow-color-primary)}.expertise-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.expertise-icon{font-size:2.5rem}.expertise-header h3{font-size:1.5rem;color:var(--accent-primary)}.expertise-years{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem}.expertise-skills{list-style-type:none;margin-bottom:1.5rem}.expertise-skills li{margin-bottom:.5rem;display:flex;align-items:center}.expertise-skills li:before{content:"→";color:var(--accent-secondary);margin-right:.5rem}.expertise-projects{margin-bottom:1.5rem;font-size:.9rem;color:var(--text-secondary)}.view-details-button{width:100%;padding:.8rem;border-radius:var(--border-radius-small);background-color:var(--accent-primary);color:var(--text-headings);font-weight:600;transition:all var(--transition-medium)}.view-details-button:hover{background-color:var(--accent-tertiary);transform:translateY(-2px)}.skill-visualization{margin-top:4rem;position:relative;overflow:hidden;z-index:2}.skill-visualization h3{text-align:center;margin-bottom:2rem}.skill-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:4rem;max-width:800px;margin:0 auto;justify-content:center}@media(max-width:768px){.skill-categories{grid-template-columns:1fr;max-width:400px;gap:3rem}}.skill-category{text-align:center}.skill-category h4{color:var(--accent-primary);margin-bottom:2rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem;font-size:1.4rem;position:relative}.skill-category h4:after{content:"";position:absolute;left:50%;bottom:-1px;transform:translate(-50%);width:40px;height:2px;background:var(--accent-primary);border-radius:1px}.category-title{opacity:0;transform:translateY(20px)}.category-title--visible{animation:fadeInUp .6s ease-out forwards;animation-delay:.2s}.skill-category{overflow:visible}.skill-bars{display:flex;flex-direction:column;gap:2rem;min-height:240px;justify-content:flex-start}.skill-bar{width:100%;transition:transform .2s ease-out,box-shadow .2s ease-out;position:relative}.skill-bar:hover{transform:translateY(-3px)}.skill-info{display:flex;justify-content:space-between;margin-bottom:.5rem}.skill-name{font-weight:600;transition:color var(--transition-fast),text-shadow var(--transition-fast)}.skill-name:hover{color:var(--accent-primary)}.skill-years{color:var(--text-secondary);font-size:.9rem}.skill-progress{height:10px;background-color:var(--surface-accent);border-radius:5px;overflow:hidden;position:relative}.skill-progress-bar{height:100%;border-radius:5px;position:relative;overflow:hidden}.skill-progress-bar--technical,.skill-progress-bar--business{background:linear-gradient(to right,var(--accent-primary),var(--link-color))}.skill-progress-bar--product{background:linear-gradient(to right,var(--surface-accent),var(--accent-primary))}.hardware-showcase{margin-top:4rem;padding:2rem;background-color:var(--surface-default);border-radius:var(--border-radius-medium);border:1px solid var(--border-color);box-shadow:0 4px 12px #0000001a}.hardware-section-title{font-size:1.8rem;margin-bottom:1rem;color:var(--text-headings);position:relative;display:inline-block}.hardware-section-title:after{content:"";position:absolute;left:0;bottom:-8px;width:60px;height:3px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));border-radius:2px}.hardware-description{color:var(--text-secondary);margin-bottom:2rem;max-width:800px;line-height:1.6}.hardware-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.hardware-item{position:relative;border-radius:var(--border-radius-medium);overflow:hidden;height:240px;box-shadow:0 4px 8px #0000001a;transition:transform var(--transition-medium),box-shadow var(--transition-medium)}.hardware-item:hover{transform:translateY(-5px);box-shadow:0 12px 20px #00000026}.hardware-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-medium)}.hardware-item:hover img{transform:scale(1.05)}.hardware-item .overlay{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.4),transparent);transform:translateY(0);transition:transform var(--transition-medium)}.hardware-item:hover .overlay{transform:translateY(0)}.hardware-item .overlay h4{font-size:1.3rem;margin-bottom:.5rem;color:#fff}.hardware-item .overlay p{font-size:1rem;margin-bottom:.5rem;color:#ffffffe6}.image-guidance{display:block;font-size:.8rem;color:#ffffffb3;font-style:italic;margin-top:.5rem}@media(hover:none){.expertise-card:hover,.hardware-item:hover,.hardware-item:hover img{transform:none}.skill-progress-bar:after{display:none}}@media(max-width:768px){.expertise-section{padding:4rem 0}.expertise-grid,.skill-categories{grid-template-columns:1fr}}@media(max-width:480px){.expertise-grid,.hardware-grid{grid-template-columns:1fr}.hardware-showcase{padding:1.5rem}}.testimonials-section{position:relative;padding:4rem 0;background-color:var(--background-secondary);border-top:1px solid var(--border-color);overflow:hidden}.testimonials-marquee-wrapper{width:100%;overflow:hidden;margin-top:1rem;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%)}.testimonials-controls{display:flex;justify-content:flex-end;margin-top:1.5rem}.testimonials-pause-btn{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:.4rem .85rem;border-radius:var(--border-radius-medium);font-size:.85rem;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.testimonials-pause-btn:hover{color:var(--text-headings);border-color:var(--accent-primary)}.testimonials-pause-btn:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.testimonials-grid-marquee{display:flex;flex-wrap:nowrap;width:max-content;animation:marquee-scroll 120s linear infinite;will-change:transform}.testimonials-grid-marquee.paused{animation-play-state:paused}.testimonials-grid-marquee.dragging{cursor:grabbing}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.testimonial-card{appearance:none;font:inherit;color:inherit;flex:0 0 auto;width:300px;min-height:170px;margin-right:1.5rem;background-color:var(--surface-accent);border-radius:var(--border-radius-large);padding:1.5rem 1.25rem;border:1px solid var(--border-color);box-shadow:var(--shadow-md);display:flex;flex-direction:column;text-align:left;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;position:relative;overflow:hidden;-webkit-user-select:none;user-select:none}.testimonial-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 8px 25px var(--glow-color-primary-soft, rgba(var(--accent-primary-rgb), .25))}.testimonial-card:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.testimonial-card:hover .gradient-hover-bg{width:250px;height:250px;transform:translate(-50%,-50%) scale(1)}.testimonial-card:hover .testimonial-card-affordance{opacity:1;transform:translate(0)}.testimonial-card .gradient-hover-bg{content:"";position:absolute;top:85%;left:50%;width:0;height:0;background-image:radial-gradient(circle,rgba(var(--accent-primary-rgb),.22),rgba(var(--accent-primary-rgb),0) 70%);border-radius:50%;transform:translate(-50%,-50%) scale(0);transition:width .4s ease-out,height .4s ease-out,transform .4s ease-out;z-index:0;pointer-events:none}.testimonial-teaser{font-size:1rem;line-height:1.55;color:var(--text-primary);font-style:italic;font-weight:500;margin:0 0 1.25rem;flex-grow:1;position:relative;z-index:1;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.testimonial-teaser:before{content:"“";font-size:1.4em;line-height:0;vertical-align:-.2em;color:var(--accent-primary);margin-right:.15em}.testimonial-author{display:flex;align-items:center;gap:.75rem;margin-top:auto;border-top:1px solid var(--border-color-translucent, rgba(255,255,255,.1));padding-top:.75rem;position:relative;z-index:1}.testimonial-image{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--accent-secondary);flex-shrink:0}.author-details{flex-grow:1;text-align:left;min-width:0}.author-name{font-size:.9rem;font-weight:600;color:var(--text-headings);margin-bottom:.1rem}.author-title{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.testimonial-card-affordance{flex-shrink:0;color:var(--accent-primary);opacity:0;transform:translate(-4px);transition:opacity .25s ease,transform .25s ease;font-size:.85rem;position:relative;z-index:1}@media(hover:none){.testimonial-card-affordance{opacity:.7;transform:translate(0)}}.highlighted-testimonial-point{color:var(--accent-primary);font-weight:500}.testimonial-default-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:var(--surface-muted, #e0e0e0);border-radius:50%;border:2px solid var(--accent-secondary);color:var(--text-secondary);font-size:1.5rem;flex-shrink:0}.carousel-arrow,.carousel-dots,.dot{display:none}.testimonial-modal-content{max-width:640px}.testimonial-modal-author{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-right:3rem}.testimonial-modal-image{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--accent-secondary);flex-shrink:0}.testimonial-modal-default-avatar{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background-color:var(--surface-muted, #e0e0e0);border-radius:50%;border:2px solid var(--accent-secondary);color:var(--text-secondary);font-size:2.25rem;flex-shrink:0}.testimonial-modal-author-details{flex-grow:1;min-width:0}.testimonial-modal-name{margin:0 0 .15rem;font-size:1.25rem;font-weight:600;color:var(--text-headings)}.testimonial-modal-title{margin:0;font-size:.9rem;color:var(--text-secondary)}.testimonial-modal-quote{font-size:1.05rem;line-height:1.7;color:var(--text-primary);font-style:italic;margin:0}@media(max-width:768px){.testimonials-section{padding:3rem 0}.testimonial-card{width:280px;min-height:160px;padding:1.25rem 1rem;margin-right:1rem}.testimonial-teaser{font-size:.95rem}.testimonial-image{width:35px;height:35px}.author-name{font-size:.85rem}.author-title{font-size:.7rem}.testimonial-default-avatar{width:35px;height:35px;font-size:1.3rem}.testimonials-grid-marquee{animation-duration:90s}.testimonial-modal-image,.testimonial-modal-default-avatar{width:56px;height:56px}.testimonial-modal-default-avatar{font-size:2rem}.testimonial-modal-name{font-size:1.1rem}.testimonial-modal-quote{font-size:1rem}}@media(max-width:480px){.testimonial-card{width:clamp(250px,80vw,280px);margin-right:.75rem}.testimonials-grid-marquee{animation-duration:75s}.testimonial-teaser{font-size:.9rem;line-height:1.55;-webkit-line-clamp:5}.testimonial-default-avatar{width:35px;height:35px;font-size:1.3rem}}@media(prefers-reduced-motion:reduce){.testimonials-marquee-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.testimonials-grid-marquee{animation:none;transform:none}.testimonial-card{scroll-snap-align:start}.testimonials-grid-marquee{scroll-snap-type:x proximity}.testimonial-card,.testimonial-card .gradient-hover-bg,.testimonial-card-affordance{transition:none}.testimonial-card:hover{transform:none}}.contact-section{position:relative;padding:8rem 0 6rem;margin-top:0;border-bottom:1px solid rgba(var(--accent-primary-rgb),.1)}.contact-subtitle{color:var(--text-secondary);margin-bottom:3rem;font-size:1.1rem;max-width:600px;margin-left:auto;margin-right:auto}.contact-options{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:4rem}.contact-option{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;background-color:var(--surface-accent);border-radius:var(--border-radius-medium);color:var(--text-primary);transition:all var(--transition-medium);will-change:transform}.contact-option:hover{transform:translateY(-5px);color:var(--text-headings)}.contact-option.email:hover{background-color:#ea4335;box-shadow:0 0 15px #ea433580}.contact-option.linkedin:hover{background-color:#0077b5;box-shadow:0 0 15px #0077b580}.contact-option.github:hover{background-color:#333;box-shadow:0 0 15px #33333380}.contact-option i{font-size:1.5rem}.contact-form-container{max-width:600px;margin:0 auto;background-color:var(--surface-accent);border-radius:var(--border-radius-large);padding:2.5rem;box-shadow:var(--shadow-lg)}.contact-form-container h3{margin-bottom:1.5rem;color:var(--accent-primary)}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;text-align:left}.form-group label{margin-bottom:.5rem;font-weight:500}.form-group input,.form-group textarea{padding:.8rem 1rem;background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-medium);color:var(--text-primary);font-family:var(--font-family-main);resize:vertical}.form-group input:focus,.form-group textarea:focus,.form-group input:focus-visible,.form-group textarea:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px;border-color:var(--accent-primary)}@media(hover:none){.contact-option:hover{transform:none}}@media(max-width:768px){.contact-section{padding:4rem 0 3rem}.contact-options{flex-direction:column;align-items:center;gap:1rem}.contact-option{width:100%;max-width:300px;justify-content:center}}@media(max-width:480px){.contact-options{flex-direction:column;align-items:center}.contact-option{width:100%;justify-content:center}.contact-form-container{padding:1.5rem}}.main-footer{background-color:var(--surface-accent);padding:4rem 0 2rem}.footer-content{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2rem;margin-bottom:2rem}.footer-logo{font-size:1.8rem;font-weight:700}.footer-nav{display:flex;list-style:none;gap:2rem;flex-wrap:wrap}.footer-nav a{color:var(--text-secondary);transition:color var(--transition-medium)}.footer-nav a:hover{color:var(--accent-primary)}.footer-social{display:flex;gap:1.5rem}.social-link{display:flex;justify-content:center;align-items:center;width:40px;height:40px;background-color:var(--background-secondary);border-radius:50%;color:var(--text-secondary);font-size:1.2rem;transition:all var(--transition-medium);will-change:transform}.social-link:hover{transform:translateY(-5px);color:var(--text-headings)}.social-link:nth-child(1):hover{background-color:#0077b5;box-shadow:0 0 10px #0077b580}.social-link:nth-child(2):hover{background-color:#333;box-shadow:0 0 10px #33333380}.footer-bottom{text-align:center;padding-top:2rem;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.9rem}@media(hover:none){.social-link:hover{transform:none}}@media(max-width:992px){.footer-content{flex-direction:column;align-items:center;text-align:center;gap:1.5rem}.footer-nav{justify-content:center}}@media(max-width:768px){.main-footer{padding:3rem 0 1.5rem}.footer-nav{flex-direction:column;gap:1rem}.footer-social{gap:1rem}}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:1;visibility:visible;transition:opacity .3s ease,visibility .3s ease}.modal-content{background:radial-gradient(ellipse 80% 55% at 100% 0%,rgba(var(--accent-primary-rgb),.1),transparent 70%),var(--background-secondary);padding:30px;border-radius:var(--border-radius-large);box-shadow:0 10px 30px #0003;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;overflow-x:hidden;position:relative;border:1px solid var(--border-color-strong);isolation:isolate}.modal-content:before{content:none!important}.modal-close{position:absolute;top:10px;right:10px;background-color:#0b1220c2;border:1px solid var(--border-color-strong);color:var(--text-primary);border-radius:50%;width:44px;height:44px;min-width:44px;min-height:44px;font-size:1.25rem;font-weight:700;cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .2s ease;z-index:1001;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.modal-close:hover{background-color:rgba(var(--accent-primary-rgb),.12);color:var(--accent-primary);transform:scale(1.1)}.modal-content h2{margin-top:0;margin-bottom:1rem;font-size:2rem;color:var(--text-headings)}.modal-content .project-title-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-content .project-title-container h2{margin-bottom:0;flex-grow:1}.modal-content .project-links{display:flex;gap:1rem;align-items:center}.modal-content .github-link-icon,.modal-content .pdf-link-icon{font-size:1.75rem;color:var(--text-secondary);transition:color .3s ease;flex-shrink:0}.modal-content .github-link-icon:hover{color:var(--accent-primary)}.modal-content .pdf-link-icon:hover{color:#dc3545}.project-modal-video-container{width:100%;aspect-ratio:16 / 9;margin-bottom:20px;border-radius:8px;overflow:hidden}.project-modal-video-container iframe{width:100%;height:100%;border:none}.project-modal-image-container{width:100%;max-height:450px;margin-bottom:20px;display:flex;justify-content:center;align-items:center;background-color:#0000001a;border-radius:8px;overflow:hidden}.project-modal-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;cursor:zoom-in}.project-modal-image-button,.project-modal-carousel-image-button{background:transparent;border:0;padding:0;margin:0;cursor:zoom-in;display:inline-flex;align-items:center;justify-content:center;max-width:100%;max-height:100%}.project-modal-image-button:focus-visible,.project-modal-carousel-image-button:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:3px;border-radius:6px}.project-modal-carousel{width:100%;margin-bottom:20px;display:flex;flex-direction:column;align-items:center;gap:12px}.project-modal-carousel-stage{width:100%;height:min(560px,52vh);position:relative;display:flex;justify-content:center;align-items:center;background-color:#00000040;border-radius:8px;overflow:hidden}.project-modal-carousel-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;cursor:zoom-in;transition:opacity var(--transition-fast)}.project-modal-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background-color:#141423b8;color:var(--text-primary, #e0e0e0);font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast);z-index:2}.project-modal-carousel-arrow:hover{background-color:rgba(var(--accent-primary-rgb),.85);border-color:#ffffff59;transform:translateY(-50%) scale(1.05)}.project-modal-carousel-arrow:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.project-modal-carousel-arrow-prev{left:12px}.project-modal-carousel-arrow-next{right:12px}.project-modal-carousel-caption{font-size:.95rem;line-height:1.45;color:var(--text-secondary, #a0a0cc);text-align:center;margin:0;padding:0 8px;max-width:680px;min-height:4.35em}.project-modal-carousel-dots{display:flex;gap:8px;align-items:center;justify-content:center}.project-modal-carousel-dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background-color:#ffffff1f;padding:0;cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast)}.project-modal-carousel-dot:hover{background-color:#ffffff47}.project-modal-carousel-dot.active{background-color:var(--accent-primary, var(--accent-primary));border-color:var(--accent-primary, var(--accent-primary));transform:scale(1.15)}@media(max-width:600px){.project-modal-carousel-stage{height:min(460px,48vh)}.project-modal-carousel-arrow{width:44px;height:44px;min-width:44px;min-height:44px;padding:3px}.project-modal-carousel-arrow-prev{left:6px}.project-modal-carousel-arrow-next{right:6px}.project-modal-carousel-caption{font-size:.88rem;min-height:5.8em}}@media(min-width:768px){.project-modal-carousel-side{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;column-gap:28px;row-gap:12px;align-items:stretch}.project-modal-carousel-side .project-modal-carousel-stage{grid-column:1;grid-row:1 / span 2;width:auto;height:min(720px,72vh);aspect-ratio:1080 / 2340;box-sizing:content-box;padding-left:56px;padding-right:56px}.project-modal-carousel-side .project-modal-carousel-arrow-prev{left:6px}.project-modal-carousel-side .project-modal-carousel-arrow-next{right:6px}.project-modal-carousel-side .project-modal-carousel-caption{grid-column:2;grid-row:1;align-self:center;text-align:left;margin:0;padding:0;max-width:none;font-size:1rem;line-height:1.55}.project-modal-carousel-side .project-modal-carousel-dots{grid-column:2;grid-row:2;justify-content:flex-start}}.project-modal-description{font-size:1.1rem;margin-bottom:1.5rem;line-height:1.6;color:var(--text-secondary)}.project-modal-details-section h4,.project-modal-tech-section h4,.project-modal-achievements-section h4{color:var(--accent-primary);font-size:1.2rem;margin-top:25px;margin-bottom:10px;border-bottom:1px solid var(--border-color);padding-bottom:5px}.project-modal-details-section ul,.project-modal-achievements-section ul{list-style:disc;padding-left:25px;margin-bottom:20px;color:var(--text-secondary)}.project-modal-details-section ul li,.project-modal-achievements-section ul li{margin-bottom:8px;line-height:1.5}.project-modal-tech-section .tag-container{margin-bottom:20px}.project-modal-link{display:inline-block;margin-top:25px;padding:10px 20px;background-color:var(--accent-primary);color:#fff;text-decoration:none;border-radius:5px;transition:background-color .3s ease;font-weight:500}.project-modal-link:hover{background-color:var(--link-color)}.project-modal-link i{margin-left:8px}.project-modal-assignment-notice{background:rgba(var(--accent-primary-rgb),.08);border:1px solid rgba(var(--accent-primary-rgb),.25);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.assignment-notice-content h4{color:var(--accent-primary);font-size:1.1rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.assignment-notice-content h4 i{font-size:1rem}.assignment-notice-content p{color:var(--text-secondary);margin-bottom:0;font-size:.95rem;line-height:1.5}.video-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:2000;padding:20px}.video-modal-content{position:relative;background-color:var(--background-secondary);border-radius:var(--border-radius-large);box-shadow:var(--shadow-lg);width:90%;max-width:960px;aspect-ratio:16 / 9;overflow:hidden}.video-modal-content iframe{display:block;width:100%;height:100%;border:none}.video-modal-close{position:absolute;top:-10px;right:-10px;background-color:var(--accent-primary);color:#fff;border:none;border-radius:50%;width:35px;height:35px;font-size:1.25rem;line-height:35px;text-align:center;cursor:pointer;box-shadow:var(--shadow-md);z-index:2001;transition:background-color var(--transition-fast)}.video-modal-close:hover{background-color:var(--accent-secondary);color:var(--accent-secondary-on-bg)}.simple-video-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1050;opacity:1;visibility:visible;transition:opacity .2s ease,visibility .2s ease}.simple-video-modal-content{position:relative;width:90%;max-width:960px;aspect-ratio:16 / 9;background-color:#000;border-radius:var(--border-radius-medium);box-shadow:0 5px 25px #00000080;overflow:visible}.simple-video-modal-content iframe{width:100%;height:100%;border:none;border-radius:var(--border-radius-medium)}.simple-video-modal-close{position:absolute;top:-15px;right:-15px;width:35px;height:35px;border-radius:50%;background-color:#ffffffe6;color:#333;border:none;font-size:1.5rem;font-weight:700;cursor:pointer;box-shadow:0 2px 10px #0000004d;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.simple-video-modal-close:hover{background-color:#fff;transform:scale(1.1)}.image-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:2000;opacity:1;visibility:visible;transition:opacity .25s ease-in-out}.image-modal-content{position:relative;background-color:var(--background-secondary);padding:15px;border-radius:var(--border-radius-large);box-shadow:0 10px 40px #00000080;max-width:80vw;max-height:85vh;display:flex;justify-content:center;align-items:center}.image-modal-content img{display:block;max-width:100%;max-height:calc(85vh - 30px);height:auto;border-radius:var(--border-radius-medium)}.image-modal-close{position:absolute;top:-15px;right:-15px;background-color:var(--accent-primary);color:#fff;border:2px solid var(--background-secondary);border-radius:50%;width:36px;height:36px;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:700;line-height:1;cursor:pointer;box-shadow:var(--shadow-md);transition:all .2s ease}.image-modal-close:hover{background-color:var(--accent-secondary);color:var(--accent-secondary-on-bg);transform:scale(1.1)}.modal-content{max-height:90vh;overflow-y:auto}.play-icon-overlay{position:absolute;inset:0;background-color:#0000004d;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity .3s ease}.project-image-container:hover .play-icon-overlay{opacity:1}.play-icon-overlay i.fas.fa-play{font-size:3rem;color:#fffc;text-shadow:0 0 10px rgba(0,0,0,.5)}.image-lightbox-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:2000;opacity:1;visibility:visible;transition:opacity .25s ease-in-out}.image-lightbox-content{position:relative;display:flex;justify-content:center;align-items:center;max-width:90vw;max-height:90vh;box-sizing:border-box}.image-lightbox-image{display:block;max-width:90vw;max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 10px 40px #00000080}.image-lightbox-close{position:absolute;top:-14px;right:-14px;background-color:#14141eeb;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:50%;width:36px;aspect-ratio:1 / 1;padding:0;font-size:1.25rem;font-weight:400;line-height:1;cursor:pointer;box-shadow:0 4px 14px #00000073;transition:background-color .2s ease,border-color .2s ease,transform .2s ease;z-index:2001;display:flex;align-items:center;justify-content:center}.image-lightbox-close:hover{background-color:rgba(var(--accent-primary-rgb),.95);border-color:#fff6;transform:scale(1.1) rotate(90deg)}@media(max-width:600px){.image-lightbox-close{top:8px;right:8px;background-color:#000000d9;border-color:#ffffff8c;box-shadow:0 2px 10px #0000008c}}@media(max-width:768px){.modal-content{padding:20px;margin:20px;width:calc(100% - 40px)}.modal-close{top:8px;right:8px;font-size:1.4rem}.project-modal-video-container{margin-bottom:15px}.video-modal-content,.simple-video-modal-content{width:95%}.image-modal-content{max-width:90vw;max-height:90vh;padding:10px}}@media(max-width:480px){.modal-content{padding:15px;margin:10px}.modal-content h2{font-size:1.5rem}.project-modal-description{font-size:.95rem}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:1100;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 16px;background:linear-gradient(180deg,#624008f5,#492f06f5);color:#ffd699;font-size:.9rem;font-weight:500;border-bottom:1px solid rgba(255,214,153,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.offline-banner-dot{width:8px;height:8px;border-radius:50%;background:#ffb347;box-shadow:0 0 6px #ffb347b3;animation:offline-pulse 1.6s ease-in-out infinite}.offline-banner-text{line-height:1.3;max-width:70ch}@keyframes offline-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}@media(prefers-reduced-motion:reduce){.offline-banner-dot{animation:none}}@media(max-width:600px){.offline-banner{font-size:.82rem;padding:6px 12px;gap:8px}}.chat-input-offline-note{font-size:.82rem;color:var(--text-secondary, #a0a0cc);padding:4px 8px 0;display:flex;align-items:center;gap:6px}.chat-input-offline-note:before{content:"";width:6px;height:6px;border-radius:50%;background:#ffb347}.img-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--surface-accent),var(--background-secondary));color:var(--text-secondary);font-family:var(--font-family-main);font-weight:600;letter-spacing:.04em;border-radius:var(--border-radius-small, 6px);-webkit-user-select:none;user-select:none;text-transform:uppercase}.img-fallback-initial{font-size:1.4em}img[data-img-failed=true]{display:none!important}.chat-resumed-pill{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin:6px 12px 4px;padding:4px 10px;font-size:.78rem;color:var(--text-secondary, #a0a0cc);background:rgba(var(--accent-primary-rgb),.1);border:1px solid rgba(var(--accent-primary-rgb),.25);border-radius:999px;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.chat-resumed-pill:hover{background:rgba(var(--accent-primary-rgb),.18);color:var(--text-primary, #e0e0e0)}.chat-resumed-pill:focus-visible{background:rgba(var(--accent-primary-rgb),.18);color:var(--text-primary, #e0e0e0);outline:2px solid var(--border-color-strong);outline-offset:2px}.chat-resumed-pill-dismiss{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:.9rem;line-height:1;opacity:.7}.a11y-menu-trigger{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary, var(--text-primary));width:32px;height:32px;border-radius:var(--border-radius-medium);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}@media(hover:none),(max-width:768px){.a11y-menu-trigger{min-width:44px;min-height:44px;width:44px;height:44px}}.a11y-menu-trigger:hover{color:var(--text-headings);border-color:var(--accent-primary);background:rgba(var(--accent-primary-rgb),.12)}.a11y-menu-trigger:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.a11y-menu-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10001;padding:1rem;overflow-y:auto}.a11y-menu-panel{width:min(420px,100%);min-height:0;max-height:calc(100dvh - 2rem);overflow-y:auto;background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color-strong);border-radius:var(--border-radius-large);padding:1.25rem;box-shadow:var(--shadow-lg);flex-shrink:0;margin:auto}.a11y-menu-panel__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.a11y-menu-panel__title{font-size:1.1rem;margin:0}.a11y-menu-panel__close{background:transparent;color:var(--text-primary);border:1px solid transparent;border-radius:50%;width:36px;height:36px;font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.a11y-menu-panel__close:hover{background:var(--surface-accent)}.a11y-menu-panel__close:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.a11y-menu-panel__intro{font-size:.85rem;color:var(--text-secondary);margin:0 0 1rem;line-height:1.5}.a11y-menu-panel__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.85rem}.a11y-menu-panel__item{border:1px solid var(--border-color);border-radius:var(--border-radius-medium);padding:.75rem .9rem;background:#ffffff05}.a11y-menu-panel__row{display:flex;align-items:flex-start;gap:1rem;cursor:pointer}.a11y-menu-panel__label{display:flex;flex-direction:column;gap:.15rem;flex:1}.a11y-menu-panel__label-text{font-weight:600;color:var(--text-headings);font-size:.95rem}.a11y-menu-panel__help{font-size:.8rem;color:var(--text-secondary);line-height:1.4}.a11y-menu-panel__row input[type=checkbox]{appearance:none;-webkit-appearance:none;width:44px;height:24px;border-radius:12px;background:var(--border-color);position:relative;cursor:pointer;flex-shrink:0;margin-top:.15rem;transition:background-color var(--transition-fast)}.a11y-menu-panel__row input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--text-primary);border-radius:50%;transition:transform var(--transition-fast)}.a11y-menu-panel__row input[type=checkbox]:checked{background:var(--accent-secondary)}.a11y-menu-panel__row input[type=checkbox]:checked:after{transform:translate(20px);background:var(--accent-secondary-on-bg)}.a11y-menu-panel__row input[type=checkbox]:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.a11y-menu-panel__reset{margin-top:.5rem;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);font-size:.75rem;padding:.25rem .6rem;border-radius:var(--border-radius-small);cursor:pointer}.a11y-menu-panel__reset:hover{border-color:var(--border-color-strong);color:var(--text-headings)}.a11y-menu-panel__reset:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}:where(html[data-reduce-motion=true]) *,:where(html[data-reduce-motion=true]) *:before,:where(html[data-reduce-motion=true]) *:after,:where(html[data-pause-animations=true]) *,:where(html[data-pause-animations=true]) *:before,:where(html[data-pause-animations=true]) *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}html[data-high-contrast=true]{--text-secondary: #D8D8F0;--border-color: #6F6C95;--link-color: #BFA8FF}@media(prefers-contrast:more){:root{--text-secondary: #D8D8F0;--border-color: #6F6C95;--link-color: #BFA8FF}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.particles-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:.5}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
