.side-panel-overlay{z-index:998;opacity:0;visibility:hidden;transition:opacity var(--transition-fast), visibility var(--transition-fast);background:#00000073;position:fixed;inset:0}.side-panel-overlay.active{opacity:1;visibility:visible}.side-panel{top:calc(var(--header-height) + 15px);width:170px;max-width:calc(100vw - 2 * var(--spacing-md));box-sizing:border-box;background:var(--surface-opaque);border:1px solid var(--border);border-radius:0 var(--radius-md) var(--radius-md) 0;transition:left var(--transition-fast);z-index:999;border-left:none;position:fixed;left:-500px;box-shadow:0 12px 32px #00000059}.side-panel.open{left:0}.side-panel-content{gap:var(--spacing-xs);padding:var(--spacing-sm);flex-direction:column;display:flex}.nav-item{box-sizing:border-box;width:100%;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);border:var(--border-thickness) solid transparent;color:var(--text-color);text-align:left;cursor:pointer;transition:border-color var(--transition-fast);background:0 0;border-radius:10px;font-size:1rem;font-weight:700;font-family:Quantico,sans-serif!important}.nav-item:hover{border-color:var(--primary-border)}.nav-item.active{border-bottom-color:var(--underline-color);border-radius:10px 10px 0 0;font-weight:900}.nav-item.active:hover{border-color:var(--primary-border);border-bottom-color:var(--underline-color)}@media (width<=768px){.side-panel{width:150px}.nav-item{font-size:.95rem}}.header{z-index:var(--z-header);box-sizing:border-box;height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--hairline);-webkit-backdrop-filter:blur(14px)saturate(1.2);position:fixed;top:0;left:0;right:0}.nav-container{max-width:calc(var(--max-width) + 2 * var(--spacing-xl));height:100%;padding:0 var(--spacing-xl);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-left,.nav-right{align-items:center;gap:var(--spacing-md);display:flex}.header .btn-icon{width:2.5rem;height:2.5rem;min-height:2.5rem;color:var(--text-color);background:0 0}.header .btn-icon svg{width:1.5rem;height:1.5rem}.menu-toggle{border-color:#0000}.menu-toggle:hover{border-color:var(--btn-secondary-border)}.menu-toggle.active{background:var(--btn-secondary-hover-bg);color:var(--accent-text)}.header-titles{flex-direction:column;gap:.125rem;display:flex}.nav-left .header-name,.nav-left .header-tagline{font-family:var(--font-display);margin:0;line-height:1.1}.nav-left .header-name{font-size:var(--text-lg);color:var(--text-color);letter-spacing:.01em;font-weight:700}.nav-left .header-tagline{font-size:var(--text-xs);color:var(--text-secondary);letter-spacing:.04em;font-weight:400}@media (width<=768px){.nav-container{padding:0 var(--page-gutter)}.nav-left{gap:var(--spacing-sm)}.header .btn-icon{width:2.75rem;height:2.75rem}}.not-found{box-sizing:border-box;min-height:100vh;padding:var(--spacing-xl) var(--page-gutter);justify-content:center;align-items:center;display:flex}.not-found-card{box-sizing:border-box;width:100%;max-width:34rem;padding:var(--panel-padding);text-align:center;background:var(--panel-bg-strong);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);-webkit-backdrop-filter:blur(var(--panel-blur))}.not-found-code{font-family:var(--font-display);font-size:var(--text-display);font-weight:700;line-height:var(--leading-tight);color:var(--accent-text);margin:0}.not-found h1{margin:var(--spacing-sm) 0;font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-color)}.not-found-text{margin:0 0 var(--spacing-lg);color:var(--text-secondary);font-family:var(--font-body);line-height:var(--leading-body);overflow-wrap:anywhere}.not-found-text code{color:var(--text-color);font-family:inherit}.not-found-actions{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center;display:flex}.not-found-actions .btn{text-decoration:none}.section-container{width:100%;max-width:var(--max-width);flex-direction:column;margin:0 auto;padding:0;display:flex}.section-slot{width:100%;max-width:var(--max-width);margin:var(--section-gap) auto 0}.section-header{align-items:center;gap:var(--spacing-md);width:100%;margin:0 0 var(--spacing-lg);color:var(--text-color);display:flex}.section-header:after{content:"";background:var(--hairline);flex:auto;height:1px}.section-container .section-header h2{font-size:var(--text-2xl);line-height:var(--leading-tight);color:var(--text-color);border:0;margin:0;padding:0}.section-header h2:before{content:"";vertical-align:.3em;border-radius:var(--radius-full);background:var(--primary);width:.5em;height:.12em;margin-right:.4em;display:inline-block}.section-content{text-align:left;width:100%;margin:0;padding:0}.section-content p{color:var(--text-color);line-height:var(--leading-body);font-weight:400}.about-section{border-radius:var(--radius-lg);padding:clamp(1.25rem,4vw,3rem);position:relative;overflow:hidden}.about-section:before{content:"";aspect-ratio:1;background:radial-gradient(closest-side, var(--primary-light), transparent);pointer-events:none;width:70%;position:absolute;inset:-40% -20% auto auto}.about-section>*{position:relative}.about-hero{-moz-column-gap:var(--spacing-2xl);column-gap:var(--spacing-2xl);row-gap:var(--spacing-lg);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"copy portrait""actions actions";align-items:center;display:grid}.about-hero-copy{grid-area:copy;min-width:0}.about-section .about-eyebrow{margin:0 0 var(--spacing-sm);color:var(--text-secondary);font-size:var(--text-md);line-height:var(--leading-snug)}#about .about-name{font-size:var(--text-display);letter-spacing:-.01em;color:var(--text-color);border:0;margin:0;padding:0;line-height:1}.about-section .about-role{margin:var(--spacing-md) 0 0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:var(--leading-snug);color:var(--text-color)}.about-role-at{color:var(--text-secondary);font-weight:400}.about-role-company{color:var(--accent-text,var(--text-color))}.about-section .about-description{max-width:var(--measure);margin:var(--spacing-md) 0 0;color:var(--text-secondary);font-size:var(--text-lg);line-height:var(--leading-body)}.headshot-container{aspect-ratio:1;border:1px solid var(--panel-border);border-radius:var(--radius-lg);background:var(--panel-bg-strong);width:clamp(160px,18vw,220px);box-shadow:var(--elevation-2);grid-area:portrait;align-self:center;padding:6px}.headshot{-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;border-radius:calc(var(--radius-lg) - 6px);width:100%;height:100%;display:block}.about-skeleton{justify-content:center;align-items:flex-start;min-height:820px;display:flex}.about-actions{justify-content:space-between;align-items:center;gap:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap;grid-area:actions;display:flex}.about-section .social-links{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;margin:0;display:flex}.about-section .social-links .btn-icon svg{width:1.625rem;height:1.625rem}.about-section .social-links .btn svg{width:1.375rem;height:1.375rem}.about-shortcut-hint{height:var(--control-height-sm);border:1px solid var(--panel-border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;align-items:center;gap:.3rem;padding:0 .75rem;display:inline-flex}.about-shortcut-hint:hover,.about-shortcut-hint:focus-visible{border-color:var(--panel-border-hover);color:var(--text-color)}.about-shortcut-hint kbd{border:1px solid var(--panel-border);min-width:1.5em;font-size:var(--text-2xs);text-align:center;color:var(--text-color);background:var(--panel-bg-strong);border-bottom-width:2px;border-radius:4px;padding:.05rem .35rem;line-height:1.3;display:inline-block}.about-shortcut-label{margin-left:.2rem}@media (hover:none) and (pointer:coarse),(width<=480px){.about-shortcut-hint{display:none}}.about-details{margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--hairline)}.brief-bio{max-width:var(--measure)}.brief-bio p{margin:0 0 var(--spacing-md);font-size:var(--text-md);line-height:var(--leading-body);color:var(--text-color)}.brief-bio p:last-child{margin-bottom:0}.ai-highlight{color:var(--accent-text);cursor:pointer;text-underline-offset:.2em;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;display:inline}.about-skill-icons{gap:var(--spacing-sm);margin-top:var(--spacing-lg);flex-wrap:wrap;display:flex}.about-skill-item{align-items:center;gap:var(--spacing-sm);height:var(--control-height);border:1px solid var(--panel-border);border-radius:var(--radius-sm);background:var(--panel-bg-strong);transition:border-color var(--transition-fast), background-color var(--transition-fast);padding:0 .875rem 0 .625rem;display:inline-flex}.about-skill-item.is-interactive{cursor:pointer}.about-skill-item.is-interactive:hover{border-color:var(--panel-border-hover);background:var(--btn-secondary-hover-bg)}.about-skill-icon{-o-object-fit:contain;object-fit:contain;width:28px;height:28px;color:var(--text-color)}.about-skill-name{font-family:var(--font-display);font-size:var(--text-sm);color:var(--text-color);font-weight:700}.about-skill-fallback{border-radius:var(--radius-sm);background:var(--primary);color:#fff;width:28px;height:28px;font-weight:700;font-size:var(--text-xs);justify-content:center;align-items:center;display:inline-flex}@media (width<=768px){.about-hero{-moz-column-gap:var(--spacing-md);column-gap:var(--spacing-md);row-gap:var(--spacing-md)}.headshot-container{border-radius:var(--radius-md);width:104px;padding:4px}.headshot{border-radius:calc(var(--radius-md) - 4px)}.about-details{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.about-skeleton{min-height:940px}.about-section .about-role{font-size:var(--text-lg)}.about-section .about-description{font-size:var(--text-md)}.brief-bio p{font-size:var(--text-base)}}@media (width<=480px){.about-section .social-links{grid-template-columns:1fr 1fr auto auto;width:100%;display:grid}.about-section .social-links .btn{padding:0 var(--spacing-sm)}}@media (width<=400px){.about-section .social-links .btn svg{display:none}}@media (width<=560px){.about-hero{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:none;align-items:start;row-gap:0}.about-hero-copy{display:contents}.about-section .about-eyebrow{grid-area:1/1}#about .about-name{grid-area:2/1}.about-section .about-role{margin-top:var(--spacing-sm);grid-area:3/1}.headshot-container{grid-area:1/2/4;align-self:start;width:88px}.about-section .about-description{margin-top:var(--spacing-md);grid-area:4/1/auto/-1}.about-actions{margin-top:var(--spacing-lg);grid-area:5/1/auto/-1}}.footer{z-index:10000;width:100%;margin-top:var(--section-gap);padding:var(--spacing-lg) 0 var(--spacing-xl);border-top:1px solid var(--hairline);position:relative}.footer-content{align-items:center;gap:var(--spacing-sm);width:100%;max-width:var(--max-width);flex-direction:column;margin:0 auto;display:flex}.footer-links{justify-content:center;gap:var(--spacing-xs) var(--spacing-lg);flex-wrap:wrap;display:flex}.footer-link,.footer-link-doodle{min-height:24px;color:var(--text-secondary);font-family:var(--font-display);font-size:var(--text-sm);cursor:pointer;text-underline-offset:.2em;white-space:nowrap;transition:color var(--transition-fast), text-decoration-color var(--transition-fast);align-items:center;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.footer a.footer-link{color:var(--text-secondary)}.footer-link:hover,.footer a.footer-link:hover{color:var(--text-color);text-decoration-color:currentColor}.footer-link-doodle:hover{color:var(--accent-text)}@media (width<=768px),(pointer:coarse){.footer-link,.footer-link-doodle{min-height:44px;padding:0 var(--spacing-xs)}}@media (width<=480px){.footer-links{align-items:center;gap:var(--spacing-xs);flex-direction:column}.footer{padding-bottom:calc(var(--spacing-2xl) + 48px)}}.main{flex-direction:column;width:100%;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.main main{width:100%;padding:calc(var(--header-height) + var(--spacing-xl)) 0 0;flex-direction:column;flex:1;align-items:center;margin:0 auto;display:flex}.main-content{width:100%;max-width:calc(var(--max-width) + 2 * var(--spacing-xl));padding:0 var(--spacing-xl);margin:0 auto;position:relative;overflow-x:hidden}.loading,.error-message{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:20px;display:flex}.loading-spinner{border:4px solid #0000001a;border-left-color:#000;border-radius:50%;width:40px;height:40px;margin-bottom:20px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}html{scroll-behavior:smooth}section[id]{scroll-margin-top:calc(var(--header-height) + 16px)}@media (width<=768px){.main main{padding-top:calc(var(--header-height) + var(--spacing-md))}.main-content{padding:0 var(--page-gutter)}}.section-slot--experience{--slot-min-height:2000px}.section-slot--projects{--slot-min-height:1000px}.section-slot--skills{--slot-min-height:1200px}.section-slot--resume{--slot-min-height:1350px}.section-slot.is-pending,.section-skeleton{min-height:var(--slot-min-height,400px)}.section-skeleton{justify-content:center;padding-top:40px;display:flex}@media (width<=768px){.section-slot--experience{--slot-min-height:2850px}.section-slot--projects{--slot-min-height:2350px}.section-slot--skills{--slot-min-height:2250px}.section-slot--resume{--slot-min-height:950px}}.data-error{align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl) var(--page-gutter);text-align:center;color:var(--text-secondary);flex-direction:column;display:flex}.data-error p{max-width:var(--measure);margin:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-banner{background:var(--surface-opaque);color:var(--text-color);border-top:1px solid var(--panel-border);padding:var(--spacing-md);z-index:var(--z-overlay);-webkit-backdrop-filter:blur(14px);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 32px -20px #0009}.cookie-content{justify-content:space-between;align-items:center;gap:2rem;max-width:1080px;margin:0 auto;padding:.5rem;display:flex}.cookie-content p{max-width:var(--measure);font-size:var(--text-sm);margin:0;line-height:1.5}.cookie-buttons{flex-shrink:0;gap:1rem;display:flex}.cookie-button{min-width:7.5rem}@media (width<=768px){.cookie-content{text-align:center;flex-direction:column}.cookie-buttons{justify-content:center;width:100%}}@media (width<=480px){.cookie-banner{z-index:calc(var(--z-dialog) - 1);padding:var(--spacing-sm) var(--spacing-md);padding-bottom:calc(var(--spacing-sm) + env(safe-area-inset-bottom,0px))}.cookie-content{gap:var(--spacing-sm);text-align:left;align-items:stretch;padding:0}.cookie-content p{font-size:.875rem;line-height:1.4}.cookie-detail{display:none}.cookie-buttons{gap:var(--spacing-sm);justify-content:stretch}.cookie-button{flex:1 1 0;min-width:0}}@media (height<=500px){.cookie-banner{padding:var(--spacing-xs) var(--spacing-md)}.cookie-content{gap:var(--spacing-sm);padding:0}.cookie-detail{display:none}}@media (forced-colors:active){.cookie-banner{color:canvastext;-webkit-backdrop-filter:none;background:canvas;border-top:1px solid canvastext}}.reading-progress{z-index:11000;pointer-events:none;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.reading-progress-bar{background:linear-gradient(90deg, var(--primary-border,#38bdf8), var(--primary-hover,#a78bfa));transform-origin:0;will-change:transform;width:100%;height:100%;transition:transform 80ms linear;transform:scaleX(0)}.party-burst:after{content:"";pointer-events:none;z-index:13000;background:radial-gradient(circle at 20% 30%,#f472b659,#0000 40%),radial-gradient(circle at 80% 20%,#38bdf84d,#0000 35%),radial-gradient(circle at 50% 80%,#a78bfa4d,#0000 40%);animation:1.2s ease-out forwards partyBurstFade;position:fixed;inset:0}@keyframes partyBurstFade{0%{opacity:1}to{opacity:0}}.project-story{border-left:2px solid var(--primary-border);margin:.75rem 0 1rem;padding-left:.25rem}.project-story-step{padding:.35rem 0 .35rem 1rem;position:relative}.project-story-step:before{content:"";background:var(--primary-border);border-radius:50%;width:8px;height:8px;position:absolute;top:.7rem;left:-5px}.project-story-label{text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin-bottom:.15rem;font-size:.75rem;display:block}.project-story-text{margin:0;font-size:.9rem;line-height:1.45}.chat-fab-dock{bottom:calc(16px + var(--cookie-banner-height,0px));z-index:9999;box-sizing:border-box;pointer-events:none;justify-content:flex-start;width:100%;max-width:1440px;padding:0 24px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.chat-fab{pointer-events:auto;background:var(--btn-primary-bg);color:#fff;cursor:pointer;width:60px;height:60px;box-shadow:var(--elevation-2), 0 10px 24px -8px #00000080;transition:transform var(--transition-normal), background-color var(--transition-normal);border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:2rem;line-height:1;display:inline-flex}.chat-fab:hover,.chat-fab:focus-visible{background:var(--btn-primary-hover);transform:scale(1.08)}.chat-fab:focus-visible{outline:3px solid var(--focus-ring,#fff);outline-offset:3px}@media (width<=599.95px){.chat-fab{width:52px;height:52px;font-size:1.75rem}}@media (width<=768px){:root{--header-height:60px}}.theme-light{--background-color:transparent;--surface-color:transparent;--section-background:transparent;--text-color:#000;--text-secondary:#535353;--border-color:#000;--primary:#0403ff;--primary-hover:#000;--primary-light:#2b2b4f1a;--primary-border:#000;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--solid-color:#fff;--border-thickness:1px;--underline-color:#000;--on-primary-text:#fff;--accent-text:#0403ff;--focus-ring:#0403ff;--surface:#ffffffeb;--surface-opaque:#fff;--border:#00000026;--input-background:#f3f3f7;--primary-color:var(--primary);--primary-color-hover:#0302b3;--page-bg:#fff;--panel-bg:#ffffffe0;--panel-bg-strong:#fffffff5;--together-magenta:#ef2cc1;--together-lavender:#a271ed;--together-orange:#fc4c02;--panel-border:#0a0a281f;--panel-border-hover:#0403ff73;--panel-blur:8px;--hairline:#0a0a281a;--rail-color:#0403ff40;--chip-bg:#f0f0ff;--chip-border:#0403ff29;--chip-text:#0302b3;--chip-hover-bg:#0403ff;--chip-hover-text:#fff;--btn-primary-bg:#0403ff;--btn-primary-hover:#0302b3;--btn-primary-text:#fff;--btn-secondary-bg:#ffffffb3;--btn-secondary-border:#0a0a2838;--btn-secondary-hover-bg:#f0f0ff;--btn-secondary-text:#0a0a28;--elevation-1:0 1px 2px #0a0a280f, 0 2px 8px -4px #0a0a2814;--elevation-2:0 0 0 1px #0403ff2e, 0 14px 32px -16px #0403ff59;--particles-opacity:.55;--party-pinned-fg:#000;--party-hint-text:#ff80ff}.theme-dark{--background-color:transparent;--surface-color:#0303ff11;--section-background:#0303ff1d;--text-color:#fff;--text-secondary:#d4d4d4;--border-color:#0303ff11;--primary:#0403ff;--primary-hover:#3332ff;--primary-light:#0403ff33;--primary-border:#0403ff66;--shadow-md:0 4px 6px #0003;--shadow-lg:0 10px 15px #0003;--solid-color:#000000be;--border-thickness:1px;--underline-color:#0403ff;--on-primary-text:#fff;--accent-text:#8b8aff;--focus-ring:#8b8aff;--surface:#060614e6;--surface-opaque:#08081a;--border:#8b8aff40;--input-background:#14142b;--primary-color:var(--primary);--primary-color-hover:var(--primary-hover);--page-bg:#000;--panel-bg:#0909249e;--panel-bg-strong:#090924e0;--together-magenta:#ef2cc1;--together-lavender:#caaef5;--together-orange:#fc4c02;--panel-border:#8b8aff2e;--panel-border-hover:#8b8aff80;--panel-blur:10px;--hairline:#8b8aff24;--rail-color:#8b8aff47;--chip-bg:#0403ff3d;--chip-border:#8b8aff47;--chip-text:#e4e4ff;--chip-hover-bg:#0403ff;--chip-hover-text:#fff;--btn-primary-bg:#0403ff;--btn-primary-hover:#2524ff;--btn-primary-text:#fff;--btn-secondary-bg:#09092480;--btn-secondary-border:#8b8aff66;--btn-secondary-hover-bg:#0403ff4d;--btn-secondary-text:#fff;--elevation-1:0 1px 2px #0006, 0 8px 24px -12px #0009;--elevation-2:0 0 0 1px #8b8aff47, 0 16px 40px -18px #0403ffb3;--particles-opacity:.6;--party-pinned-fg:#000;--party-hint-text:#ff80ff}.theme-party{--background-color:transparent;--surface-color:#ff00ff1a;--section-background:#ffffff0d;--text-color:#f0f;--text-secondary:#0ff;--border-color:#f0f;--primary:#f0f;--primary-hover:#0ff;--primary-light:#f0f3;--primary-border:#f0f;--shadow-md:0 4px 6px #00ffff4d;--shadow-lg:0 10px 15px #ff00ff4d;--border-thickness:2px;--on-primary-text:#000;--accent-text:#f0f;--focus-ring:#ff0;--solid-color:#000000e6;--underline-color:#0ff;--surface:#14001ee6;--surface-opaque:#14001e;--border:#f0f6;--input-background:#22002e;--primary-color:var(--primary);--primary-color-hover:var(--primary-hover);--page-bg:#000;--panel-bg:#14001e99;--panel-bg-strong:#14001ee6;--together-magenta:#ef2cc1;--together-lavender:#caaef5;--together-orange:#fc4c02;--panel-border:#ff00ff80;--panel-border-hover:#0ff;--panel-blur:4px;--hairline:#ff00ff59;--rail-color:#0ff;--chip-bg:#0ff;--chip-border:#0ff;--chip-text:#000;--chip-hover-bg:#f0f;--chip-hover-text:#000;--btn-primary-bg:#f0f;--btn-primary-hover:#0ff;--btn-primary-text:#000;--btn-secondary-bg:#14001e99;--btn-secondary-border:#f0f;--btn-secondary-hover-bg:#ff00ff40;--btn-secondary-text:#f0f;--elevation-1:0 4px 12px #ff00ff40;--elevation-2:0 0 0 1px #0ff, 0 0 28px #00ffff73;--particles-opacity:1;--party-pinned-fg:#000;--party-hint-text:#ff80ff}*,:before,:after{box-sizing:border-box}html{min-height:100vh;font-family:var(--font-body);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;margin:0;padding:0}body{min-height:100vh;font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:var(--leading-body);color:var(--text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;padding:0;position:relative}body,body *{transition-property:color,border-color;transition-duration:.2s;transition-timing-function:ease}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:var(--leading-tight);letter-spacing:.005em;text-wrap:balance}p{text-wrap:pretty}button,input,select,textarea{font:inherit}button,kbd{font-family:var(--font-display)}a{color:var(--accent-text);text-underline-offset:.18em}::selection{background:var(--primary);color:#fff}.theme-party body{animation:5s steps(6,end) infinite party-colors}.theme-party :is(.skill-tag,.skill-tag *,.skill-chip,.skill-chip *,.skm-chip,.skm-chip *,.visit-website-btn,.visit-website-btn *,.doodle-hint,.party-pinned,.party-pinned *,.btn-primary,.btn-primary *,.btn:hover,.btn:hover *,.btn-icon:hover,.btn-icon:hover *,.download-button,.download-button *,.contact-phone-button,.skills-filter-chip:hover,.skills-filter-chip.is-active){transition:none}.theme-party :not(body,.skill-tag,.skill-tag *,.skill-chip,.skill-chip *,.skm-chip,.skm-chip *,.visit-website-btn,.visit-website-btn *,.doodle-hint,.party-pinned,.party-pinned *,.btn-primary,.btn-primary *,.btn:hover,.btn:hover *,.btn-icon:hover,.btn-icon:hover *,.download-button,.download-button *,.contact-phone-button,.skills-filter-chip:hover,.skills-filter-chip.is-active){color:inherit!important;transition-property:border-color!important}.theme-party .skm-chip,.theme-party .visit-website-btn:not(.project-modal-secondary),.theme-party .party-pinned,.theme-party .party-pinned *{color:var(--party-pinned-fg)!important}.theme-party .doodle-hint{opacity:1;color:var(--party-hint-text)!important}@keyframes party-colors{0%{color:#f0f}25%{color:#0ff}50%{color:#ff0}75%{color:#0f0}87.5%{color:#a0a0ff}to{color:#f0f}}.theme-party .section-header,.theme-party .section-content{animation:3s infinite party-border}@keyframes party-border{0%{border-color:#f0f}33%{border-color:#0ff}66%{border-color:#ff0}to{border-color:#f0f}}.no-transition,.no-transition *{transition:none!important}#multi-particles{z-index:1;width:100%;height:100%;top:0;left:0;position:fixed!important}[id^=tsparticles-] canvas{opacity:var(--particles-opacity,1)}#root{z-index:2;background-color:#0000;flex-direction:column;align-items:center;width:100%;min-height:100vh;display:flex;position:relative}.app{z-index:2;background-color:#0000;flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.container{width:100%;max-width:var(--max-width);padding:0 var(--spacing-md);margin:0 auto;position:relative}.flex{display:flex}#root{background-color:#0000;flex-direction:column;min-height:100vh;display:flex}.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);-webkit-backdrop-filter:blur(var(--panel-blur))}.btn,.btn-icon{justify-content:center;align-items:center;gap:var(--spacing-sm);height:var(--control-height);min-height:var(--control-height);border:1px solid var(--btn-secondary-border);border-radius:var(--radius-sm);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font-family:var(--font-display);font-size:var(--text-base);letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);margin:0;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.btn{padding:0 var(--spacing-md)}.btn strong{font-weight:inherit}.btn svg,.btn-icon svg{flex:none;width:1.25rem;height:1.25rem}.btn:hover,.btn-icon:hover{background:var(--btn-secondary-hover-bg);border-color:var(--panel-border-hover);text-decoration:none}.btn:active,.btn-icon:active{transform:translateY(1px)}.btn-primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn-primary:hover{background:var(--btn-primary-hover);border-color:var(--btn-primary-hover);color:var(--btn-primary-text)}.btn-sm{height:var(--control-height-sm);min-height:var(--control-height-sm);font-size:var(--text-sm);padding:0 .75rem}.btn-icon{width:var(--control-height);padding:0}.btn-icon.btn-sm{width:var(--control-height-sm)}.btn-link{align-items:center;gap:var(--spacing-xs);min-height:24px;color:var(--accent-text);font-family:var(--font-display);font-size:var(--text-sm);cursor:pointer;text-underline-offset:.2em;transition:text-decoration-color var(--transition-fast);background:0 0;border:0;padding:0;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.btn-link:hover{text-decoration-color:currentColor}@media (width<=768px),(pointer:coarse){.btn-link{min-height:44px;padding:0 var(--spacing-xs)}}.skill-tags{gap:var(--spacing-xs) .375rem;flex-wrap:wrap;margin:0;padding:0;display:flex}.skill-tag{border:1px solid var(--chip-border);border-radius:var(--radius-sm);background:var(--chip-bg);min-height:24px;color:var(--chip-text);font-family:var(--font-display);font-size:var(--text-xs);text-transform:capitalize;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);align-items:center;padding:.125rem .5rem;font-weight:700;line-height:1.2;display:inline-flex}.skill-tag[role=button]{cursor:pointer}.skill-tag[role=button]:hover{background:var(--chip-hover-bg);border-color:var(--chip-hover-bg);color:var(--chip-hover-text)}@media (pointer:coarse){.skill-tag[role=button]{min-height:28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:focus-visible{outline:2px solid var(--focus-ring,currentColor);outline-offset:2px}.skip-to-content{z-index:10000;background:var(--section-background,#000);color:var(--text-color,#fff);border:2px solid var(--primary-border,currentColor);border-radius:0 0 var(--radius-sm,4px) 0;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-to-content:focus{left:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--spacing-2xs:.125rem;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--section-gap:clamp(3rem, 6vw, 5rem);--panel-padding:clamp(1rem, 2.5vw, 1.75rem);--page-gutter:16px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--control-height:2.75rem;--control-height-sm:2rem;--z-overlay:1000;--z-header:1000;--z-dialog:10500;--header-height:72px;--max-width:1080px;--measure:65ch;--ease-out:cubic-bezier(.2, .8, .2, 1);--transition-fast:.15s var(--ease-out);--transition-normal:.25s var(--ease-out);--font-display:"Quantico", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--font-body:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--text-2xs:.75rem;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-md:clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg:clamp(1.125rem, 1rem + .5vw, 1.375rem);--text-xl:clamp(1.375rem, 1.15rem + .9vw, 1.875rem);--text-2xl:clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem);--text-display:clamp(2.5rem, 1.6rem + 3.6vw, 4.5rem);--leading-tight:1.15;--leading-snug:1.35;--leading-body:1.6;--font-size-base:var(--text-base)}@media (width<=768px){:root{--header-height:60px}}
