:root{--color-bg:#f7f5f1;--color-bg-elevated:#efece4;--color-surface:#fffefb;--color-surface-hover:#f3f0e9;--color-border:#ddd7c9;--color-text:#17181a;--color-text-muted:#61656a;--color-accent:#1f4b8f;--color-accent-dim:#17386b;--color-accent-glow:#1f4b8f2e;--color-sun-core:#ffe8b2b8;--color-sun-halo:#1f4b8f1a;--color-sheen:#ffeec999;--color-on-accent:#f7f5f1;--color-bg-rgb:247, 245, 241;--color-accent-rgb:31, 75, 143;--color-ink-rgb:23, 24, 26;--color-shadow-rgb:23, 24, 26;--shadow-alpha-card:.18;--shadow-alpha-soft:.22;--shadow-alpha-lift:.24;--shadow-alpha-panel:.28;--color-scrim:#17181a6b;--grain-blend:multiply;--grain-opacity:.05;--font-display:"Instrument Serif", Georgia, "Times New Roman", serif;--font-body:"Instrument Sans", "Segoe UI", system-ui, sans-serif;--max-width:1120px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--color-bg:#06090a;--color-bg-elevated:#0c1412;--color-surface:#101a17;--color-surface-hover:#142019;--color-border:#1e2b26;--color-text:#eef5f1;--color-text-muted:#93a8a0;--color-accent:#14e0a0;--color-accent-dim:#0a8f66;--color-accent-glow:#14e0a059;--color-sun-core:#14e0a033;--color-sun-halo:#14e0a012;--color-sheen:#14e0a021;--color-on-accent:#04120c;--color-bg-rgb:6, 9, 10;--color-accent-rgb:20, 224, 160;--color-ink-rgb:255, 255, 255;--color-shadow-rgb:0, 0, 0;--shadow-alpha-card:.7;--shadow-alpha-soft:.8;--shadow-alpha-lift:.85;--shadow-alpha-panel:.95;--color-scrim:#030606c7;--grain-blend:normal;--grain-opacity:.035;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.005em;margin:0;font-weight:400;line-height:1.15}p{margin:0}a{color:inherit;text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;display:block}::selection{background:var(--color-accent-glow);color:var(--color-text)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 24px}.section-heading{align-items:baseline;gap:12px;margin-bottom:40px;display:flex}.section-heading .index{font-family:var(--font-body);color:var(--color-accent);font-size:.9rem;font-weight:600}.section-heading h2{font-size:clamp(1.7rem,3.2vw,2.5rem);font-weight:400}.section-heading:after{content:"";background:var(--color-border);flex:1;height:1px}.pill-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:999px;align-items:center;gap:8px;padding:12px 22px;font-size:.95rem;font-weight:500;transition:border-color .25s,transform .25s,box-shadow .25s,background .25s;display:inline-flex}.pill-button:hover{border-color:var(--color-accent-dim);box-shadow:0 0 0 1px var(--color-accent-dim), 0 8px 24px -8px var(--color-accent-glow);background:var(--color-surface-hover);transform:translateY(-2px)}.pill-button.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);font-weight:600}.pill-button.primary:hover{box-shadow:0 0 0 1px var(--color-accent), 0 10px 30px -8px var(--color-accent-glow);background:var(--color-accent)}.pill-button.ghost{color:var(--color-text-muted);background:0 0}.pill-button.ghost:hover{color:var(--color-text)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.section{padding:120px 0;scroll-margin-top:72px;position:relative}main{overflow-x:clip}.grain-overlay{z-index:999;pointer-events:none;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);contain:strict;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.bottom-fade{z-index:40;pointer-events:none;background:linear-gradient(to bottom, transparent 0%, rgba(var(--color-bg-rgb), .55) 60%, rgba(var(--color-bg-rgb), .92) 100%);opacity:1;height:96px;transition:opacity .4s;position:fixed;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000,#000 60%);mask-image:linear-gradient(#0000,#000 60%)}.bottom-fade.is-hidden{opacity:0}.nav{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:rgba(var(--color-bg-rgb), .82);border-bottom:1px solid var(--color-border);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;height:72px;display:flex}.nav-logo{font-family:var(--font-body);font-size:1.2rem;font-weight:700}.nav-logo span{color:var(--color-accent)}.nav-links{gap:8px;display:none}.nav-link{color:var(--color-text-muted);background:0 0;border:none;border-radius:999px;padding:8px 14px;font-size:.95rem;transition:color .2s;position:relative}.nav-link:hover,.nav-link.active{color:var(--color-text)}.nav-underline{background:var(--color-surface);border:1px solid var(--color-border);z-index:-1;border-radius:999px;position:absolute;inset:0}.nav-actions{align-items:center;gap:10px;display:flex}.nav-toggle{color:var(--color-text);background:0 0;border:none;display:inline-flex}.theme-toggle{border:1px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0;transition:color .35s,border-color .35s,background .35s;display:inline-flex}.theme-toggle:hover{color:var(--color-accent);border-color:var(--color-accent-dim);background:var(--color-surface-hover)}.theme-toggle-icon{display:inline-flex}.lang-toggle{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;align-items:center;gap:2px;padding:3px;transition:border-color .35s;display:inline-flex}.lang-toggle:hover{border-color:var(--color-accent-dim)}.lang-option{font-family:var(--font-body);letter-spacing:.04em;color:var(--color-text-muted);border-radius:999px;justify-content:center;align-items:center;padding:5px 11px;font-size:.74rem;font-weight:600;transition:color .35s;display:inline-flex;position:relative}.lang-option.active{color:var(--color-on-accent)}.lang-pill{background:var(--color-accent);z-index:0;border-radius:999px;position:absolute;inset:0}.lang-label{z-index:1;position:relative}.nav-mobile{border-top:1px solid var(--color-border);flex-direction:column;display:flex;overflow:hidden}.nav-mobile-link{color:var(--color-text-muted);text-align:left;border:none;border-bottom:1px solid var(--color-border);background:0 0;padding:16px 24px;font-size:1rem}.nav-mobile-link.active{color:var(--color-accent)}@media (width>=860px){.nav-links{display:flex}.nav-toggle{display:none}}.hero{align-items:center;min-height:100vh;padding:140px 0 100px;display:flex;position:relative}.hero-inner{z-index:1;grid-template-columns:1fr;align-items:center;gap:56px;display:grid;position:relative}.hero-eyebrow{color:var(--color-accent);letter-spacing:.02em;align-items:center;gap:6px;margin-bottom:20px;font-size:.85rem;font-weight:500;display:inline-flex}.hero-name{letter-spacing:-.015em;margin-bottom:12px;font-size:clamp(2.7rem,7.5vw,4.6rem);font-weight:400}.hero-role{color:var(--color-accent);font-size:clamp(1.1rem,2.4vw,1.5rem);font-family:var(--font-body);margin-bottom:20px;font-weight:600}.hero-tagline{max-width:46ch;color:var(--color-text-muted);margin-bottom:36px;font-size:1.05rem}.hero-cta{flex-wrap:wrap;gap:14px;display:flex}.hero-visual{justify-content:center;display:flex}.hero-scroll{z-index:1;border:1px solid var(--color-border);width:40px;height:40px;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}@media (width>=900px){.hero-inner{grid-template-columns:1.1fr .9fr}}.tilt-wrap{--pointer-x:50%;--pointer-y:50%;--pointer-from-left:.5;--pointer-from-top:.5;--pointer-from-center:0;--background-x:50%;--background-y:50%;--rotate-x:0deg;--rotate-y:0deg;--card-radius:28px;--active:0;perspective:900px;width:min(340px,78vw);position:relative}.tilt-wrap.is-active{--active:1}.tilt-behind{z-index:0;pointer-events:none;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y), var(--color-accent-glow) 0%, transparent 55%);filter:blur(48px)saturate(1.2);opacity:calc(.55 + .45 * var(--active));border-radius:50%;transition:opacity .3s;position:absolute;inset:8%}.tilt-card{z-index:1;aspect-ratio:3/4;border-radius:var(--card-radius);border:1px solid var(--color-border);background:var(--color-surface);transform:rotateX(var(--rotate-x)) rotateY(var(--rotate-y));transform-style:preserve-3d;backface-visibility:hidden;box-shadow:calc((var(--pointer-from-left) * -24px) + 12px) calc((var(--pointer-from-top) * -24px) + 24px) 48px -12px rgba(var(--color-shadow-rgb), var(--shadow-alpha-card));position:relative;overflow:hidden}.tilt-card>*{border-radius:var(--card-radius)}.tilt-grid{z-index:1;pointer-events:none;background-image:linear-gradient(rgba(var(--color-ink-rgb), .06) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--color-ink-rgb), .06) 1px, transparent 1px);background-size:26px 26px,26px 26px;background-position:var(--background-x) var(--background-y);position:absolute;inset:0}.tilt-photo{z-index:2;position:absolute;inset:0;overflow:hidden}.tilt-photo img{object-fit:cover;filter:saturate(1.05)contrast(1.02);width:100%;height:100%;transform:translate3d(calc((var(--pointer-from-left) - .5) * -10px), calc((var(--pointer-from-top) - .5) * -10px), 0) scale(1.06);will-change:transform}.tilt-glare{z-index:3;pointer-events:none;background:radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y), #ffffff80 8%, #ffffff29 32%, transparent 68%);mix-blend-mode:screen;opacity:calc(.35 + .65 * var(--active));transition:opacity .3s;position:absolute;inset:0}.tilt-vignette{z-index:4;pointer-events:none;background:linear-gradient(180deg, rgba(var(--color-accent-rgb), .12) 0%, transparent 28%, transparent 58%, rgba(var(--color-bg-rgb), .94) 100%);position:absolute;inset:0}.tilt-caption{z-index:5;border:1px solid rgba(var(--color-ink-rgb), .12);background:rgba(var(--color-bg-rgb), .78);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:.78rem;display:flex;position:absolute;bottom:18px;left:18px;right:18px;transform:translateZ(20px)}.tilt-status{color:var(--color-text);align-items:center;gap:7px;font-weight:500;display:inline-flex}.tilt-dot{background:var(--color-accent);width:7px;height:7px;box-shadow:0 0 0 0 var(--color-accent-glow);border-radius:50%;animation:2.4s ease-out infinite pulse-dot}@keyframes pulse-dot{0%{box-shadow:0 0 0 0 rgba(var(--color-accent-rgb), .45)}70%{box-shadow:0 0 0 8px rgba(var(--color-accent-rgb), 0)}to{box-shadow:0 0 0 0 rgba(var(--color-accent-rgb), 0)}}.tilt-place{color:var(--color-text-muted);white-space:nowrap}.about-grid{grid-template-columns:1fr;gap:48px;display:grid}.about-bio p{color:var(--color-text-muted);max-width:62ch;margin-bottom:18px}.languages{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.language-chip{border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:6px 14px;font-size:.85rem}.language-chip em{color:var(--color-accent);margin-left:6px;font-style:normal}.off-the-clock{border:1px solid var(--color-border);border-left:2px solid var(--color-accent-dim);background:var(--color-bg-elevated);color:var(--color-text-muted);border-radius:14px;align-items:flex-start;gap:12px;max-width:62ch;margin-top:26px;padding:16px 18px;font-size:.93rem;display:flex}.off-the-clock svg{color:var(--color-accent);flex-shrink:0;margin-top:3px}.off-the-clock strong{color:var(--color-text);font-family:var(--font-body);font-weight:600}.about-stats{grid-template-columns:repeat(2,1fr);align-self:center;gap:16px;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;height:100%;padding:24px 20px;transition:transform .25s,border-color .25s}.stat-card:hover{border-color:var(--color-accent-dim);transform:translateY(-4px)}.stat-value{font-family:var(--font-display);color:var(--color-accent);font-size:1.8rem;font-weight:400;display:block}.stat-label{color:var(--color-text-muted);margin-top:6px;font-size:.85rem;display:block}@media (width>=900px){.about-grid{grid-template-columns:1.4fr 1fr}}.skills-grid{grid-template-columns:1fr;gap:20px;display:grid}.skill-group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;height:100%;padding:22px;transition:transform .6s cubic-bezier(.22,1,.36,1),border-color .6s,box-shadow .6s,background .6s;position:relative;overflow:hidden}.skill-group:hover{border-color:var(--color-accent-dim);background:var(--color-surface-hover);box-shadow:0 18px 40px -18px rgba(var(--color-shadow-rgb), var(--shadow-alpha-soft)), 0 0 28px -12px var(--color-accent-glow);transform:translateY(-6px)}.skill-sheen{z-index:-1;pointer-events:none;filter:blur(7px);background:linear-gradient(104deg, transparent 38%, rgba(var(--color-accent-rgb), .06) 45%, var(--color-sheen) 50%, rgba(var(--color-accent-rgb), .06) 55%, transparent 62%);width:100%;position:absolute;top:-30%;bottom:-30%;left:0}.skill-group h3{color:var(--color-accent);margin-bottom:14px;font-size:1rem;transition:text-shadow .6s}.skill-group:hover h3{color:var(--color-accent)}.skill-summary{color:var(--color-text-muted);margin-bottom:18px;font-size:.9rem;line-height:1.6}.skill-group:hover .skill-chip{border-color:rgba(var(--color-accent-rgb), .32);color:var(--color-text)}.skill-chips{flex-wrap:wrap;gap:8px;display:flex}.skill-chip{background:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:8px;padding:6px 12px;font-size:.85rem;transition:color .45s,border-color .45s,transform .45s cubic-bezier(.22,1,.36,1)}.skill-chip:hover{color:var(--color-text);border-color:var(--color-accent-dim);transform:translateY(-2px)}@media (width>=700px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1080px){.skills-grid{grid-template-columns:repeat(3,1fr)}}.credentials-block{margin-top:64px}.credentials-heading{border-bottom:1px solid var(--color-border);color:var(--color-text);letter-spacing:.11em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding-bottom:12px;font-size:.86rem;font-weight:600;display:flex}.credentials-count{color:var(--color-accent);font-variant-numeric:tabular-nums}.credentials-grid{perspective:1400px;grid-template-columns:1fr;gap:18px;display:grid}.credential-card{isolation:isolate;border:1px solid var(--color-border);background:linear-gradient(145deg, var(--color-surface) 0%, var(--color-bg-elevated) 100%);border-radius:18px;flex-direction:column;padding:24px;transition:transform .55s cubic-bezier(.22,1,.36,1),border-color .45s,box-shadow .55s;display:flex;position:relative;overflow:hidden}.credential-sun{z-index:-1;pointer-events:none;width:264px;height:264px;transition:transform .75s cubic-bezier(.22,1,.36,1);position:absolute;top:-108px;right:-88px}.credential-sun-core{background:radial-gradient(circle, var(--color-sun-core) 0%, transparent 56%), radial-gradient(circle, var(--color-sun-halo) 0%, transparent 74%);filter:blur(14px);border-radius:50%;position:absolute;inset:0}.credential-card:hover .credential-sun{transform:scale(1.12)}.credential-seal{width:112px;height:112px;box-shadow:0 0 0 18px rgba(var(--color-accent-rgb), .035);pointer-events:none;border-radius:50%;transition:transform .7s cubic-bezier(.22,1,.36,1);position:absolute;top:-46px;right:-46px}.credential-seal-ring{border:1px dashed rgba(var(--color-accent-rgb), .28);border-radius:50%;position:absolute;inset:0}.credential-card:hover{border-color:var(--color-accent-dim);box-shadow:0 22px 46px -24px rgba(var(--color-shadow-rgb), var(--shadow-alpha-lift));transform:translateY(-6px)}.credential-card:hover .credential-seal{transform:scale(1.18)}.credential-head{align-items:flex-start;gap:14px;display:flex}.credential-head-text{min-width:0}.credential-mark{border:1px solid rgba(var(--color-accent-rgb), .3);background:rgba(var(--color-accent-rgb), .08);width:42px;height:42px;color:var(--color-accent);border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex}.credential-issuer{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:.74rem;font-weight:600}.credential-card h3{font-size:1.1rem;line-height:1.22}.credential-summary{color:var(--color-text-muted);margin-top:16px;font-size:.9rem;line-height:1.55}.credential-skills{flex-wrap:wrap;gap:7px;margin-top:16px;display:flex}.credential-skills span{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:5px 9px;font-size:.74rem;line-height:1.2}.credential-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-top:auto;padding-top:18px;display:flex}.credential-type{border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-muted);letter-spacing:.04em;border-radius:6px;padding:4px 9px;font-size:.76rem;font-weight:600}.credential-link{color:var(--color-accent);text-underline-offset:4px;align-items:center;gap:7px;font-size:.84rem;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:gap .3s,text-decoration-color .3s;display:inline-flex}.credential-link:hover{gap:10px;text-decoration-color:currentColor}@media (width>=860px){.credentials-grid{grid-template-columns:repeat(2,1fr)}.credential-card{padding:26px}.credential-card:last-child:nth-child(odd){grid-column:1/-1;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-template-areas:"head skills""summary skills""foot foot";align-content:start;column-gap:32px;display:grid}.credential-card:last-child:nth-child(odd) .credential-head{grid-area:head}.credential-card:last-child:nth-child(odd) .credential-summary{grid-area:summary}.credential-card:last-child:nth-child(odd) .credential-skills{grid-area:skills;align-content:start;margin-top:4px}.credential-card:last-child:nth-child(odd) .credential-foot{grid-area:foot}}.carousel{scrollbar-width:none;cursor:grab;padding-inline:max(24px, calc(50vw - var(--max-width) / 2));overscroll-behavior-x:contain;touch-action:pan-y;margin-inline:calc(50% - 50vw);position:relative;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.carousel::-webkit-scrollbar{display:none}.carousel.is-dragging{cursor:grabbing}.carousel.is-dragging .project-card{transition:none}.carousel-track{gap:24px;width:max-content;padding:6px 0 14px;display:flex}.project-card{background:var(--color-surface);border:1px solid var(--color-border);-webkit-user-select:none;user-select:none;border-radius:22px;flex-direction:column;flex:none;width:min(420px,82vw);padding:30px;transition:border-color .6s,box-shadow .6s,transform .6s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden}.project-card:before{content:"";pointer-events:none;background:radial-gradient(circle at 88% 0%, var(--color-accent-glow), transparent 55%);opacity:0;transition:opacity .6s;position:absolute;inset:0}.project-card:hover{border-color:var(--color-accent-dim);box-shadow:0 24px 50px -24px rgba(var(--color-shadow-rgb), var(--shadow-alpha-lift));transform:translateY(-4px)}.project-card:hover:before{opacity:.35}.project-index{font-family:var(--font-display);color:var(--color-accent);opacity:.1;pointer-events:none;font-size:3rem;font-weight:400;line-height:1;position:absolute;top:22px;right:26px}.project-head{margin-bottom:18px;padding-right:60px}.project-head h3{margin-bottom:6px;font-size:1.3rem}.project-context{color:var(--color-accent);font-size:.82rem;font-family:var(--font-body)}.project-summary{color:var(--color-text);margin-bottom:22px;font-size:.97rem;line-height:1.55}.project-metrics{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:24px;padding:18px 0;display:flex}.project-metric-value{font-family:var(--font-display);color:var(--color-accent);font-size:1.45rem;font-weight:400;line-height:1.1;display:block}.project-metric-label{color:var(--color-text-muted);margin-top:4px;font-size:.76rem;display:block}.project-more{border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;margin-top:auto;padding:10px 18px;font-size:.87rem;font-weight:500;transition:color .4s,border-color .4s,background .4s,gap .4s;display:inline-flex}.project-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:22px;display:flex}.project-actions .project-more{margin-top:0}.project-github,.project-private{border-radius:999px;align-items:center;gap:7px;min-height:40px;padding:9px 14px;font-size:.82rem;line-height:1.2;display:inline-flex}.project-github{border:1px solid var(--color-accent-dim);color:var(--color-accent);background:var(--color-bg-elevated);transition:color .35s,border-color .35s,background .35s,transform .35s}.project-github:hover{color:var(--color-bg);border-color:var(--color-accent);background:var(--color-accent);transform:translateY(-1px)}.project-private{color:var(--color-text-muted);border:1px dashed var(--color-border)}.project-card:hover .project-more{color:var(--color-accent);border-color:var(--color-accent-dim);background:var(--color-bg-elevated);gap:12px}.carousel-controls{align-items:center;gap:16px;margin-top:22px;display:flex}.carousel-arrow{border:1px solid var(--color-border);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:color .35s,border-color .35s,background .35s,transform .35s;display:inline-flex}.carousel-arrow:hover{color:var(--color-accent);border-color:var(--color-accent-dim);background:var(--color-surface-hover);transform:translateY(-2px)}.carousel-arrow:focus-visible,.carousel-slider input:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.carousel-slider{cursor:pointer;flex:1;align-items:center;height:40px;display:flex;position:relative}.carousel-rail{background:var(--color-border);pointer-events:none;border-radius:999px;height:4px;position:absolute;inset-inline:0;overflow:hidden}.carousel-fill{background:linear-gradient(90deg, var(--color-accent-dim), var(--color-accent));transform-origin:0;height:100%;box-shadow:0 0 12px var(--color-accent-glow);border-radius:999px;display:block}.carousel-slider input{z-index:1;appearance:none;cursor:pointer;background:0 0;width:100%;margin:0;position:relative}.carousel-slider input::-webkit-slider-runnable-track{background:0 0;height:4px}.carousel-slider input::-moz-range-track{background:0 0;height:4px}.carousel-slider input::-webkit-slider-thumb{appearance:none;background:var(--color-accent);border:2px solid var(--color-bg);width:16px;height:16px;box-shadow:0 0 12px var(--color-accent-glow);border-radius:50%;margin-top:-6px;transition:transform .25s}.carousel-slider input::-moz-range-thumb{background:var(--color-accent);border:2px solid var(--color-bg);width:16px;height:16px;box-shadow:0 0 12px var(--color-accent-glow);border-radius:50%}.carousel-slider input:hover::-webkit-slider-thumb{transform:scale(1.2)}.carousel-slider input:active::-webkit-slider-thumb{transform:scale(1.2)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.modal-backdrop{z-index:200;background:var(--color-scrim);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:center;align-items:flex-start;padding:max(20px,4vh) 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{background:var(--color-surface);border:1px solid var(--color-border);width:min(880px,100%);box-shadow:0 40px 90px -30px rgba(var(--color-shadow-rgb), var(--shadow-alpha-panel)), 0 0 40px -20px var(--color-accent-glow);border-radius:22px;margin:auto;position:relative}.modal-head{z-index:2;border-bottom:1px solid var(--color-border);background:var(--color-surface);border-radius:22px 22px 0 0;justify-content:space-between;align-items:flex-start;gap:20px;padding:26px 30px 18px;display:flex;position:sticky;top:0}.modal-head h3{margin-bottom:5px;font-size:clamp(1.2rem,2.6vw,1.6rem)}.modal-close{border:1px solid var(--color-border);background:var(--color-bg-elevated);width:38px;height:38px;color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:color .3s,border-color .3s,transform .3s;display:inline-flex}.modal-close:hover{color:var(--color-accent);border-color:var(--color-accent-dim);transform:rotate(90deg)}.modal-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.modal-body{padding:24px 30px 30px}.modal-body .project-summary{max-width:68ch;font-size:1.05rem}.project-body{grid-template-columns:1fr;gap:22px;padding-top:24px;display:grid}.project-block h4{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:8px;font-size:.72rem}.project-block p{color:var(--color-text-muted);font-size:.94rem}.project-stack-wrap{margin-top:26px}.project-modal-actions{margin-top:22px;display:flex}.project-stack-wrap h4{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:10px;font-size:.72rem}.project-stack{flex-wrap:wrap;gap:8px;display:flex}.project-tech{background:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:7px;padding:5px 11px;font-size:.78rem}@media (width>=860px){.project-body{grid-template-columns:1fr 1.25fr;gap:34px}}@media (width<=600px){.modal-head{padding:20px 20px 16px}.modal-body{padding:20px 20px 26px}}.timeline{flex-direction:column;gap:40px;padding-left:28px;display:flex;position:relative}.timeline-track{background:var(--color-border);width:2px;position:absolute;top:6px;bottom:6px;left:5px}.timeline-line{background:linear-gradient(180deg, var(--color-accent), var(--color-accent-dim));transform-origin:top;width:2px;box-shadow:0 0 12px var(--color-accent-glow);position:absolute;top:6px;bottom:6px;left:5px}.timeline-entry{position:relative}.timeline-dot{background:var(--color-accent);width:12px;height:12px;box-shadow:0 0 0 4px var(--color-bg), 0 0 16px var(--color-accent-glow);border-radius:50%;position:absolute;top:6px;left:-28px}.timeline-header{text-align:left;width:100%;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:flex-start;gap:16px;padding:0;display:flex}.timeline-header h3{margin-bottom:4px;font-size:1.15rem}.timeline-org{color:var(--color-text-muted);font-size:.9rem}.timeline-meta{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:10px;display:flex}.timeline-period{font-size:.85rem;font-family:var(--font-body)}.timeline-summary{color:var(--color-text-muted);max-width:68ch;margin:12px 0 0}.timeline-highlights{flex-direction:column;gap:10px;margin-top:12px;display:flex}.timeline-highlights li{color:var(--color-text-muted);max-width:68ch;padding-left:18px;font-size:.92rem;position:relative}.timeline-highlights li:before{content:"";background:var(--color-accent);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:0}.education-grid{grid-template-columns:1fr;gap:20px;display:grid}.education-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;flex-direction:column;height:100%;transition:transform .6s cubic-bezier(.22,1,.36,1),border-color .6s,box-shadow .6s;display:flex;overflow:hidden}.education-card:hover{border-color:var(--color-accent-dim);box-shadow:0 22px 46px -22px rgba(var(--color-shadow-rgb), var(--shadow-alpha-lift));transform:translateY(-5px)}.education-photo{aspect-ratio:16/9;background:var(--color-bg-elevated);margin:0;position:relative;overflow:hidden}.education-photo img{object-fit:cover;filter:saturate(.75)brightness(.82)contrast(1.05);width:100%;height:100%;transition:transform .9s cubic-bezier(.22,1,.36,1),filter .7s}.education-card:hover .education-photo img{filter:saturate(.95)brightness(.95)contrast(1.02);transform:scale(1.05)}.education-photo:after{content:"";pointer-events:none;background:linear-gradient(180deg, rgba(var(--color-shadow-rgb), .1) 0%, transparent 45%, rgba(var(--color-bg-rgb), .94) 100%);position:absolute;inset:0}.education-photo figcaption{z-index:1;color:var(--color-text-muted);opacity:.65;font-size:.66rem;transition:opacity .4s;position:absolute;bottom:8px;right:10px}.education-card:hover .education-photo figcaption{opacity:1}.education-photo figcaption a{color:inherit;text-underline-offset:2px;text-decoration:underline}.education-photo figcaption a:hover{color:var(--color-accent)}.education-text{gap:16px;padding:24px;display:flex}.education-icon{background:var(--color-bg-elevated);width:44px;height:44px;color:var(--color-accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.education-card h3{margin-bottom:4px;font-size:1.05rem}.education-org{color:var(--color-accent);margin-bottom:8px;font-size:.85rem}.education-description{color:var(--color-text-muted);font-size:.92rem}@media (width>=800px){.education-grid{grid-template-columns:repeat(2,1fr)}}.contact-wrap{position:relative}.contact-panel{z-index:1;text-align:center;max-width:780px;margin:0 auto;position:relative}.contact-panel h3{color:var(--color-accent);margin-bottom:14px;font-size:clamp(1.6rem,3.4vw,2.2rem)}.contact-intro-text{color:var(--color-text-muted);max-width:54ch;margin:0 auto 34px}.contact-actions{text-align:left;grid-template-columns:1fr;gap:14px;display:grid}.contact-action{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:16px;align-items:center;gap:16px;padding:20px 24px;transition:transform .5s cubic-bezier(.22,1,.36,1),border-color .5s,box-shadow .5s,background .5s;display:flex}.contact-action:hover{border-color:var(--color-accent-dim);background:var(--color-surface-hover);box-shadow:0 18px 40px -20px rgba(var(--color-shadow-rgb), var(--shadow-alpha-soft)), 0 0 26px -14px var(--color-accent-glow);transform:translateY(-3px)}.contact-action.primary{border-color:var(--color-accent-dim)}.contact-action svg{color:var(--color-accent);flex-shrink:0}.contact-action-text{flex-direction:column;gap:3px;min-width:0;display:flex}.contact-action-text strong{font-family:var(--font-body);font-size:1.02rem;font-weight:600}.contact-action-text small{color:var(--color-text-muted);overflow-wrap:anywhere;font-size:.84rem}.contact-secondary{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 18px;margin-top:26px;display:flex}.contact-minor{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-body);background:0 0;border-radius:999px;align-items:center;gap:7px;padding:8px 15px;font-size:.84rem;transition:color .4s,border-color .4s;display:inline-flex}.contact-minor:hover{color:var(--color-accent);border-color:var(--color-accent-dim)}.contact-note{color:var(--color-text-muted);opacity:.8;font-size:.82rem}@media (width>=720px){.contact-actions{grid-template-columns:repeat(2,1fr)}}.diagram{border:1px solid var(--color-border);background:var(--color-bg-elevated);border-radius:16px;margin:28px 0 0;padding:22px}.diagram-title{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:16px;font-size:.72rem}.diagram-scroll{overflow-x:auto}.diagram-scroll svg{width:100%;min-width:660px;height:auto;display:block}.diagram-label{fill:var(--color-text);font-family:var(--font-body);font-size:15px;font-weight:600}.diagram-sub{fill:var(--color-text-muted);font-family:var(--font-body);font-size:11px}.diagram-boundary-label{fill:var(--color-accent);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.diagram-caption{color:var(--color-text-muted);max-width:70ch;margin-top:14px;font-size:.84rem}.footer{border-top:1px solid var(--color-border);padding:28px 0}.footer-inner{color:var(--color-text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}@media (width>=700px){.footer-inner{flex-direction:row;justify-content:space-between}}@media (pointer:coarse){.tilt-card{transform:none!important}}.motion-surface{position:relative}.reading-progress{z-index:110;background:var(--color-accent);transform-origin:0;width:100%;height:2px;box-shadow:0 0 12px var(--color-accent-glow);pointer-events:none;position:fixed;top:0;left:0;transform:scaleX(0)}.theme-ripple{z-index:150;visibility:hidden;pointer-events:none;border-radius:50%;position:fixed}.section{padding:104px 0}.section-heading{gap:18px;margin-bottom:44px}.section-heading:after{display:none}.section-heading h2{letter-spacing:-.025em;font-size:clamp(2.5rem,4.7vw,3.75rem)}.section-heading .index{font-variant-numeric:tabular-nums;font-size:.8rem}.section-rule{background:linear-gradient(90deg, var(--color-accent-dim), var(--color-border) 70%);transform-origin:0;opacity:.5;flex:1;align-self:center;height:1px;margin-left:12px}.heading-mask{vertical-align:bottom;white-space:pre;margin:-.12em -.05em;padding:.12em .05em;display:inline-block;overflow:clip}.heading-word{display:inline-block}.pill-button,.carousel-arrow,.hero-scroll{--magnet-x:0;--magnet-y:0;translate:calc(var(--magnet-x) * 1px) calc(var(--magnet-y) * 1px)}.pill-button svg{transition:rotate .35s}.pill-button:hover svg{rotate:-8deg}.pill-button:focus-visible,.nav-link:focus-visible,.nav-toggle:focus-visible,.theme-toggle:focus-visible,.lang-toggle:focus-visible,.project-more:focus-visible,.contact-action:focus-visible,.contact-minor:focus-visible,.hero-scroll:focus-visible{outline:2px solid var(--color-accent);outline-offset:5px}.project-card,.skill-group,.stat-card,.education-card,.contact-action{--light-x:0;--light-y:0;isolation:isolate;position:relative}.project-card:after,.skill-group:after,.stat-card:after,.education-card:after,.contact-action:after{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(340px circle at calc(var(--light-x) * 1px) calc(var(--light-y) * 1px), rgba(var(--color-accent-rgb), .11), transparent 70%);opacity:0;transition:opacity .45s;position:absolute;inset:0}.is-lit:after{opacity:1}.project-card{border-radius:18px;min-height:450px;padding:32px}.project-index{opacity:.13;font-size:4.5rem;top:20px;right:24px}.project-head{min-height:68px;padding-right:58px}.project-head h3{font-size:1.65rem}.project-context{font-size:.875rem}.project-metrics{margin-bottom:24px}.project-metric-value{font-size:1.8rem}.project-more{font-size:.875rem}.project-metric-label{font-size:.8rem}.carousel-track{padding-top:14px;padding-bottom:24px}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:clamp(2.6rem,4vw,3.3rem)}.stat-card{padding:28px}.skill-group h3{font-size:1.35rem}.skill-chip{font-size:.875rem}.contact-panel h3{letter-spacing:-.035em;margin-bottom:24px;font-size:clamp(3.5rem,8vw,6rem)}.contact-intro-text{font-size:1.05rem}.contact-action{min-height:100px}.education-photo img{will-change:auto}.modal-backdrop{perspective:1400px}.modal-panel{transform-origin:50% 20%}.modal-head h3{font-size:clamp(1.7rem,3vw,2.3rem)}.nav-links{position:relative}.nav-underline{z-index:0;visibility:hidden;width:0;height:100%;inset:0 auto auto 0}.nav-mobile{opacity:0;visibility:hidden;border-top:0;height:0}.lang-toggle{position:relative}.lang-pill{visibility:hidden;width:0;height:0;inset:0 auto auto 0}.timeline-chevron{display:inline-flex}.timeline-highlights{opacity:0;visibility:hidden;height:0;overflow:hidden}.contact-copy-icon{display:inline-flex}.footer{border-top-color:#0000;position:relative}.footer-rule{transform-origin:0;background:linear-gradient(90deg, var(--color-accent-dim), var(--color-border) 60%);height:1px;position:absolute;top:0;left:0;right:0}.hero{isolation:isolate;min-height:calc(100svh - 72px);padding:clamp(64px,9vh,110px) 0 124px;scroll-margin-top:72px}.hero-atmosphere{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-glow{aspect-ratio:1;opacity:.65;border-radius:50%;width:700px;position:absolute}.hero-glow-one{background:radial-gradient(circle, rgba(var(--color-accent-rgb), .16), transparent 68%);top:-230px;right:-180px}.hero-glow-two{background:radial-gradient(circle, rgba(var(--color-accent-rgb), .12), transparent 65%);bottom:-430px;left:-180px}.hero-grid{background-image:linear-gradient(rgba(var(--color-accent-rgb), .045) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--color-accent-rgb), .045) 1px, transparent 1px);background-size:80px 80px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 75% 45%,#000,#0000 65%);mask-image:radial-gradient(at 75% 45%,#000,#0000 65%)}.hero-inner{gap:40px}.hero-text{z-index:2;position:relative}.hero-eyebrow{gap:8px;margin-bottom:26px;font-size:.875rem}.hero-name{letter-spacing:-.045em;margin:0 0 30px -.045em;font-size:clamp(4.5rem,8.4vw,7rem);line-height:.94}.hero-word{width:max-content;max-width:100%;display:block}.hero-word:last-child{color:var(--color-accent);font-style:italic}.hero-letter-mask{vertical-align:top;margin:-.12em -.065em -.16em;padding:.12em .065em .16em;display:inline-block;overflow:clip}.hero-letter{transform-origin:0 100%;display:inline-block}.hero-role{max-width:34ch;color:var(--color-text);margin-bottom:14px;font-size:1.05rem;font-weight:500;line-height:1.6}.hero-tagline{max-width:37ch;margin-bottom:30px;font-size:1.08rem}.hero-cta{gap:10px;max-width:530px}.hero-cta .pill-button{padding:12px 19px;font-size:.875rem}.hero-cta .ghost{border-color:#0000}.hero-visual{padding:25px 0;position:relative}.portrait-entry{z-index:1;position:relative}.portrait-reveal{margin:-20px;padding:20px}.tilt-wrap{width:min(365px,75vw)}.tilt-card{border-radius:30px}.portrait-orbits{aspect-ratio:1;pointer-events:none;width:116%;position:absolute;top:50%;left:50%;translate:-50% -50%}.portrait-orbit{border:1px solid rgba(var(--color-accent-rgb), .2);border-radius:50%;display:block;position:absolute}.orbit-outer{inset:0}.orbit-inner{opacity:.5;border-style:dashed;inset:8%}.orbit-track{border-radius:50%;position:absolute;inset:0}.orbit-track i{background:var(--color-accent);width:8px;height:8px;box-shadow:0 0 22px var(--color-accent-glow);border-radius:50%;position:absolute;top:-4px;left:50%}.orbit-cross{color:var(--color-accent);font-size:1.6rem;font-weight:300;position:absolute;bottom:9%;right:9%}.hero-bottom{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:16px;font-size:.8rem;display:flex;position:absolute;bottom:28px;left:50%;translate:-50%}.hero-bottom:before{content:"";background:var(--color-border);height:1px;position:absolute;top:-20px;left:24px;right:24px}.hero-availability{align-items:center;gap:9px;display:flex}.hero-availability>span{background:var(--color-accent);width:6px;height:6px;box-shadow:0 0 0 4px rgba(var(--color-accent-rgb), .08);border-radius:50%}.hero-scroll{border:0;border-radius:999px;gap:12px;width:auto;height:40px;padding:0 14px;font-size:.8rem;position:static;transform:none}.hero-bottom-index{font-variant-numeric:tabular-nums;letter-spacing:.14em}@media (width<=899px){.section{padding:76px 0}.hero{padding:56px 0 120px}.hero-inner{gap:56px}.hero-name{font-size:clamp(4.5rem,15vw,7rem)}.hero-visual{justify-self:center;width:min(430px,100%);padding:8px 0}.portrait-orbits{width:108%}}@media (width<=480px){.section-heading{gap:12px;margin-bottom:30px}.section-heading h2{font-size:2.4rem}.section-rule{margin-left:0}.project-card{padding:24px}.timeline-header{flex-wrap:wrap;gap:8px}.timeline-meta{white-space:normal}.hero-name{font-size:clamp(3.9rem,17vw,5rem)}.hero-cta .pill-button{padding:11px 16px}.hero-bottom{font-size:.75rem}.hero-scroll{padding:0}.hero-bottom-index{display:none}}@media (prefers-reduced-motion:reduce){.pill-button,.carousel-arrow,.hero-scroll{translate:none!important}.education-photo img,.hero-letter,.hero-text,.hero-visual,.portrait-entry,.portrait-orbit{transform:none!important}.portrait-reveal{clip-path:none!important}}
