*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-geist-sans),sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.mx-auto{margin-left:auto;margin-right:auto}.mb-3{margin-bottom:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-20{width:5rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.bg-\[\#386da5\]{--tw-bg-opacity:1;background-color:rgb(56 109 165/var(--tw-bg-opacity,1))}.bg-paper{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-white\/50{background-color:rgb(255 255 255/.5)}.bg-white\/80{background-color:rgb(255 255 255/.8)}.p-5{padding:1.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-24{padding-bottom:6rem}.pt-10{padding-top:2.5rem}.text-center{text-align:center}.font-sans{font-family:var(--font-geist-sans),sans-serif}.font-serif{font-family:Georgia,Cambria,Times New Roman,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-ink{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-slate{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{color-scheme:light}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#111}a{color:inherit;text-decoration:none}*{box-sizing:border-box}::-moz-selection{background:#bdbdbd;color:#111}::selection{background:#bdbdbd;color:#111}:root{--paper:#fff;--surface:#f8f8f8;--soft:#f0f0f0;--ink:#111;--slate:#444;--muted:#686868;--line:#dedede;--accent:#333;--accent-dark:#111;--on-ink:#fff}.bg-paper{background-color:var(--paper)}.text-ink{color:var(--ink)}.text-slate{color:var(--slate)}.text-muted{color:var(--muted)}.text-accent{color:var(--accent)}.border-line{border-color:var(--line)}.site-header{position:relative;z-index:20;border-bottom:1px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter:blur(14px)}.site-header-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px}.site-nav{min-width:0;justify-self:start}.site-side-switch{justify-self:end}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--ink);color:var(--on-ink);font-family:Georgia,serif;font-size:13px;letter-spacing:-.04em}.nav-link{flex:none;border-radius:999px;padding:9px 13px;color:var(--muted);font-size:13px;font-weight:600;transition:color .2s,background .2s}.nav-link-active,.nav-link:hover{color:var(--ink);background:#eeeee8}.nav-cv{flex:none;margin-left:5px;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;transition:all .2s}.nav-cv:hover{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.eyebrow-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px var(--soft)}.section-title{margin-top:10px;font-family:Georgia,Cambria,serif;font-size:clamp(30px,4vw,46px);line-height:1.12;letter-spacing:-.035em}.home-stack .section-title,.projects-page-intro h1{font-family:var(--font-geist-sans),Arial,sans-serif;font-size:clamp(26px,3vw,36px);font-weight:400;letter-spacing:-.05em}.projects-page-intro h1{line-height:1.12}.projects-page-intro p{font-family:var(--font-geist-sans),Arial,sans-serif;font-size:18px;line-height:1.75}.section-link{flex:none;color:var(--accent-dark);font-size:13px;font-weight:700}.section-link span{padding-left:5px}.shadow-panel{box-shadow:0 12px 36px rgba(32,40,35,.055)}.home-stack{display:flex;flex-direction:column;gap:74px}.intro-band{grid-column:1;grid-row:2}.intro-bio{max-width:700px;margin-top:0;color:var(--slate);font-size:18px;line-height:1.75}.advisor-link{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.advisor-link:focus-visible,.advisor-link:hover{text-decoration-thickness:2px}.intro-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.intro-links a{display:inline-flex;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);transition:border .2s,background .2s,transform .2s}.intro-links a:focus-visible,.intro-links a:hover{border-color:var(--ink);background:var(--soft);transform:translateY(-3px)}.intro-links .social-icon{display:block;width:22px;height:22px;-o-object-fit:contain;object-fit:contain;transition:filter 1s ease}body[data-text-mode=night] .intro-links .social-icon{filter:invert(1)}.intro-portrait-column{position:relative;grid-column:2;grid-row:1/span 2;width:100%;max-width:232px;align-self:center;justify-self:center}.intro-portrait-wrap{width:100%}.intro-portrait-link{position:relative;display:block;aspect-ratio:1;border-radius:50%;outline-offset:15px;perspective:1400px}.intro-portrait-link:before{position:absolute;inset:-16px;border:2px dashed var(--muted);border-radius:50%;content:"";transition:transform .8s ease,border-color .4s ease}.portrait-orbit{position:absolute;border:1px dashed var(--muted);border-radius:50%;pointer-events:none}.portrait-orbit-mid{inset:-34px;opacity:.45}.portrait-orbit-far{inset:-54px;opacity:.22}.intro-photo-flip{position:absolute;inset:0;display:block;border-radius:50%;transform-style:preserve-3d;transition:transform 2s cubic-bezier(.35,0,.65,1)}.intro-photo-flip-night{transform:rotateY(180deg)}.intro-photo-face{position:absolute;inset:0;display:block;overflow:hidden;border-radius:50%;backface-visibility:hidden;-webkit-backface-visibility:hidden}.intro-photo-back{transform:rotateY(180deg)}.intro-portrait{display:block;width:100%;height:100%;aspect-ratio:1;border-radius:50%;-o-object-fit:cover;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s ease}.portrait-link-cue{position:absolute;right:-8px;bottom:5px;border:1px solid var(--line);border-radius:999px;background:var(--paper);padding:8px 12px;color:var(--ink);font-size:10px;font-weight:700;opacity:0;transform:translateY(7px);transition:opacity .3s ease,transform .3s ease,background-color .4s ease}.intro-portrait-link:is(:hover,:focus-visible):before{border-color:var(--ink);transform:rotate(65deg) scale(1.04)}.intro-portrait-link:is(:hover,:focus-visible) .portrait-orbit-mid{transform:rotate(-35deg) scale(1.025)}.intro-portrait-link:is(:hover,:focus-visible) .portrait-orbit-far{transform:rotate(24deg) scale(1.015)}.intro-portrait-link:is(:hover,:focus-visible) .intro-portrait{transform:scale(1.035);box-shadow:0 18px 40px #00000026}.intro-portrait-link:is(:hover,:focus-visible) .portrait-link-cue{opacity:1;transform:translateY(0)}.home-news,.side-deck{width:calc(100% + 64px);margin-left:-32px;scroll-margin-top:28px}.home-news{--news-axis-x:125px;--news-left-offset:clamp(24px,7vw,88px);margin-top:-28px}.home-news-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;margin-bottom:36px;padding:0 48px 0 24px}.home-news-heading .section-title{margin-top:0}.home-news-all{font-size:17px;font-weight:700;white-space:nowrap}.home-news-all:focus-visible,.home-news-all:hover{text-decoration:underline;text-underline-offset:4px}.news-timeline{position:relative;width:min(calc(100% - var(--news-left-offset) - var(--news-left-offset)),980px);margin:0 0 0 var(--news-left-offset);padding:0;list-style:none}.news-timeline:before{position:absolute;top:0;bottom:0;left:var(--news-axis-x);border-left:2px solid var(--line);content:""}.news-timeline-item{position:relative;display:grid;grid-template-columns:94px minmax(0,1fr);gap:62px;padding:0 0 32px}.news-timeline-item:last-child{padding-bottom:0}.news-timeline-item:before{position:absolute;z-index:1;top:6px;left:calc(var(--news-axis-x) - 4px);width:9px;height:9px;border:2px solid var(--paper);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink);content:""}.news-timeline-item time{padding-top:3px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-align:right;text-transform:uppercase}.news-timeline-text{max-width:900px;color:var(--slate);font-size:17px;line-height:1.65}.news-timeline-text strong{color:var(--ink);font-weight:700}.news-inline-link{color:var(--ink);text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:3px}.news-inline-link:focus-visible,.news-inline-link:hover{text-decoration-color:var(--ink);text-decoration-thickness:2px}.news-inline-link:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.news-list-page h1{margin-bottom:34px;font-family:var(--font-geist-sans),Arial,sans-serif;font-size:clamp(26px,3vw,36px);font-weight:400;letter-spacing:-.05em}.news-list{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.news-list-item{border-bottom:1px solid var(--line);padding:5px 0}.news-list-card{display:grid;grid-template-columns:40px 112px minmax(0,1fr);gap:22px;width:100%;border-left:3px solid transparent;border-radius:10px;background:transparent;padding:18px 20px;color:inherit;text-align:left;transition:background-color .25s ease,box-shadow .25s ease,border-color .25s ease,transform .25s ease}.news-list-item:focus-visible .news-list-card,.news-list-item:hover .news-list-card{border-left-color:var(--ink);background:var(--soft);box-shadow:0 8px 24px #0000000c;transform:translateY(-2px)}.news-list-item:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:10px}.news-list-emoji{grid-column:1;grid-row:1;display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);font-size:20px;line-height:1;transition:background-color 2s ease,border-color 2.2s ease}.news-list-item time{grid-column:2;grid-row:1;padding-top:9px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.news-list-copy{grid-column:3;grid-row:1;color:var(--slate);font-size:16px;line-height:1.7}.news-list-item strong{color:var(--ink);font-weight:700}.news-timeline-more{display:flex;width:min(calc(100% - var(--news-left-offset) - var(--news-left-offset)),980px);flex-direction:column;gap:7px;margin:14px 0 0 var(--news-left-offset);padding-left:calc(var(--news-axis-x) - 1px)}.news-timeline-more span{width:3px;height:3px;border-radius:50%;background:var(--muted)}.news-timeline-empty{display:flex;width:min(calc(100% - var(--news-left-offset) - var(--news-left-offset)),980px);align-items:center;gap:22px;margin:0 0 0 var(--news-left-offset);border-left:2px solid var(--line);padding:12px 0 12px 26px;color:var(--muted);font-size:14px}.news-timeline-dot{width:9px;height:9px;margin-left:-31px;border-radius:50%;background:var(--ink)}.side-deck-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;margin-bottom:36px;padding:0 48px 0 24px}.side-deck-heading .section-title{margin-top:0}.home-contact{width:calc(100% + 64px);margin-left:-32px;border-top:1px solid var(--line);padding:30px 48px 8px 24px}.home-contact .section-title{margin-top:0}.home-contact p{max-width:980px;margin-top:20px;color:var(--slate);font-size:20px;line-height:1.7}.home-contact-link{display:inline-flex;align-items:center;gap:10px;margin-top:24px;border-radius:999px;background:var(--ink);padding:13px 21px;color:var(--on-ink);font-size:16px;font-weight:700}.home-stack .home-contact-link{transition:transform .2s ease,background-color 2s ease,color .8s ease}.home-contact-arrow{display:grid;width:26px;height:26px;place-items:center;border:1px solid;border-radius:50%}.home-contact-arrow svg{width:15px;height:15px}.home-contact-link:focus-visible,.home-contact-link:hover{background:var(--accent);transform:translateY(-2px)}.home-contact-link:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.side-deck-all{font-size:17px;font-weight:700;white-space:nowrap}.side-deck-all:focus-visible,.side-deck-all:hover{text-decoration:underline;text-underline-offset:4px}.selected-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}@media (max-width:600px){.selected-project-grid{grid-template-columns:1fr}}.project-card-media{aspect-ratio:2.2;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--project-page-background) 42%,var(--surface));padding:16px;transition:background-color 2s ease,border-color 2s ease}.project-card-artwork,.project-card-media{position:relative;display:block;overflow:hidden}.project-card-artwork{width:100%;height:100%;border:1px solid #00000012;border-radius:12px;background:#fff;box-shadow:0 8px 24px #00000010;transition:background-color 2s ease,box-shadow .3s ease,transform .3s ease}.project-card-image{-o-object-fit:contain;object-fit:contain;transition:filter 2s ease}body[data-text-mode=night] .project-card-artwork{background:#e0e0e0}body[data-text-mode=night] .project-card-image{filter:brightness(.88) saturate(.9)}.group:focus-within .project-card-artwork,.group:hover .project-card-artwork{box-shadow:0 14px 30px #00000018;transform:translateY(-2px)}.project-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:17px}.project-card-meta time{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.04em}.project-card-status{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--soft);padding:5px 9px;color:var(--slate);font-size:11px;font-weight:600;line-height:1;text-transform:capitalize;transition:color 2s ease,background-color 2s ease,border-color 2s ease}.project-card-status-published{border-color:#b9d1eb;background:#e3efff;color:#235686}body[data-text-mode=night] .project-card-status-published{border-color:#385f83;background:#1a354d;color:#c5e0ff}.project-grid-tags{margin-top:10px;color:var(--slate);font-size:13px;font-weight:700;line-height:1.5}.project-badges{position:absolute;z-index:2;top:0;left:0;display:flex;align-items:flex-start;gap:6px;max-width:100%;pointer-events:none}.project-venue-badge{display:inline-flex;align-items:center;max-width:100%;overflow:hidden;border-radius:0 16px 16px 0;background:#36785c;padding:10px 19px 10px 16px;color:#fff;font-size:14px;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap;transition:background-color 2s ease}body[data-text-mode=night] .project-venue-badge{background:#428564}.project-venue-badge-orange{background:#af5a23}body[data-text-mode=night] .project-venue-badge-orange{background:#bf692d}.project-award-badge{position:relative;display:inline-grid;min-width:39px;min-height:37px;place-items:center;border-radius:12px;background:#386da5;color:#fff;cursor:help;font-size:16px;line-height:1;pointer-events:auto;transition:background-color .2s ease}.project-award-badge:focus-visible,.project-award-badge:hover{background:#27588d}.project-award-tooltip{position:absolute;top:calc(100% + 8px);left:0;width:-moz-max-content;width:max-content;max-width:min(240px,70vw);border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:8px 10px;color:var(--ink);font-size:12px;font-weight:600;line-height:1.35;opacity:0;box-shadow:0 8px 20px #00000020;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease;visibility:hidden;white-space:normal}.project-award-badge:focus-visible .project-award-tooltip,.project-award-badge:hover .project-award-tooltip{opacity:1;transform:translateY(0);visibility:visible}.project-card-footer{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:auto;padding-top:22px}.project-card-footer a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:13px;font-weight:700}.project-card-link-label{text-decoration:underline;text-underline-offset:4px}.project-card-footer a:focus-visible .project-card-link-label,.project-card-footer a:hover .project-card-link-label{text-decoration-thickness:2px}.project-feature{position:relative;isolation:isolate;min-height:285px;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--surface);transition:background-color 2s ease,border-color 2.2s ease,box-shadow .3s ease,transform .3s ease}.project-feature:focus-within,.project-feature:hover{transform:translateY(-3px);box-shadow:0 16px 36px #00000012}.project-feature-media{position:absolute;z-index:0;inset:0 auto 0 0;display:block;width:56%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 56%,transparent 88%);mask-image:linear-gradient(90deg,#000 0,#000 56%,transparent 88%)}body[data-text-mode=night] .project-feature-media:before{position:absolute;inset:0;display:block;background:#b8b8b8;content:"";-webkit-mask-image:linear-gradient(180deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(180deg,transparent,#000 14%,#000 86%,transparent)}.project-feature-image-frame{position:absolute;z-index:1;inset:12.5% 0;display:block;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent)}@media (min-width:768px){body[data-text-mode=night] .project-feature-image-frame{-webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent)}}.project-feature-image{-o-object-fit:cover;object-fit:cover;-o-object-position:left center;object-position:left center;filter:saturate(.85);transition:filter 2s ease}body[data-text-mode=night] .project-feature-image{filter:brightness(.72) saturate(.8)}.project-feature-placeholder{display:grid;height:100%;place-items:center;padding:24px;color:var(--muted);font-family:Georgia,Cambria,serif;font-size:clamp(24px,3vw,42px);line-height:1.1;text-align:center}.project-feature-copy{position:relative;z-index:1;display:flex;width:52%;min-height:285px;flex-direction:column;justify-content:center;margin-left:auto;padding:32px 36px 32px 20px}.project-feature-title{color:var(--ink);font-family:Georgia,Cambria,serif;font-size:clamp(27px,3vw,36px);line-height:1.12;letter-spacing:-.035em}.project-feature-description{max-width:560px;margin-top:14px;color:var(--slate);font-size:16px;line-height:1.65}.project-feature .project-card-footer{margin-top:0;padding-top:24px}@media (max-width:767px){.project-feature-media{inset:0 0 auto;width:100%;height:285px;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 48%,transparent 78%);mask-image:linear-gradient(180deg,#000 0,#000 48%,transparent 78%)}.project-feature-image-frame{inset:0;-webkit-mask-image:none;mask-image:none}.project-feature-image{-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center;padding:16px 0 80px}.project-feature-copy{width:100%;min-height:0;margin-left:0;padding:230px 24px 28px}.project-feature-title{font-size:clamp(26px,7vw,34px)}}.record-controls{display:flex;gap:7px;border:1px solid var(--line);border-radius:999px;background:var(--soft);padding:5px}.record-tab{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:transparent;padding:7px 12px 7px 7px;color:var(--muted);cursor:pointer;font:inherit;font-size:11px;font-weight:700;transition:background .2s,color .2s,box-shadow .2s}.record-tab-active{box-shadow:0 2px 8px #00000012}.record-tab-dot{display:grid;width:23px;height:23px;place-items:center;border-radius:50%;font-family:Georgia,serif;font-size:12px}.record-tab-active .record-tab-dot{background:var(--ink);color:var(--on-ink)}body{transition:background-color .75s,color .75s}body[data-site-mode=night]{background:var(--project-page-background);color:var(--ink)}.min-h-screen.bg-paper{background-color:var(--paper);transition:background-color .75s,color .75s}.site-header,footer{transition:background-color .75s,border-color .75s}body[data-site-mode=night] .site-header{border-color:var(--line);background:color-mix(in srgb,var(--paper) 92%,transparent)}body[data-site-mode=night] footer{border-color:var(--line);background:color-mix(in srgb,var(--surface) 52%,transparent)}.intro-zone{--signal-overhang-left:clamp(24px,calc(50vw - 568px),72px);--signal-overhang-right:clamp(8px,calc(50vw - 568px),44px);position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,740px) 232px;-moz-column-gap:40px;column-gap:40px;justify-content:start;width:calc(100% + 64px);margin-left:-32px;border-bottom:1px solid var(--line);padding:0 0 54px 24px;perspective:1400px}.intro-signal-field{position:absolute;z-index:0;top:0;bottom:0;left:calc(0px - var(--signal-overhang-left));display:block;width:calc(100% + var(--signal-overhang-left) + var(--signal-overhang-right));height:100%;cursor:pointer;touch-action:pan-y}.intro-signal-field:focus-visible{outline:2px solid var(--ink);outline-offset:-5px;border-radius:8px}.intro-zone{cursor:pointer}.intro-signal-hint{position:absolute;z-index:1;right:10px;bottom:16px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.08em;pointer-events:none}.intro-walker-track{position:absolute;z-index:2;right:0;bottom:-1px;left:0;height:95px;overflow:hidden;pointer-events:none}.intro-walker{position:absolute;bottom:0;left:0;width:56px;height:56px;overflow:visible;color:rgba(28,111,150,.72);transform:translate3d(var(--walker-x,4px),0,0)}body[data-text-mode=night] .intro-walker{color:rgba(129,226,234,.8)}.intro-walker path,.intro-walker-head{stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.intro-walker-head{fill:var(--paper)}.intro-walker-far-limb{opacity:.5}.intro-walker-shadow{fill:currentColor;stroke:none}.home-titlebar,.intro-band,.intro-portrait-column{position:relative;z-index:1}.home-titlebar{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:14px}.home-titlebar .eyebrow{font-size:13px}.home-wordmark{max-width:760px;font-family:var(--font-geist-sans),Arial,sans-serif;font-size:clamp(28px,3.8vw,42px);font-weight:650;letter-spacing:-.05em;line-height:1.15}.home-wordmark strong{font-weight:inherit}.home-wordmark-line{display:block;white-space:nowrap;color:inherit}body[data-site-mode=night] .intro-zone{border-color:var(--line)}body[data-site-mode=night] .record-controls{background:var(--soft);border-color:var(--line)}@media (min-width:768px) and (max-width:1100px){.intro-zone{--signal-overhang-left:32px;--signal-overhang-right:24px;grid-template-columns:minmax(0,1fr) 180px;-moz-column-gap:44px;column-gap:44px;padding-left:0}.home-contact,.home-news,.intro-zone,.side-deck{width:100%;margin-left:0}.home-news-heading,.side-deck-heading{padding:0}.home-contact{padding:28px 0 0}.home-titlebar{grid-column:1/-1}.intro-portrait-column{grid-row:2;max-width:180px}.intro-portrait-link:before{inset:-14px}.portrait-orbit-mid{inset:-27px}.portrait-orbit-far{inset:-40px}}@media (max-width:767px){.intro-zone{--signal-overhang-left:16px;--signal-overhang-right:16px;grid-template-columns:minmax(0,1fr);width:100%;margin-left:0;padding:0 0 37px;cursor:auto}.intro-signal-field,.intro-signal-hint,.intro-walker-track{display:none}.home-contact,.home-news,.side-deck{width:100%;margin-left:0}.home-news{--news-axis-x:87px;--news-left-offset:16px}.home-stack .home-news{margin-top:-20px}.home-news-heading{padding:0}.news-timeline-item{grid-template-columns:67px minmax(0,1fr);gap:40px}.news-timeline-text{font-size:15px}.news-list-card{grid-template-columns:38px minmax(0,1fr);gap:8px 14px;padding:16px 14px}.news-list-emoji{grid-row:1/span 2}.news-list-item time{grid-column:2;grid-row:1;padding-top:2px}.news-list-copy{grid-column:2;grid-row:2;font-size:15px}.side-deck-heading{padding:0}.home-contact{padding:28px 0 0}.home-contact p{font-size:18px}.home-titlebar{grid-column:1;grid-row:2;align-items:flex-start}.home-wordmark{font-size:clamp(17px,5.2vw,24px)}.intro-band{grid-row:3}.intro-portrait-column{grid-column:1;grid-row:1;width:160px;max-width:100%;margin:34px auto 48px}.intro-portrait-link:before{inset:-8px}.portrait-orbit-mid{inset:-17px}.portrait-orbit-far{inset:-26px}.home-titlebar .eyebrow{font-size:12px}.intro-bio{font-size:16px;line-height:1.7}.intro-links{margin-top:18px}.home-stack{gap:55px}}@media (max-width:1050px){.site-header-main{grid-template-columns:minmax(0,1fr) auto;gap:14px}.site-nav{grid-column:1/-1;grid-row:2;justify-self:stretch}.site-side-switch{grid-column:2;grid-row:1}}@media (max-width:480px){.site-header-main:has(.site-side-switch) .site-brand-name{display:none}.site-side-switch .record-controls{gap:3px;padding:4px}.site-side-switch .record-tab{gap:5px;padding:5px 7px 5px 5px;font-size:10px}.site-side-switch .record-tab-dot{width:20px;height:20px}}body{--project-start:#f3f4f1;--project-end:#cbdde3;--project-progress:0%;--project-progress-inverse:100%;--project-strength:0%;--project-strength-inverse:100%;--project-tint:color-mix(in srgb,var(--project-start) var(--project-progress-inverse),var(--project-end) var(--project-progress));--project-page-background:color-mix(in srgb,var(--paper) var(--project-strength-inverse),var(--project-tint) var(--project-strength));background-color:var(--project-page-background);color:var(--ink);transition:background-color 2s cubic-bezier(.22,.61,.36,1),color 2s ease}body[data-site-mode=night]{--paper:#080808;--project-start:#11171b;--project-end:#24333b}body[data-project-scroll-active]{transition:background-color 0s,color 2s ease!important}body[data-text-mode=night]{--surface:#171717;--soft:#242424;--ink:#f6f6f6;--slate:#cecece;--muted:#a5a5a5;--line:#3b3b3b;--accent:#dedede;--accent-dark:#fff;--on-ink:#080808;color-scheme:dark}.min-h-screen.bg-paper{background-color:var(--project-page-background)!important;transition:background-color 2s cubic-bezier(.22,.61,.36,1),color 2s ease}body[data-project-scroll-active] .min-h-screen.bg-paper{transition:background-color 0s,color 2s ease!important}.site-header{background:color-mix(in srgb,var(--paper) 92%,transparent)}.site-header,footer{transition:background-color 2s cubic-bezier(.22,.61,.36,1),border-color 2.2s ease}footer{background:color-mix(in srgb,var(--surface) 52%,transparent)}.brand-mark,.intro-links a,.nav-cv,.nav-link,.record-controls,.record-tab,.record-tab-dot{transition:color 2s ease,border-color 2.2s ease,background-color 2s cubic-bezier(.22,.61,.36,1),box-shadow 2.2s ease}.nav-link-active,.nav-link:hover{background:var(--soft)}.record-controls{background:color-mix(in srgb,var(--soft) 84%,transparent);border-color:var(--line)}.record-tab-active{background:var(--surface);color:var(--ink)}.record-tab-dot{background:var(--soft);color:var(--accent-dark)}.bg-white\/80{background-color:var(--surface)}.bg-white\/50{background-color:color-mix(in srgb,var(--surface) 52%,transparent)}.bg-white\/80{transition:background-color 2s cubic-bezier(.22,.61,.36,1),border-color 2.2s ease,color .8s ease,transform .2s ease,box-shadow .2s ease}.home-stack :is(h1,h2,h3,h4,p,a,span,article,button,section),.site-header,footer{transition-property:color,border-color,background-color,box-shadow;transition-duration:2s,2.2s,2s,2.2s;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.home-stack .project-card-artwork{transition:background-color 2s ease,box-shadow .3s ease,transform .3s ease}.home-stack .intro-photo-flip{transition:transform 2s cubic-bezier(.35,0,.65,1)}.home-stack .bg-white\/80{transition:background-color 2s cubic-bezier(.22,.61,.36,1),border-color 2.2s ease,color .8s ease,transform .2s ease,box-shadow .2s ease}.news-inline-link,.news-list-copy,.news-list-item strong,.news-list-item time,.news-timeline-item time,.news-timeline-text,.news-timeline-text strong,.text-accent,.text-ink,.text-muted,.text-slate{transition:color .8s ease}.home-stack .portrait-link-cue{transition:opacity .3s ease,transform .3s ease,background-color .4s ease}.home-stack .portrait-orbit{transition:transform .9s ease}body{isolation:isolate}body[data-theme-reveal-active]{background-color:var(--theme-old-background)!important;transition:none!important}body[data-theme-reveal-active] .min-h-screen.bg-paper{background-color:transparent!important;transition:none!important}.theme-background-reveal{position:fixed;z-index:-1;inset:0;pointer-events:none;background-color:var(--project-page-background);clip-path:circle(0 at var(--theme-origin-x,50vw) var(--theme-origin-y,20vh));animation:reveal-new-background 1.5s linear both}@keyframes reveal-new-background{0%{clip-path:circle(0 at var(--theme-origin-x,50vw) var(--theme-origin-y,20vh))}to{clip-path:circle(var(--theme-reveal-radius,180vmax) at var(--theme-origin-x,50vw) var(--theme-origin-y,20vh))}}@media (prefers-reduced-motion:reduce){.intro-walker{left:50%;transform:translateX(-50%)}.home-stack .intro-photo-flip,.home-stack .portrait-link-cue,.home-stack .portrait-orbit,.intro-portrait,.intro-portrait-link:before,.news-list-card{transition:none}.news-list-item:focus-visible .news-list-card,.news-list-item:hover .news-list-card{transform:none}}.first\:border-t:first-child{border-top-width:1px}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:text-accent:hover{--tw-text-opacity:1;color:rgb(15 118 110/var(--tw-text-opacity,1))}.hover\:text-ink:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\:shadow-panel:hover{--tw-shadow:0 24px 60px rgba(15,23,42,0.08);--tw-shadow-colored:0 24px 60px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:768px){.md\:block{display:block}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:pb-0{padding-bottom:0}.md\:pt-16{padding-top:4rem}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_8eaea4{font-family:Geist,Geist Fallback;font-style:normal}.__variable_8eaea4{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_8c25df{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_8c25df{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}