:root{--color-primary:#18181b;--color-primary-hover:#3f3f46;--color-accent:#b45309;--color-link:#b45309;--color-background:#fafafa;--color-surface:#f4f4f5;--color-surface-elevated:#fff;--color-text-primary:#18181b;--color-text-secondary:#3f3f46;--color-text-muted:#6b6b74;--color-text-inverse:#fafafa;--color-border:#e4e4e7;--color-border-hover:#d4d4d8;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-4xl:2.25rem;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-full:9999px;--transition-fast:.15s ease-out;--transition-base:.25s ease-out;--z-sticky:1020}[data-theme=dark]{--color-primary:#fafafa;--color-primary-hover:#d4d4d8;--color-accent:#f59e0b;--color-link:#f59e0b;--color-background:#0c0c0e;--color-surface:#18181b;--color-surface-elevated:#27272a;--color-text-primary:#f4f4f5;--color-text-secondary:#d4d4d8;--color-text-muted:#a1a1aa;--color-text-inverse:#0c0c0e;--color-border:#27272a;--color-border-hover:#3f3f46;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0006;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0006}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-primary:#fafafa;--color-primary-hover:#d4d4d8;--color-accent:#f59e0b;--color-link:#f59e0b;--color-background:#0c0c0e;--color-surface:#18181b;--color-surface-elevated:#27272a;--color-text-primary:#f4f4f5;--color-text-secondary:#d4d4d8;--color-text-muted:#a1a1aa;--color-text-inverse:#0c0c0e;--color-border:#27272a;--color-border-hover:#3f3f46;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0006;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0006}}@media (prefers-reduced-motion:reduce){:root{--transition-fast:0s;--transition-base:0s}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}*,:before,:after{box-sizing:border-box}*{margin:0}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{text-rendering:optimizespeed;min-height:100vh;line-height:var(--leading-normal);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a:not([class]){-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}[hidden]{display:none!important}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}button{cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}::selection{background:color-mix(in srgb, var(--color-link) 25%, transparent);color:var(--color-text-primary)}:root{--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:var(--font-sans);--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--font-medium:500;--font-semibold:600}h1,h2,h3,h4{font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-text-primary);text-wrap:balance}p{line-height:var(--leading-relaxed);color:var(--color-text-secondary);text-wrap:pretty}a{color:var(--color-link)}a:not([class]){text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}a:not([class]):hover{text-decoration-thickness:2px}.hidden{display:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-2);left:var(--space-2);z-index:calc(var(--z-sticky) + 2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-inverse);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.motion-ok .reveal{opacity:0;transition:opacity .6s ease-out,transform .6s cubic-bezier(.2,.7,.2,1);transform:translateY(16px)}.motion-ok .reveal.is-visible{opacity:1;transform:none}.motion-ok .reveal [data-stagger]>*{opacity:0;transition:opacity .5s ease-out, transform .6s cubic-bezier(.2, .7, .2, 1), background-color var(--transition-base);transition-delay:calc(var(--i,0) * 70ms + .12s);transform:translateY(12px)}.motion-ok .reveal.is-visible [data-stagger]>*{opacity:1;transform:none}.motion-ok .reveal.is-visible [data-stagger].is-settled>*{transition-delay:0s}.motion-ok .section-title:after{transform-origin:0;transition:transform .9s cubic-bezier(.2,.7,.2,1) .15s;transform:scaleX(0)}.motion-ok .reveal.is-visible .section-title:after{transform:scaleX(1)}body,.sidebar,.nav-bar,.site-footer{transition:background-color var(--transition-base), color var(--transition-base)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.layout{max-width:76rem;padding:0 var(--space-6);margin:0 auto}@media (width>=1024px){.layout{gap:var(--space-16);padding:0 var(--space-10);grid-template-columns:minmax(0,25rem) minmax(0,1fr);display:grid}}@media (width<=1023px){.layout{padding:0 var(--space-5)}}@media (width>=1024px){.sidebar{gap:var(--space-8);height:100dvh;padding:var(--space-12) 0 var(--space-8);scrollbar-width:none;flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}}@media (width<=1023px){.sidebar{display:contents}html{scroll-padding-top:72px}}@media (width>=1024px){.nav-bar .theme-toggle-btn{top:var(--space-12);position:absolute;right:0}}@media (width<=1023px){.nav-bar{z-index:var(--z-sticky);align-items:center;gap:var(--space-2);margin:0 calc(-1 * var(--space-5));padding:var(--space-2) var(--space-3) var(--space-2) 0;background:color-mix(in srgb, var(--color-background) 88%, transparent);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);display:flex;position:sticky;top:0}.nav-bar .navigation{flex:1;min-width:0}}.content{min-width:0}@media (width>=1024px){.content{padding:var(--space-16) 0 var(--space-10)}}.site-footer{padding:var(--space-8) 0 var(--space-12);border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--color-text-muted)}.site-footer p{margin:0 0 var(--space-2);max-width:60ch}.site-footer a{color:var(--color-link)}.icon-button{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.icon-button:hover{color:var(--color-link);border-color:var(--color-border);background:var(--color-surface)}.icon-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.theme-toggle-btn .theme-icon-moon,[data-theme=dark] .theme-toggle-btn .theme-icon-sun{display:none}[data-theme=dark] .theme-toggle-btn .theme-icon-moon{display:block}html:not(.js-ready) .theme-toggle-btn{display:none}.btn{border-radius:var(--radius-md);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base);border:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.btn{padding:var(--space-3) var(--space-6);font-size:var(--text-base);line-height:var(--leading-tight)}.btn-primary{border-radius:var(--radius-md);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base);border:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn-primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{border-radius:var(--radius-md);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base);border:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn-secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-elevated);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)}.btn-download{gap:var(--space-2)}.btn-download .btn-glyph{transition:transform var(--transition-base)}.btn-download:hover .btn-glyph{transform:translateY(2px)}@media (width<=1023px){.navigation{scrollbar-width:none;padding-left:var(--space-5);overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.navigation::-webkit-scrollbar{display:none}}.nav-list{margin:0;padding:0;list-style:none}@media (width>=1024px){.nav-list{display:grid}}@media (width<=1023px){.nav-list{gap:var(--space-1);display:flex}}.nav-link{align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;transition:color var(--transition-fast);padding:6px 0;text-decoration:none;display:flex}.nav-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.nav-link .nav-index{font-family:var(--font-mono);font-weight:var(--font-medium);letter-spacing:0;transition:color var(--transition-fast)}.nav-link .nav-line{width:2rem;height:1px;transition:width var(--transition-base), background-color var(--transition-fast);background:currentColor;display:block}.nav-link:hover,.nav-link.active{color:var(--color-text-primary)}.nav-link:hover .nav-line,.nav-link.active .nav-line{width:4rem}.nav-link.active .nav-index{color:var(--color-link)}@media (width<=1023px){.nav-link{gap:var(--space-1);padding:var(--space-2) var(--space-2);position:relative}.nav-link .nav-line{display:none}.nav-link:after{content:"";left:var(--space-2);right:var(--space-2);background:var(--color-link);height:2px;transition:transform var(--transition-base);position:absolute;bottom:0;transform:scaleX(0)}.nav-link.active:after{transform:scaleX(1)}}@media (width>=1024px) and (height<=799px){.nav-link{padding:4px 0}}.intro{isolation:isolate;position:relative}@media (width<=1023px){.intro{padding:var(--space-12) 0 var(--space-8)}}.intro-portrait{width:72px;height:72px;margin-bottom:var(--space-5);border-radius:var(--radius-full);object-fit:cover;box-shadow:0 0 0 3px var(--color-background), 0 0 0 4px var(--color-border)}@media (width>=1024px) and (height<=959px){.intro-portrait{display:none}}.intro-name{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,3.25rem);font-weight:var(--font-semibold);letter-spacing:-.045em;color:var(--color-text-primary);margin:0;line-height:1}.intro-role{margin:var(--space-3) 0 0;font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary)}.intro-org{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.query{margin:var(--space-6) 0 0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-surface) 85%, transparent);font-family:var(--font-mono);color:var(--color-text-secondary);font-size:.8125rem;line-height:1.6}.query-sql{white-space:pre-wrap;font:inherit;margin:0}.query-sql:before{content:"SQL> ";color:var(--color-text-muted)}.query-sql .sql-keyword{color:var(--color-link);font-weight:var(--font-medium)}.query-sql .sql-string{color:var(--color-text-primary)}.query-sql .ghost{color:#0000}.query-sql .caret{background:var(--color-link);width:.55em;height:1.1em;margin-bottom:-.2em;animation:1s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.query-result{margin-top:var(--space-3);border-collapse:collapse;font:inherit}.query-result th{padding:0 var(--space-6) 2px 0;text-align:left;font-weight:var(--font-medium);color:var(--color-text-muted);border-bottom:1px dashed var(--color-border-hover)}.query-result td{padding:2px var(--space-6) 0 0;color:var(--color-text-primary)}.query-caption{margin-top:var(--space-2);color:var(--color-text-muted)}.motion-ok .query:not(.is-typing):not(.is-run) .query-sql code{visibility:hidden}.motion-ok .query:not(.is-run) .query-result tbody tr,.motion-ok .query:not(.is-run) .query-caption{opacity:0}.motion-ok .query.is-run .query-result tbody tr,.motion-ok .query.is-run .query-caption{animation:.3s ease-out both fade-in;animation-delay:calc(var(--i,0) * 90ms)}.motion-ok .query.is-run .query-caption{animation-delay:.3s}.intro-contact{align-items:center;gap:var(--space-1);margin-top:var(--space-5);font-family:var(--font-mono);font-size:var(--text-sm);display:flex;position:relative}.intro-email{color:var(--color-text-secondary);overflow-wrap:anywhere;text-decoration:none}.intro-email:hover{color:var(--color-link)}.intro-email:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.copy-button{width:30px;height:30px}.copy-button .check-icon{display:none}.copy-button.is-copied{color:var(--color-accent)}.copy-button.is-copied .copy-icon{display:none}.copy-button.is-copied .check-icon{display:block}.copy-status{font-size:var(--text-xs);color:var(--color-accent)}.intro-actions{align-items:center;gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.profile-links{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}@media (width>=1024px) and (height<=799px){.query-result,.query-caption{display:none}.query,.intro-contact,.intro-actions{margin-top:var(--space-4)}}.motion-ok .intro>*{animation:.7s cubic-bezier(.2,.7,.2,1) both fade-in-up;animation-delay:calc(var(--i,0) * 80ms + 60ms)}.motion-ok .intro-name{animation-name:name-wipe;animation-duration:.9s}@keyframes name-wipe{0%{clip-path:inset(0 100% 0 0);transform:translate(-8px)}to{clip-path:inset(0 -2% 0 0);transform:none}}.section{padding-bottom:var(--space-24);scroll-margin-top:var(--space-16)}@media (width<=1023px){.section{padding:var(--space-12) 0;scroll-margin-top:56px}}.section-title{margin:0 0 var(--space-8);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-medium);letter-spacing:.08em;text-transform:uppercase;line-height:var(--leading-normal);color:var(--color-text-primary)}.section-title .section-index{color:var(--color-link)}.section-title{align-items:center;gap:var(--space-2);display:flex}.section-title:after{content:"";height:1px;margin-left:var(--space-3);background:var(--color-border);flex:1}.section-body{color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.section-body p{margin:0}.section-body-paragraph>p{max-width:62ch;font-size:var(--text-lg)}@media (width<=767px){.section-body-paragraph>p{font-size:var(--text-base)}}.stats{gap:var(--space-4);margin:var(--space-10) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=479px){.stats{gap:var(--space-3);grid-template-columns:1fr}}.stat{justify-content:flex-end;gap:var(--space-1);padding-left:var(--space-4);border-left:2px solid var(--color-border);flex-direction:column-reverse;display:flex}.stat dd{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--color-text-primary);margin:0;line-height:1}.stat dt{font-size:var(--text-sm);color:var(--color-text-muted)}.section-body-list{gap:var(--space-10);margin:0;padding:0;list-style:none;display:grid}.list-item-header{font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-snug);color:var(--color-text-primary);margin:0}.list-item-caption,.list-item-date{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin:0}.list-item-caption{margin-top:var(--space-1)}.list-item-subheader{margin:var(--space-1) 0 0;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-link)}.list-item-main{margin-top:var(--space-2);max-width:62ch}.list-item-bullets{margin:var(--space-3) 0 0;padding-left:var(--space-5);max-width:62ch;list-style:outside}.list-item-bullets li{padding-left:var(--space-1)}.list-item-bullets li::marker{color:var(--color-text-muted)}.list-item-bullets li+li{margin-top:var(--space-2)}.list-item-link{gap:var(--space-1);margin-top:var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-link);text-decoration:none;display:inline-flex}.list-item-link:after{content:"→";transition:transform var(--transition-fast)}.list-item-link:hover:after{transform:translate(3px)}.list-item-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.rows{gap:var(--space-2)}.rows .section-list-item{gap:var(--space-4);margin:0 calc(-1 * var(--space-4));padding:var(--space-4);border-radius:var(--radius-lg);transition:background-color var(--transition-base);grid-template-columns:7.5rem minmax(0,1fr);display:grid}.rows .section-list-item .list-item-header,.rows .section-list-item .list-item-subheader,.rows .section-list-item .list-item-main{transition:color var(--transition-base)}@media (width<=599px){.rows .section-list-item{gap:var(--space-1);grid-template-columns:1fr}}.rows .list-item-date{padding-top:.3rem}@media (hover:hover){.rows:hover .section-list-item:not(:hover) .list-item-header,.rows:hover .section-list-item:not(:hover) .list-item-subheader,.rows:hover .section-list-item:not(:hover) .list-item-main{color:var(--color-text-muted)}.rows .section-list-item:hover{background:var(--color-surface)}}.chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chips>li{display:flex}.list-item-role .chips{margin-top:var(--space-3)}.chip{min-height:24px;padding:2px var(--space-2);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);transition:background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-base), transform var(--transition-fast);align-items:center;line-height:1.6;display:inline-flex}.chip[role=button]{cursor:pointer;-webkit-user-select:none;user-select:none}.chip[role=button]:hover{color:var(--color-text-primary);box-shadow:inset 0 0 0 1px var(--color-border-hover)}.chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.chip.is-linked{color:var(--color-link);background:color-mix(in srgb, var(--color-link) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-link) 55%, transparent);transform:translateY(-1px)}.is-linking .chip:not(.is-linked){color:var(--color-text-muted);background:0 0}.is-linking .list-item-role:not(.is-linked) .list-item-role-title,.is-linking .list-item-role:not(.is-linked) .list-item-bullets{color:var(--color-text-muted)}.is-linking .list-item-role.is-linked .list-item-role-title{color:var(--color-link)}.skills-table{border-collapse:collapse;width:100%}.skills-table thead th{padding:0 var(--space-4) var(--space-2) 0;text-align:left;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);border-bottom:1px dashed var(--color-border-hover)}.skills-table tbody th,.skills-table tbody td{padding:var(--space-4) var(--space-4) var(--space-4) 0;vertical-align:top;border-bottom:1px solid var(--color-border)}.skills-table tbody th{text-align:left;width:11rem;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);padding-top:calc(var(--space-4) + 2px)}@media (width<=599px){.skills-table thead{display:none}.skills-table tbody tr,.skills-table tbody th,.skills-table tbody td{width:auto;display:block}.skills-table tbody th{padding-bottom:var(--space-2);border-bottom:0}.skills-table tbody td{padding-top:0}}.skills-status{min-height:1.6em;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-4)!important}.resume-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.resume-preview-container{margin-top:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.resume-preview-container.hidden{display:none}.resume-preview-container iframe{border:0;width:100%;height:80vh;display:block}#experience .section-body-list{gap:var(--space-12)}.roles{margin-top:var(--space-2)}.list-item-role{--dot:11px;--title-mid:calc(var(--space-5) + .8em);padding:var(--space-5) 0 0 var(--space-8);position:relative}.list-item-role .list-item-bullets{transition:color var(--transition-base)}.list-item-role:not(:last-child):before{content:"";left:calc(var(--dot) / 2 - 1px);top:var(--title-mid);bottom:calc(-1 * var(--title-mid));background:var(--color-border);transform-origin:top;width:2px;position:absolute}.list-item-role:after{content:"";left:0;top:calc(var(--title-mid) - var(--dot) / 2);width:var(--dot);height:var(--dot);border-radius:var(--radius-full);background:var(--color-background);border:2px solid var(--color-text-muted);position:absolute}.list-item-role.is-current:after{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 25%, transparent)}.list-item-role .list-item-date{margin-top:2px}.list-item-role-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-primary);transition:color var(--transition-fast);margin:0;line-height:1.6}.motion-ok #experience .list-item-role:before{transition:transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * .12s + .15s);transform:scaleY(0)}.motion-ok #experience .list-item-role:after{transition:transform .35s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i,0) * .12s);transform:scale(0)}.motion-ok #experience.is-visible .list-item-role:before{transform:scaleY(1)}.motion-ok #experience.is-visible .list-item-role:after{transform:scale(1)}.backdrop{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(100deg,#000 0%,#0000008c 45%,#0000004d 100%);mask-image:linear-gradient(100deg,#000 0%,#0000008c 45%,#0000004d 100%)}.backdrop-grid,.backdrop-glow{will-change:transform;position:absolute}.backdrop-grid{background-image:radial-gradient(color-mix(in srgb, var(--color-text-muted) 38%, transparent) 1px, transparent 1.5px);transform:translate3d(0, calc(var(--scroll-y,0) * -.06px), 0);background-size:24px 24px;inset:0 0 -120vh}.backdrop-glow{background:radial-gradient(closest-side, color-mix(in srgb, var(--color-link) 20%, transparent), transparent);opacity:.55;border-radius:50%;width:46rem;height:46rem}[data-theme=dark] .backdrop-glow{opacity:.4}.glow-1{transform:translate3d(0, calc(var(--scroll-y,0) * -.12px), 0);top:-18rem;left:-14rem}.glow-2{transform:translate3d(0, calc(var(--scroll-y,0) * -.3px), 0);top:85vh;right:-18rem}.glow-3{transform:translate3d(0, calc(var(--scroll-y,0) * -.42px), 0);top:190vh;left:30%}.scroll-progress{z-index:calc(var(--z-sticky) + 1);background:var(--color-link);transform-origin:0;height:2px;transform:scaleX(var(--progress,0));position:fixed;top:0;left:0;right:0}html:not(.js-ready) .scroll-progress{display:none}.changelog-dialog{width:min(720px, 100vw - 2 * var(--space-4));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);max-height:min(80vh,900px);color:var(--color-text-primary);box-shadow:var(--shadow-lg);margin:auto;padding:0;overflow:hidden}.changelog-dialog[open]{flex-direction:column;display:flex}.changelog-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c}body:has(.changelog-dialog[open]){overflow:hidden}.changelog-dialog-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border);display:flex}.changelog-dialog-body{overscroll-behavior:contain;padding:var(--space-4) var(--space-6) var(--space-8);scrollbar-width:thin;scrollbar-color:var(--color-text-muted) transparent;overflow-y:auto}.changelog-dialog-body::-webkit-scrollbar{width:8px}.changelog-dialog-body::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:var(--color-text-muted)}.changelog-dialog-body:hover{scrollbar-color:var(--color-text-secondary) transparent}.changelog-heading{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold);letter-spacing:.08em;text-transform:uppercase;margin:0}.changelog-status{color:var(--color-text-muted);font-size:var(--text-sm)}.changelog-status a{color:var(--color-link)}.changelog-content{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.changelog-content h2{margin:var(--space-8) 0 var(--space-2);font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-primary)}.changelog-content h2:first-child{margin-top:var(--space-2)}.changelog-content h3{margin:var(--space-4) 0 var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent)}.changelog-content p,.changelog-content ul,.changelog-content ol,.changelog-content table{margin:0 0 var(--space-3)}.changelog-content ul,.changelog-content ol{padding-left:var(--space-6)}.changelog-content li+li{margin-top:var(--space-1)}.changelog-content strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.changelog-content a{color:var(--color-link)}.changelog-content code{border-radius:var(--radius-sm);background:var(--color-surface);font-family:var(--font-mono);padding:.1em .35em;font-size:.9em}.changelog-content hr{margin:var(--space-8) 0;border:0;border-top:1px solid var(--color-border)}.changelog-content table{border-collapse:collapse;width:100%}.changelog-content th,.changelog-content td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:left}.changelog-content th{color:var(--color-text-primary);font-weight:var(--font-semibold)}.changelog-page{max-width:720px;padding:var(--space-12) var(--space-4) var(--space-16);margin:0 auto}.changelog-page .changelog-heading{margin:var(--space-6) 0 var(--space-4)}.changelog-back{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-link)}@media print{.nav-bar,.backdrop,.scroll-progress,.intro-actions,.copy-button,.resume-actions,.skip-link,.changelog-dialog{display:none!important}.reveal,[data-stagger]>*{opacity:1!important;transform:none!important}.section{break-inside:avoid;padding:var(--space-6) 0}.sidebar{height:auto!important;position:static!important}}
