@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:optional;font-weight:400 700;src:url(/_astro/instrument-sans.BbzFLZTg.woff2)format("woff2-variations")}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:optional;font-weight:100 800;src:url(/_astro/jetbrains-mono.B9CIFXIH.woff2)format("woff2-variations")}:root{color-scheme:dark;--font-sans:"Instrument Sans Variable", "Avenir Next", "Avenir", "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;font-family:var(--font-sans);--background:#0d1119;--panel:#151b26;--text:#ecedf1;--muted:#a8b1c2;--accent:#b6caf7;--warm:#d4ad79;--line:#303b4e;background:var(--background);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{min-width:0;margin:0;line-height:1.7}[hidden]{display:none!important}dialog:not([open]){display:none}.shell{width:calc(100% - 96px);max-width:1160px;margin-left:auto;margin-right:auto}a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--warm);outline-offset:5px}.skip-link{z-index:5;background:var(--panel);padding:10px 20px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{z-index:1;background:var(--background);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:108px;display:flex;position:relative}.wordmark{align-items:center;gap:16px;text-decoration:none;display:flex}.brand-mark{letter-spacing:-.07em;font-size:1.15rem;font-weight:700}.brand-mark span{color:var(--warm);padding-inline:4px}.brand-name{color:var(--muted);font-size:.78rem}.site-header nav{gap:28px;font-size:.8rem;display:flex}.site-header :where(nav) a{padding-block:10px;text-decoration:none}main{z-index:1;position:relative}.hero{flex-direction:column;justify-content:center;align-items:flex-start;min-height:min(730px,86svh);padding-block:84px 108px;display:flex;position:relative}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 20px;font-size:.68rem;font-weight:600}.hero :where(.eyebrow) span{color:var(--warm);margin-inline:12px}h1,h2,h3,h4,p{overflow-wrap:anywhere}.hero h1{letter-spacing:-.055em;margin:0 0 24px;font-size:clamp(2.8rem,6.1vw,5.1rem);font-weight:500;line-height:1.08}.hero :where(h1)>span{display:block}.accent-dot{color:var(--warm)}.portrait-trigger{display:none}@supports (anchor-name:--a){.accent-dot{anchor-name:--portrait-anchor}.portrait-trigger{position-anchor:--portrait-anchor;inset:anchor(top) anchor(right) anchor(bottom) anchor(left);background:0 0;border:0;padding:0;display:block;position:absolute}}.portrait-overlay{background:0 0;border:0;max-width:none;max-height:none;padding:0}.portrait-overlay::backdrop{backdrop-filter:blur(6px);background:#0d1119d6}.portrait-overlay img{border:1px solid var(--line);border-radius:6px;width:auto;max-width:min(92vw,560px);height:auto;max-height:82svh;display:block;box-shadow:0 24px 80px #0000008c}.tagline{max-width:36rem;color:var(--accent);margin:0;font-size:clamp(1rem,2vw,1.3rem)}.hero-intro{max-width:calc(33.3333% - 12px);color:var(--muted);margin-bottom:28px;font-size:.85rem}.text-link{color:var(--text);text-decoration-color:var(--warm);font-size:.85rem}.text-link span{color:var(--warm);margin-left:18px}.activities{border-top:1px solid var(--line);padding-block:44px 0}.activities[data-pending]{visibility:hidden}@media (scripting:none){.activities[data-pending]{display:none}}.activities-table{border-collapse:collapse;border-top:1px solid var(--line);width:100%;font-size:.82rem;display:block;overflow-x:auto}.activities-table td{border-bottom:1px solid var(--line);vertical-align:baseline;padding-block:8px}.act-when{padding-right:16px}.act-when time{font-family:var(--font-mono);color:var(--muted);font-size:.68rem}.act-group{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);padding-right:16px;font-size:.58rem;font-weight:600}.act-role{color:var(--muted);padding-right:16px;font-size:.7rem}.act-title{color:var(--text)}.act-today td{border-top:2px solid var(--warm);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--warm);border-bottom:0;padding-block:3px;font-size:.58rem;font-weight:600}.activities-table tr[data-status=recent] .act-title{color:var(--muted)}.portfolio-section{border-top:1px solid var(--line);padding-block:44px 88px;scroll-margin-top:24px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:40px;display:flex}.section-heading .eyebrow{margin-bottom:8px}.section-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.2}.section-index{font-family:var(--font-mono);color:var(--muted);font-size:.75rem}.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.portfolio-card{border:1px solid var(--line);background:#151b26d9;border-radius:3px;min-width:0;padding:30px;scroll-margin-top:24px}#contact{flex-direction:column;display:flex}.contact-qr-trigger{cursor:zoom-in;background:0 0;border:0;flex:1;align-self:stretch;min-height:48px;max-height:160px;margin-top:auto;padding:0;position:relative;overflow:hidden}.contact-qr-trigger img{object-fit:contain;object-position:right bottom;width:100%;height:100%;position:absolute;inset:0}.card-topline{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.card-topline .eyebrow{margin-bottom:24px;font-size:.58rem}.card-topline>span{font-family:var(--font-mono);color:var(--muted);font-size:.62rem}.portfolio-card h3{letter-spacing:-.025em;margin:0 0 20px;font-size:1.5rem;font-weight:500;line-height:1.2}.prose{color:var(--muted);font-size:.86rem}.prose ul{margin:0;padding:0;list-style:none}.prose li{margin-block:8px;scroll-margin-top:24px}.prose a{text-decoration-color:var(--line)}.prose li:has(>.entry-more)>p{display:inline}.prose li:has(.entry-year){padding-right:80px;position:relative}.entry-year{line-height:0;position:absolute;top:.3em;right:0}.entry-year svg{display:block}.entry-year rect{fill:none;stroke:var(--line)}.entry-year text{font-family:var(--font-mono);fill:var(--muted);font-size:10px}a.entry-year{text-decoration:none}a.entry-year:hover rect{stroke:var(--accent)}.entry-more{display:inline}.entry-more>summary{border:1px solid var(--line);cursor:pointer;line-height:1.3;font-family:var(--font-mono);color:var(--warm);border-radius:3px;margin-left:6px;padding:0 4px;font-size:.68rem;list-style:none;display:inline-block}.entry-more>summary:before{content:"+"}.entry-more[open]>summary:before{content:"−"}.entry-more>summary::marker,.entry-more>summary::-webkit-details-marker{content:"";display:none}.entry-more>summary:hover{border-color:var(--accent);color:var(--accent)}.entry-note{margin-block:6px 10px;border-left:1px solid var(--line);color:var(--muted);margin-left:1.25em;padding-left:.75em;font-size:.8rem;line-height:1.5;display:block}.prose li:has(.entry-year) .entry-note{margin-right:-80px}.entry-note table{border-collapse:collapse;border-top:1px solid var(--line);margin-block:8px}.entry-note th,.entry-note td{padding-block:4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:baseline;padding-right:16px}.entry-note th{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.58rem;font-weight:600}.entry-figure{margin:0}.entry-figure figcaption{color:var(--muted);margin-top:6px;font-size:.62rem;line-height:1.4}.entry-image-trigger{cursor:zoom-in;background:0 0;border:0;width:min(200px,100%);margin-block:8px;padding:0;display:block}.entry-image-trigger img{border:1px solid var(--line);border-radius:4px;width:100%;height:auto;display:block}.entry-image-overlay img{max-width:92vw}.entry-image-overlay figcaption{text-align:center;color:var(--muted);margin-top:10px;font-size:.75rem}.entry-cta{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-block:10px 0;font-size:.6rem;font-weight:600}.activities-table a{color:var(--text);text-decoration-color:var(--line)}.act-today a{color:inherit}.prose a:hover,.activities-table a:hover{text-decoration-color:var(--accent)}.prose h4{color:var(--text);margin-block:24px 8px;font-size:.9rem;font-weight:600}.prose h4:first-child{margin-top:0}:where(.email-contact){align-items:center;min-height:44px;display:inline-flex}:where(.email-contact) button{min-height:44px;color:inherit;font:inherit;text-underline-offset:.25em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}:where(.email-contact) button:hover{color:var(--accent)}.prose .email-contact a{overflow-wrap:anywhere}.legal-copy img{max-width:100%;height:auto;display:block}.site-footer{z-index:1;background:var(--background);border-top:1px solid var(--line);color:var(--muted);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:8px 20px;padding-block:16px 84px;font-size:.72rem;display:grid;position:relative}body:has(#motion-reason:not([hidden])) .site-footer{padding-bottom:180px}.footer-nav{flex-wrap:wrap;gap:4px 16px;display:flex}.site-footer .footer-nav a{text-decoration:none}.footer-nav a:hover{text-underline-offset:.35em;text-decoration:underline}.footer-nav a[aria-current=page]{color:var(--text);text-decoration:underline;text-decoration-color:var(--warm);text-underline-offset:.35em}.footer-meta{text-align:center;justify-self:center}.preview-note{margin-block:4px 0;font-size:.65rem}.build-id{color:inherit;font-family:var(--font-mono);overflow-wrap:anywhere;text-align:right;cursor:pointer;background:0 0;border:0;justify-self:end;padding:0;font-size:.6rem}button.build-id:hover,.build-id[aria-expanded=true]{color:var(--accent)}span.build-id{cursor:default}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.preferences{z-index:3;flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:8px;max-width:calc(100% - 24px);display:flex;position:fixed;bottom:20px;right:24px}.preferences button{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:24px;padding:8px 14px;font-size:.7rem}.preferences button[data-active=true]{border-color:var(--accent);color:var(--accent)}.preferences button:disabled{color:var(--muted);cursor:default}#motion-reason{background:var(--background);max-width:260px;color:var(--muted);text-align:right;border-radius:3px;padding:6px 10px;font-size:.7rem}#attractor{z-index:0;pointer-events:none;opacity:.85;width:100%;height:100%;position:fixed;inset:0;mask-image:linear-gradient(90deg,#0000 30%,#000 85%)}.attractor-panel{z-index:4;pointer-events:none;visibility:hidden;font-family:var(--font-mono);justify-content:center;transition:visibility .35s;display:flex;position:fixed;inset:auto 0 22px}.attractor-panel.shown{visibility:visible}.panel-card{pointer-events:auto;border:1px solid var(--line);backdrop-filter:blur(10px);width:min(560px,100% - 48px);color:var(--muted);opacity:0;visibility:hidden;background:#0d1119d9;border-radius:12px;padding:14px 18px 10px;font-size:.68rem;line-height:1.6;transition:opacity .35s,transform .35s,visibility .35s;transform:translateY(12px)}.attractor-panel.shown .panel-card{opacity:1;visibility:visible;transform:none}.panel-name{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.6rem;font-weight:600}.panel-about{color:var(--text);margin:6px 0 10px}.panel-ode{color:var(--accent);background:#ffffff0a;border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:.66rem;line-height:1.9}.panel-ode code{display:block}.panel-row{flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-block:2px;display:flex}.panel-label{width:56px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;opacity:.6;flex:none;font-size:.55rem}.panel-row code{color:var(--text);padding:2px 4px}.panel-row sub{color:var(--warm);padding-left:2px}.panel-meta{color:var(--muted)}.panel-link{color:var(--accent)}.panel-link:hover{color:var(--warm)}.panel-legend{border-top:1px solid var(--line);opacity:.75;margin:8px 0 0;padding-top:8px;font-size:.58rem}@media (prefers-reduced-motion:reduce){.panel-card{transition:none;transform:none}}@media (width<=700px){.panel-legend{display:none}.site-footer{grid-template-columns:1fr;justify-items:center}.footer-nav{justify-content:center}.build-id{text-align:center;justify-self:center}}.legal-page{background:var(--background);max-width:760px;min-height:70svh;padding-block:64px 100px}.legal-page>.eyebrow{margin-top:60px}.legal-page h1{letter-spacing:-.04em;margin-block:0 30px;font-size:clamp(2.4rem,7vw,4rem);font-weight:500;line-height:1.1}.legal-copy{font-size:.85rem;line-height:1.8}.legal-copy h2{color:var(--text);margin-top:32px;font-size:1.05rem;font-weight:500}.draft-notice{border-left:2px solid var(--warm);background:var(--panel);color:var(--muted);padding:12px 20px;font-size:.85rem}.tl-page{max-width:none}.timeline-table{border-collapse:collapse;border-top:1px solid var(--line);width:100%}.timeline-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding-block:10px}.tl-axis td{padding-block:0 10px}.tl-when{white-space:nowrap;width:1%;padding-right:18px}.tl-name{padding-right:18px}.tl-group{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:var(--muted);padding-right:24px;font-size:.58rem;font-weight:600}.tl-dot{background:var(--c,var(--line));vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.tl-span{width:26%}.tl-scale-cell{position:relative}.tl-scale{font-family:var(--font-mono);color:var(--muted);font-size:.58rem;display:flex}.tl-scale span{flex:0 0 20%;transform:translate(-50%)}.tl-scale span:first-child{transform:none}.tl-scale .tl-end{position:absolute;right:0;transform:none}.tl-year{position:static}.tl-entry td{position:relative}.tl-fill{color:inherit;text-decoration:none;display:block}.tl-fill:after{content:"";position:absolute;inset:0}.tl-title{color:var(--text);font-size:.85rem;text-decoration:none}.tl-title:hover{color:var(--accent)}.tl-c-orbit{--c:#b6caf7}.tl-c-operations{--c:#d4ad79}.tl-c-nonprofit{--c:#8fcfa8}.tl-c-music{--c:#e0a3c0}.tl-c-speaking{--c:#7ec8cf}.tl-c-support{--c:#c2aef0}.tl-c-licences{--c:#a9c58a}.tl-c-experience{--c:#e8a08c}.tl-c-active{--c:var(--accent)}.tl-track{background-image:repeating-linear-gradient(to right, var(--line) 0 1px, transparent 1px 20%);width:100%;height:6px;display:block}.tl-bar{fill:color-mix(in srgb, var(--c,var(--muted)) 42%, transparent)}.tl-bar.ongoing,.tl-entry:hover .tl-bar{fill:var(--c,var(--accent))}.tl-entry:target td{background-color:var(--panel);background-color:color-mix(in srgb, var(--warm) 12%, transparent)}.tl-page .tl-ongoing .entry-year rect{fill:var(--c,var(--accent));stroke:var(--c,var(--accent))}.tl-page .tl-ongoing .entry-year text{fill:var(--background)}.tl-filter{border:0;flex-wrap:wrap;gap:8px;margin:0 0 26px;padding:0;display:flex}.tl-chip{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:pointer;user-select:none;border-radius:24px;align-items:center;padding:5px 12px;font-size:.6rem;font-weight:600;display:inline-flex}.tl-chip .tl-dot{background:var(--c,var(--line));background:color-mix(in srgb, var(--c,var(--line)) 30%, transparent)}.tl-chip:has(:checked){color:var(--text);border-color:var(--c,var(--line))}.tl-chip:has(:checked) .tl-dot{background:var(--c,var(--line))}.tl-chip:focus-within{outline:3px solid var(--warm);outline-offset:3px}.tl-empty{color:var(--muted);margin:0 0 16px;font-size:.85rem;display:none}.tl-page:has(#tl-f-orbit:not(:checked)) tr.tl-c-orbit,.tl-page:has(#tl-f-operations:not(:checked)) tr.tl-c-operations,.tl-page:has(#tl-f-nonprofit:not(:checked)) tr.tl-c-nonprofit,.tl-page:has(#tl-f-music:not(:checked)) tr.tl-c-music,.tl-page:has(#tl-f-speaking:not(:checked)) tr.tl-c-speaking,.tl-page:has(#tl-f-support:not(:checked)) tr.tl-c-support,.tl-page:has(#tl-f-licences:not(:checked)) tr.tl-c-licences,.tl-page:has(#tl-f-experience:not(:checked)) tr.tl-c-experience,.tl-page:has(#tl-f-active:checked) tr.tl-entry:not(.tl-ongoing){display:none}.tl-page:has(#tl-f-active:checked) .tl-chip:not(.tl-has-ongoing,.tl-c-active){opacity:.45}.tl-page:not(:has(input.tl-sec.tl-ong:checked),:has(input.tl-sec:not(.tl-ong):checked):has(#tl-f-active:not(:checked))) .tl-empty{display:block}.timeline-link{margin-top:10px;display:inline-block}@media (width<=700px){.timeline-table thead{display:none}.timeline-table,.timeline-table tbody,.tl-entry,.timeline-table td{display:block}.tl-entry{border-bottom:1px solid var(--line);padding-block:10px}.tl-entry td{border-bottom:0;padding-block:2px}.tl-group{padding-right:0}.tl-span{width:auto}}@media (width<=960px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-intro{max-width:calc(50% - 9px)}.brand-name{display:none}}@media (width<=600px){.shell{width:calc(100% - 40px)}.site-header{min-height:80px}.hero{min-height:620px;padding-block:70px 100px}.portfolio-grid{grid-template-columns:minmax(0,1fr)}.portfolio-card{padding:26px}.hero-intro{max-width:none}.preferences{bottom:12px;right:12px}}
