:root{--ink:#0d0c22;--soft-ink:#3f3d4d;--muted:#696675;--paper:#f8f7f3;--white:#fff;--violet:#8a2be2;--violet-light:#a92be2;--line:#dcd9df;--serif:Georgia, "Times New Roman", serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}:focus-visible{outline:3px solid var(--violet);outline-offset:4px}.skip-link{z-index:200;color:var(--white);background:var(--ink);padding:.75rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.portfolio{--portfolio-bg:#101019;--portfolio-sidebar:#151521;--portfolio-surface:#191925;--portfolio-surface-strong:#20202e;--portfolio-text:#f2eff4;--portfolio-soft:#c5beca;--portfolio-muted:#9f98a5;--portfolio-line:#393747;--portfolio-line-soft:#2a2937;--portfolio-violet:#c17df5;--portfolio-cyan:#75d1da;--portfolio-pink:#f083b7;--violet:#c17df5;min-height:100vh;color:var(--portfolio-text);background:var(--portfolio-bg);transition:color .16s,background-color .16s}:root[data-theme=light] .portfolio{--portfolio-bg:#f8f7f4;--portfolio-sidebar:#eeebf0;--portfolio-surface:#fff;--portfolio-surface-strong:#e7e1eb;--portfolio-text:#1c1822;--portfolio-soft:#514a57;--portfolio-muted:#69616f;--portfolio-line:#d0c9d3;--portfolio-line-soft:#e2dde4;--portfolio-violet:#7029a1;--portfolio-cyan:#196b73;--portfolio-pink:#a12b62;--violet:#7029a1}.portfolio-topbar{z-index:20;background:color-mix(in srgb, var(--portfolio-bg) 94%, transparent);border-bottom:1px solid var(--portfolio-line);backdrop-filter:blur(.75rem);grid-template-columns:20rem 1fr auto;align-items:center;gap:2rem;min-height:3.75rem;padding-inline:1.5rem;display:grid;position:sticky;top:0}.portfolio-topbar-name{align-items:center;gap:.625rem;width:fit-content;font-size:.75rem;font-weight:750;display:flex}.portfolio-topbar-name>img{width:1.125rem;height:1.125rem}.portfolio-topbar>p{color:var(--portfolio-muted);margin:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.625rem}.portfolio-topbar nav{color:var(--portfolio-muted);align-items:center;gap:1.25rem;font-size:.6875rem;display:flex}.portfolio-topbar a:hover,.portfolio-topbar a:focus-visible{color:var(--portfolio-violet)}.portfolio-theme-toggle{min-height:2rem;color:var(--portfolio-text);background:var(--portfolio-surface);border:1px solid var(--portfolio-line);cursor:pointer;border-radius:.25rem;align-items:center;gap:.5rem;padding-inline:.625rem;display:inline-flex}.portfolio-theme-toggle:hover,.portfolio-theme-toggle:focus-visible{color:var(--portfolio-violet);border-color:var(--portfolio-violet)}.portfolio-layout{grid-template-columns:minmax(20rem,26vw) minmax(0,1fr);display:grid}.portfolio-sidebar{background:var(--portfolio-sidebar);border-right:1px solid var(--portfolio-line);min-height:calc(100vh - 3.75rem)}.portfolio-sidebar-inner{flex-direction:column;min-height:calc(100vh - 3.75rem);padding:clamp(3rem,6vw,5rem) clamp(1.5rem,4vw,3.5rem) 2rem;display:flex;position:sticky;top:3.75rem}.portfolio-path,.portfolio-section-label,.portfolio-experience-number,.portfolio-history-number,.portfolio-history-meta,.portfolio-project-detail>header,.portfolio-project-list button>span:first-child{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.portfolio-path{color:var(--portfolio-cyan);margin:0 0 1.25rem;font-size:.6875rem}.portfolio-sidebar h1{letter-spacing:-.075em;margin:0;font-size:clamp(3.25rem,6vw,4.75rem);line-height:.9}.portfolio-identity{color:var(--portfolio-muted);letter-spacing:.01em;margin:.875rem 0 0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.75rem}.portfolio-lede{max-width:20rem;color:var(--portfolio-soft);letter-spacing:-.015em;margin:1.25rem 0 0;font-size:clamp(1.0625rem,1.8vw,1.25rem);line-height:1.55}.portfolio-place{max-width:18rem;color:var(--portfolio-muted);margin:1.25rem 0 0;font-size:.8125rem;line-height:1.6}.portfolio-sidebar-bottom{gap:1.25rem;margin-top:auto;display:grid}.portfolio-sidebar-bottom>p{color:var(--portfolio-muted);align-items:center;gap:.625rem;margin:0;font-size:.6875rem;display:flex}.portfolio-sidebar-bottom>p span{background:var(--portfolio-cyan);width:.5rem;height:.5rem;box-shadow:0 0 0 .25rem color-mix(in srgb, var(--portfolio-cyan) 14%, transparent);border-radius:50%}.portfolio-sidebar-bottom nav{color:var(--portfolio-muted);flex-wrap:wrap;gap:1rem;font-size:.6875rem;display:flex}.portfolio-sidebar-bottom nav a{gap:.25rem;display:inline-flex}.portfolio-sidebar-bottom nav a:hover,.portfolio-sidebar-bottom nav a:focus-visible{color:var(--portfolio-violet)}.portfolio-layout main{min-width:0}.portfolio-about,.portfolio-profile-section,.portfolio-experience,.portfolio-projects,.portfolio-writing,.portfolio-footer{width:min(100% - clamp(3rem,9vw,8rem),68rem);margin-inline:auto}.portfolio-about,.portfolio-profile-section,.portfolio-experience,.portfolio-projects,.portfolio-writing{padding-block:clamp(5rem,9vw,8rem)}.portfolio-profile-section,.portfolio-experience,.portfolio-projects,.portfolio-writing,.portfolio-footer{border-top:1px solid var(--portfolio-line)}.portfolio-section-label{color:var(--portfolio-violet);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.625rem;font-weight:700}.portfolio-about h2{letter-spacing:-.055em;max-width:24ch;margin:1.25rem 0 1.75rem;font-size:clamp(2rem,4vw,3.25rem);font-weight:650;line-height:1.06}.portfolio-about>p:last-child{max-width:45rem;color:var(--portfolio-soft);margin:0;font-size:1rem;line-height:1.75}.portfolio-section-header{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(2.5rem,5vw,4rem);display:flex}.portfolio-section-header h2{letter-spacing:-.045em;margin:.75rem 0 0;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:650}.portfolio-section-header>p{max-width:24rem;color:var(--portfolio-muted);text-align:right;margin:0;font-size:.75rem;line-height:1.55}.portfolio-history-list{border-top:1px solid var(--portfolio-line);margin:0;padding:0;list-style:none}.portfolio-history-list>li{border-bottom:1px solid var(--portfolio-line);grid-template-columns:2rem minmax(12rem,.75fr) minmax(20rem,1.25fr);align-items:start;gap:clamp(1.5rem,4vw,3.5rem);padding-block:2rem;display:grid}.portfolio-history-number{color:var(--portfolio-muted);font-size:.625rem}.portfolio-history-heading h3{letter-spacing:-.025em;margin:0;font-size:1.125rem}.portfolio-history-heading p{color:var(--portfolio-soft);margin:.5rem 0 0;font-size:.8125rem;line-height:1.5}.portfolio-history-detail>p{color:var(--portfolio-soft);margin:0;font-size:.8125rem;line-height:1.7}.portfolio-history-detail .portfolio-history-meta{color:var(--portfolio-cyan);letter-spacing:.035em;text-transform:uppercase;margin-bottom:.875rem;font-size:.625rem}.portfolio-history-detail>ul{flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.portfolio-history-links{flex-wrap:wrap;gap:1.25rem;margin-top:1.25rem;display:flex}.portfolio-history-links a{color:var(--portfolio-cyan);border-bottom:1px solid;gap:.375rem;padding-bottom:.25rem;font-size:.75rem;font-weight:750;display:inline-flex}.portfolio-history-links a:hover,.portfolio-history-links a:focus-visible{color:var(--portfolio-violet)}.portfolio-experience>ol{border-top:1px solid var(--portfolio-line);margin:0;padding:0;list-style:none}.portfolio-experience>ol>li{border-bottom:1px solid var(--portfolio-line);grid-template-columns:2rem minmax(14rem,.8fr) minmax(16rem,1.2fr);align-items:start;gap:clamp(1.5rem,4vw,3.5rem);padding-block:2rem;display:grid}.portfolio-experience-number{color:var(--portfolio-muted);font-size:.625rem}.portfolio-experience>ol>li>div h3{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1rem}.portfolio-experience>ol>li>div p{color:var(--portfolio-soft);margin:0;font-size:.8125rem;line-height:1.65}.portfolio-experience>ol>li>ul,.portfolio-project-detail>ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.portfolio-experience>ol>li>ul li,.portfolio-history-detail>ul li,.portfolio-project-detail>ul li{color:var(--portfolio-soft);background:var(--portfolio-surface);border:1px solid var(--portfolio-line);border-radius:.1875rem;padding:.4rem .6rem;font-size:.6875rem}.portfolio-tag-list>li{--portfolio-badge-accent:var(--portfolio-cyan);isolation:isolate;transition:color .18s,background-color .18s,border-color .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden}.portfolio-tag-list>li:nth-child(3n+2){--portfolio-badge-accent:var(--portfolio-violet)}.portfolio-tag-list>li:nth-child(3n){--portfolio-badge-accent:var(--portfolio-pink)}.portfolio-tag-list>li:before{z-index:-1;background:linear-gradient(105deg, transparent 30%, color-mix(in srgb, var(--portfolio-badge-accent) 24%, transparent) 50%, transparent 70%);content:"";opacity:0;pointer-events:none;position:absolute;inset:0;transform:translate(-130%)skew(-16deg)}@media (hover:hover){.portfolio-tag-list>li:hover{color:var(--portfolio-text);background-color:color-mix(in srgb, var(--portfolio-badge-accent) 9%, var(--portfolio-surface));border-color:color-mix(in srgb, var(--portfolio-badge-accent) 72%, var(--portfolio-line));box-shadow:0 0 .5rem color-mix(in srgb, var(--portfolio-badge-accent) 26%, transparent), 0 .35rem 1.25rem color-mix(in srgb, var(--portfolio-badge-accent) 14%, transparent)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.portfolio-tag-list>li:hover{animation:1.1s ease-in-out infinite alternate portfolio-badge-glow;transform:translateY(-.125rem)}.portfolio-tag-list>li:hover:before{animation:.7s ease-out portfolio-badge-sheen}}@keyframes portfolio-badge-glow{0%{box-shadow:0 0 .35rem color-mix(in srgb, var(--portfolio-badge-accent) 22%, transparent), 0 .25rem .85rem color-mix(in srgb, var(--portfolio-badge-accent) 10%, transparent)}to{box-shadow:0 0 .75rem color-mix(in srgb, var(--portfolio-badge-accent) 38%, transparent), 0 .45rem 1.5rem color-mix(in srgb, var(--portfolio-badge-accent) 18%, transparent)}}@keyframes portfolio-badge-sheen{0%{opacity:0;transform:translate(-130%)skew(-16deg)}28%{opacity:1}to{opacity:0;transform:translate(130%)skew(-16deg)}}.portfolio-project-browser{grid-template-columns:minmax(15rem,.8fr) minmax(20rem,1.2fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);display:grid}.portfolio-project-list{border-top:1px solid var(--portfolio-line);margin:0;padding:0;list-style:none}.portfolio-project-list li{border-bottom:1px solid var(--portfolio-line)}.portfolio-project-list button{width:100%;min-height:4.5rem;color:var(--portfolio-text);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1.5rem 1fr auto;align-items:center;gap:.875rem;padding:.875rem 1rem;display:grid;position:relative}.portfolio-project-list button:before{content:"";background:0 0;width:.1875rem;position:absolute;inset:0 auto 0 0}.portfolio-project-list button>span:first-child{color:var(--portfolio-muted);font-size:.625rem}.portfolio-project-list button>span:nth-child(2){gap:.25rem;display:grid}.portfolio-project-list button strong{letter-spacing:-.015em;font-size:.875rem}.portfolio-project-list button small{color:var(--portfolio-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.6875rem;display:flex}.portfolio-project-list button small em{color:var(--portfolio-cyan);letter-spacing:.04em;text-transform:uppercase;font-size:.5625rem;font-style:normal;font-weight:750}.portfolio-project-list button>span:last-child{color:var(--portfolio-violet);transition:transform .14s}.portfolio-project-list button:hover,.portfolio-project-list button:focus-visible,.portfolio-project-list button[aria-pressed=true]{background:var(--portfolio-surface-strong);outline-offset:-3px}.portfolio-project-list button:hover>span:last-child,.portfolio-project-list button:focus-visible>span:last-child,.portfolio-project-list button[aria-pressed=true]>span:last-child{transform:translate(.25rem)}.portfolio-project-list button[aria-pressed=true]:before{background:var(--portfolio-violet)}.portfolio-project-detail{background:var(--portfolio-surface);border:1px solid var(--portfolio-line);min-height:32rem;padding:clamp(1.5rem,4vw,2.75rem);position:sticky;top:5.25rem}.portfolio-project-detail>header{color:var(--portfolio-muted);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-size:.625rem;display:flex}.portfolio-project-mark{width:5rem;height:5rem;color:var(--portfolio-violet);background-color:var(--portfolio-surface-strong);background-image:linear-gradient(var(--portfolio-line) 1px, transparent 1px), linear-gradient(90deg, var(--portfolio-line) 1px, transparent 1px);border:1px solid var(--portfolio-line);background-size:1rem 1rem;place-items:center;margin-top:clamp(3rem,7vw,5rem);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:1.5rem;font-weight:750;display:grid}.portfolio-project-detail h3{letter-spacing:-.06em;margin:1.75rem 0 1rem;font-size:clamp(2rem,4vw,3rem);line-height:.95}.portfolio-project-detail>p{max-width:38rem;color:var(--portfolio-soft);margin:0;font-size:.9375rem;line-height:1.7}.portfolio-project-detail>ul{margin-top:2rem}.portfolio-project-actions{flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:2.5rem;display:flex}.portfolio-project-actions>a{border-bottom:1px solid;gap:.5rem;padding-bottom:.25rem;font-size:.75rem;font-weight:750;display:inline-flex}.portfolio-project-actions>a[hidden]{display:none}.portfolio-project-actions>a:first-child{color:var(--portfolio-cyan)}.portfolio-project-actions>a:last-child{color:var(--portfolio-soft)}.portfolio-project-actions>a:hover,.portfolio-project-actions>a:focus-visible{color:var(--portfolio-violet)}.portfolio-project-detail.is-changing>:not(header){animation:.18s portfolio-detail-enter}@keyframes portfolio-detail-enter{0%{opacity:0;transform:translateY(.375rem)}to{opacity:1;transform:translateY(0)}}.portfolio-footer{color:var(--portfolio-muted);justify-content:space-between;padding-block:4rem 5rem;font-size:.6875rem;display:flex}.portfolio-footer p{margin:0}@media (width<=64rem){.portfolio-topbar{grid-template-columns:1fr auto}.portfolio-topbar>p{display:none}.portfolio-layout{grid-template-columns:1fr}.portfolio-sidebar{border-right:0;border-bottom:1px solid var(--portfolio-line);min-height:auto}.portfolio-sidebar-inner{min-height:36rem;padding-inline:max(1.5rem,8vw);position:static}}@media (width<=52rem){.portfolio-topbar [data-secondary-nav]{display:none}}@media (width<=44rem){.portfolio-topbar{padding-inline:1rem}.portfolio-sidebar-inner{min-height:31rem;padding-inline:1rem}.portfolio-about,.portfolio-profile-section,.portfolio-experience,.portfolio-projects,.portfolio-writing,.portfolio-footer{width:calc(100% - 2rem)}.portfolio-about,.portfolio-profile-section,.portfolio-experience,.portfolio-projects,.portfolio-writing{padding-block:4rem}.portfolio-about h2{font-size:1.875rem}.portfolio-section-header{flex-direction:column;align-items:flex-start;gap:1rem}.portfolio-section-header>p{text-align:left;max-width:22rem}.portfolio-history-list>li,.portfolio-experience>ol>li{grid-template-columns:1.5rem minmax(0,1fr);gap:1rem}.portfolio-history-detail,.portfolio-experience>ol>li>ul{grid-column:2}.portfolio-project-browser{grid-template-columns:1fr;gap:1.5rem}.portfolio-project-list{scroll-snap-type:x proximity;scrollbar-width:thin;border-top:0;gap:.5rem;padding-bottom:.75rem;display:flex;overflow-x:auto}.portfolio-project-list li{border:1px solid var(--portfolio-line);scroll-snap-align:start;flex:0 0 11rem}.portfolio-project-list button{grid-template-columns:1.25rem minmax(0,1fr);min-height:5.5rem}.portfolio-project-list button>span:last-child{display:none}.portfolio-project-detail{min-height:29rem;position:static}.portfolio-footer{flex-direction:column;align-items:flex-start;gap:1rem}}@media (width<=25rem){.portfolio-topbar nav>a{display:none}.portfolio-sidebar h1{font-size:3.25rem}.portfolio-project-detail{min-height:27rem}}
