:root{--brand-primary:#43a697;--brand-primary-light:#4ab8a9;--brand-secondary:#015565;--brand-secondary-light:#88bec8;--brand-light:#e7eef4;--brand-dark:#161a1b;--brand-grey-01:#f1f5f8;--brand-grey-02:#dde8ec;--brand-grey-03:#c3d8e0;--brand-grey-04:#7f97a1;--brand-grey-05:#4e5d63;--brand-grey-06:#323c41;--brand-grey-07:#253034;--brand-grey-08:#1b2326;--brand-grey-09:#121516;--background-color:var(--brand-light);--background-color-highlight:var(--brand-grey-01);--background-color-dimmed:var(--brand-grey-02);--box-shadow:0 1.3px 5.4px #01556526,0 4.5px 18.1px #0155650d,0 20px 81px #01556506;--card-glow:0 8px 24px #7f97a159;--card-glow-hover:0 12px 32px #7f97a173;--card-border-glow:0 0 0 1px #43a69780,0 0 22px #43a69773;--text-color:var(--brand-grey-05);--text-color-light:var(--brand-grey-04);--headings-color:var(--brand-secondary);--link-color:var(--brand-primary);--link-color-hover:var(--brand-primary-light);--dur-fast:.8s;--dur-medium:1.4s;--dur-slow:2.2s;--dur-bubble:.7s;--theme-dur:1.6s;--theme-ease:cubic-bezier(.16,1,.3,1);--dur-stagger:60ms;--ease-out-soft:cubic-bezier(.22,1,.36,1);--ease-out-quick:cubic-bezier(.16,1,.3,1);--ease-out-bubble:cubic-bezier(.34,1.56,.64,1);--ease-in-out:cubic-bezier(.45,0,.55,1);--vt-duration:var(--dur-slow);--vt-ease:var(--ease-out-soft);--vt-theme-duration:.8s;--vt-theme-ease:cubic-bezier(.22,1,.36,1);--vt-distance:12px;--motion-fast:var(--dur-fast);--motion-medium:var(--dur-medium);--motion-slow:var(--dur-slow);--tilt-angle:3deg;--border-radius:.5rem;--border-radius-lg:.75rem;--border-width:.125rem;--border-color:var(--brand-grey-03);--font-family-base:"Source Sans 3","Trebuchet MS","Helvetica Neue","Helvetica","Arial",sans-serif;--font-family-headings:"Montserrat","Avenir Next","Helvetica Neue","Helvetica","Arial",sans-serif;--font-weight-base:400;--font-weight-bold:700;--font-weight-headings:400;--line-height-headings:1.1;--font-family-monospace:"SF Mono",sfmono-regular,ui-monospace,"DejaVu Sans Mono",menlo,consolas,monospace;--fs--2:clamp(.64rem,.5818rem + .2909vw,.72rem);--fs--1:clamp(.8rem,.7273rem + .3636vw,.9rem);--fs-0:clamp(1rem,.9091rem + .4545vw,1.125rem);--fs-1:clamp(1.25rem,1.1364rem + .5682vw,1.4063rem);--fs-2:clamp(1.5625rem,1.4205rem + .7102vw,1.7578rem);--fs-3:clamp(1.9531rem,1.7756rem + .8878vw,2.1973rem);--fs-4:clamp(2.4414rem,2.2195rem + 1.1097vw,2.7466rem);--fs-5:clamp(3.0518rem,2.7743rem + 1.3872vw,3.4332rem);--space-3xs:clamp(.25rem,.2045rem + .2273vw,.3125rem);--space-2xs:clamp(.5rem,.4545rem + .2273vw,.5625rem);--space-xs:clamp(.75rem,.6591rem + .4545vw,.875rem);--space-s:clamp(1rem,.9091rem + .4545vw,1.125rem);--space-m:clamp(1.5rem,1.3636rem + .6818vw,1.6875rem);--space-l:clamp(2rem,1.8182rem + .9091vw,2.25rem);--space-xl:clamp(3rem,2.7273rem + 1.3636vw,3.375rem);--space-2xl:clamp(4rem,3.6364rem + 1.8182vw,4.5rem);--space-3xl:clamp(6rem,5.4545rem + 2.7273vw,6.75rem);--bg:var(--background-color);--bg-elev:var(--background-color-highlight);--card:var(--background-color-highlight);--card-strong:var(--background-color-dimmed);--text:var(--text-color);--muted:var(--text-color-light);--accent:var(--link-color);--accent-strong:var(--link-color-hover);--glow:transparent;--border:var(--border-color);--shadow:var(--box-shadow);--btn-primary-bg:var(--brand-secondary);--btn-primary-text:var(--brand-light);--btn-ghost-border:var(--border-color);--nav-bg:transparent;--radius-lg:var(--border-radius-lg);--radius-md:var(--border-radius);--radius-sm:var(--border-radius);--space-1:var(--space-3xs);--space-2:var(--space-2xs);--space-3:var(--space-xs);--space-4:var(--space-s);--space-5:var(--space-m);--space-6:var(--space-l);--container-width:1100px;--card-max:560px;--list-max:820px;--section-gap:var(--space-xl);--card-gap:var(--space-s);--hero-stack-gap:var(--space-xs);--font-body:var(--font-family-base);--font-display:var(--font-family-headings)}html[data-theme=dark]{--background-color:var(--brand-dark);--background-color-highlight:var(--brand-grey-09);--background-color-dimmed:var(--brand-grey-08);--box-shadow:0 1.3px 5.4px #00070880,0 4.5px 18.1px #0007084d,0 20px 81px #0007081a;--card-glow:0 8px 24px #00000073;--card-glow-hover:0 14px 36px #0000008c;--card-border-glow:0 0 0 1px #43a69799,0 0 26px #43a69780;--text-color:var(--brand-grey-04);--text-color-light:var(--brand-grey-05);--headings-color:var(--brand-secondary-light);--border-color:var(--brand-grey-07);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html{background-color:var(--bg);font-family:var(--font-family-base);font-size:var(--fs-0);scroll-behavior:smooth}body,html{transition:background-color var(--theme-dur)var(--theme-ease),color var(--theme-dur)var(--theme-ease)}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-feature-settings:"liga","kern";line-height:var(--fs-2);min-height:100%;text-rendering:optimizeLegibility}.app-main,.app-shell{transition:background-color var(--theme-dur)var(--theme-ease),color var(--theme-dur)var(--theme-ease)}.featured-card,.media-card,.open-source-item,.project-item,.section,.work-hero{transition:background-color var(--theme-dur)var(--theme-ease),color var(--theme-dur)var(--theme-ease),border-color var(--theme-dur)var(--theme-ease),box-shadow var(--theme-dur)var(--theme-ease)}.transition-mask{background:var(--bg);opacity:0;pointer-events:none;transition:opacity var(--dur-medium)var(--ease-out-soft);z-index:9998;position:fixed;inset:0}.transition-mask.active{opacity:1}@view-transition{navigation:none}::view-transition-new(root){animation-duration:var(--dur-medium);animation-timing-function:var(--ease-out-soft)}::view-transition-old(root){animation-duration:var(--dur-medium);animation-timing-function:var(--ease-out-soft)}html[data-theme-transition=true] ::view-transition-new(root){animation-duration:var(--vt-theme-duration);animation-timing-function:var(--vt-theme-ease)}html[data-theme-transition=true] ::view-transition-old(root){animation-duration:var(--vt-theme-duration);animation-timing-function:var(--vt-theme-ease)}a{color:var(--accent);text-underline-offset:2px;transition:color var(--dur-fast)var(--ease-out-quick);text-decoration:none}a:not(:hover):not(:focus){-webkit-text-decoration-color:color-mix(in srgb,currentColor,transparent 50%);text-decoration-color:color-mix(in srgb,currentColor,transparent 50%)}a:focus,a:hover{color:var(--accent-strong)}[role=button]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}ul{margin:0;padding-left:1.2rem}.app-shell{gap:var(--section-gap);min-height:100vh;padding:var(--space-l)var(--space-m)var(--space-2xl);outline:none;flex-direction:column;display:flex}.app-main{gap:var(--section-gap);flex-direction:column}.app-main,.site-header{max-width:var(--container-width);width:100%;margin:0 auto;display:flex}.site-header{border-bottom:var(--border-width)solid var(--border-color);align-items:center;gap:var(--space-3);padding:var(--space-s)0;background:0 0;justify-content:space-between}.site-header-left,.site-header-right{align-items:center;gap:var(--space-3);display:flex}.brand{color:var(--headings-color);font-family:var(--font-display);font-size:var(--fs-1);align-items:center;gap:var(--space-2);letter-spacing:.03rem;text-transform:none;animation:12s ease-in-out infinite brand-pulse;display:inline-flex}.avi{background:#161a1b;border:1px solid #43a69799;border-radius:50%;display:block;box-shadow:0 0 22px #43a69773}.avi--header{width:32px;height:32px}.avi--hero{object-fit:cover;border-radius:50%;width:140px;height:140px;margin:0 auto}.nav-links{gap:var(--space-3)}.header-socials,.nav-links{align-items:center;display:flex}.header-socials{gap:var(--space-2)}.header-social-link{color:var(--muted);font-size:var(--fs--2);letter-spacing:.08rem;text-transform:uppercase}.header-social-link:focus-visible,.header-social-link:hover{color:var(--accent)}.nav-link{color:var(--muted);font-size:var(--fs--2);letter-spacing:.14rem;text-transform:uppercase;transition:color var(--dur-fast)var(--ease-out-soft),text-shadow var(--dur-fast)var(--ease-out-soft)}.nav-link:focus-visible,.nav-link:hover{color:var(--accent);text-shadow:none}.theme-toggle{border:var(--border-width)solid transparent;border-radius:var(--radius-md);color:var(--muted);cursor:pointer;font-family:inherit;font-size:var(--fs--2);letter-spacing:.05rem;padding:var(--space-2)var(--space-3);transition:color var(--dur-fast)var(--ease-out-soft),border-color var(--dur-fast)var(--ease-out-soft);background:0 0;font-weight:500}.theme-toggle:focus-visible,.theme-toggle:hover{border-color:var(--border-color);color:var(--accent)}.availability{color:var(--muted);font-size:var(--fs--1);align-self:center;align-items:center;gap:var(--space-2);margin-bottom:calc(var(--section-gap)*-.75);display:inline-flex}.availability,.availability-link{letter-spacing:.02rem;text-transform:none}.availability-link{color:var(--accent-strong);text-shadow:0 0 12px #43a6974d;font-weight:600}.availability-link:focus-visible,.availability-link:hover{color:var(--brand-primary-light);text-shadow:0 0 16px #43a69773}.hero{box-shadow:none;gap:var(--hero-stack-gap);max-width:var(--card-max);padding:var(--space-xs)0 0;text-align:center;background:0 0;border:none;border-radius:0;flex-direction:column;margin:0 auto}.hero,.hero-avatar{align-items:center;display:flex}.hero-avatar{margin-bottom:var(--space-3xs);justify-content:center;width:100%}.hero-badge{color:var(--text);font-size:var(--fs-1);align-items:center;gap:var(--space-3xs);letter-spacing:.02rem;text-transform:none;background:0 0;border:none;margin:0 auto;padding:0;font-weight:400;display:inline-flex;position:relative}.hero-badge:after,.hero-badge:before{color:var(--muted);opacity:.4;display:inline-block}.hero-badge:before{content:"{ "}.hero-badge:after{content:" }"}.hero-title{color:var(--headings-color);font-family:var(--font-display);font-size:var(--fs-3);letter-spacing:.02rem;margin:0}.hero-subtitle{color:var(--text);font-size:var(--fs-0);margin:0}.hero-description{color:var(--muted);max-width:var(--card-max);margin:0 auto}.hero-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:center;margin:0;display:flex}.hero-bio{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);gap:var(--space-3xs);max-width:var(--card-max);padding:var(--space-2);flex-direction:column;display:flex}.hero-bio-title{color:var(--muted);font-size:var(--fs--2);letter-spacing:.12rem;text-transform:uppercase;margin:0}.hero-bio-text{color:var(--text);margin:0}.hero-meta{color:var(--muted);margin:0;font-size:.85rem}.glow-text{color:var(--accent);text-shadow:0 0 10px var(--glow)}.section{gap:var(--card-gap)}.section,.section-header{flex-direction:column;align-items:center;width:100%;display:flex}.section-header{gap:var(--space-1);max-width:var(--card-max);text-align:center;margin:0 auto}.section-title{font-family:var(--font-display);font-size:var(--fs-3);letter-spacing:.02rem;margin:0}.section-subtitle{color:var(--muted);margin:0}.content-hub{gap:var(--space-4)}.hub-links{gap:var(--space-2xs);flex-wrap:wrap;justify-content:center;display:flex}.hub-link{border:var(--border-width)solid var(--border-color);color:var(--text);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);transition:color var(--motion-fast)var(--ease-out-soft),border-color var(--motion-fast)var(--ease-out-soft),transform var(--motion-fast)var(--ease-out-soft);border-radius:999px;align-items:center;text-decoration:none;display:inline-flex}.hub-link:focus-visible,.hub-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.featured-list,.open-source-list{gap:var(--space-l);max-width:var(--list-max);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.featured-item{display:block}.open-source-item{background:var(--card);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow),var(--card-border-glow);gap:var(--space-2);padding:var(--space-3)var(--space-4);flex-direction:column;display:flex}.featured-item-header,.open-source-header{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.featured-card{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);color:inherit;transform-style:preserve-3d;transition:transform var(--motion-medium)var(--ease-out-soft),box-shadow var(--motion-medium)var(--ease-out-soft),border-color var(--motion-fast)var(--ease-out-soft);text-decoration:none;display:block;overflow:hidden}.featured-card:focus-visible,.featured-card:hover{border-color:var(--link-color);box-shadow:var(--card-glow-hover),var(--card-border-glow);transform:translateY(-2px)}.featured-media{padding:var(--space-m)}.featured-image,.featured-media{background:var(--image-background-color,var(--background-color-dimmed))}.featured-image{aspect-ratio:16/9;border-radius:var(--border-radius);box-shadow:var(--card-glow);object-fit:cover;width:100%;display:block}.media-gallery-grid{gap:var(--space-m);max-width:var(--list-max);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));width:100%;display:grid}.media-card{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);color:inherit;cursor:pointer;gap:var(--space-2xs);transform-style:preserve-3d;transition:transform var(--motion-medium)var(--ease-out-soft),box-shadow var(--motion-medium)var(--ease-out-soft),border-color var(--motion-fast)var(--ease-out-soft);padding:0;text-decoration:none;display:grid;overflow:hidden}.media-card-figure{background:var(--background-color-dimmed);padding:var(--space-s);margin:0}.media-card-image{aspect-ratio:16/9;border-radius:var(--radius-sm);object-fit:cover;width:100%;display:block}.media-card-body{gap:var(--space-3xs);padding:var(--space-s)var(--space-m)var(--space-m);flex-direction:column;display:flex}.media-card-tag{color:var(--muted);font-size:var(--fs--2);letter-spacing:.08rem;text-transform:uppercase}.media-card-title{font-size:var(--fs-1);margin:0}.gallery-modal{opacity:0;pointer-events:none;transition:opacity var(--dur-medium)var(--ease-out-soft);z-index:10000;background:#0f1314b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gallery-modal--open{opacity:1;pointer-events:auto}.gallery-modal-card{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow-hover),var(--card-border-glow);opacity:0;transition:opacity var(--dur-medium)var(--ease-out-soft)var(--dur-stagger),transform var(--dur-medium)var(--ease-out-soft)var(--dur-stagger);gap:0;width:min(720px,92vw);display:grid;overflow:hidden;transform:translateY(4px)scale(.98)}.gallery-modal--open .gallery-modal-card{opacity:1;transform:translateY(0)scale(1)}.gallery-modal-media{background:var(--background-color-dimmed);padding:var(--space-s);margin:0}.gallery-modal-image{aspect-ratio:16/9;border-radius:var(--radius-sm);object-fit:cover;width:100%;display:block}.gallery-modal-body{gap:var(--space-2xs);padding:var(--space-m);flex-direction:column;display:flex}.gallery-modal-title{color:var(--headings-color);font-size:var(--fs-2);margin:0}.gallery-modal-summary{color:var(--muted);margin:0}.gallery-modal-actions{gap:var(--space-2xs);margin-top:var(--space-2xs);flex-wrap:wrap;display:flex}.gallery-modal-close,.gallery-modal-link{border:var(--border-width)solid var(--border-color);color:var(--text);cursor:pointer;font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);transition:color var(--motion-fast)var(--ease-out-soft),border-color var(--motion-fast)var(--ease-out-soft),transform var(--motion-fast)var(--ease-out-soft);background:0 0;border-radius:999px;text-decoration:none}.gallery-modal-close:focus-visible,.gallery-modal-close:hover,.gallery-modal-link:focus-visible,.gallery-modal-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.egui-demo{gap:var(--space-4)}.egui-embed{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);max-width:var(--list-max);width:100%;position:relative;overflow:hidden}.egui-placeholder{color:var(--muted);font-size:var(--fs--1);padding:var(--space-m);text-align:center;z-index:1;background:linear-gradient(140deg,#161a1bcc,#161a1b99);place-items:center;display:grid;position:absolute;inset:0}.egui-placeholder-text{margin:0 0 var(--space-2xs)}.egui-load-btn{border:var(--border-width)solid var(--border-color);color:var(--text);cursor:pointer;font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);transition:transform var(--motion-fast)var(--ease-out-soft),border-color var(--motion-fast)var(--ease-out-soft),color var(--motion-fast)var(--ease-out-soft);background:0 0;border-radius:999px}.egui-load-btn:focus-visible,.egui-load-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.egui-fallback,.egui-frame{aspect-ratio:16/9;background:var(--background-color-highlight);width:100%;display:block}.egui-frame{border:0;height:100%}html[data-theme=light] .egui-embed{background:var(--brand-grey-01);box-shadow:0 12px 28px #0155651f}html[data-theme=light] .egui-placeholder{color:var(--brand-grey-05);background:linear-gradient(140deg,#e7eef4eb,#dde8eceb)}html[data-theme=light] .egui-load-btn{border-color:var(--brand-grey-03);color:var(--brand-grey-05);background:#fff9}html[data-theme=light] .egui-load-btn:focus-visible,html[data-theme=light] .egui-load-btn:hover{border-color:var(--accent);color:var(--accent)}html[data-theme=light] .egui-fallback,html[data-theme=light] .egui-frame{background:var(--brand-grey-01)}@media (hover:hover) and (pointer:fine){.featured-card:focus-visible,.featured-card:hover{transform:translateY(-4px)rotateX(2deg)rotateY(-2deg)}.featured-image{transition:transform var(--motion-medium)var(--ease-out-soft);transform:translateZ(8px)}.media-card:focus-visible,.media-card:hover{border-color:var(--accent);box-shadow:var(--card-glow-hover),var(--card-border-glow);transform:translateY(-4px)rotateX(2deg)rotateY(2deg)}.media-card-image{transition:transform var(--motion-medium)var(--ease-out-soft);transform:translateZ(6px)}}@media (hover:none){.featured-card,.featured-image,.media-card,.media-card-image{transform:none}}.featured-card-body{gap:var(--space-2xs);padding:var(--space-m);flex-direction:column;display:flex}.featured-title,.open-source-title{font-size:var(--fs-1);margin:0}.featured-link,.open-source-link{border:var(--border-width)solid var(--border-color);color:var(--accent);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);border-radius:999px}.featured-summary,.open-source-summary{color:var(--text);margin:0}.featured-metrics{gap:var(--space-3xs);flex-wrap:wrap;display:flex}.featured-metric{background:var(--background-color-dimmed);border:var(--border-width)solid var(--border-color);color:var(--accent);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);border-radius:999px}.featured-bullets{color:var(--muted);font-size:var(--fs--1);gap:var(--space-3xs);margin:0;padding-left:1.1rem;display:grid}.featured-bullet{margin:0}.open-source-stars{color:var(--muted);font-size:var(--fs--2)}.open-source-links{flex-wrap:wrap;gap:.5rem;display:flex}.projects-list{gap:var(--space-3);max-width:var(--list-max);width:100%;margin:0;padding:0;list-style:none}.project-item,.projects-list{flex-direction:column;display:flex}.project-item{background:var(--card);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow),var(--card-border-glow);gap:var(--space-2);padding:var(--space-3)var(--space-4)}.project-item-header{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.project-title{font-size:var(--fs-1);margin:0}.project-year{color:var(--muted);font-size:var(--fs--2);letter-spacing:.08rem;text-transform:uppercase}.project-summary{color:var(--text);margin:0}.project-tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-tag{border-radius:999px}.project-link,.project-tag{border:var(--border-width)solid var(--border-color);color:var(--accent);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs)}.project-link{border-radius:999px;align-self:flex-start}.pagination{margin-top:var(--space-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.page-link{border:var(--border-width)solid var(--border-color);color:var(--muted);font-size:var(--fs--2);letter-spacing:.1rem;padding:var(--space-3xs)var(--space-2xs);text-transform:uppercase;transition:color var(--dur-fast)var(--ease-out-soft),border var(--dur-fast)var(--ease-out-soft),background var(--dur-fast)var(--ease-out-soft);border-radius:999px}.page-link:focus-visible,.page-link:hover{border-color:var(--border);color:var(--accent)}.page-link.active{background:var(--accent);color:var(--brand-light);border-color:#0000}.page-link.disabled{opacity:.45;pointer-events:none}.work-detail{gap:var(--space-l)}.work-hero{background:var(--image-background-color,var(--background-color-dimmed));border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow);max-width:var(--list-max);padding:var(--space-m);view-transition-name:work-hero;width:100%;position:relative;overflow:hidden}.work-hero-image{aspect-ratio:16/9;border-radius:var(--radius-md);object-fit:cover;transform:translateY(var(--hero-parallax,0));will-change:transform;width:100%;display:block}.work-hero-skeleton{border-radius:var(--radius-md);inset:var(--space-m);background:linear-gradient(120deg,#43a69714,#43a69733,#43a69714) 0 0/200% 200%;animation:1.8s ease-in-out infinite skeleton-shimmer;position:absolute}@keyframes skeleton-shimmer{0%{background-position:0}to{background-position:100%}}.work-body{max-width:var(--list-max);flex-direction:column;width:100%}.work-body,.work-meta-row{gap:var(--space-2xs);display:flex}.work-meta-row{flex-wrap:wrap;align-items:center}.work-back{border:var(--border-width)solid var(--border-color);color:var(--text);font-size:var(--fs--2);align-self:flex-start;align-items:center;gap:var(--space-2xs);padding:var(--space-3xs)var(--space-2xs);border-radius:999px;text-decoration:none;display:inline-flex}.work-back:hover{border-color:var(--accent);color:var(--accent)}.work-title{color:var(--headings-color);font-size:var(--fs-3);margin:0}.work-summary{color:var(--text);margin:0}.work-meta{color:var(--muted);font-size:var(--fs--1);margin:0}.work-tags{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.work-link,.work-tag{border:var(--border-width)solid var(--border-color);color:var(--accent);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);border-radius:999px}.work-link{align-self:flex-start}.work-sections{gap:var(--space-m);max-width:var(--list-max);flex-direction:column;width:100%;display:flex}.work-section{border-top:var(--border-width)solid var(--border-color);padding-top:var(--space-3);width:100%;scroll-margin-top:120px}.work-section-title{color:var(--muted);font-size:var(--fs--1);letter-spacing:.12rem;margin:0 0 var(--space-2xs);text-transform:uppercase}.work-section-text{color:var(--text);margin:0}.work-section-grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}.work-section-block{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);padding:var(--space-3)}.work-links,.work-tools{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.work-tool{border:var(--border-width)solid var(--border-color);color:var(--accent);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);border-radius:999px}.work-gallery{gap:var(--space-3);flex-direction:column;display:flex}.work-gallery-item{appearance:none;color:inherit;cursor:zoom-in;text-align:left;background:0 0;border:none;width:100%;padding:0;display:block}.work-gallery-figure{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);padding:var(--space-s);margin:0}.work-gallery-image{aspect-ratio:16/9;background:var(--background-color-dimmed);border-radius:var(--radius-sm);object-fit:cover;width:100%;display:block}.work-gallery-caption{color:var(--muted);font-size:var(--fs--2);margin-top:var(--space-2xs)}.work-layout{gap:var(--space-l);max-width:calc(var(--list-max) + 240px);grid-template-columns:1fr;width:100%;display:grid}.work-layout .work-sections{max-width:none}.work-toc{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);padding:var(--space-s);align-self:flex-start;display:none;position:sticky;top:140px}.work-toc-title{color:var(--muted);font-size:var(--fs--2);letter-spacing:.12rem;margin:0 0 var(--space-2xs);text-transform:uppercase}.work-toc-list{gap:var(--space-3xs);flex-direction:column;display:flex}.work-toc-link{color:var(--text);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);transition:color var(--dur-fast)var(--ease-out-soft),background var(--dur-fast)var(--ease-out-soft);border-radius:8px;text-decoration:none}.work-toc-link.is-active,.work-toc-link:focus-visible,.work-toc-link:hover{background:var(--background-color-dimmed);color:var(--accent)}.work-pager{gap:var(--space-2);max-width:var(--list-max);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));width:100%;display:grid}.work-pager-link{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);color:var(--text);gap:var(--space-3xs);padding:var(--space-2);flex-direction:column;text-decoration:none;display:flex}.work-pager-label{color:var(--muted);font-size:var(--fs--2);letter-spacing:.1rem;text-transform:uppercase}.work-pager-title{color:var(--headings-color);font-size:var(--fs-0)}.work-lightbox{opacity:0;pointer-events:none;transition:opacity var(--dur-medium)var(--ease-out-soft);z-index:9999;background:#0a0c0d99;place-items:center;display:grid;position:fixed;inset:0}.work-lightbox--open{opacity:1;pointer-events:auto}.work-lightbox-card{background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);gap:var(--space-2);padding:var(--space-3);transition:transform var(--dur-medium)var(--ease-out-soft);flex-direction:column;width:min(92vw,960px);display:flex;transform:translateY(6px)scale(.98)}.work-lightbox--open .work-lightbox-card{transform:translateY(0)scale(1)}.work-lightbox-image{background:var(--background-color-dimmed);border-radius:var(--radius-sm);object-fit:contain;width:100%;max-height:70vh}.work-lightbox-caption{color:var(--muted);margin:0}.work-lightbox-close{border:var(--border-width)solid var(--border-color);color:var(--text);padding:var(--space-3xs)var(--space-2xs);background:0 0;border-radius:999px;align-self:flex-start}.before-after{aspect-ratio:16/9;background:var(--background-color-highlight);border:var(--border-width)solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-glow),var(--card-border-glow);position:relative;overflow:hidden}.before-after-pane{position:absolute;inset:0;overflow:hidden}.before-after-pane--after{width:var(--split,50%)}.before-after-image{aspect-ratio:16/9;object-fit:cover;width:100%;height:100%}.before-after-handle{background:var(--accent);bottom:0;left:calc(var(--split,50%) - 1px);pointer-events:none;width:2px;position:absolute;top:0;box-shadow:0 0 12px #43a69759}.before-after-range{accent-color:var(--accent);cursor:ew-resize;opacity:0;touch-action:pan-x;z-index:2;background:0 0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}@media (min-width:900px){.work-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-layout{grid-template-columns:220px minmax(0,1fr);align-items:start}.work-toc{display:block}}.timeline{align-items:center;gap:var(--card-gap);flex-direction:column;width:100%;display:flex}.timeline-item{border-radius:var(--radius-md);max-width:var(--card-max);background:#1b1b1b;border:1px solid #ffffff0f;width:100%;overflow:hidden}.timeline-toggle{color:inherit;cursor:pointer;font:inherit;gap:var(--space-2);padding:var(--space-3)var(--space-4);text-align:left;background:0 0;border:none;justify-content:space-between;width:100%;display:flex}.timeline-title h3{margin:0 0 .25rem}.timeline-org{color:var(--accent);font-size:.85rem}.timeline-date{color:var(--muted);white-space:nowrap;font-size:.85rem}.timeline-body{opacity:0;max-height:0;padding:0 var(--space-4);transition:max-height var(--dur-medium)var(--ease-out-soft),opacity var(--dur-medium)var(--ease-out-soft),padding var(--dur-medium)var(--ease-out-soft);overflow:hidden}.timeline-body.open{opacity:1;max-height:320px;padding:var(--space-2)var(--space-4)var(--space-3)}.writing-list{gap:var(--card-gap);justify-items:center;width:100%;padding:0;list-style:none;display:grid}.writing-item{border-radius:var(--radius-md);gap:var(--space-2);max-width:var(--card-max);padding:var(--space-2)var(--space-3);background:#1b1b1b;border:1px solid #ffffff0f;justify-content:space-between;width:100%;display:flex}.writing-link{color:var(--accent)}.writing-date{color:var(--muted);font-size:.85rem}.contact-card{border-radius:var(--radius-lg);gap:var(--space-3);max-width:var(--card-max);padding:var(--space-5);text-align:center;background:#1b1b1b;border:1px solid #ffffff0f;flex-direction:column;width:100%;margin:0 auto;display:flex}.contact-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.btn,.contact-actions{justify-content:center}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.6rem 1.4rem;font-family:inherit;font-weight:600;display:inline-flex}.btn.primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn.ghost{border-color:var(--btn-ghost-border);color:var(--accent);background:0 0}.social-menu{align-items:flex-end;gap:var(--space-2);z-index:50;flex-direction:column;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.menu-button{background:var(--btn-primary-bg);color:var(--btn-primary-text);cursor:pointer;border:none;border-radius:999px;padding:.65rem 1.2rem;font-family:inherit;box-shadow:0 12px 24px #00000059}.menu-button,.social-links{z-index:1;position:relative}.social-links{opacity:0;pointer-events:none;transition:opacity var(--dur-medium)var(--ease-out-soft),transform var(--dur-medium)var(--ease-out-soft);flex-direction:column;gap:.6rem;display:flex;transform:translateY(10px)}.social-links.open{opacity:1;pointer-events:auto;transform:translateY(0)}.social-icon{border:1px solid var(--border);color:var(--text);opacity:0;transition:transform var(--dur-medium)var(--ease-out-soft),border var(--dur-fast)var(--ease-out-soft),opacity var(--dur-medium)var(--ease-out-soft);background:#0a090ccc;border-radius:999px;align-items:center;gap:.5rem;padding:.55rem .9rem;display:inline-flex;transform:translateY(16px)}.social-icon:hover{border-color:var(--accent);transform:translateY(0)translate(-4px)}.social-links.open .social-icon{opacity:1;transform:translateY(0)}.social-svg{display:block}.footer{color:var(--muted);font-size:var(--fs--2);padding:var(--space-m)0 var(--space-xl);text-align:center}.footer-links{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.footer-link{border:var(--border-width)solid var(--border-color);color:var(--muted);font-size:var(--fs--2);padding:var(--space-3xs)var(--space-2xs);border-radius:999px}.footer-link:focus-visible,.footer-link:hover{color:var(--accent)}@media (max-width:720px){.app-shell{padding-top:var(--space-4)}.site-header{flex-direction:column;align-items:center}.nav-links,.site-header-left,.site-header-right{flex-wrap:wrap;justify-content:center}.hero{padding:var(--space-4)0 0}}::view-transition-new(root){animation-duration:var(--vt-duration);animation-fill-mode:both;animation-timing-function:var(--vt-ease);background:var(--bg);color:var(--text);mix-blend-mode:normal}::view-transition-old(root){animation-duration:var(--vt-duration);animation-fill-mode:both;animation-timing-function:var(--vt-ease);background:var(--bg);color:var(--text);mix-blend-mode:normal}::view-transition-group(root){background:var(--bg)}::view-transition-image-pair(root){background:var(--bg)}::view-transition-old(root){animation-name:vt-fade-out}::view-transition-new(root){animation-name:vt-fade-in}::view-transition-old(work-hero){animation:vt-hero-out var(--vt-duration)var(--vt-ease)both;background:var(--bg-elev);mix-blend-mode:normal}::view-transition-new(work-hero){animation:vt-hero-in var(--vt-duration)var(--vt-ease)both;background:var(--bg-elev);mix-blend-mode:normal}::view-transition-group(work-hero){background:var(--bg-elev)}::view-transition-image-pair(work-hero){background:var(--bg-elev)}@keyframes brand-pulse{0%,to{opacity:.8;text-shadow:0 0 #43a69700}50%{opacity:1;text-shadow:0 0 28px #43a697bf}}@keyframes vt-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:.01;transform:translateY(calc(var(--vt-distance)*-1))}}@keyframes vt-fade-in{0%{opacity:.01;transform:translateY(var(--vt-distance))}to{opacity:1;transform:translateY(0)}}@keyframes vt-hero-out{0%{opacity:1;transform:scale(1)}to{opacity:.92;transform:scale(.98)}}@keyframes vt-hero-in{0%{opacity:.92;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.featured-card:focus-visible,.featured-card:hover,.media-card:focus-visible,.media-card:hover{transform:none!important}.gallery-modal,.gallery-modal--open,.gallery-modal-card{transition:none!important;transform:none!important}.work-hero-image{transform:none!important}.work-lightbox,.work-lightbox-card{transition:none!important;transform:none!important}::view-transition-new(root){animation:none!important}::view-transition-new(work-hero){animation:none!important}::view-transition-old(root){animation:none!important}::view-transition-old(work-hero){animation:none!important}*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}html{scroll-behavior:auto}}