:root{--accent:#6366f1;--accent-soft:color-mix(in oklch, var(--accent) 12%, transparent);--accent-med:color-mix(in oklch, var(--accent) 25%, transparent);--accent-strong:color-mix(in oklch, var(--accent) 60%, transparent);--tr:.35s cubic-bezier(.4, 0, .2, 1);--font-display:"JetBrains Mono", ui-monospace, monospace;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--container:1100px;--radius-card:14px;--radius-chip:7px}body[data-theme=minimal]{--bg:#fafafa;--bg-alt:#f3f4f6;--bg-card:#fff;--bg-card-h:#f9fafb;--text-1:#111827;--text-2:#4b5563;--text-3:#9ca3af;--border:#e5e7eb;--border-s:#d1d5db;--sh-sm:0 1px 2px #0000000a;--sh-md:0 4px 16px #0000000f;--sh-lg:0 8px 30px #00000014;--nav-bg:#fafafae0;--hero-bg:radial-gradient(circle, var(--border) 1px, transparent 1px);--hero-bg-size:24px 24px;--glow-blend:multiply;--glow-op:.16}body[data-theme=dark]{--bg:#09090b;--bg-alt:#0f0f14;--bg-card:#16161a;--bg-card-h:#1c1c22;--text-1:#f4f4f5;--text-2:#a1a1aa;--text-3:#52525b;--border:#27272a;--border-s:#3f3f46;--sh-sm:0 1px 2px #0000004d;--sh-md:0 4px 16px #0006;--sh-lg:0 8px 30px #00000080;--nav-bg:#09090be0;--hero-bg:radial-gradient(circle, #ffffff0a .5px, transparent .5px);--hero-bg-size:20px 20px;--glow-blend:screen;--glow-op:.22}body[data-theme=editorial]{--bg:#faf8f3;--bg-alt:#f4efe4;--bg-card:#fffdf7;--bg-card-h:#f8f3ea;--text-1:#1c1917;--text-2:#57534e;--text-3:#a8a29e;--border:#d6d3d1;--border-s:#a8a29e;--sh-sm:0 1px 2px #0000000a;--sh-md:0 4px 16px #0000000f;--sh-lg:0 8px 30px #00000014;--nav-bg:#faf8f3eb;--hero-bg:none;--hero-bg-size:0;--glow-blend:multiply;--glow-op:.13}body[data-theme=editorial] .hero-name,body[data-theme=editorial] .section-title,body[data-theme=editorial] .detail-title{font-style:italic}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text-1);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--tr), color var(--tr);font-size:1rem;line-height:1.65;overflow-x:hidden}.page-shell{z-index:1;position:relative}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-1);font-weight:700;line-height:1.15}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--accent-med);color:var(--text-1)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-s);border:2px solid var(--bg);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.container{max-width:var(--container);margin:0 auto;padding:0 2rem}.section{padding:5.5rem 0;position:relative}.section.bg-subtle{background:var(--bg-alt)}.section.bg-card{background:var(--bg-card)}.section.bg-accent{background:var(--accent-soft)}.section.bg-contrast{background:var(--text-1);color:var(--bg)}.section.pad-sm{padding:2.5rem 0}.section.pad-md{padding:4rem 0}.section.pad-lg{padding:5.5rem 0}.section.pad-xl{padding:8rem 0}.section.w-narrow .container{max-width:760px}.section.w-normal .container{max-width:var(--container)}.section.w-wide .container{max-width:1280px}.section.w-full .container{max-width:none}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-size:.78rem;font-weight:600}.section-title{margin:.75rem 0 0;font-size:clamp(1.8rem,4vw,2.6rem)}.section-head{margin-bottom:3rem}.section-divider{background:var(--border);border:0;height:1px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.js .aos{opacity:0;will-change:opacity, transform;transition:opacity .5s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.22,1,.36,1);transform:translateY(28px)}.js .aos.aos-vis{opacity:1;transform:none}body[data-anim-style=energetic] .js .aos{transition-duration:.38s;transform:translateY(28px)}body[data-anim-style=playful] .js .aos{transition-timing-function:cubic-bezier(.34,1.56,.64,1);transform:translateY(24px)scale(.97)}body[data-anim-style=playful] .js .aos.aos-vis{transform:none}body[data-anim-style=subtle] .js .aos{transition-duration:.5s;transform:translateY(14px)}body[data-animations=false] .js .aos{opacity:1;transition:none;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .aos{opacity:1!important;transition:none!important;transform:none!important}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.nav{z-index:100;background:var(--nav-bg);-webkit-backdrop-filter:saturate(160%)blur(14px);transition:border-color var(--tr), background var(--tr);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.nav.scrolled{border-bottom-color:var(--border)}.nav-inner{max-width:var(--container);justify-content:space-between;align-items:center;gap:1rem;height:64px;margin:0 auto;padding:0 2rem;display:flex}.nav-logo{font-family:var(--font-mono);letter-spacing:-.03em;color:var(--text-1);font-size:1.25rem;font-weight:800}.nav-logo .dot{color:var(--accent)}.nav-links{align-items:center;gap:.35rem;display:flex}.nav-link{color:var(--text-2);transition:color var(--tr), background var(--tr);border-radius:8px;align-items:center;gap:.4rem;padding:.5rem .8rem;font-size:.9rem;font-weight:500;display:inline-flex}.nav-link:hover{color:var(--text-1);background:var(--bg-alt)}.nav-link[aria-current=page]{color:var(--accent)}.nav-link .icon{width:16px;height:16px}.nav-actions{align-items:center;gap:.5rem;display:flex}.nav-toggle{width:44px;height:44px;color:var(--text-1);border-radius:8px;justify-content:center;align-items:center;display:none}.nav-toggle:hover{background:var(--bg-alt)}.icon-btn{border:1px solid var(--border);background:var(--bg-card);width:40px;height:40px;color:var(--text-1);transition:border-color var(--tr), background var(--tr), color var(--tr);border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--border-s);background:var(--bg-card-h)}.icon-btn .icon{width:18px;height:18px}.mobile-menu{z-index:99;background:var(--bg);border-bottom:1px solid var(--border);opacity:0;pointer-events:none;transition:transform var(--tr), opacity var(--tr);flex-direction:column;gap:.25rem;padding:1rem 2rem 1.5rem;display:flex;position:fixed;inset:64px 0 auto;transform:translateY(-12px)}.mobile-menu.open{opacity:1;pointer-events:auto;transform:none}.mobile-menu .nav-link{padding:.85rem .8rem;font-size:1.05rem}.lang{position:relative}.lang-btn{border:1px solid var(--border);background:var(--bg-card);height:40px;color:var(--text-1);transition:border-color var(--tr);border-radius:9px;align-items:center;gap:.4rem;padding:0 .7rem;font-size:.85rem;font-weight:600;display:inline-flex}.lang-btn:hover{border-color:var(--border-s)}.lang-btn .flag{border-radius:2px;width:20px;height:14px;overflow:hidden}.lang-btn .chevron{width:14px;height:14px;color:var(--text-3);transition:transform var(--tr)}.lang-btn[aria-expanded=true] .chevron{transform:rotate(180deg)}.lang-menu{background:var(--bg-card);border:1px solid var(--border);min-width:160px;box-shadow:var(--sh-lg);border-radius:11px;flex-direction:column;gap:.15rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + .4rem);right:0}.lang-menu a{color:var(--text-2);transition:background var(--tr), color var(--tr);border-radius:8px;align-items:center;gap:.6rem;padding:.55rem .7rem;font-size:.9rem;display:flex}.lang-menu a:hover,.lang-menu a[aria-current=true]{background:var(--bg-alt);color:var(--text-1)}.lang-menu a .flag{border-radius:2px;width:22px;height:15px;overflow:hidden}.btn{font-family:var(--font-body);cursor:pointer;transition:transform var(--tr), background var(--tr), border-color var(--tr), box-shadow var(--tr), color var(--tr);border:1px solid #0000;border-radius:10px;align-items:center;gap:.55rem;padding:.8rem 1.4rem;font-size:.95rem;font-weight:600;line-height:1;display:inline-flex}.btn .icon{width:16px;height:16px;transition:transform var(--tr)}.btn:hover .icon{transform:translate(3px)}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 20px var(--accent-med)}.btn-primary:hover{box-shadow:0 10px 28px var(--accent-strong);transform:translateY(-2px)}.btn-secondary{background:var(--bg-card);color:var(--text-1);border-color:var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.tech-ico{width:30px;height:30px;font-family:var(--font-mono);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex}.tech-ico--logo{border:1px solid var(--border);background:#fff;padding:5px}.tech-ico--logo img{object-fit:contain;width:100%;height:100%}.tech-chip{background:var(--bg-alt);border:1px solid var(--border);color:var(--text-2);border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .7rem .3rem .35rem;font-size:.82rem;font-weight:500;display:inline-flex}.tech-chip .tech-ico{border-radius:6px;width:22px;height:22px;font-size:.6rem}.tech-tag{border-radius:var(--radius-chip);background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);padding:.25rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.badge{font-family:var(--font-mono);border-radius:999px;align-items:center;gap:.35rem;padding:.22rem .6rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge--present{color:#10b981;background:oklch(69.5873% .149074 162.48/.16)}.badge--year{background:var(--bg-alt);border:1px solid var(--border);color:var(--text-2)}.hero{align-items:center;min-height:100svh;padding:6rem 0 4rem;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background-image:var(--hero-bg);background-size:var(--hero-bg-size);z-index:-1;position:absolute;inset:0}.hero:after{content:"";background:radial-gradient(circle, var(--accent-soft), transparent 65%);z-index:-1;pointer-events:none;width:60vw;max-width:720px;height:60vw;max-height:720px;position:absolute;top:20%;left:50%;transform:translate(-50%)}.hero-inner{max-width:820px}.hero-greeting{font-family:var(--font-mono);color:var(--accent);margin-bottom:1rem;font-size:1rem;font-weight:600}.hero-name{letter-spacing:-.04em;margin-bottom:1rem;font-size:clamp(2.6rem,8vw,5rem);line-height:1.02}.hero-role{font-family:var(--font-display);color:var(--text-2);min-height:1.2em;margin-bottom:1.2rem;font-size:clamp(1.2rem,3.5vw,2rem);font-weight:600}.hero-role .cursor{color:var(--accent);font-weight:400}.hero-tagline{color:var(--text-2);max-width:620px;min-height:1.5em;margin-bottom:2.2rem;font-size:clamp(1rem,2.2vw,1.2rem)}.hero-ctas{flex-wrap:wrap;gap:1rem;display:flex}.scroll-indicator{border:2px solid var(--border-s);border-radius:14px;justify-content:center;width:26px;height:42px;padding-top:7px;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-indicator:before{content:"";background:var(--accent);border-radius:4px;width:4px;height:8px;animation:1.8s ease-in-out infinite scrollWheel}@keyframes scrollWheel{0%{opacity:0;transform:translateY(0)}35%{opacity:1}70%{opacity:0;transform:translateY(12px)}to{opacity:0}}.tech-strip{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.tech-strip .tech-ico{border-radius:12px;width:52px;height:52px;font-size:.9rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.6rem;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--sh-sm);transition:box-shadow var(--tr), border-color var(--tr), transform var(--tr);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.project-card:hover{box-shadow:var(--sh-lg);border-color:var(--border-s)}.project-card-media{aspect-ratio:16/9;background:var(--bg-alt);position:relative;overflow:hidden}.project-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,1,.36,1)}.project-card:hover .project-card-media img{transform:scale(1.03)}.project-card-year{position:absolute;top:.8rem;right:.8rem}.project-card-body{flex-direction:column;flex:1;gap:.6rem;padding:1.3rem;display:flex}.project-card-title{font-size:1.25rem}.project-card-role{font-family:var(--font-mono);color:var(--accent);font-size:.78rem;font-weight:600}.project-card-desc{color:var(--text-2);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:.92rem;display:-webkit-box;overflow:hidden}.project-card-tech{flex-wrap:wrap;gap:.4rem;margin-top:.2rem;display:flex}.project-link{font-family:var(--font-mono);color:var(--accent);align-items:center;gap:.4rem;margin-top:auto;padding-top:.6rem;font-size:.82rem;font-weight:600;display:inline-flex}.project-link .icon{width:15px;height:15px;transition:transform var(--tr)}.project-card:hover .project-link{gap:.7rem}body[data-hover=lift] .project-card:hover{transform:translateY(-6px)}body[data-hover=glow] .project-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 10px 30px var(--accent-med)}.about-grid{grid-template-columns:320px 1fr;align-items:start;gap:3rem;display:grid}.about-photo{aspect-ratio:4/5;border-radius:var(--radius-card);background:var(--bg-alt);border:1px solid var(--border);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.about-photo img{object-fit:cover;width:100%;height:100%}.about-photo .placeholder{width:45%;color:var(--text-3)}.about-photo:after{content:"";background:repeating-linear-gradient(45deg, transparent, transparent 14px, var(--accent-soft) 14px, var(--accent-soft) 15px);opacity:.5;pointer-events:none;position:absolute;inset:0}.about-bio{color:var(--text-2);white-space:pre-line;font-size:1.05rem}.about-bio+.about-bio{margin-top:1rem}.about-location{font-family:var(--font-mono);color:var(--text-3);align-items:center;gap:.45rem;margin-top:1.5rem;font-size:.85rem;display:inline-flex}.about-location .icon{width:16px;height:16px;color:var(--accent)}.stats{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:12px;padding:1.3rem 1rem}.stat-value{font-family:var(--font-display);color:var(--accent);letter-spacing:-.03em;font-size:2.1rem;font-weight:800}.stat-label{color:var(--text-3);margin-top:.3rem;font-size:.82rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.4rem;display:grid}.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--sh-sm);padding:1.5rem}.skill-card-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.5rem;margin-bottom:1.1rem;font-size:.8rem;font-weight:700;display:flex}.skill-card-chips{flex-wrap:wrap;gap:.5rem;display:flex}.edu-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:3rem;display:grid}.edu-item{border-left:2px solid var(--border);padding-bottom:1.8rem;padding-left:1.5rem;position:relative}.edu-item:last-child{padding-bottom:0}.edu-item:before{content:"";background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;position:absolute;top:4px;left:-7px}.edu-year{font-family:var(--font-mono);color:var(--accent);font-size:.78rem;font-weight:600}.edu-degree{margin:.25rem 0;font-size:1.15rem}.edu-inst{color:var(--text-2);font-weight:500}.edu-desc{color:var(--text-3);margin-top:.35rem;font-size:.9rem}.certs-list{flex-direction:column;gap:.8rem;display:flex}.cert-item{background:var(--bg-card);border:1px solid var(--border);border-radius:11px;align-items:center;gap:.8rem;padding:.9rem 1.1rem;display:flex}.cert-item .icon{width:20px;height:20px;color:var(--accent);flex:none}.cert-name{font-size:.95rem;font-weight:600}.cert-year{font-family:var(--font-mono);color:var(--text-3);margin-left:auto;font-size:.8rem}.exp-list{flex-direction:column;gap:1.2rem;display:flex}.exp-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--sh-sm);transition:border-color var(--tr);overflow:hidden}.exp-card.open{border-color:var(--border-s)}.exp-head{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:1.1rem;padding:1.3rem 1.5rem;display:flex}.exp-head:hover .exp-chevron{color:var(--accent)}.exp-logo{width:52px;height:52px;font-family:var(--font-mono);color:#fff;border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:flex;overflow:hidden}.exp-logo img{object-fit:cover;width:100%;height:100%}.exp-meta{flex:1;min-width:0}.exp-title-row{flex-wrap:wrap;align-items:center;gap:.45rem .55rem;display:flex}.exp-position{color:var(--text-1);font-size:1rem;font-weight:700;font-family:var(--font-display)}.exp-company{color:var(--text-2);margin-top:.2rem;font-size:.9rem;font-weight:600;display:block}.exp-now-pill{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:#10b981;background:oklch(69.5873% .149074 162.48/.16);border-radius:999px;align-items:center;padding:.12rem .55rem;font-size:.68rem;font-weight:600;display:inline-flex}.exp-right{text-align:right;flex-shrink:0}.exp-dates{font-family:var(--font-mono);color:var(--text-2);white-space:nowrap;font-size:.75rem;font-weight:600;display:block}.exp-loc{color:var(--text-3);white-space:nowrap;margin-top:.2rem;font-size:.72rem;display:block}.exp-chevron{width:20px;height:20px;color:var(--text-3);transition:transform .22s, color var(--tr);flex-shrink:0}.exp-card.open .exp-chevron{transform:rotate(180deg)}.exp-body{padding:0 1.5rem 1.5rem;animation:.2s fadeUp}.exp-tech-row{flex-wrap:wrap;gap:.35rem;margin-bottom:1.15rem;display:flex}.exp-full{color:var(--text-2);margin-bottom:1.15rem}.exp-section-h{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.6rem;font-size:.72rem;font-weight:700}.exp-achievements{flex-direction:column;gap:.5rem;display:flex}.exp-achievements li{color:var(--text-2);padding-left:1.4rem;font-size:.92rem;position:relative}.exp-achievements li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.detail-back{font-family:var(--font-mono);color:var(--text-2);transition:color var(--tr);align-items:center;gap:.5rem;margin-bottom:2rem;font-size:.85rem;font-weight:600;display:inline-flex}.detail-back:hover{color:var(--accent)}.detail-back .icon{width:16px;height:16px;transform:rotate(180deg)}.detail-head{margin-bottom:2.5rem}.detail-meta{align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.detail-title{letter-spacing:-.03em;font-size:clamp(2rem,5vw,3.2rem)}.detail-role{font-family:var(--font-mono);color:var(--accent);margin-top:.5rem;font-weight:600}.detail-hero{border-radius:var(--radius-card);border:1px solid var(--border);aspect-ratio:16/9;margin-bottom:2.5rem;overflow:hidden}.detail-hero img{object-fit:cover;width:100%;height:100%}.detail-grid{grid-template-columns:1fr 300px;align-items:start;gap:3rem;display:grid}.detail-overview p{color:var(--text-2);white-space:pre-line;margin-bottom:1.5rem;font-size:1.05rem}.detail-highlights{flex-direction:column;gap:.7rem;margin-top:1rem;display:flex}.detail-highlights li{color:var(--text-2);padding-left:1.6rem;position:relative}.detail-highlights li:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:.55em;left:0}.detail-aside{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--sh-sm);padding:1.5rem;position:sticky;top:90px}.detail-aside h3{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:1rem;font-size:.78rem}.detail-aside .tech-chip{margin:0 .4rem .4rem 0}.gallery{grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:3rem;display:grid}.gallery img{border-radius:var(--radius-card);border:1px solid var(--border);width:100%}.contact-intro{color:var(--text-2);max-width:600px;margin-bottom:2.5rem;font-size:1.15rem}.contact-tiles{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;display:grid}.contact-tile{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--sh-sm);transition:transform var(--tr), border-color var(--tr), box-shadow var(--tr);align-items:center;gap:1rem;padding:1.4rem;display:flex}.contact-tile:hover{border-color:var(--accent);box-shadow:var(--sh-md);transform:translateY(-4px)}.contact-tile-icon{background:var(--accent-soft);width:46px;height:46px;color:var(--accent);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex}.contact-tile-icon .icon{width:22px;height:22px}.contact-tile-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:.74rem}.contact-tile-value{color:var(--text-1);font-weight:600}.contact-tile .arrow{width:16px;height:16px;color:var(--text-3);transition:transform var(--tr);margin-left:auto}.contact-tile:hover .arrow{color:var(--accent);transform:translate(3px)}.footer{border-top:1px solid var(--border);background:var(--bg-alt);padding:3.5rem 0 2rem}.footer-grid{grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem;display:grid}.footer-brand .nav-logo{font-size:1.4rem}.footer-tagline{color:var(--text-3);max-width:320px;margin-top:.6rem;font-size:.92rem}.footer-col h4{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:1rem;font-size:.75rem}.footer-col a{color:var(--text-2);transition:color var(--tr);padding:.3rem 0;font-size:.92rem;display:block}.footer-col a:hover{color:var(--accent)}.footer-bottom{border-top:1px solid var(--border);color:var(--text-3);font-size:.85rem;font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.bg-fx{z-index:0;pointer-events:none;contain:strict;position:fixed;inset:0;overflow:hidden}.bg-blob{filter:blur(80px);opacity:.5;mix-blend-mode:var(--glow-blend);border-radius:50%;position:absolute}body[data-theme=dark] .bg-blob{opacity:.42}.bg-blob.a{background:var(--accent);width:45vw;height:45vw;animation:19s ease-in-out infinite auroraA;top:-10%;left:-5%}.bg-blob.b{background:color-mix(in oklch, var(--accent) 45%, #ec4899);width:40vw;height:40vw;animation:24s ease-in-out infinite auroraB;top:30%;right:-10%}.bg-blob.c{background:color-mix(in oklch, var(--accent) 40%, #22d3ee);width:35vw;height:35vw;animation:28s ease-in-out infinite auroraC;bottom:-15%;left:30%}@keyframes auroraA{0%,to{transform:translate(0)scale(1)}50%{transform:translate(8%,12%)scale(1.15)}}@keyframes auroraB{0%,to{transform:translate(0)scale(1.1)}50%{transform:translate(-10%,8%)scale(.95)}}@keyframes auroraC{0%,to{transform:translate(0)scale(1)}50%{transform:translate(6%,-10%)scale(1.2)}}.bg-mesh{background:conic-gradient(from 0deg, var(--accent-soft), transparent 25%, var(--accent-med) 50%, transparent 75%, var(--accent-soft));opacity:.26;filter:blur(60px);animation:38s linear infinite meshSpin;position:absolute;inset:-25%}body[data-theme=dark] .bg-mesh{opacity:.2}@keyframes meshSpin{to{transform:rotate(360deg)}}.bg-grid{background-image:radial-gradient(circle, var(--accent-med) 1px, transparent 1px);opacity:.4;background-size:32px 32px;animation:18s linear infinite gridDrift;position:absolute;inset:0;mask-image:radial-gradient(circle at 50% 40%,#000,#0000 75%)}@keyframes gridDrift{to{background-position:32px 32px}}@media (prefers-reduced-motion:reduce){.bg-blob,.bg-mesh,.bg-grid{animation:none}}.cursor-glow{pointer-events:none;z-index:0;background:radial-gradient(circle, var(--accent-soft), transparent 60%);width:460px;height:460px;mix-blend-mode:var(--glow-blend);opacity:0;border-radius:50%;transition:opacity .4s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-glow.active{opacity:1}.scroll-top{z-index:90;background:var(--accent);color:#fff;width:46px;height:46px;box-shadow:0 6px 20px var(--accent-med);opacity:0;pointer-events:none;transition:opacity var(--tr), transform var(--tr);border-radius:12px;justify-content:center;align-items:center;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(12px)scale(.9)}.scroll-top.show{opacity:1;pointer-events:auto;transform:none}.scroll-top:hover{transform:translateY(-2px)}.scroll-top .icon{width:20px;height:20px}@media (width<=768px){.nav-links{display:none}.nav-toggle{display:inline-flex}.section{padding:4rem 0}.about-grid{grid-template-columns:1fr;gap:2rem}.about-photo{max-width:280px}.edu-grid{grid-template-columns:1fr;gap:2.5rem}.detail-grid{grid-template-columns:1fr;gap:2rem}.detail-aside{position:static}.gallery{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:2rem}.footer-bottom{text-align:center;flex-direction:column}}@media (width<=640px){.exp-head{flex-wrap:wrap;align-items:flex-start}.exp-right{text-align:left;flex-wrap:wrap;align-items:center;gap:.75rem;width:100%;margin-top:.25rem;display:flex}.exp-dates,.exp-loc{margin-top:0}}@media (width<=480px){.container,.nav-inner{padding-left:1.25rem;padding-right:1.25rem}.stats{grid-template-columns:1fr}.hero-ctas{flex-direction:column;align-items:stretch}.btn{justify-content:center}}
