.splash-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--bg);will-change:transform;transition:transform .86s cubic-bezier(.76,0,.24,1)}.splash-screen.splash-exit{transform:translateY(-100%);pointer-events:none}.splash-text{font-family:var(--font-doto);font-weight:700;font-size:clamp(3rem,10vw,7rem);color:var(--text);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;opacity:0;transform:scale(.92);transition:opacity .32s ease,transform .32s ease}.splash-text.splash-text-visible{opacity:1;transform:scale(1)}.splash-text.splash-text-final{animation:splashGlow .9s ease-in-out 1}@keyframes splashGlow{0%,to{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 20px var(--glow-soft),0 0 60px var(--glow-soft)}}.splash-dots{position:absolute;bottom:12%;left:50%;transform:translate(-50%);display:flex;gap:6px}.splash-dot{width:5px;height:5px;border-radius:50%;background:var(--muted);opacity:.25;transition:opacity .2s ease}.splash-dot.splash-dot-active{opacity:1;background:var(--text)}@media(prefers-reduced-motion:reduce){.splash-screen{transition:opacity .3s ease}.splash-screen.splash-exit{transform:none;opacity:0}.splash-text{transition:none;animation:none!important}}.dot-field-container{position:relative;width:100%;height:100%}.dot-field-canvas,.dot-field-glow{position:absolute;inset:0;width:100%;height:100%}.dot-field-glow{pointer-events:none}.site-footer{margin-top:28px}.site-footer hr{border:0;border-top:1px solid var(--border)}.footer-content{display:flex;justify-content:center;gap:16px;padding:16px 2px 0;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}@media(max-width:1100px){.footer-content{flex-direction:column;gap:4px}}.mobile-nav-shell{display:none}@media(max-width:720px){.mobile-nav-shell{--mobile-nav-ease: cubic-bezier(.16, 1, .3, 1);--mobile-nav-duration: .42s;--mobile-nav-link-height: 42px;--mobile-nav-padding: 8px;--mobile-nav-border-width: 2px;--mobile-nav-height: calc(var(--mobile-nav-link-height) + (var(--mobile-nav-padding) * 2) + (var(--mobile-nav-border-width) * 2));--mobile-nav-shell-gap: 10px;--mobile-nav-available-width: min(460px, calc(100vw - 24px) );--mobile-contact-width: var(--mobile-nav-height);--mobile-contact-active-width: 104px;--mobile-nav-width: calc(var(--mobile-nav-available-width) - var(--mobile-contact-width) - var(--mobile-nav-shell-gap));--mobile-nav-gap: 4px;--mobile-link-width: calc((var(--mobile-nav-width) - (var(--mobile-nav-padding) * 2) - (var(--mobile-nav-border-width) * 2) - (var(--mobile-nav-gap) * 2)) / 3);position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:32;display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:var(--mobile-nav-shell-gap);width:fit-content;max-width:var(--mobile-nav-available-width);transform:translate(-50%);opacity:1;transition:transform .46s cubic-bezier(.16,1,.3,1),opacity .26s ease}.mobile-nav-shell.mobile-contact-active{--mobile-contact-width: var(--mobile-contact-active-width)}.mobile-nav{--mobile-active-index: 0;display:flex;align-items:center;gap:var(--mobile-nav-gap);position:relative;padding:var(--mobile-nav-padding);width:var(--mobile-nav-width);box-sizing:border-box;border:var(--mobile-nav-border-width) solid rgba(255,255,255,.14);border-radius:16px;background:color-mix(in srgb,var(--card) 46%,transparent);isolation:isolate;overflow:hidden;transition:width var(--mobile-nav-duration) var(--mobile-nav-ease);transform:translateZ(0);backface-visibility:hidden;will-change:width}.mobile-nav:before,.mobile-contact-link:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:color-mix(in srgb,var(--card) 58%,transparent);backdrop-filter:blur(14px) saturate(1.05);-webkit-backdrop-filter:blur(14px) saturate(1.05);transform:translateZ(0);backface-visibility:hidden;pointer-events:none}.mobile-nav-active-bg{position:absolute;top:var(--mobile-nav-padding);left:var(--mobile-nav-padding);z-index:0;width:var(--mobile-link-width);height:var(--mobile-nav-link-height);border-radius:12px;background:color-mix(in srgb,var(--text) 9%,transparent);opacity:0;transform:translate(calc(var(--mobile-active-index) * (var(--mobile-link-width) + var(--mobile-nav-gap))));will-change:transform;transition:transform var(--mobile-nav-duration) var(--mobile-nav-ease),width var(--mobile-nav-duration) var(--mobile-nav-ease),opacity .2s ease,background .32s var(--mobile-nav-ease)}.mobile-nav.mobile-nav-has-active .mobile-nav-active-bg{opacity:1}.mobile-nav a,.mobile-contact-link{position:relative;display:inline-flex;align-items:center;justify-content:center;height:var(--mobile-nav-link-height);min-width:0;border:0;border-radius:12px;background:transparent;color:var(--muted);text-decoration:none;z-index:1;transition:color .24s var(--mobile-nav-ease)}.mobile-nav a{flex:0 0 auto;width:var(--mobile-link-width);gap:0;overflow:hidden;padding:0;font-size:10px;font-weight:650;line-height:1;transition:color .24s var(--mobile-nav-ease)}.mobile-nav a.active{color:var(--text)}.mobile-nav a span{display:inline-block;max-width:0;overflow:hidden;margin-left:0;opacity:0;transform:translate(-5px);transform-origin:left center;text-overflow:ellipsis;white-space:nowrap;will-change:max-width,margin-left,opacity,transform;transition:max-width .34s var(--mobile-nav-ease),margin-left .34s var(--mobile-nav-ease),opacity .22s ease,transform .32s var(--mobile-nav-ease)}.mobile-nav a.active span{max-width:calc(var(--mobile-link-width) - 26px);margin-left:5px;opacity:1;transform:translate(0);transition:max-width .34s var(--mobile-nav-ease),margin-left .34s var(--mobile-nav-ease),opacity .22s ease .04s,transform .32s var(--mobile-nav-ease)}.mobile-nav svg,.mobile-contact-link svg{width:15px;height:15px;flex:0 0 15px;stroke-width:2}.mobile-contact-link{width:var(--mobile-contact-width);height:var(--mobile-nav-height);gap:0;justify-self:center;box-sizing:border-box;border:var(--mobile-nav-border-width) solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:16px;background:color-mix(in srgb,var(--card) 46%,transparent);color:var(--muted);text-decoration:none;cursor:pointer;overflow:hidden;isolation:isolate;transform:translateZ(0);backface-visibility:hidden;transition:width var(--mobile-nav-duration) var(--mobile-nav-ease),border-color .24s var(--mobile-nav-ease),background .24s var(--mobile-nav-ease),color .24s var(--mobile-nav-ease)}.mobile-contact-link span{display:inline-block;max-width:0;overflow:hidden;margin-left:0;opacity:0;transform:translate(-5px);transform-origin:left center;color:currentColor;font-size:10px;font-weight:650;line-height:1;text-overflow:ellipsis;white-space:nowrap;will-change:max-width,margin-left,opacity,transform;transition:max-width .34s var(--mobile-nav-ease),margin-left .34s var(--mobile-nav-ease),opacity .22s ease,transform .32s var(--mobile-nav-ease)}.mobile-contact-link.active{background:color-mix(in srgb,var(--text) 9%,transparent);color:var(--text)}.mobile-contact-link.active span{max-width:calc(var(--mobile-contact-active-width) - var(--mobile-nav-height) + 16px);margin-left:7px;opacity:1;transform:translate(0);transition:max-width .34s var(--mobile-nav-ease),margin-left .34s var(--mobile-nav-ease),opacity .22s ease .04s,transform .32s var(--mobile-nav-ease)}body.light-mode .mobile-nav{border-color:#2f6fca21;background:color-mix(in srgb,var(--card) 48%,transparent)}body.light-mode .mobile-nav:before,body.light-mode .mobile-contact-link:before{background:color-mix(in srgb,var(--card) 62%,transparent)}body.light-mode .mobile-nav a.active{color:var(--text)}body.light-mode .mobile-nav-active-bg{background:color-mix(in srgb,var(--accent) 9%,transparent)}body.light-mode .mobile-contact-link{border-color:color-mix(in srgb,var(--accent) 24%,transparent);background:color-mix(in srgb,var(--card) 48%,transparent)}body.light-mode .mobile-contact-link.active{background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--text)}}@media(max-width:390px){.mobile-nav-shell{--mobile-nav-link-height: 38px;--mobile-nav-padding: 7px;--mobile-nav-shell-gap: 8px;--mobile-contact-active-width: 94px}.mobile-nav a,.mobile-contact-link span{font-size:9px}.mobile-nav a.active span{max-width:calc(var(--mobile-link-width) - 25px)}}@media(max-width:360px){.mobile-nav-shell{--mobile-nav-link-height: 38px;--mobile-nav-padding: 7px;--mobile-nav-shell-gap: 6px;--mobile-contact-active-width: 88px}.mobile-nav svg,.mobile-contact-link svg{width:14px;height:14px;flex-basis:14px}}.site-nav-shell{min-height:52px;margin-bottom:18px}.site-nav{--nav-gap: 12px;--nav-duration: .48s;--nav-ease: cubic-bezier(.16, 1, .3, 1);--nav-icon-size: 14px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--nav-gap);padding:9px;border:2px solid rgba(255,255,255,.14);border-radius:18px;background:color-mix(in srgb,var(--card) 54%,transparent);box-shadow:none;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);isolation:isolate;overflow:hidden}.site-nav:after{content:none}.site-nav-overlay{position:fixed;top:16px;left:50%;z-index:30;width:min(900px,calc(100vw - 32px));transform:translate(-50%);transition:transform .56s cubic-bezier(.16,1,.3,1),opacity .36s ease;will-change:transform,opacity}.site-nav-hidden{opacity:0;pointer-events:none;transform:translate(-50%) translateY(calc(-100% - 28px))}.nav-actions{grid-column:1;position:relative;z-index:2;display:flex;align-items:center;gap:8px;min-width:0;justify-self:start}.site-nav nav{--active-pill-left: 0px;--active-pill-width: 0px;--nav-item-gap: 4px;--nav-label-gap: 7px;display:flex;align-items:center;gap:var(--nav-item-gap);min-width:0;white-space:nowrap;position:relative;z-index:1;border-radius:12px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.site-nav nav a,.nav-contact-link{position:relative;display:inline-flex;align-items:center;gap:0;height:38px;box-sizing:border-box;padding:0 13px;border:0;border-radius:12px;color:var(--muted);font-size:12px;font-weight:600;line-height:1;text-decoration:none;z-index:1;transition:background .28s var(--nav-ease),color .32s var(--nav-ease)}.site-nav nav a{justify-content:center;gap:var(--nav-label-gap);overflow:visible;flex:0 0 auto;width:auto;transition:background .28s var(--nav-ease),color .32s var(--nav-ease)}.nav-active-pill{position:absolute;top:0;left:0;z-index:0;width:var(--active-pill-width);height:38px;border:0;border-radius:12px;background:color-mix(in srgb,var(--text) 9%,transparent);box-shadow:none;opacity:0;transform:translate(var(--active-pill-left));will-change:transform,width;transition:transform var(--nav-duration) var(--nav-ease),width var(--nav-duration) var(--nav-ease),opacity .18s ease,background .32s var(--nav-ease)}.site-nav nav.nav-has-active .nav-active-pill{opacity:1}.site-nav nav svg,.nav-contact-link svg{width:var(--nav-icon-size, 14px);height:var(--nav-icon-size, 14px);flex:0 0 var(--nav-icon-size, 14px);stroke-width:2;transition:color .28s var(--nav-ease)}.nav-item-label{display:inline-block;overflow:visible;max-width:none;opacity:1;transform:none;transition:color .28s var(--nav-ease)}.site-nav nav a:hover{color:var(--accent)}.nav-contact-link:hover{color:var(--accent);background:color-mix(in srgb,var(--text) 6%,transparent)}.site-nav nav a.active,.nav-contact-link.active{color:var(--text)}.nav-right-actions{grid-column:2;justify-self:end;position:relative;z-index:2;display:flex;align-items:center;gap:8px;min-width:0}.nav-contact-link{gap:7px;background:#fff;color:#050505}.nav-contact-link:hover,.nav-contact-link.active,body.light-mode .nav-contact-link:hover,body.light-mode .nav-contact-link.active{background:#fff;color:#050505}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 38px;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:12px;background:color-mix(in srgb,var(--text) 3%,transparent);color:var(--text);cursor:pointer;box-shadow:none;transition:border-color .28s cubic-bezier(.2,.8,.2,1),background .28s cubic-bezier(.2,.8,.2,1),color .28s cubic-bezier(.2,.8,.2,1)}.theme-toggle:hover{border-color:color-mix(in srgb,var(--accent) 38%,transparent);color:var(--accent);background:color-mix(in srgb,var(--text) 6%,transparent)}.theme-toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 62%,transparent);outline-offset:3px}.theme-toggle svg{width:16px;height:16px;stroke-width:2}.theme-toggle .sun-icon,body.light-mode .theme-toggle .moon-icon{display:none}body.light-mode .theme-toggle .sun-icon{display:block}body.light-mode .site-nav{border-color:#2f6fca21;background:color-mix(in srgb,var(--card) 58%,transparent);box-shadow:none}body.light-mode .nav-contact-link,body.light-mode .nav-contact-link:hover,body.light-mode .nav-contact-link.active{background:var(--accent);color:var(--accent-contrast)}body.light-mode .theme-toggle{border-color:color-mix(in srgb,var(--accent) 24%,transparent);background:color-mix(in srgb,var(--accent) 4%,transparent);box-shadow:none}body.light-mode .site-nav nav a:hover{color:var(--accent)}body.light-mode .theme-toggle:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}body.light-mode .nav-active-pill{background:color-mix(in srgb,var(--accent) 9%,transparent);box-shadow:none}body.light-mode .site-nav nav a.active,body.light-mode .nav-contact-link.active{color:var(--text)}@media(hover:none){.site-nav nav a:hover{background:transparent;color:var(--muted)}.site-nav nav a.active:hover{color:var(--text)}.nav-contact-link:hover,body.light-mode .nav-contact-link:hover{background:#fff;color:#050505}.theme-toggle:hover,body.light-mode .theme-toggle:hover{background:transparent;color:var(--text)}}@media(max-width:860px){.site-nav{--nav-gap: 8px;width:100%;grid-template-columns:minmax(0,1fr) auto}.nav-actions{grid-column:1;min-width:0;justify-self:stretch;justify-content:flex-start}.nav-right-actions{grid-column:2;flex:0 0 auto}.site-nav nav{justify-content:flex-start;width:100%;min-width:0;overflow-x:auto;scrollbar-width:none}.site-nav nav::-webkit-scrollbar{display:none}}@media(max-width:720px){.site-nav-shell{min-height:0;margin-bottom:0}.site-nav{display:none}.site-nav-overlay{top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translate(-50%)}.site-nav-hidden{opacity:0;pointer-events:none;transform:translate(-50%) translateY(calc(100% + 28px))}.nav-actions{width:100%;border-radius:18px}.site-nav nav a,.nav-contact-link{padding:0 8px;font-size:11px}.nav-contact-link{width:38px;justify-content:center;padding:0}.nav-contact-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}@media(max-width:560px){.site-nav{--nav-gap: 6px;padding:8px;border-radius:16px}.site-nav-overlay{width:calc(100vw - 24px)}}@media(max-width:390px){.site-nav nav{justify-content:flex-start}}.page-breadcrumb{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;font-weight:600;line-height:1}.page-breadcrumb a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);border-radius:50%;background:var(--chip);color:var(--text);text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease}.page-breadcrumb a:hover{background:var(--chip-hover);border-color:var(--accent-border);color:var(--text)}.page-breadcrumb svg{width:15px;height:15px;stroke-width:2}.page-breadcrumb strong{color:var(--text);font-weight:700}.card{--card-glow-opacity: 0;--card-glow-size: 280px;--card-glow-x: -9999px;--card-glow-y: -9999px;--card-glow-core: var(--glow-core);--card-glow-mid: var(--glow-mid);--card-glow-soft: var(--glow-soft);--card-radius: 18px;--card-ring-width: 3px;background:var(--card);border-radius:var(--card-radius);padding:20px;display:flex;flex-direction:column;gap:14px;transition:background .2s ease,border-color .2s ease;overflow:visible;position:relative;isolation:isolate}.card:after{content:"";position:absolute;inset:0;z-index:4;border:2px solid var(--border);border-radius:inherit;pointer-events:none}.card:before{content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;padding:var(--card-ring-width);background:radial-gradient(var(--card-glow-size) circle at var(--card-glow-x) var(--card-glow-y),var(--card-glow-core) 0%,var(--card-glow-core) 12%,var(--card-glow-mid) 30%,var(--card-glow-soft) 54%,transparent 70%);opacity:var(--card-glow-opacity);pointer-events:none;transition:opacity .18s ease;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}.card.card-flat{--card-glow-opacity: 0}.card.card-flat:before{display:none}.card>*{position:relative;z-index:1}.awards-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:6px 0 16px}.awards-page-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.award-page-card{min-height:0;justify-content:center}.award-page-main{display:flex;align-items:center;gap:14px;min-width:0}.award-page-logo{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--chip);-webkit-user-select:none;user-select:none}.award-page-logo img{display:block;width:24px;height:24px;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.award-page-logo-fallback{width:24px;height:24px}.award-page-logo img[src$=".jpg"]{border-radius:6px}.award-page-copy{min-width:0;flex:1}.award-page-date{flex:0 0 auto;color:var(--muted);font-size:var(--font-meta);font-weight:600;line-height:var(--line-meta);text-align:right}.award-page-card h2{margin-bottom:6px;font-size:var(--font-title);font-weight:700;line-height:var(--line-title)}.award-page-card p{color:var(--muted);font-size:var(--font-meta);line-height:var(--line-meta)}@media(max-width:620px){.award-page-main{align-items:flex-start}.award-page-date{max-width:74px}}@media(max-width:1100px){.awards-page-header{align-items:flex-start;flex-direction:column}}.certifications-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:6px 0 16px}.certifications-page-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.certifications-page-card{min-height:0;justify-content:center}.certifications-page-main{display:flex;align-items:center;gap:14px;min-width:0}.certifications-page-logo{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--chip);-webkit-user-select:none;user-select:none}.certifications-page-logo img{display:block;width:24px;height:24px;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}body:not(.light-mode) .certifications-page-logo.logo-lighten-on-dark img{filter:brightness(0) invert(1)}.certifications-page-logo-fallback{width:24px;height:24px}.certifications-page-logo img[src$=".jpg"]{border-radius:6px}.certifications-page-copy{min-width:0;flex:1}.certifications-page-date{flex:0 0 auto;color:var(--muted);font-size:var(--font-meta);font-weight:600;line-height:var(--line-meta);text-align:right}.certifications-page-card h2{margin-bottom:6px;font-size:var(--font-title);font-weight:700;line-height:var(--line-title)}.certifications-page-card p{color:var(--muted);font-size:var(--font-meta);line-height:var(--line-meta)}@media(max-width:620px){.certifications-page-main{align-items:flex-start}.certifications-page-date{max-width:74px}}@media(max-width:1100px){.certifications-page-header{align-items:flex-start;flex-direction:column}}.page-title{min-width:0}.page-title-eyebrow{display:inline-flex;margin-bottom:9px;color:var(--accent);font-size:12px;font-weight:700;line-height:1}.page-title-heading{max-width:680px;font-family:var(--font-doto);font-size:2rem;font-weight:700;line-height:1.08;letter-spacing:0;text-transform:uppercase}@media(max-width:720px){.page-title-heading{font-size:1.6rem}}.card-title{display:flex;align-items:center;gap:7px;margin-bottom:0;flex-shrink:0}.card-title-label{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text);font-family:var(--font-doto);font-variation-settings:"ROND" 100}.card-title-icon{width:14px;height:14px;flex:0 0 14px;color:var(--muted);stroke-width:2}.card-title-action{display:inline-flex;align-items:center;flex:0 0 auto}.contact-page-header{display:flex;flex-direction:column;gap:14px;margin:6px 0 16px}.contact-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.contact-intro p,.contact-card p{color:var(--soft);font-size:13px;line-height:1.55}.contact-intro p{max-width:680px}.contact-primary-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;flex:0 0 auto;padding:0 13px;border:1px solid var(--text);border-radius:999px;background:var(--text);color:var(--accent-contrast);font-size:13px;font-weight:600;line-height:1;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.contact-primary-link:hover{background:var(--accent-2);border-color:var(--accent-2)}.contact-primary-link svg{width:15px;height:15px;stroke-width:2}.contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.contact-card-link{display:block;height:100%;color:var(--text);text-decoration:none}.contact-card{height:100%;min-height:176px;justify-content:space-between}.contact-card-action{display:inline-flex;align-items:center;gap:7px;color:var(--accent);font-size:12px;font-weight:700;line-height:1}.contact-card-action svg{width:14px;height:14px;stroke-width:2}@media(max-width:980px){.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.contact-intro{flex-direction:column}}@media(max-width:620px){.contact-grid{grid-template-columns:1fr}.contact-primary-link{width:100%}}.education-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:6px 0 16px}.education-page-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.education-page-card{min-height:0;justify-content:center}.education-page-main{display:flex;align-items:center;gap:14px;min-width:0}.education-page-logo{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--chip);-webkit-user-select:none;user-select:none}.education-page-logo img{display:block;width:24px;height:24px;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.education-page-logo-fallback{width:24px;height:24px}.education-page-logo img[src$=".jpg"]{border-radius:6px}.education-page-copy{min-width:0;flex:1}.education-page-date{flex:0 0 auto;color:var(--muted);font-size:var(--font-meta);font-weight:600;line-height:var(--line-meta);text-align:right}.education-page-card h2{margin-bottom:6px;font-size:var(--font-title);font-weight:700;line-height:var(--line-title)}.education-page-card p{color:var(--muted);font-size:var(--font-meta);line-height:var(--line-meta)}@media(max-width:620px){.education-page-main{align-items:flex-start}.education-page-date{max-width:74px}}@media(max-width:1100px){.education-page-header{align-items:flex-start;flex-direction:column}}.experience-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:6px 0 16px}.experience-page-card{min-height:0;width:100%;padding:18px;justify-content:center}.experience-page-main{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:14px;min-width:0}.experience-page-logo{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--chip);-webkit-user-select:none;user-select:none}.experience-page-logo img{display:block;width:28px;height:28px;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.experience-page-logo-fallback{width:28px;height:28px}.experience-page-logo img[src$=".jpg"]{border-radius:7px}.experience-page-copy{min-width:0}.experience-page-card h2{margin-bottom:6px;font-size:var(--font-title);font-weight:700;line-height:var(--line-title);overflow-wrap:anywhere}.experience-page-card p{color:var(--muted);font-size:var(--font-meta);line-height:var(--line-meta)}.experience-page-company{max-width:100%}.experience-page-details{display:grid;gap:6px;margin-top:12px;padding:10px 0 0;border-top:1px solid var(--border);color:var(--soft);font-size:var(--font-meta);line-height:var(--line-meta);list-style:none}.experience-page-details li{position:relative;padding-left:14px}.experience-page-details li:before{content:"";position:absolute;top:.62em;left:1px;width:4px;height:4px;border-radius:50%;background:color-mix(in srgb,var(--accent) 42%,var(--border))}.experience-timeline-container{position:relative;max-width:1000px;margin:0 auto;padding:40px 0;overflow:hidden}.experience-timeline{--timeline-gap: 88px;--timeline-row-gap: 20px;position:relative;display:flex;flex-direction:column;gap:var(--timeline-row-gap)}.timeline-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) var(--timeline-gap) minmax(0,1fr);align-items:stretch;min-height:132px;z-index:1}.timeline-item:before{content:"";position:absolute;top:50%;left:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;background:color-mix(in srgb,var(--accent) 42%,var(--border));border:2px solid var(--card);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);z-index:3}.timeline-item:after{content:"";position:absolute;top:calc(50% + 6px);bottom:calc(-50% - var(--timeline-row-gap) + 6px);left:50%;width:1px;transform:translate(-50%);background:color-mix(in srgb,var(--accent) 18%,var(--border));z-index:1}.timeline-item:last-child:after{display:none}.timeline-date{grid-row:1;align-self:center;display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--chip);color:var(--muted);font-size:var(--font-meta);font-weight:600;line-height:1;white-space:nowrap}.experience-page-card{grid-row:1;min-height:132px;height:100%}.timeline-item.is-left .experience-page-card{grid-column:1}.timeline-item.is-left .timeline-date{grid-column:3;justify-self:start}.timeline-item.is-right .experience-page-card{grid-column:3}.timeline-item.is-right .timeline-date{grid-column:1;justify-self:end}@media(max-width:768px){.experience-timeline{--timeline-gap: 0;--timeline-row-gap: 16px}.timeline-item{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;padding-left:50px;align-items:start}.timeline-item:before{top:3px;left:20px;transform:translate(-50%)}.timeline-item:after{top:14px;bottom:calc(0px - var(--timeline-row-gap));left:20px;transform:translate(-50%)}.timeline-date{grid-column:1!important;grid-row:1;width:fit-content;margin-bottom:8px;justify-self:start!important}.experience-page-card{grid-column:1!important;grid-row:2;min-height:0}.experience-page-main{grid-template-columns:40px minmax(0,1fr);gap:12px}.experience-page-logo{width:40px;height:40px}.experience-page-logo img,.experience-page-logo-fallback{width:25px;height:25px}}@media(max-width:1100px){.experience-page-header{align-items:flex-start;flex-direction:column}}.skill-logo{display:inline-flex;align-items:center;justify-content:center;position:relative;width:38px;height:38px;border:1px solid var(--border);border-radius:11px;background:var(--chip);color:var(--text);font-size:12px;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none;transition:transform .18s ease,background .2s ease,border-color .2s ease}.skill-logo:hover{transform:scale(1.08);background:var(--chip-hover);border-color:var(--accent-border)}.skill-logo:after{content:attr(aria-label);position:absolute;left:50%;top:-16px;z-index:5;max-width:160px;padding:6px 8px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text);font-size:var(--font-label);font-weight:700;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,4px) scale(.96);transition:opacity .16s ease,transform .16s ease}.skill-logo:hover:after,.skill-logo:focus-visible:after{opacity:1;transform:translate(-50%) scale(1)}.skill-logo-with-name:after,.skill-logo-with-name:hover:after,.skill-logo-with-name:focus-visible:after{content:none}body.light-mode .skill-logo:hover{border-color:var(--accent-border)}.skill-logo img{width:22px;height:22px;display:block;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;transition:filter .2s ease,opacity .2s ease}body:not(.light-mode) .skill-logo-lighten-on-dark img{filter:brightness(0) invert(1)}.skill-logo-with-name{width:auto;min-width:0;height:42px;justify-content:flex-start;gap:10px;padding:0 12px;border-radius:12px}.skill-logo-with-name img{flex:0 0 auto}.skill-logo-name{color:var(--soft);font-size:var(--font-body);font-weight:600;line-height:var(--line-meta);white-space:nowrap}.skill-mark{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid currentColor;border-radius:6px;font-size:11px;font-weight:800;letter-spacing:0}.links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.links a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;text-decoration:none;color:var(--text);font-weight:500;transition:.2s ease;border-radius:50%;background:var(--chip);border:1px solid var(--border)}.links svg{width:16px;height:16px;stroke-width:2}.links a:hover{color:var(--text);background:var(--chip-hover)}.view-all-button{--view-all-size: 34px;--view-all-expanded-width: 94px;--view-all-ease: cubic-bezier(.22, 1, .36, 1);display:inline-flex;align-items:center;justify-content:center;width:var(--view-all-size);height:var(--view-all-size);flex:0 0 var(--view-all-size);gap:0;overflow:hidden;border:1px solid var(--border);border-radius:50%;background:var(--chip);color:var(--text);text-decoration:none;transform:translate(1px);will-change:width,flex-basis,border-radius;transition:width .42s var(--view-all-ease),flex-basis .42s var(--view-all-ease),border-radius .42s var(--view-all-ease),background .2s ease,border-color .2s ease}.view-all-button:hover,.view-all-button:focus-visible{width:var(--view-all-expanded-width);flex-basis:var(--view-all-expanded-width);border-radius:999px;background:var(--chip-hover);border-color:var(--accent-border)}body.light-mode .view-all-button:hover{border-color:var(--accent-border)}.view-all-button svg{width:14px;height:14px;flex:0 0 14px;stroke-width:2;transition:transform .42s var(--view-all-ease)}.view-all-button:hover svg,.view-all-button:focus-visible svg{transform:translate(-2px)}.view-all-button>span{display:inline-block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-size:12px;font-weight:600;letter-spacing:0;color:var(--text);line-height:1;font-family:var(--font-sans);transform:translate(-5px);transition:max-width .42s var(--view-all-ease),margin-left .42s var(--view-all-ease),opacity .24s ease .08s,transform .42s var(--view-all-ease)}.view-all-button:hover>span,.view-all-button:focus-visible>span{max-width:48px;margin-left:4px;opacity:1;transform:translate(0)}@media(prefers-reduced-motion:reduce){.view-all-button,.view-all-button svg,.view-all-button>span{transition:none}}.resume-list{display:flex;flex:1;flex-direction:column;gap:12px;position:relative;padding-right:24px}.resume-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;position:relative;padding-bottom:12px;border-bottom:1px solid var(--border)}.resume-item:last-child{padding-bottom:0;border-bottom:0}.resume-item:before{content:"";position:absolute;top:3px;right:-22px;width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--accent) 42%,var(--border));border:2px solid var(--card);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.resume-item:after{content:"";position:absolute;top:14px;bottom:-14px;right:-17px;width:1px;background:color-mix(in srgb,var(--accent) 18%,var(--border))}.resume-item:last-child:after{display:none}.education-card .resume-list,.certifications-card .resume-list,.awards-card .resume-list{padding-right:0}.education-card .resume-item:before,.education-card .resume-item:after,.certifications-card .resume-item:before,.certifications-card .resume-item:after,.awards-card .resume-item:before,.awards-card .resume-item:after{display:none}.resume-list h3{font-size:var(--font-title);font-weight:600;margin-bottom:4px;line-height:var(--line-title)}.resume-list p,.resume-item-date{color:var(--muted);line-height:var(--line-meta);font-size:var(--font-meta)}.resume-item-date{font-weight:500;white-space:nowrap}.resume-item ul{grid-column:1 / -1;padding-left:44px}.resume-item li{color:var(--soft);font-size:var(--font-meta);line-height:var(--line-meta);margin-bottom:3px}.testimonial-carousel{display:flex;flex:1;min-height:0;flex-direction:column;gap:12px;position:relative}.testimonials{display:flex;flex:1;gap:0;min-height:0;overflow-x:auto;overflow-y:hidden;cursor:grab;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:none;touch-action:pan-y;-webkit-user-select:none;user-select:none}.testimonials::-webkit-scrollbar{display:none}.testimonials:active{cursor:grabbing}.testimonial-hit-areas{position:absolute;inset:0 0 22px;z-index:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));pointer-events:none}.testimonial-hit-area{width:100%;height:100%;border:0;background:transparent;color:transparent;pointer-events:auto}.testimonial-hit-area-prev{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M17 7L10 14L17 21' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 14 14,w-resize}.testimonial-hit-area-next{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M11 7L18 14L11 21' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 14 14,e-resize}body.light-mode .testimonial-hit-area-prev{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M17 7L10 14L17 21' fill='none' stroke='%23071a33' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 14 14,w-resize}body.light-mode .testimonial-hit-area-next{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M11 7L18 14L11 21' fill='none' stroke='%23071a33' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 14 14,e-resize}.testimonial{display:flex;flex:0 0 100%;flex-direction:column;justify-content:space-between;gap:14px;min-height:100%;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--chip);scroll-snap-align:start;scroll-snap-stop:always}.testimonial blockquote{color:var(--soft);font-size:var(--font-body);line-height:var(--line-body)}.testimonial figcaption{display:flex;flex-direction:column;gap:3px}.testimonial strong{font-size:var(--font-title);line-height:var(--line-title)}.testimonial span{color:var(--muted);font-size:var(--font-meta);line-height:var(--line-meta)}.testimonial-dots{display:flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0}.testimonial-dots button{width:7px;height:7px;border:0;border-radius:999px;background:var(--accent-border);cursor:pointer;transition:width .2s ease,background .2s ease}.testimonial-dots button.active{width:22px;background:var(--accent)}@media(hover:none),(pointer:coarse){.testimonial-hit-areas{display:none}}.parent{width:100%;display:flex;flex-direction:column;gap:12px}.hero-cluster{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-areas:"profile profile connect connect connect connect location location" "profile profile about about about about location location" "profile-note profile-note about about about about location location";align-items:stretch;gap:12px}.resume-cluster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px}.resume-column{display:flex;min-width:0;height:100%;flex-direction:column;gap:12px}.parent .card{min-width:0;min-height:0}.parent.reveal-scope .card{opacity:0;transform:translateY(var(--reveal-y)) scale(var(--reveal-scale));filter:blur(var(--reveal-blur));transform-origin:center;transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease),filter var(--reveal-duration) var(--reveal-ease)}.parent.reveal-scope .card.in-view{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.profile-card{grid-area:profile;min-height:280px;justify-content:center;align-items:center;gap:16px}.profile-theme-toggle{display:none}.profile-note-card{grid-area:profile-note;min-height:92px;flex-direction:row;align-items:center;justify-content:space-between;gap:14px}.skills-card{grid-area:skills;min-height:92px;justify-content:center;overflow:visible}.connect-card{grid-area:connect;min-height:78px;display:flex;align-items:center;justify-content:center}.about-card{grid-area:about;min-height:330px;justify-content:space-between}.location-card{grid-area:location;min-height:330px;justify-content:flex-start}.location-globe-clip{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit;pointer-events:none}.location-globe-clip:before{content:"";position:absolute;left:50%;bottom:-22px;z-index:0;width:min(520px,150%);aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse at 50% 58%,var(--glow-mid),transparent 52%),radial-gradient(ellipse at 50% 46%,var(--glow-soft),transparent 68%);filter:blur(22px);opacity:.7;translate:-50% 50%}.experience-card,.leadership-card{min-height:auto;gap:12px}.education-card,.certifications-card,.awards-card{min-height:auto;justify-content:flex-start}.testimonials-card{flex:1;min-height:196px;justify-content:flex-start}.project-inquiry-card{flex:1;min-height:220px;flex-direction:row;align-items:center;justify-content:space-between;gap:18px;text-align:left}.profile-content{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;flex:0 0 auto}.profile-avatar{position:relative;width:76px;height:76px;margin-bottom:14px;border:0;border-radius:50%;padding:0;background:transparent;box-shadow:0 0 18px #d6297638;cursor:pointer;appearance:none;-webkit-appearance:none;transition:background .2s ease,box-shadow .2s ease}.profile-avatar:before,.profile-avatar:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.profile-avatar:before{inset:0;background:linear-gradient(45deg,#f9ce34,#ee2a7b 52%,#6228d7)}.profile-avatar:after{inset:3px;background:var(--card)}.profile-avatar-viewed{box-shadow:none}.profile-avatar-viewed:before{background:color-mix(in srgb,var(--muted) 42%,var(--border))}.profile-avatar-bounce{animation:profileAvatarBounce .38s cubic-bezier(.34,1.56,.64,1)}@keyframes profileAvatarBounce{0%{transform:scale(1)}42%{transform:scale(.88)}72%{transform:scale(1.05)}to{transform:scale(1)}}.profile-image{position:absolute;inset:7px;z-index:1;width:calc(100% - 14px);height:calc(100% - 14px);border-radius:50%;border:1px solid rgba(255,255,255,.18);object-fit:cover;object-position:center;display:block}.profile-image-fallback{display:flex;background:var(--chip)}.story-viewer{position:fixed;inset:0;z-index:11000;display:flex;align-items:center;justify-content:center;padding:24px}.story-viewer-backdrop{position:absolute;inset:0;border:0;background:#00000094;backdrop-filter:blur(10px) saturate(.86);-webkit-backdrop-filter:blur(10px) saturate(.86);cursor:pointer;animation:storyBackdropIn .28s ease both}.story-viewer.is-closing .story-viewer-backdrop{animation:storyBackdropOut .22s ease both}.story-viewer-panel{position:relative;z-index:1;display:flex;width:min(380px,calc(100vw - 32px));aspect-ratio:9 / 14;max-height:min(720px,calc(100vh - 48px));flex-direction:column;overflow:hidden;border:0;border-radius:18px;background:#050505;box-shadow:0 24px 70px #0000008c;animation:storyViewerPop .28s cubic-bezier(.22,1,.36,1)}.story-viewer.is-closing .story-viewer-panel{animation:storyViewerClose .22s cubic-bezier(.4,0,1,1) both}.story-viewer.is-closing .story-viewer-nav{opacity:0;transform:scale(.94);pointer-events:none}.story-viewer-progress-list{position:absolute;top:10px;left:12px;right:12px;z-index:3;display:flex;gap:5px}.story-viewer-progress{flex:1;height:2px;border-radius:999px;background:#ffffff47;overflow:hidden}.story-viewer-progress-fill{display:block;width:0%;height:100%;border-radius:inherit;background:#ffffffd1}.story-viewer-progress-fill.is-complete{width:100%}.story-viewer-progress-fill.is-active{animation:storyProgress var(--story-duration, 5s) linear forwards}.story-viewer.is-paused .story-viewer-progress-fill.is-active{animation-play-state:paused}.story-viewer-header{position:absolute;top:22px;left:12px;right:12px;z-index:3;display:grid;grid-template-columns:34px minmax(0,1fr) 58px;align-items:center;gap:10px;color:#fff}.story-viewer-avatar{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:#ffffff1f}.story-viewer-avatar img{display:block;width:100%;height:100%;object-fit:cover}.story-viewer-avatar-fallback{width:100%;height:100%}.story-viewer-meta{display:flex;min-height:34px;min-width:0;flex-direction:column;justify-content:center;gap:3px;padding-top:1px}.story-viewer-meta>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.story-viewer-meta>strong{font-size:13px;font-weight:700;line-height:1.1}.story-viewer-controls{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;flex-wrap:nowrap;gap:8px;min-width:58px;white-space:nowrap}.story-viewer-control{display:inline-flex;width:25px;height:25px;flex:0 0 25px;align-items:center;justify-content:center;border:0;border-radius:0;background:transparent;color:#fff;cursor:pointer;padding:0;opacity:.86;box-shadow:none;transition:opacity .2s ease,background .2s ease}.story-viewer-control:hover{opacity:1;background:transparent}.story-viewer-control svg{width:16px;height:16px;stroke-width:2;transform-box:fill-box;transform-origin:center;transition:transform .2s ease}.story-viewer-control:hover svg{transform:scale(1.12)}.story-viewer-nav{position:relative;z-index:2;display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:color-mix(in srgb,var(--card) 86%,transparent);color:var(--text);cursor:pointer;opacity:1;box-shadow:0 12px 30px #0000003d,0 0 16px var(--glow-soft);transition:opacity .22s ease,transform .22s ease,border-color .2s ease,background .2s ease}.story-viewer-nav:hover:not(:disabled){border-color:var(--accent-border);background:var(--chip-hover);transform:translateY(0) scale(1.03)}.story-viewer-nav:disabled{cursor:default;opacity:.28}.story-viewer-nav svg{width:18px;height:18px;stroke-width:2}.story-viewer-nav-prev{margin-right:16px}.story-viewer-nav-next{margin-left:16px}.story-viewer-nav-prev svg{transform:translate(-1px)}.story-viewer-nav-next svg{transform:translate(1px)}.story-viewer-media{position:relative;flex:1;min-height:0}.story-viewer-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),transparent 32%),linear-gradient(0deg,rgba(0,0,0,.62),transparent 36%);pointer-events:none}.story-viewer-tap-zone{position:absolute;top:0;bottom:0;z-index:2;border:0;background:transparent;cursor:pointer;display:none;touch-action:manipulation;-webkit-user-select:none;user-select:none}.story-viewer-tap-zone-prev{left:0;right:50%}.story-viewer-tap-zone-next{left:50%;right:0}.story-viewer-image,.story-viewer-media img{display:block;width:100%;height:100%;object-fit:cover}.story-viewer-image-fallback{font-size:28px;background:var(--chip)}.story-viewer-footer{position:absolute;right:16px;bottom:16px;z-index:3;display:flex;align-items:center;justify-content:flex-end;color:#fff;pointer-events:none}.story-viewer-audio{display:inline-flex;align-items:center;justify-content:flex-start;gap:5px;max-width:100%;min-width:0;color:#ffffffb8}.story-viewer-audio svg{width:12px;height:12px;flex:0 0 12px;color:currentColor;stroke-width:2.2}.story-viewer-song{overflow:hidden;color:#ffffffb8;font-size:11px;font-weight:600;line-height:1;text-overflow:ellipsis;white-space:nowrap}.story-viewer-like{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;border-radius:0;background:transparent;color:#fff;cursor:pointer;pointer-events:auto;transition:color .2s ease}.story-viewer-like svg{width:21px;height:21px;stroke-width:2.2;transform-box:fill-box;transform-origin:center;transition:transform .2s ease}.story-viewer-like:hover svg{transform:scale(1.06)}.story-viewer-like.is-liked{color:#e63946}.story-viewer-like.is-liked svg{fill:currentColor}.story-viewer-like.is-pressed svg{animation:storyLikePop .2s ease}@keyframes storyViewerPop{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes storyLikePop{0%{transform:scale(1)}50%{transform:scale(.94)}to{transform:scale(1)}}@keyframes storyViewerClose{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.94)}}@keyframes storyBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes storyBackdropOut{0%{opacity:1}to{opacity:0}}@keyframes storyProgress{0%{width:0%}to{width:100%}}@media(max-width:620px){.story-viewer{padding:16px}.story-viewer-panel{width:min(360px,calc(100vw - 32px))}.story-viewer-nav{display:none}.story-viewer-tap-zone{display:block}}.profile-card h1,.profile-name{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:1.35rem;line-height:1.1;font-weight:700;letter-spacing:0;white-space:nowrap;font-family:var(--font-doto);text-transform:uppercase;font-variation-settings:"ROND" 100}.profile-verified-badge{width:18px;height:18px;flex:0 0 18px;color:#3f9cff;fill:color-mix(in srgb,#3f9cff 18%,transparent);stroke-width:2.4}body.light-mode .profile-verified-badge{color:#2f6fca;fill:color-mix(in srgb,#2f6fca 16%,transparent)}.subtitle{margin-top:8px;color:var(--muted);line-height:var(--line-body);font-size:var(--font-body);text-align:center}.profile-note{display:flex;min-width:0;flex-direction:column;gap:7px}.profile-note-status{display:flex;align-items:center;gap:10px}.profile-note-status strong{color:var(--text);font-size:var(--font-body);font-weight:400;line-height:var(--line-body)}.dot{width:10px;height:10px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px #4ade801f,0 0 16px #4ade80bf;animation:statusBlink 1.8s ease-in-out infinite}@keyframes statusBlink{0%,to{opacity:1;box-shadow:0 0 0 4px #4ade801f,0 0 16px #4ade80bf}50%{opacity:.45;box-shadow:0 0 0 2px #4ade800f,0 0 8px #4ade8059}}.skills-row{display:flex;align-items:center;width:100%;gap:12px}.section-action-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.skills-marquee{position:relative;flex:1;min-width:0;width:100%;overflow:hidden;min-height:72px;padding:18px 0 8px}.skills-marquee:before,.skills-marquee:after{content:"";position:absolute;top:0;bottom:0;z-index:4;width:46px;pointer-events:none}.skills-marquee:before{left:0;background:linear-gradient(90deg,var(--card),transparent)}.skills-marquee:after{right:0;background:linear-gradient(270deg,var(--card),transparent)}.skills-track{display:flex;align-items:center;width:max-content;gap:14px;animation:skillsMarquee 30s linear infinite;will-change:transform}.skills-group{display:flex;align-items:center;gap:7px;flex:0 0 auto}.skills-divider{width:1px;height:34px;flex:0 0 auto;background:var(--border);opacity:.75}.skills-action-divider{width:1px;height:42px;flex:0 0 auto;background:var(--border)}.skills-marquee:hover .skills-track{animation-play-state:paused}@keyframes skillsMarquee{0%{transform:translate(0)}to{transform:translate(calc(-50% - 4px))}}@media(prefers-reduced-motion:reduce){.skills-track{animation:none;flex-wrap:wrap;width:auto}.skills-marquee{overflow:visible}}.connect-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:0;width:100%}.about{display:flex;flex-direction:column;gap:1em;color:var(--soft);line-height:var(--line-body);font-size:var(--font-body);max-width:100%;margin-bottom:auto}.location{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding-top:34px;text-align:center;z-index:3}.location-kicker{color:var(--text);font-size:var(--font-body);font-weight:600;line-height:var(--line-title);margin-bottom:0;font-family:var(--font-doto);text-transform:uppercase;font-variation-settings:"ROND" 100}.location-card h2{font-size:1.35rem;font-weight:700;line-height:1.1;letter-spacing:0;margin-bottom:0}.timezone{display:flex;align-items:center;justify-content:center;width:100%}.timezone p{color:var(--muted);font-size:var(--font-body);line-height:var(--line-body);margin-bottom:0}.timezone span{color:var(--muted)}.timezone #local-time{text-align:center;margin-bottom:0}.globe-horizon{width:min(620px,178%);aspect-ratio:1;position:absolute;left:50%;bottom:-24px;z-index:2;translate:-50% 50%;overflow:hidden;border-radius:50%}.globe-horizon:before{--globe-fade-opacity: .82;content:"";position:absolute;inset:-4% -2% 46%;z-index:1;border-radius:50%;background:radial-gradient(ellipse at 50% 88%,var(--glow-mid),var(--glow-soft) 34%,transparent 62%),radial-gradient(ellipse at 50% 72%,var(--accent-border),var(--glow-soft) 42%,transparent 72%);filter:blur(24px);opacity:.82;pointer-events:none;animation:globeHaloFadeIn 1.45s ease .22s both}.globe-horizon:after{--globe-fade-opacity: 1;content:"";position:absolute;left:10%;right:10%;top:49%;z-index:3;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--glow-core),var(--glow-mid),transparent);filter:blur(1px);box-shadow:0 0 18px var(--glow-mid),0 0 34px var(--glow-soft);pointer-events:none;animation:globeHaloFadeIn 1.45s ease .32s both}.globe{width:100%;height:100%}.globe{--globe-fade-opacity: 1;display:block;position:relative;z-index:2;filter:drop-shadow(0 -10px 24px var(--glow-mid)) drop-shadow(0 -16px 42px var(--glow-soft));-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 0 58%,rgba(0,0,0,.82) 68%,rgba(0,0,0,.34) 78%,transparent 90%);mask-image:radial-gradient(circle at 50% 50%,#000 0 58%,rgba(0,0,0,.82) 68%,rgba(0,0,0,.34) 78%,transparent 90%);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:auto;animation:globeHaloFadeIn 1.45s ease .2s both}@keyframes globeHaloFadeIn{0%{opacity:0}to{opacity:var(--globe-fade-opacity, 1)}}body.light-mode .globe{filter:drop-shadow(0 -10px 22px var(--glow-mid)) drop-shadow(0 -14px 34px var(--glow-soft))}.globe:active{cursor:grabbing}.item-heading{display:flex;min-width:0;align-items:flex-start;gap:10px}.item-heading-copy{min-width:0;flex:1}.item-logo{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--chip);-webkit-user-select:none;user-select:none}.item-logo img{width:24px;height:24px;object-fit:contain;display:block;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}body:not(.light-mode) .item-logo.logo-lighten-on-dark img{filter:brightness(0) invert(1)}.item-logo-fallback{width:24px;height:24px}.item-logo img[src$=".jpg"]{border-radius:6px}.project-inquiry-copy{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;max-width:100%}.project-inquiry-card h2{font-size:18px;font-weight:700;line-height:1.18;white-space:nowrap}.project-inquiry-card p{color:var(--soft);font-size:var(--font-body);line-height:var(--line-body);white-space:nowrap}.project-inquiry-footer{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto}.project-inquiry-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 12px;border:1px solid #ffffff;border-radius:999px;background:#fff;color:#050505;font-size:13px;font-weight:600;line-height:1;text-decoration:none;max-width:100%;transition:background .2s ease,box-shadow .2s ease,opacity .2s ease}.project-inquiry-link:hover{background:#fff;box-shadow:0 0 18px var(--glow-soft)}body.light-mode .project-inquiry-link,body.light-mode .project-inquiry-link:hover{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.project-inquiry-link svg{width:15px;height:15px;stroke-width:2}@media(max-width:1100px){.hero-cluster{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"profile profile connect connect" "profile profile location location" "profile-note profile-note location location" "about about about about";gap:12px}.profile-card h1{font-size:1.35rem}.testimonials-card,.project-inquiry-card{min-height:210px}}@media(max-width:560px){.project-inquiry-card{flex-direction:column;align-items:flex-start}.project-inquiry-card h2,.project-inquiry-card p{white-space:normal}.project-inquiry-footer{justify-content:flex-start;width:100%}}@media(max-width:720px){.parent{gap:10px}.profile-theme-toggle{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:13px;background:color-mix(in srgb,var(--chip) 48%,transparent);color:var(--text);cursor:pointer;isolation:isolate;overflow:hidden;transform:translateZ(0);backface-visibility:hidden;transition:border-color .24s ease,background .24s ease,color .24s ease,transform .16s ease}.profile-theme-toggle:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:color-mix(in srgb,var(--chip) 72%,transparent);backdrop-filter:blur(12px) saturate(1.05);-webkit-backdrop-filter:blur(12px) saturate(1.05);transform:translateZ(0);backface-visibility:hidden;pointer-events:none}.profile-theme-toggle:active{transform:scale(.94)}.profile-theme-toggle svg{width:16px;height:16px;stroke-width:2}.profile-theme-toggle .sun-icon,body.light-mode .profile-theme-toggle .moon-icon{display:none}body.light-mode .profile-theme-toggle .sun-icon{display:block}body.light-mode .profile-theme-toggle{border-color:color-mix(in srgb,var(--accent) 24%,transparent);background:color-mix(in srgb,var(--accent) 3%,transparent)}body.light-mode .profile-theme-toggle:before{background:color-mix(in srgb,var(--accent) 6%,transparent)}.location-globe-clip:before{filter:blur(10px);opacity:.48}.globe-horizon:before{filter:blur(10px);animation:none}.globe-horizon:after{filter:none;box-shadow:0 0 14px var(--glow-soft);animation:none}.globe{filter:none;-webkit-mask-image:none;mask-image:none;animation:none}body.light-mode .globe{filter:none}.skills-track{animation-duration:48s}.hero-cluster,.resume-cluster,.resume-column{display:contents}.parent .card{grid-area:auto!important;grid-column:auto!important;grid-row:auto!important;min-height:auto;padding:16px}.parent .profile-card{order:1;min-height:204px}.profile-note-card{order:2;min-height:76px}.connect-card{order:3;min-height:70px}.about-card{order:4}.location-card{order:5}.skills-card{order:6;min-height:84px}.experience-card{order:7}.education-card{order:8}.leadership-card{order:9}.certifications-card{order:10}.awards-card{order:11}.testimonials-card{order:12}.project-inquiry-card{order:13}.profile-card h1{font-size:1.35rem}.location-card{min-height:360px;justify-content:flex-start;align-items:center;overflow:hidden}.location{flex:0 0 auto;align-items:center;justify-content:center;width:min(100%,280px);min-height:142px;margin:0 auto;padding-top:0;text-align:center}.location-kicker,.location-card h2,.timezone,.timezone p{width:100%;text-align:center}.globe-horizon{width:min(560px,150%);bottom:-58px;translate:-50% 47%}.testimonials-card{min-height:198px}.project-inquiry-card{min-height:auto;gap:12px}}.project-layout{display:grid;width:100%;min-width:0;grid-template-columns:minmax(190px,220px) minmax(0,1fr);align-items:start;column-gap:20px;row-gap:12px}.project-toolbar{display:flex;align-items:flex-start;flex-direction:column;gap:18px;width:100%;margin:0;padding:6px 0 0;position:sticky;top:calc(var(--body-pad) + 70px);z-index:6;align-self:start;max-height:calc(100vh - var(--body-pad) - 70px)}.project-toolbar .page-title{order:0}.project-toolbar .page-title-heading{max-width:100%}.project-toolbar:after{content:"";width:100%;height:1px;background:var(--accent-border);order:1}.project-filters{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:9px;width:100%;order:2}.project-filters button{position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:100%;min-height:38px;padding:0 11px 0 12px;border:1px solid var(--border);border-radius:8px;background:var(--chip);color:var(--muted);font-family:var(--font-sans);font-size:11px;font-weight:600;line-height:1;text-align:left;white-space:nowrap;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.project-filters button:after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:0;transition:opacity .2s ease}.project-filters button:hover{background:var(--chip-hover);color:var(--text);border-color:color-mix(in srgb,var(--accent-border) 72%,var(--border))}.project-filters button:hover:after{opacity:.34}.project-filters button.active{background:color-mix(in srgb,var(--text) 9%,var(--chip));color:var(--text);border-color:var(--accent-border)}.project-filters button:active{background:color-mix(in srgb,var(--text) 13%,var(--chip));border-color:color-mix(in srgb,var(--accent-border) 82%,var(--border))}.project-filters button.active:after{opacity:1}.project-filter-select{position:relative;display:none;width:100%;z-index:20;order:2}.project-filter-trigger{position:relative;display:inline-flex;width:100%;min-height:42px;align-items:center;justify-content:space-between;gap:12px;padding:0 13px 0 14px;border:1px solid var(--border);border-radius:8px;background:var(--chip);color:var(--text);font-family:var(--font-sans);font-size:12px;font-weight:600;line-height:1;text-align:left;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.project-filter-trigger:hover,.project-filter-trigger:focus-visible,.project-filter-select.is-open .project-filter-trigger{background:var(--chip-hover);border-color:color-mix(in srgb,var(--accent-border) 72%,var(--border))}.project-filter-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.project-filter-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-filter-trigger svg{width:16px;height:16px;flex:0 0 16px;color:var(--muted);stroke-width:2.2;transform:rotate(0);transition:transform .2s ease,color .2s ease}.project-filter-select.is-open .project-filter-trigger svg{color:var(--text);transform:rotate(180deg)}.project-filter-options{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:30;display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid color-mix(in srgb,var(--border) 84%,transparent);border-radius:10px;background:color-mix(in srgb,var(--card) 92%,#050505);box-shadow:0 18px 44px #0000005c,0 0 18px var(--glow-soft);opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-4px) scale(.98);transform-origin:top;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility .18s ease;backdrop-filter:blur(14px) saturate(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.08)}.project-filter-select.is-open .project-filter-options{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);visibility:visible}.project-filter-options button{display:inline-flex;min-height:36px;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:0 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:12px;font-weight:600;line-height:1;text-align:left;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.project-filter-options button:hover,.project-filter-options button:focus-visible{background:var(--chip-hover);color:var(--text);border-color:color-mix(in srgb,var(--accent-border) 58%,transparent)}.project-filter-options button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-filter-options button.active{background:color-mix(in srgb,var(--text) 9%,var(--chip));color:var(--text);border-color:var(--accent-border)}.project-filter-options button svg{width:16px;height:16px;flex:0 0 16px;color:currentColor;stroke-width:2.3}body.light-mode .project-filters button.active{border-color:var(--accent-border)}body.light-mode .project-filter-options{background:color-mix(in srgb,var(--card) 94%,#f6f8fb);box-shadow:0 18px 44px #2f6fca1f,0 0 18px var(--glow-soft)}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:14px;min-width:0}.project-card{--project-preview-ratio: 16 / 9;--project-content-inset: 18px;display:flex;flex-direction:column;width:100%;height:auto;min-height:0;min-width:0;--card-radius: 16px;--project-card-surface: color-mix(in srgb, var(--card) 97%, var(--chip));--project-card-surface-hover: color-mix(in srgb, var(--card) 94%, var(--chip-hover));--project-media-radius: var(--card-radius) var(--card-radius) 0 0;gap:0;padding:0;overflow:hidden;background:var(--project-card-surface);justify-content:flex-start;cursor:pointer;box-shadow:none;transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease),filter var(--reveal-duration) var(--reveal-ease),background .24s ease}.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project-card:after{border-color:color-mix(in srgb,var(--border) 84%,transparent)}.project-card:hover{background:var(--project-card-surface-hover);box-shadow:none}body.light-mode .project-card{--project-card-surface: color-mix(in srgb, var(--card) 96%, var(--chip));--project-card-surface-hover: color-mix(in srgb, var(--card) 91%, var(--chip-hover))}body.light-mode .project-card:hover{box-shadow:none}body.light-mode .project-card:after{border-color:color-mix(in srgb,var(--border) 86%,transparent)}.project-preview{width:100%;height:auto;aspect-ratio:var(--project-preview-ratio);flex:0 0 auto;margin-inline:0;border:0;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:var(--project-media-radius);background:var(--chip);overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;box-shadow:inset 0 -64px 80px #00000038,0 1px color-mix(in srgb,var(--text) 5%,transparent)}body.light-mode .project-preview{border-color:color-mix(in srgb,var(--border) 78%,transparent);box-shadow:inset 0 -48px 68px #0a1a2f1f,0 1px #ffffffd1}.project-pin{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 9px;border:1px solid var(--accent-border);border-radius:999px;background:color-mix(in srgb,var(--card) 70%,transparent);color:var(--text);font-size:12px;font-weight:500;line-height:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.project-pin svg{width:14px;height:14px;stroke-width:2.2}body.light-mode .project-pin{border-color:var(--accent-border);background:#2f6fca1f;color:var(--accent)}.project-preview:before,.project-preview:after{display:none}.project-preview:not(.project-preview-image):before{content:"";position:absolute;inset:0;display:block;background:linear-gradient(135deg,rgba(255,255,255,.09),transparent 34%),repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 1px,transparent 1px 28px),repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 28px);opacity:.7;transform:scale(1.001);transition:opacity .24s ease}.project-card:hover .project-preview:not(.project-preview-image):before{opacity:.7;transform:scale(1.001);filter:none}.project-preview-image{background:color-mix(in srgb,#050505 88%,var(--card))}.project-preview-image:before,.project-preview-image:after{display:none}.project-preview-mark{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px;border:0;border-radius:0;color:var(--text);font-size:12px;font-weight:700;line-height:1;letter-spacing:0;text-transform:uppercase;-webkit-user-select:none;user-select:none;transition:opacity .24s ease,transform .32s ease,filter .32s ease}.project-preview-mark>span{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border:1px solid var(--accent-border);border-radius:14px;background:color-mix(in srgb,var(--card) 74%,var(--chip));box-shadow:0 18px 42px #00000047;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.project-preview-mark svg{width:21px;height:21px;stroke-width:1.9}.project-card:hover .project-preview:not(.project-preview-image) .project-preview-mark{opacity:1;transform:none;filter:none}body.light-mode .project-preview-mark{border-color:var(--accent-border)}body.light-mode .project-preview-mark>span{border-color:var(--accent-border);background:var(--chip)}.project-preview-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;transform:scale(1.001);transition:transform .62s cubic-bezier(.19,1,.22,1),filter .32s ease;will-change:transform}.project-card:hover .project-preview-image img{transform:scale(1.025);filter:none}.project-preview-sheen{position:absolute;inset:0;background:linear-gradient(to top,#000000b8,#0000001a 64%);opacity:.16;pointer-events:none;transition:opacity .24s ease}.project-card:hover .project-preview-sheen{opacity:.16}body.light-mode .project-preview-sheen{background:linear-gradient(to top,#0000007a,#0000000f 64%)}.preview-dashboard,.preview-shop,.preview-brand,.preview-portfolio{background:#0d0d0d}body.light-mode .preview-dashboard,body.light-mode .preview-shop,body.light-mode .preview-brand,body.light-mode .preview-portfolio{background:color-mix(in srgb,var(--card) 76%,var(--chip))}body.light-mode .project-preview:not(.project-preview-image):before{background:linear-gradient(135deg,rgba(47,111,202,.13),transparent 34%),repeating-linear-gradient(90deg,rgba(47,111,202,.09) 0 1px,transparent 1px 28px),repeating-linear-gradient(0deg,rgba(47,111,202,.075) 0 1px,transparent 1px 28px)}.project-card-content{display:flex;flex:0 0 auto;width:100%;min-width:0;min-height:0;flex-direction:column;gap:12px;overflow:hidden;padding:14px var(--project-content-inset) 14px}.project-copy{display:flex;min-width:0;min-height:0;flex-direction:column;gap:8px}.project-meta{display:flex;min-width:0;flex-wrap:nowrap;gap:4px;align-content:flex-start;margin:0 0 0 -1px;overflow:hidden}.project-meta span{min-width:0;max-width:100%;flex:0 1 auto;min-height:21px;padding:0 7px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:999px;background:color-mix(in srgb,var(--chip) 72%,transparent);color:var(--muted);font-size:10px;font-weight:600;line-height:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-meta .project-meta-overflow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;text-overflow:clip}.project-meta .project-meta-tag{max-width:100%;flex:0 0 auto}.project-meta.project-meta-measure{position:fixed;top:-10000px;left:-10000px;width:max-content;max-width:none;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.project-meta-measure .project-meta-tag{max-width:none}.project-meta span:not(:last-child):after{content:none}body.light-mode .project-meta span{border-color:color-mix(in srgb,var(--accent-border) 76%,var(--border));background:color-mix(in srgb,var(--accent) 5%,transparent);color:var(--muted)}.project-card h3{overflow:hidden;font-size:14px;line-height:1.3;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.project-card p{display:-webkit-box;color:var(--muted);font-size:12px;line-height:1.48;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-actions{position:absolute;inset:0;z-index:3;display:flex;flex-wrap:wrap;flex-direction:column;align-items:center;justify-content:center;align-content:center;gap:8px;padding:18px;opacity:0;pointer-events:none;transition:opacity .22s ease}.project-actions-overlay:has(>a:nth-child(2):last-child){inset:50% auto auto 50%;display:inline-grid;grid-template-columns:1fr;width:max-content;max-width:calc(100% - 36px);align-items:stretch;justify-content:center;transform:translate(-50%,-50%)}.project-actions-overlay:has(>a:nth-child(2):last-child) a{width:100%}.project-actions-inline{display:none}.project-card:hover .project-actions,.project-card:has(.project-actions a:focus-visible) .project-actions{opacity:1;pointer-events:auto}.project-actions a{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#050505b8;color:#fff;font-size:12px;font-weight:600;line-height:1;text-decoration:none;isolation:isolate;overflow:hidden;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.project-actions a:before{display:none}.project-actions a:first-child{background:#fff;color:#050505;border-color:#fff}.project-actions a:hover{border-color:#ffffff75;background:#ffffff29;box-shadow:none}.project-actions a:first-child:hover{background:#ffffffe0;border-color:#ffffffe0}.project-actions a:hover:before,.project-actions a:focus-visible:before{opacity:0}.project-actions a:active{background:#fff3;border-color:#fff9;box-shadow:none}.project-actions a:first-child:active{background:#ffffffc2;border-color:#ffffffc2}.project-actions svg{width:15px;height:15px;stroke-width:2}.project-detail-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#000000b8;backdrop-filter:blur(12px) saturate(.92);-webkit-backdrop-filter:blur(12px) saturate(.92);animation:project-detail-backdrop-in .2s ease both}.project-detail-modal{position:relative;display:flex;width:min(680px,100%);max-height:min(820px,calc(100dvh - 48px));flex-direction:column;border:1px solid color-mix(in srgb,var(--border) 88%,transparent);border-radius:20px;background:color-mix(in srgb,var(--card) 96%,#050505);box-shadow:0 28px 90px #0000008f,0 0 36px var(--glow-soft);overflow:hidden;animation:project-detail-modal-in .24s cubic-bezier(.2,.8,.2,1) both}body.light-mode .project-detail-modal{background:color-mix(in srgb,var(--card) 96%,#ffffff);box-shadow:0 28px 90px #14315333,0 0 36px var(--glow-soft)}.project-detail-close{position:absolute;top:12px;right:12px;z-index:5;display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:#050505ad;color:#fff;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.project-detail-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.project-detail-close svg{width:17px;height:17px;stroke-width:2.2}.project-detail-preview{position:relative;width:100%;aspect-ratio:16 / 9;flex:0 0 auto;border-bottom:1px solid var(--border);background:var(--chip);overflow:hidden}.project-detail-preview.project-preview-image img{width:100%;height:100%;object-fit:cover}.project-detail-preview .project-preview-sheen{opacity:.24}.project-detail-content{display:flex;min-height:0;flex-direction:column;gap:18px;padding:22px;overflow-y:auto;overscroll-behavior:contain}.project-detail-heading{display:flex;flex-direction:column;gap:10px}.project-detail-heading h2{max-width:90%;font-size:clamp(1.3rem,3vw,1.75rem);line-height:1.16}.project-detail-categories,.project-detail-tags{display:flex;flex-wrap:wrap;gap:6px}.project-detail-categories span,.project-detail-tags span{display:inline-flex;min-height:24px;align-items:center;gap:5px;padding:0 9px;border:1px solid var(--border);border-radius:999px;background:var(--chip);color:var(--muted);font-size:10px;font-weight:600;line-height:1}.project-detail-categories .project-detail-pinned{border-color:var(--accent-border);color:var(--text)}.project-detail-pinned svg{width:12px;height:12px}.project-detail-description{color:var(--soft);font-size:13px;line-height:1.6}.project-actions-modal{position:static;inset:auto;display:flex;flex-direction:row;align-items:stretch;justify-content:flex-start;align-content:normal;gap:8px;margin-top:2px;padding:0;opacity:1;pointer-events:auto}.project-actions-modal a,.project-actions-modal a:first-child{min-height:40px;border-color:var(--border);background:var(--chip);color:var(--text)}.project-actions-modal a:first-child{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.project-actions-modal a:hover,.project-actions-modal a:active{border-color:var(--accent-border);background:var(--chip-hover);color:var(--text)}.project-actions-modal a:first-child:hover,.project-actions-modal a:first-child:active{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}@keyframes project-detail-backdrop-in{0%{opacity:0}}@keyframes project-detail-modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}@media(hover:none){.project-filters button:hover{background:var(--chip);color:var(--muted)}.project-filters button.active:hover{color:var(--text)}.project-actions{opacity:1;pointer-events:auto}}@media(max-width:1120px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{--project-preview-ratio: 16 / 9}}@media(max-width:900px){.project-layout{grid-template-columns:1fr;gap:14px}.project-toolbar{display:flex;flex-direction:column;align-items:stretch;position:relative;top:auto;z-index:3;gap:14px;max-height:none;margin:6px 0 16px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;isolation:auto}.project-toolbar .page-title{min-width:0}.project-toolbar .page-title-heading{word-break:normal;overflow-wrap:anywhere}.project-toolbar:after{display:block;order:3;margin-top:2px}.project-toolbar:before{display:none}body.light-mode .project-toolbar{background:transparent;box-shadow:none}.project-filters{display:none}.project-filter-select{display:block;order:2;min-width:0}.project-filter-trigger{min-height:38px;padding:0 12px;border-radius:8px;background:var(--chip);font-size:11px}.project-filter-options{top:calc(100% + 7px);right:0;left:0;width:100%;border-radius:12px}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-filters button{min-width:0}.project-actions-overlay,.project-actions-overlay:has(>a:nth-child(2):last-child){display:none}.project-card{height:auto;min-height:0}.project-meta{margin:0 0 0 -1px}.project-actions-inline{position:relative;inset:auto;z-index:1;display:none;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));width:100%;align-items:stretch;justify-content:stretch;gap:8px;margin-top:auto;padding:0;opacity:1;pointer-events:auto}.project-actions-inline a{width:100%;min-height:38px;border-color:var(--border);background:var(--chip);color:var(--text);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.project-actions-inline a:first-child{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.project-actions-inline a:hover,.project-actions-inline a:first-child:hover,.project-actions-inline a:active,.project-actions-inline a:first-child:active{border-color:var(--border);background:var(--chip-hover);color:var(--text);box-shadow:none}.project-actions-inline a:first-child:hover,.project-actions-inline a:first-child:active{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.project-actions-inline a:before{display:none}.project-card:hover .project-preview:not(.project-preview-image):before{opacity:.7;transform:scale(1.001);filter:none}.project-card:hover .project-preview:not(.project-preview-image) .project-preview-mark{opacity:1;transform:none;filter:none}.project-card:hover .project-preview-image img{transform:scale(1.001);filter:none}.project-card:hover .project-preview-sheen{opacity:.28}}@media(max-width:620px){.project-toolbar{gap:14px;margin:6px 0 16px;padding:0}.project-filter-trigger{min-height:36px;padding-inline:10px}.project-filter-trigger svg{width:15px;height:15px;flex-basis:15px}.project-filter-options{width:100%}.projects-grid{gap:10px}.project-card{--card-radius: 13px;--project-content-inset: 10px;--project-preview-ratio: 4 / 3;padding:0}.project-preview{--project-media-radius: var(--card-radius) var(--card-radius) 0 0}.project-card-content{gap:8px;padding:10px var(--project-content-inset) 11px}.project-copy{order:1;gap:5px}.project-card h3{display:-webkit-box;font-size:12px;line-height:1.28;overflow:hidden;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-card p{display:-webkit-box;color:var(--muted);font-size:10px;line-height:1.42;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-meta{order:2;gap:4px;width:100%;margin:0}.project-meta span{min-height:18px;padding:0 6px;font-size:8px;line-height:16px}.project-pin{top:7px;right:7px;width:24px;min-height:24px;justify-content:center;padding:0}.project-pin svg{width:12px;height:12px}.project-pin-label{display:none}.project-preview-mark{gap:7px;padding:10px;font-size:8px}.project-preview-mark>span{width:36px;height:36px;border-radius:9px}.project-preview-mark svg{width:16px;height:16px}.project-actions-inline{display:none;grid-template-columns:1fr;gap:8px;padding:0}.project-actions-inline:has(a:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.project-actions-inline a{min-height:38px;padding:0 12px;font-size:12px;gap:7px}.project-actions-inline svg{width:15px;height:15px}.project-detail-backdrop{place-items:center;padding:calc(12px + env(safe-area-inset-top,0px)) 10px calc(12px + env(safe-area-inset-bottom,0px))}.project-detail-modal{width:100%;max-height:min(88dvh,760px);border-radius:20px}.project-detail-preview{aspect-ratio:4 / 3}.project-detail-content{gap:14px;padding:17px 16px 18px}.project-detail-heading{gap:8px}.project-detail-heading h2{max-width:100%;padding-right:24px;font-size:1.18rem}.project-detail-description{color:var(--muted);font-size:12px;line-height:1.55}.project-actions-modal{display:grid;grid-template-columns:1fr}.project-actions-modal:has(a:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.project-actions-modal a{width:100%;min-height:42px}}.services-page-header{display:flex;flex-direction:column;gap:14px;margin:6px 0 16px}.services-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.services-intro p,.service-card p,.services-cta p{color:var(--soft);font-size:13px;line-height:1.55}.services-intro p{max-width:680px}.services-primary-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;flex:0 0 auto;padding:0 13px;border:1px solid var(--text);border-radius:999px;background:var(--text);color:var(--accent-contrast);font-size:13px;font-weight:600;line-height:1;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.services-primary-link:hover{background:var(--accent-2);border-color:var(--accent-2)}.services-primary-link svg{width:15px;height:15px;stroke-width:2}.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.service-card{min-height:184px;justify-content:flex-start;gap:14px}.services-process-card{margin-top:12px;gap:16px}.services-process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.services-process-step{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--chip)}.services-process-step span{color:var(--accent);font-size:11px;font-weight:700}.services-process-step strong{font-size:13px;font-weight:600}.services-cta{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;margin-top:12px}.services-cta h3{font-size:1rem;font-weight:700;line-height:1.25;margin-bottom:5px}.services-cta a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid var(--accent);border-radius:999px;background:var(--chip);color:var(--accent);font-size:13px;font-weight:600;line-height:1;text-decoration:none;transition:background .2s ease,box-shadow .2s ease}.services-cta a:hover{background:var(--chip-hover);box-shadow:0 0 18px var(--glow-soft)}.services-cta svg{width:15px;height:15px;stroke-width:2}@media(max-width:980px){.services-grid,.services-process{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.services-intro{flex-direction:column}.services-grid,.services-process{grid-template-columns:1fr}.services-primary-link{width:100%}.services-cta{align-items:flex-start;flex-direction:column}}.skills-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:6px 0 16px}.skills-page-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.skills-category-card{min-height:0;justify-content:flex-start}.skills-category-list{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:1100px){.skills-page-header{align-items:flex-start;flex-direction:column}}.bento-wrap{width:min(100%,1180px);min-height:inherit;margin:auto;position:relative;z-index:1;display:flex;flex-direction:column}.bento-wrap>main{flex:1 0 auto;min-height:0}.site-background{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.6}.site-background:after{content:"";position:absolute;inset:0;background:transparent}body.light-mode .site-background{opacity:.52}body.light-mode .site-background:after{background:transparent}.static-dot-field{position:absolute;inset:0;background:radial-gradient(circle at center,var(--static-dot-color, rgba(245, 245, 245, .2)) 0 1.2px,transparent 1.35px);background-size:22px 22px;background-position:center}body.light-mode .static-dot-field{--static-dot-color: rgba(47, 111, 202, .22)}@media(max-width:720px),(hover:none),(pointer:coarse){.site-background{opacity:.42}.site-background:after{background:transparent}}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg: #050505;--card: #080808;--border: #202020;--text: #f5f5f5;--muted: #9a9a9a;--soft: #d0d0d0;--accent: #f5f5f5;--accent-2: #cfcfcf;--accent-contrast: #050505;--accent-border: rgba(255, 255, 255, .26);--glow-core: rgba(255, 255, 255, .5);--glow-mid: rgba(255, 255, 255, .18);--glow-soft: rgba(255, 255, 255, .065);--chip: rgba(255, 255, 255, .045);--chip-hover: rgba(255, 255, 255, .075);--font-title: 13px;--font-body: 13px;--font-meta: 12px;--font-label: 11px;--line-title: 1.3;--line-body: 1.45;--line-meta: 1.35;--font-sans: "Poppins", Arial, sans-serif;--font-doto: "Doto", monospace;--body-pad: 24px;--reveal-duration: .62s;--reveal-ease: cubic-bezier(.22, 1, .36, 1);--reveal-y: 18px;--reveal-scale: .975;--reveal-blur: 8px}body{min-height:100vh;min-height:100dvh;background:var(--bg);font-family:var(--font-sans);color:var(--text);padding:var(--body-pad);overflow-y:auto;overflow-x:hidden;font-weight:400}.floating-back-to-top{position:fixed;right:clamp(16px,calc((100vw - 1180px)/2 + 16px),56px);bottom:32px;z-index:1000;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--border);border-radius:50%;background:color-mix(in srgb,var(--card) 86%,transparent);color:var(--text);box-shadow:0 12px 30px #0000003d,0 0 16px var(--glow-soft);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px) scale(.94);transition:opacity .22s ease,transform .22s ease,border-color .2s ease,background .2s ease}.floating-back-to-top svg{width:18px;height:18px;stroke-width:2.2;transform:translateY(-1px)}.floating-back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.floating-back-to-top:hover,.floating-back-to-top:focus-visible{border-color:var(--accent-border);background:var(--chip-hover)}.floating-back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:3px}#root{min-height:calc(100vh - (var(--body-pad) * 2));min-height:calc(100dvh - (var(--body-pad) * 2))}.page-end{margin:24px auto 0;max-width:360px;text-align:center}.page-end p{color:var(--muted);font-size:13px;font-weight:500;line-height:1.4;margin-bottom:10px}.page-end a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--chip);color:var(--text);font-size:13px;font-weight:600;text-decoration:none;transition:.2s ease}.page-end a svg{width:15px;height:15px;stroke-width:2}.page-end a:hover{border-color:var(--accent-border)}.image-fallback{display:inline-flex;align-items:center;justify-content:center;color:var(--text);font-size:12px;font-weight:700;line-height:1;letter-spacing:0;text-transform:uppercase;-webkit-user-select:none;user-select:none}.reveal-scope>.card,.reveal-item{opacity:0;transform:translateY(var(--reveal-y)) scale(var(--reveal-scale));filter:blur(var(--reveal-blur));transform-origin:center;transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease),filter var(--reveal-duration) var(--reveal-ease)}.reveal-scope>.card.in-view,.reveal-item.in-view{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}body.light-mode .page-end a:hover{border-color:var(--accent-border)}body.light-mode{--bg: #f6f8fb;--card: #ffffff;--border: #d9e1ec;--text: #0a1a2f;--muted: #627188;--soft: #31445f;--accent: #2f6fca;--accent-2: #5b9dff;--accent-contrast: #ffffff;--accent-border: rgba(47, 111, 202, .24);--glow-core: rgba(47, 111, 202, .34);--glow-mid: rgba(91, 157, 255, .16);--glow-soft: rgba(47, 111, 202, .055);--chip: rgba(47, 111, 202, .045);--chip-hover: rgba(91, 157, 255, .075)}@property --theme-reveal-size{syntax: "<length>"; inherits: false; initial-value: 0px;}::view-transition-old(root),::view-transition-new(root){animation-duration:.95s;animation-timing-function:cubic-bezier(.16,1,.3,1);mix-blend-mode:normal}::view-transition-old(root){animation-name:themeRevealHold}::view-transition-new(root){--theme-reveal-size: 0px;animation-name:themeRevealCircle;mask-image:radial-gradient(circle at var(--theme-reveal-x, 50vw) var(--theme-reveal-y, 50vh),#000 calc(var(--theme-reveal-size) - 34px),rgba(0,0,0,.72) calc(var(--theme-reveal-size) - 18px),transparent var(--theme-reveal-size));-webkit-mask-image:radial-gradient(circle at var(--theme-reveal-x, 50vw) var(--theme-reveal-y, 50vh),#000 calc(var(--theme-reveal-size) - 34px),rgba(0,0,0,.72) calc(var(--theme-reveal-size) - 18px),transparent var(--theme-reveal-size))}@keyframes themeRevealCircle{0%{--theme-reveal-size: 0px}to{--theme-reveal-size: var(--theme-reveal-radius, 150vmax)}}@keyframes themeRevealHold{0%,to{clip-path:inset(0)}}.theme-mobile-transition::view-transition-old(root),.theme-mobile-transition::view-transition-new(root){animation-duration:.72s;animation-timing-function:cubic-bezier(.22,1,.36,1)}.theme-mobile-transition::view-transition-new(root){animation-name:themeMobileCircleReveal;mask-image:radial-gradient(circle at var(--theme-reveal-x, 50vw) var(--theme-reveal-y, 50vh),#000 calc(var(--theme-reveal-size) - 18px),rgba(0,0,0,.64) calc(var(--theme-reveal-size) - 8px),transparent var(--theme-reveal-size));-webkit-mask-image:radial-gradient(circle at var(--theme-reveal-x, 50vw) var(--theme-reveal-y, 50vh),#000 calc(var(--theme-reveal-size) - 18px),rgba(0,0,0,.64) calc(var(--theme-reveal-size) - 8px),transparent var(--theme-reveal-size))}.theme-mobile-transition::view-transition-old(root){animation-name:themeRevealHold}@keyframes themeMobileCircleReveal{0%{--theme-reveal-size: 0px}to{--theme-reveal-size: var(--theme-reveal-radius, 150vmax)}}@media(max-width:1100px){:root{--body-pad: 16px}body{padding:var(--body-pad)}.floating-back-to-top{right:16px;bottom:20px;width:40px;height:40px}}@media(max-width:720px),(hover:none),(pointer:coarse){:root{--reveal-duration: .24s;--reveal-y: 8px;--reveal-scale: 1;--reveal-blur: 0}body{padding-bottom:calc(var(--body-pad) + 74px + env(safe-area-inset-bottom,0px))}.floating-back-to-top{bottom:calc(86px + env(safe-area-inset-bottom,0px))}.floating-back-to-top:hover{border-color:var(--border);background:color-mix(in srgb,var(--card) 86%,transparent)}}@media(prefers-reduced-motion:reduce){.reveal-scope>.card,.reveal-item{transition:none!important;opacity:1;transform:none;filter:none}.floating-back-to-top{transition:none}}
