.portfolio-shell{--portfolio-paper:#f8f7f3;--portfolio-panel:#efeee8;--portfolio-ink:#222927;--portfolio-muted:#58625e;--portfolio-accent:#38564b;--portfolio-line:#d3d6ce;--portfolio-gutter:clamp(24px, 6vw, 96px);color:var(--portfolio-ink);background:var(--portfolio-paper);font:16px/1.7 var(--font-geist-sans), sans-serif;overflow-wrap:break-word;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;min-height:100vh}.portfolio-shell *,.portfolio-shell :before,.portfolio-shell :after{box-sizing:border-box}.portfolio-shell :is(h1,h2,h3,p){margin:0}.portfolio-shell :is(h1,h2,h3){letter-spacing:-.035em;font-weight:400;line-height:1.14}.portfolio-shell h1{font-family:Georgia,serif;font-size:clamp(42px,5.5vw,76px)}.portfolio-shell h2{font-family:Georgia,serif;font-size:clamp(32px,3.3vw,46px)}.portfolio-shell h3{font-size:clamp(23px,2.2vw,30px)}.portfolio-shell a{color:inherit;text-decoration:none}.portfolio-shell a:hover{color:var(--portfolio-accent)}.portfolio-shell :is(a,button,summary):focus-visible{outline-offset:5px;outline:3px solid #8e4829;box-shadow:none!important}.portfolio-shell :is(main,section,[id]){scroll-margin-top:28px}.portfolio-shell main:focus{outline:none}.portfolio-shell .portfolio-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portfolio-skip{z-index:200;background:var(--portfolio-ink);padding:12px 20px;position:fixed;top:12px;left:12px;transform:translateY(-180%);color:#fff!important}.portfolio-skip:focus{transform:none}.portfolio-header{padding:25px var(--portfolio-gutter);border-bottom:1px solid var(--portfolio-line);justify-content:space-between;align-items:center;gap:24px 40px;display:flex}.portfolio-brand{letter-spacing:-.03em;white-space:nowrap;align-items:center;min-height:44px;font-size:19px;font-weight:500;display:inline-flex}.portfolio-header nav{flex-wrap:wrap;justify-content:flex-end;gap:0 clamp(18px,2.4vw,38px);display:flex}.portfolio-header nav a{align-items:center;min-height:44px;font-size:14px;display:inline-flex}.portfolio-shell .portfolio-footer{padding:30px var(--portfolio-gutter) 28px;background:var(--portfolio-panel);color:var(--portfolio-ink);border-top:1px solid var(--portfolio-line);margin:0;display:block}.portfolio-destinations{grid-template-columns:1fr 1fr;column-gap:64px;display:grid}.portfolio-destinations a{border-bottom:1px solid var(--portfolio-line);letter-spacing:-.04em;justify-content:space-between;align-items:center;gap:20px;min-height:104px;padding:22px 0;font-size:clamp(23px,2.6vw,37px);line-height:1.2;display:flex}.portfolio-destinations a span{color:var(--portfolio-accent);font-size:25px}.portfolio-footer-bottom{color:var(--portfolio-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 30px;padding-top:28px;font-size:13px;display:flex}.portfolio-footer-bottom>a{align-items:center;min-height:44px;display:inline-flex}.portfolio-profile{max-width:1440px;padding:0 var(--portfolio-gutter);margin:auto}.profile-intro{max-width:870px;padding:100px 0 85px}.profile-intro>p{color:var(--portfolio-muted);max-width:740px;margin-top:28px;font-size:clamp(20px,2.1vw,27px);line-height:1.65}.profile-intro nav{flex-wrap:wrap;gap:12px 28px;margin-top:28px;display:flex}.portfolio-inline-link{border-bottom:1px solid var(--portfolio-accent);align-items:center;gap:30px;min-height:48px;font-size:15px;display:inline-flex}.profile-section{border-top:1px solid var(--portfolio-line);grid-template-columns:minmax(160px,.7fr) minmax(0,1.4fr);gap:36px 90px;padding:70px 0;display:grid}.profile-section h2{font-size:clamp(30px,3vw,39px)}.profile-section h3{font-size:23px}.profile-section p{color:var(--portfolio-muted)}.profile-section h3+p{margin-top:10px}.profile-education>p{margin-bottom:30px}.profile-credentials{margin-top:32px}.profile-credentials>summary{cursor:pointer;min-height:44px;color:var(--portfolio-accent);padding:10px 0;display:list-item}.profile-credentials .credential-group{border-top:1px solid var(--portfolio-line);margin-top:24px;padding-top:20px}.profile-credentials .credential-group-heading{justify-content:space-between;gap:18px;font-size:14px;display:flex}.profile-credentials .credential-group-heading span{color:var(--portfolio-muted);text-align:right}.profile-credentials ul{color:var(--portfolio-muted);margin:12px 0 0;padding-left:20px}.profile-job+.profile-job{border-top:1px solid var(--portfolio-line);margin-top:36px;padding-top:36px}.profile-job time{color:var(--portfolio-muted);margin-bottom:12px;font-size:13px;display:block}.profile-job p+p{margin-top:16px}.profile-writing article+article{border-top:1px solid var(--portfolio-line);margin-top:28px;padding-top:28px}.profile-writing article>p{margin-top:12px}.profile-writing .portfolio-inline-link{margin-top:8px}.profile-contact nav{flex-wrap:wrap;gap:12px 24px;margin-top:24px;display:flex}.profile-contact>p{max-width:620px}.portfolio-shell .resume-page{padding:36px var(--portfolio-gutter) 85px;background:var(--portfolio-paper);min-height:auto}.portfolio-shell .resume-sheet{max-width:1130px;box-shadow:none;background:0 0;border:0;border-radius:0;margin:auto;padding:42px 0 0}.portfolio-shell .resume-toolbar{border-bottom:1px solid var(--portfolio-line);max-width:1130px;margin:auto;padding:0 0 25px}.portfolio-shell .resume-header{border-bottom-color:var(--portfolio-line)}.portfolio-shell .resume-header h1{font-size:clamp(42px,5.5vw,70px)}.portfolio-shell .resume-header>div>p:last-child{color:var(--portfolio-muted);font-size:17px}.portfolio-shell .resume-label{color:var(--portfolio-accent);letter-spacing:0;text-transform:none;font:inherit;margin-bottom:18px}.portfolio-shell .resume-header address{color:var(--portfolio-muted)}.portfolio-shell .resume-layout{grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr);gap:70px}.portfolio-shell .resume-section>h2{color:var(--portfolio-ink);letter-spacing:-.03em;text-transform:none;border-bottom-color:var(--portfolio-line);font-family:Georgia,serif;font-size:29px}.portfolio-shell .resume-section h3{font-size:18px;font-weight:500;line-height:1.4}.portfolio-shell .resume-entry>p,.portfolio-shell .resume-job>p,.portfolio-shell .resume-skill-group p,.portfolio-shell .resume-side-entry p{color:var(--portfolio-muted)}.portfolio-shell .resume-entry{border-bottom-color:var(--portfolio-line)}.portfolio-shell .resume-entry a{text-underline-offset:5px;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}@media (width<=900px){.portfolio-header{flex-direction:column;align-items:flex-start;gap:6px}.portfolio-header nav{justify-content:flex-start;gap:0 24px}.profile-section{gap:28px 44px}.portfolio-shell .resume-layout{grid-template-columns:1fr}}@media (width<=600px){.portfolio-header{padding-top:16px;padding-bottom:14px}.portfolio-header nav{gap:0 19px}.portfolio-header nav a{font-size:13px}.portfolio-destinations{grid-template-columns:1fr}.portfolio-destinations a{min-height:84px;font-size:26px}.profile-intro{padding:58px 0}.profile-section{grid-template-columns:1fr;padding:44px 0}.portfolio-shell .resume-page{padding-top:24px}.portfolio-shell .resume-header{grid-template-columns:1fr;gap:28px}.portfolio-shell .resume-entry-heading{flex-direction:column;gap:8px}}@media (prefers-reduced-motion:reduce){.portfolio-shell,.portfolio-shell *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.portfolio-shell{color:#222;background:#fff;font-size:12pt}.portfolio-header,.portfolio-footer,.portfolio-skip,.portfolio-shell .resume-toolbar{display:none!important}.portfolio-shell .resume-page,.portfolio-shell .resume-sheet{background:#fff;margin:0;padding:0}.portfolio-shell .resume-layout{display:block}.portfolio-shell .resume-header h1{font-size:32pt}.portfolio-shell .resume-section>h2{font-size:20pt}.portfolio-shell .resume-section h3{font-size:13pt}.portfolio-shell .resume-section{break-inside:auto}.portfolio-shell .resume-entry{break-inside:avoid}}.portfolio-shell.portfolio-chrome{min-height:0}.portfolio-shell .resume-header address{font-family:inherit;font-size:13px}.portfolio-shell .resume-toolbar{letter-spacing:0;font-family:inherit;font-size:14px;font-weight:400}.observatory-site{color:#22282a;overflow-wrap:anywhere;background:#f7f7f2}.observatory-site *{box-sizing:border-box}.observatory-site :is(h1,h2,h3,p,figure){margin:0}.observatory-site a{color:inherit}.observatory-site a:hover{color:var(--obs-accent,#204d68)}.observatory-site :is(a,button,summary):focus-visible{outline-offset:5px;outline:3px solid #b84e21;box-shadow:none!important}.observatory-site :is(main,[id]){scroll-margin-top:95px}.observatory-site main:focus{outline:none}.observatory-site{--obs-paper:#f8f4ea;--obs-ink:#332537;--obs-muted:#665765;--obs-accent:#76324f;--obs-line:#c6b9bd;--obs-panel:#eae0d5;--obs-pad:clamp(24px,5.5vw,88px);--obs-display:Georgia,serif;font:17px/1.65 var(--font-geist-sans),sans-serif;background:var(--obs-paper);color:var(--obs-ink)}.observatory-site :is(h1,h2,h3){font-family:var(--obs-display);letter-spacing:-.04em;font-weight:400;line-height:1.05}.observatory-site .portfolio-header{padding:24px var(--obs-pad);border-bottom:1px solid var(--obs-line);justify-content:space-between;align-items:center;gap:24px 50px;display:flex}.observatory-site .portfolio-brand{min-height:44px;font-family:var(--obs-display);letter-spacing:-.04em;align-items:center;font-size:26px;display:inline-flex}.observatory-site .portfolio-header nav{flex-wrap:wrap;gap:6px 26px;display:flex}.observatory-site .portfolio-header nav a{align-items:center;min-height:44px;font-size:14px;display:inline-flex}.observatory-site .obs-galaxy{margin:24px clamp(12px,2vw,32px) 0}.observatory-site .obs-galaxy #nebula-explorer{border-radius:2px}.observatory-site .obs-projects{padding:70px var(--obs-pad) 110px}.observatory-site .obs-section-heading{align-items:center;gap:30px;margin-bottom:52px;display:flex}.observatory-site .obs-section-heading h2{font-size:clamp(65px,9vw,138px)}.observatory-site .obs-project h3{font-size:clamp(34px,3.5vw,58px)}.observatory-site .obs-project-summary{max-width:68ch;color:var(--obs-muted);margin-top:18px;font-size:18px;line-height:1.7}.observatory-site .obs-study-link{border-bottom:1px solid var(--obs-accent);justify-content:space-between;align-items:center;gap:26px;min-height:48px;margin-top:24px;font-size:14px;display:inline-flex}.observatory-site .obs-study-link span{transition:transform .2s}.observatory-site .obs-study-link:hover span{transform:translate(3px,-3px)}.observatory-site .obs-figure{min-width:0}.observatory-site .obs-figure-image{background:#fff;transition:box-shadow .25s,transform .25s;display:block}.observatory-site .obs-figure img{object-fit:contain;width:100%;height:auto;display:block}.observatory-site .obs-figure figcaption{color:var(--obs-ink);border-top:1px solid var(--obs-line);margin-top:22px;padding-top:24px;font-size:18px;line-height:1.7}.observatory-site .obs-figure figcaption>a{text-underline-offset:4px;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}.observatory-site .portfolio-footer{padding:40px var(--obs-pad) 24px;background:var(--obs-panel);color:var(--obs-ink);border-top:1px solid var(--obs-line);margin:0;display:block}.observatory-site .portfolio-footer nav{grid-template-columns:1.4fr 1fr 1fr;gap:30px;display:grid}.observatory-site .portfolio-footer nav a{border-bottom:1px solid var(--obs-line);min-height:100px;font-family:var(--obs-display);letter-spacing:-.035em;justify-content:space-between;align-items:center;gap:25px;padding:20px 0;font-size:clamp(27px,3vw,42px);line-height:1.1;display:flex}.observatory-site .portfolio-footer-bottom{color:var(--obs-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px 25px;margin-top:30px;font-size:16px;display:flex}.observatory-site .portfolio-footer-bottom a{align-items:center;min-height:44px;display:inline-flex}.observatory-site .obs-case{padding:38px var(--obs-pad) 0;max-width:1600px;margin:auto}.observatory-site .obs-back{align-items:center;min-height:44px;font-size:14px;display:inline-flex}.observatory-site .obs-case-hero{padding:55px 0 68px}.observatory-site .obs-case-hero h1{max-width:1180px;font-size:clamp(54px,7.5vw,112px)}.observatory-site .obs-case-question{max-width:890px;color:var(--obs-muted);margin-top:30px;font-size:clamp(21px,2.3vw,30px);line-height:1.5}.observatory-site .obs-case-hero nav{flex-wrap:wrap;gap:4px 28px;margin-top:30px;display:flex}.observatory-site .obs-case-hero nav a{border-bottom:1px solid var(--obs-line);align-items:center;min-height:44px;font-size:14px;display:inline-flex}.observatory-site .obs-case h2{letter-spacing:-.035em;max-width:42ch;font-size:clamp(26px,2.4vw,32px);line-height:1.25}.observatory-site .obs-reading{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;padding:26px 0 0;font-size:18px;line-height:1.7;display:grid}.observatory-site .obs-reading h3{margin-bottom:20px;font-size:24px;line-height:1.3}.observatory-site .obs-reading aside{background:var(--obs-panel);align-self:start;min-width:0;padding:28px}.observatory-site .obs-reading ul{margin:0;padding-left:20px}.observatory-site .obs-reading li+li{margin-top:20px}.observatory-site .obs-sources{border-top:1px solid var(--obs-line);padding:40px 0}.observatory-site .obs-sources>h2{margin-bottom:30px}.observatory-site .obs-evidence-link{border-top:1px solid var(--obs-line);justify-content:space-between;align-items:center;gap:30px;min-height:88px;padding:20px 0;display:flex}.observatory-site .obs-evidence-link strong{font-size:18px;font-weight:500;line-height:1.5;display:block}.observatory-site .obs-evidence-link>div{min-width:0}.observatory-site .obs-evidence-detail{max-width:68ch;color:var(--obs-muted);margin-top:8px;font-size:18px;line-height:1.7}.observatory-site .obs-technical>summary{cursor:pointer;min-height:48px;margin-top:12px;padding:12px 0;font-size:18px;line-height:1.5}.observatory-site .obs-next{border-top:1px solid var(--obs-line);flex-wrap:wrap;justify-content:space-between;gap:20px 40px;padding:30px 0 60px;display:flex}.observatory-site .obs-next a{align-items:center;gap:25px;min-height:44px;display:inline-flex}.observatory-site .obs-next a:first-child{font-family:var(--obs-display);font-size:32px;line-height:1.2}.observatory-site :is(h1,h2,h3){font-family:var(--obs-display)}.observatory-site .profile-intro{max-width:1050px}.observatory-site .profile-section h2{font-size:clamp(33px,3.6vw,52px)}.observatory-site .profile-section h3{font-size:26px}.observatory-site{--obs-paper:#f0f5f5;--obs-ink:#152f3c;--obs-muted:#465f69;--obs-accent:#006b70;--obs-line:#9bb5b9;--obs-panel:#dfebeb;--obs-display:"Avenir Next",var(--font-geist-sans),sans-serif;font-family:"Avenir Next",var(--font-geist-sans),sans-serif}.observatory-site .portfolio-header{padding-block:16px}.observatory-site .portfolio-brand{letter-spacing:-.035em;font-size:22px;font-weight:500}.observatory-site .portfolio-header nav{font-family:var(--font-geist-mono),monospace}.observatory-site .portfolio-header nav a{font-size:12px}.observatory-site .obs-galaxy{margin:28px var(--obs-pad) 0;border:1px solid var(--obs-line);background:#dae6e8;padding:8px}.observatory-site .obs-section-heading{border-block:1px solid var(--obs-line);margin-bottom:0;padding:22px 0}.observatory-site .obs-section-heading h2{letter-spacing:-.07em;font-size:clamp(42px,5.4vw,76px)}.observatory-site .obs-heading-mark{border:1px solid var(--obs-accent);background:linear-gradient(90deg,transparent calc(50% - .5px),var(--obs-accent) calc(50% - .5px),var(--obs-accent) calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),var(--obs-accent) calc(50% - .5px),var(--obs-accent) calc(50% + .5px),transparent calc(50% + .5px));width:22px;height:22px;margin-left:auto}.observatory-site .obs-project{border-bottom:1px solid var(--obs-line);grid-template-columns:1.15fr 1fr;gap:60px;padding:34px 0;display:grid}.observatory-site .obs-project h3{letter-spacing:-.055em;font-size:clamp(29px,3vw,42px);font-weight:500}.observatory-site .obs-study-link{font:12px/1.5 var(--font-geist-mono),monospace;background:#deebea;border-bottom:0;margin-top:16px;padding:12px 15px}.observatory-site .obs-figure-image{border:1px solid var(--obs-line);background:#fff;padding:7px}.observatory-site .obs-figure-image:hover{box-shadow:0 0 0 3px #9bc4c599}.observatory-site .obs-case-hero{border-top:1px solid var(--obs-line);grid-template-columns:1.25fr 1fr;gap:25px 55px;margin-top:25px;padding:45px 0;display:grid}.observatory-site .obs-case-hero h1{letter-spacing:-.065em;font-size:clamp(47px,5.6vw,82px)}.observatory-site .obs-case-question{align-self:center;margin:0;font-size:21px}.observatory-site .obs-case-hero nav{font-family:var(--font-geist-mono),monospace;grid-column:1/-1}.observatory-site .portfolio-footer nav a{letter-spacing:-.055em;font-size:26px}.observatory-site .profile-intro{grid-template-columns:1.2fr 1fr;gap:28px 55px;max-width:none;padding:70px 0;display:grid}.observatory-site .profile-intro h1{font-size:clamp(55px,6vw,88px)}.observatory-site .profile-intro>p{margin:0;font-size:21px}.observatory-site .profile-intro nav{grid-column:1/-1;margin-top:0}.observatory-site .profile-section{grid-template-columns:.55fr 1.45fr;padding:40px 0}.observatory-site .profile-section h2{letter-spacing:-.05em;font-size:28px}.observatory-site{--portfolio-paper:var(--obs-paper);--portfolio-panel:var(--obs-panel);--portfolio-ink:var(--obs-ink);--portfolio-muted:var(--obs-muted);--portfolio-accent:var(--obs-accent);--portfolio-line:var(--obs-line);--portfolio-gutter:var(--obs-pad)}.observatory-site .portfolio-header nav{justify-content:flex-start}.observatory-site .portfolio-brand{font-family:var(--obs-display)}.observatory-site .resume-header h1{letter-spacing:-.065em;font-size:clamp(55px,6vw,88px)}.observatory-site .resume-section{border-color:var(--obs-line)}.observatory-site .resume-section h2{font-size:28px}.observatory-site .portfolio-footer nav{grid-template-columns:1.4fr 1fr 1fr}@media (width<=1000px){.observatory-site .portfolio-header{flex-direction:column;align-items:flex-start;gap:6px}.observatory-site .portfolio-header nav{gap:4px 22px}.observatory-site .obs-reading{grid-template-columns:1fr;gap:32px}}@media (width<=760px){.observatory-site .portfolio-header{padding-block:18px}.observatory-site .obs-projects{padding-top:45px;padding-bottom:65px}.observatory-site .obs-project{grid-template-columns:1fr;gap:30px}.observatory-site .portfolio-footer nav{grid-template-columns:1fr;gap:0}.observatory-site .portfolio-footer nav a{min-height:84px}.observatory-site :is(.obs-reading,.obs-case-hero,.profile-section,.profile-intro){grid-template-columns:1fr;gap:25px}.observatory-site .obs-case-question{font-size:21px}.observatory-site .obs-reading{padding-top:24px}}@media (prefers-reduced-motion:reduce){.observatory-site *,.observatory-site :before,.observatory-site :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.observatory-site{color:#000;background:#fff}.observatory-site .resume-header h1{font-size:32pt}}.observatory-site .obs-text-section,.observatory-site .obs-figure-section,.observatory-site .obs-technical-section{border-top:1px solid var(--obs-line);padding:40px 0}.observatory-site :is(.obs-text-section,.obs-figure-section)>h2{margin-bottom:24px}.observatory-site .obs-prose{max-width:68ch;font-size:18px;line-height:1.7}.observatory-site .obs-figure-explanation{max-width:68ch}.observatory-site :is(.obs-prose,.obs-figure-explanation,.obs-project-summary,.obs-case-question,.obs-evidence-detail) p+p,.observatory-site .obs-reading li p+p{margin-top:1.1em}.observatory-site .obs-caption-heading{font:500 20px/1.4 var(--obs-display);letter-spacing:-.025em;color:var(--obs-ink);margin:0 0 16px}.observatory-site .figure-title{margin:30px 0;font-size:clamp(36px,5vw,72px)}@media (width<=760px){.observatory-site :is(.obs-text-section,.obs-figure-section,.obs-technical-section,.obs-sources){padding-block:32px}.observatory-site .obs-reading aside{padding:22px}}@media screen{.observatory-site .profile-section{font-size:18px;line-height:1.7}.observatory-site .profile-section p{max-width:68ch}.observatory-site .profile-job time,.observatory-site .profile-credentials .credential-group-heading{font-size:16px}.observatory-site .resume-entry>p,.observatory-site .resume-job .resume-entry-heading>div>p,.observatory-site .resume-job>p,.observatory-site .resume-entry ul,.observatory-site .resume-skill-group p,.observatory-site .resume-side-entry p{font-size:17px;line-height:1.7}.observatory-site .resume-entry-heading>span,.observatory-site .resume-side-entry>span,.observatory-site .resume-header address{font-size:16px;line-height:1.6}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--ink:#17233d;--ink-2:#263552;--ink-soft:#58657b;--paper:#f7f5ef;--paper-bright:#fffefa;--paper-muted:#ebe8e1;--lavender:#e8e4ff;--lavender-strong:#c7bfff;--blue:#2d4cdd;--coral:#f26c55;--gold:#e7a511;--line:#17233d29;--line-dark:#ffffff2e;--shadow-soft:0 24px 70px #1924461f;--shadow-deep:0 38px 100px #0c122547;--scroll-progress:0%}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{background:var(--paper);color:var(--ink);font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif;-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}body::selection{background:var(--lavender-strong);color:var(--ink)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit}:focus-visible{outline:3px solid var(--paper-bright);outline-offset:2px;box-shadow:0 0 0 6px var(--ink)!important}.skip-link{z-index:200;background:var(--ink);color:#fff;border-radius:999px;padding:11px 16px;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:80;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f7f5efe0;border-bottom:1px solid #17233d1a;grid-template-columns:1fr auto 1fr;align-items:center;min-height:78px;padding:12px clamp(22px,4.6vw,78px);display:grid;position:sticky;top:0}.site-header:after{width:var(--scroll-progress);background:linear-gradient(90deg, var(--blue), var(--coral));content:"";height:2px;position:absolute;bottom:-1px;left:0;right:0}.brand{align-items:center;gap:12px;width:max-content;display:inline-flex}.brand-mark{width:42px;height:42px;font-family:var(--font-geist-mono), monospace;letter-spacing:-.08em;border:1px solid;border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid;position:relative}.brand-mark:before{border:1px solid var(--coral);content:"";border-radius:50%;width:50px;height:18px;position:absolute;transform:rotate(-24deg)}.brand-mark:after{background:var(--coral);content:"";border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:-2px;box-shadow:0 0 12px #f26c558c}.brand-mark span{z-index:1;position:relative}.brand-copy{gap:2px;display:grid}.brand-copy strong{letter-spacing:-.02em;font-size:13px}.brand-copy small{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.desktop-nav{font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;align-items:center;gap:30px;font-size:11px;display:flex}.desktop-nav a,.header-actions a,.footer-links a{position:relative}.desktop-nav a:after,.header-actions a:after,.footer-links a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .18s;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)}.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after,.header-actions a:hover:after,.header-actions a:focus-visible:after,.footer-links a:hover:after,.footer-links a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.header-actions{font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;justify-self:end;gap:24px;font-size:11px;font-weight:600;display:flex}.resume-link{color:var(--blue)}.mobile-menu{display:none}.hero{background:radial-gradient(circle at 10% 18%, #c7bfff66, transparent 29%), radial-gradient(circle at 92% 76%, #f26c551c, transparent 24%), linear-gradient(100deg, var(--paper) 0 63%, #f0eee9 63% 100%);grid-template-columns:minmax(0,7fr) minmax(430px,5fr);align-items:center;gap:clamp(50px,7vw,118px);min-height:calc(100svh - 78px);padding:clamp(58px,7vw,105px) clamp(22px,6.5vw,110px);display:grid;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background-image:linear-gradient(#2d4cdd0a 1px,#0000 1px),linear-gradient(90deg,#2d4cdd0a 1px,#0000 1px);background-size:74px 74px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 72%);mask-image:linear-gradient(90deg,#000,#0000 72%)}.hero-copy{z-index:2;max-width:870px;position:relative}.eyebrow,.section-kicker,.project-question{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 22px;font-size:11px;font-weight:650;line-height:1.5;display:flex}.status-dot{background:var(--coral);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 6px #f26c551f}.hero h1{letter-spacing:-.075em;max-width:920px;margin:0;font-size:clamp(55px,6.2vw,104px);font-weight:540;line-height:.94}.hero h1 em{color:var(--blue);letter-spacing:-.04em;font-family:Georgia,Times New Roman,serif;font-weight:400;display:block}.hero-intro{max-width:710px;color:var(--ink-soft);margin:30px 0 0;font-size:clamp(16px,1.25vw,19px);line-height:1.7}.hero-actions,.contact-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.button{border:1px solid var(--ink);min-height:52px;font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;border-radius:999px;justify-content:space-between;align-items:center;gap:24px;padding:0 22px;font-size:11px;font-weight:650;transition:transform .18s,background .18s,color .18s,box-shadow .18s;display:inline-flex}.button:hover,.button:focus-visible{transform:translateY(-3px)}.button-primary{border-color:var(--ink);background:var(--ink);color:#fff;box-shadow:0 14px 28px #17233d26}.button-primary:hover,.button-primary:focus-visible{border-color:var(--blue);background:var(--blue);box-shadow:0 18px 36px #2d4cdd3d}.button-secondary{background:#ffffff7a}.button-secondary:hover,.button-secondary:focus-visible{background:#fff}.hero-tool-row{flex-wrap:wrap;gap:8px;margin-top:25px;display:flex}.hero-tool-row span{border:1px solid var(--line);font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;background:#ffffff5c;border-radius:999px;padding:8px 10px;font-size:10px}.availability{border-left:2px solid var(--coral);max-width:650px;color:var(--ink-soft);margin:22px 0 0;padding-left:18px;font-size:13px;line-height:1.6}.hero-art{--tilt-x:0px;--tilt-y:0px;z-index:2;width:100%;max-width:590px;box-shadow:var(--shadow-deep);transform:translate(var(--tilt-x), var(--tilt-y));background:#ffffff59;border:1px solid #ffffff75;border-radius:220px 220px 30px 30px;justify-self:center;padding:18px;transition:transform .38s cubic-bezier(.2,.8,.2,1);position:relative}.hero-art-inner{aspect-ratio:4/5;background:var(--ink);border-radius:205px 205px 20px 20px;position:relative;overflow:hidden}.hero-art-inner img{object-fit:cover;width:100%;height:100%;animation:7s ease-in-out infinite alternate hero-float}.hero-art:before{z-index:2;background:radial-gradient(circle at 34% 28%, #fff4e6, var(--coral) 62%, #b53f33);content:"";border-radius:50%;width:88px;height:88px;position:absolute;top:38px;left:-32px;box-shadow:0 18px 38px #f26c5559}.hero-orbit{z-index:2;pointer-events:none;border:1px solid #e8e4ffa3;border-radius:50%;width:150%;height:38%;position:absolute;top:12%;right:-24%;transform:rotate(-28deg)}.hero-orbit span{background:var(--coral);offset-path:ellipse(50% 50% at 50% 50%);offset-rotate:0deg;border:2px solid #fff;border-radius:50%;width:12px;height:12px;animation:18s linear infinite orbit-travel;position:absolute;top:48%;left:-7px;box-shadow:0 0 20px #f26c55bf}.hero-proof-card{z-index:4;color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#111a32bd;border:1px solid #fff3;border-radius:16px;gap:5px;min-width:205px;padding:16px 18px;display:grid;position:absolute;box-shadow:0 18px 40px #080e1e47}.hero-proof-card span,.hero-proof-card small,.illustration-label{color:#ffffff9e;font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:10px;line-height:1.4}.hero-proof-card strong{font-size:14px;font-weight:620}.hero-proof-card-top{top:22%;left:-54px}.hero-proof-card-bottom{transition:transform .2s,background .2s;bottom:16%;right:-46px}.hero-proof-card-bottom:hover,.hero-proof-card-bottom:focus-visible{background:#2d4cddd6;transform:translateY(-4px)}.illustration-label{z-index:3;background:#0d14278a;border-radius:999px;margin:0;padding:7px 9px;font-size:10px;position:absolute;bottom:30px;right:32px}.proof-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper-bright);grid-template-columns:repeat(4,1fr);display:grid}.proof-band>div{border-right:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;min-height:112px;padding:24px clamp(20px,3.4vw,52px);display:grid}.proof-band>div:last-child{border-right:0}.proof-band strong{letter-spacing:-.07em;font-size:clamp(27px,2.5vw,42px);font-weight:560}.proof-band span{max-width:155px;color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;font-size:10px;line-height:1.5}.work-intro{background:var(--paper);grid-template-columns:.45fr 1.55fr;align-items:start;gap:clamp(50px,8vw,140px);padding:clamp(90px,10vw,150px) clamp(22px,6.5vw,110px) clamp(62px,7vw,105px);display:grid}.work-intro>div{grid-template-columns:minmax(0,1.15fr) minmax(280px,.55fr);align-items:end;gap:50px;display:grid}.work-intro h2,.case-study-header h2,.section-heading h2,.research-heading h2,.experience-intro h2,.contact-section h2{letter-spacing:-.07em;margin:0;font-size:clamp(44px,5.2vw,82px);font-weight:540;line-height:.98}.work-intro>div>p,.case-study-header>div:last-child>p,.section-heading>p,.research-heading>p,.experience-intro>p,.contact-section>p:not(.section-kicker){color:var(--ink-soft);margin:0;font-size:16px;line-height:1.75}.case-study{padding:clamp(85px,9vw,145px) clamp(22px,6.5vw,110px);position:relative;overflow:hidden}.case-study-dark{color:#fff;background:radial-gradient(circle at 12% 18%,#2d4cdd38,#0000 29%),linear-gradient(140deg,#1c2b53,#111a32 58%,#0c1327)}.case-study-dark:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 82%);mask-image:linear-gradient(#000,#0000 82%)}.case-study-sdss{background:radial-gradient(circle at 85% 14%, #f26c551f, transparent 25%), linear-gradient(145deg, #f3f0ff, var(--paper) 65%)}.case-study-header{z-index:1;grid-template-columns:.36fr 1.64fr;align-items:start;gap:clamp(38px,7vw,120px);margin-bottom:clamp(55px,7vw,95px);display:grid;position:relative}.case-study-header>div:last-child{grid-template-columns:minmax(0,1.15fr) minmax(260px,.48fr);align-items:end;gap:50px;display:grid}.case-study-dark .case-study-header>div:last-child>p{color:#ffffffa3}.case-study-index{align-items:flex-start;gap:16px;padding-top:10px;display:flex}.case-study-index>span{width:48px;height:48px;font-family:var(--font-geist-mono), monospace;border:1px solid;border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.case-study-index p{color:currentColor;font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;opacity:.68;text-transform:uppercase;margin:5px 0 0;font-size:10px;line-height:1.5}.case-study-layout{z-index:1;grid-template-columns:minmax(0,1.05fr) minmax(400px,.75fr);align-items:start;gap:clamp(42px,6vw,94px);display:grid;position:relative}.case-study-layout-reverse{grid-template-columns:minmax(400px,.75fr) minmax(0,1.05fr)}.case-study-copy{align-content:start;display:grid}.case-study-dark .project-question{color:#a9b7ff}.project-lede{color:currentColor;margin:0;font-size:clamp(18px,1.55vw,23px);line-height:1.58}.case-study-copy>p:not(.project-question,.project-lede,.boundary-note){color:var(--ink-soft);margin:26px 0 0;font-size:14px;line-height:1.75}.case-study-dark .case-study-copy>p:not(.project-question,.project-lede,.boundary-note){color:#ffffffa6}.project-results{grid-template-columns:1fr 1fr;gap:12px;margin-top:30px;display:grid}.project-results>div{border:1px solid var(--line);background:#ffffff7a;border-radius:16px;gap:6px;padding:18px;display:grid}.project-results-dark>div{background:#ffffff0d;border-color:#ffffff24}.project-results span,.project-results small{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.project-results-dark span,.project-results-dark small{color:#ffffff8c}.project-results strong{font-size:18px;font-weight:640}.deliverable-list{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.deliverable-list span{font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;background:#ffffff0d;border:1px solid #ffffff29;border-radius:999px;padding:8px 11px;font-size:10px}.deliverable-list-light span{border-color:var(--line);background:#ffffff8f}.artifact-links{flex-wrap:wrap;gap:18px;margin-top:28px;display:flex}.artifact-links a{font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;border-bottom:1px solid;padding-bottom:5px;font-size:11px;font-weight:650;transition:color .17s}.artifact-links a:hover,.artifact-links a:focus-visible{color:var(--blue)}.artifact-links-dark a:hover,.artifact-links-dark a:focus-visible{color:#a9b7ff}.boundary-note{border-left:3px solid var(--coral);color:#ffffffb8;background:#f26c551a;margin:28px 0 0;padding:17px 18px;font-size:12px;line-height:1.65}.boundary-note-light{color:var(--ink-soft)}.sdss-metric-grid{border:1px solid var(--line);background:var(--line);border-radius:18px;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:30px;display:grid;overflow:hidden}.sdss-metric-grid>div{background:#fffefae0;gap:7px;min-height:112px;padding:17px 13px;display:grid}.sdss-metric-grid strong{letter-spacing:-.07em;font-size:clamp(24px,2.25vw,36px);font-weight:560}.sdss-metric-grid span{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:9px;line-height:1.5}.project-gallery{grid-template-columns:1fr 1fr;gap:12px;min-width:0;display:grid}.gallery-item{border:1px solid var(--line);background:var(--paper-bright);cursor:zoom-in;text-align:left;border-radius:18px;min-width:0;padding:0;display:grid;position:relative;overflow:hidden}.gallery-item-primary{grid-column:1/-1}.project-gallery-dark .gallery-item{background:#192442;border-color:#ffffff24}.gallery-item img{object-fit:cover;width:100%;height:100%;min-height:200px;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .3s}.gallery-item-primary img{min-height:450px}.gallery-item:hover img,.gallery-item:focus-visible img{filter:saturate(1.06)contrast(1.02);transform:scale(1.025)}.gallery-caption{color:#fff;font-family:var(--font-geist-mono), monospace;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c1326c2;border:1px solid #ffffff2b;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:11px 13px;font-size:10px;line-height:1.4;display:grid;position:absolute;bottom:12px;left:12px;right:12px}.gallery-caption>span{color:#ffffff94}.image-dialog{color:#fff;background:#111a32;border:0;border-radius:22px;width:min(94vw,1280px);max-width:none;max-height:92vh;padding:0;overflow:hidden;box-shadow:0 38px 120px #0000007a}.image-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080d1cd1}.image-dialog-inner{max-height:92vh;padding:16px;display:grid}.image-dialog-inner>img{object-fit:contain;border-radius:12px;width:100%;max-height:calc(92vh - 120px)}.image-dialog-toolbar,.image-dialog-controls{justify-content:space-between;align-items:center;gap:16px;display:flex}.image-dialog-toolbar{padding:2px 3px 14px}.image-dialog-toolbar p{color:#ffffffa8;font-family:var(--font-geist-mono), monospace;letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:10px}.image-dialog button{color:#fff;cursor:pointer;min-height:40px;font-family:var(--font-geist-mono), monospace;background:#ffffff12;border:1px solid #ffffff38;border-radius:999px;padding:0 14px;font-size:10px}.image-dialog-controls{padding-top:12px}.project-section{background:var(--paper);padding:0 clamp(22px,6.5vw,110px) clamp(90px,10vw,150px);position:relative;overflow:hidden}.project-section:before{content:"";pointer-events:none;border:1px solid #2d4cdd1a;border-radius:50%;width:430px;height:430px;position:absolute;top:14%;right:-180px}.project-grid{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid;position:relative}.project-card.project-card-featured{grid-column:1/-1;grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr);display:grid}.project-archive-heading{border-top:1px solid var(--line);grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:32px;margin-top:clamp(52px,6vw,84px);padding-top:24px;display:flex}.project-archive-heading p{margin:0}.project-archive-heading>p:last-child{max-width:460px;color:var(--ink-soft);font-size:13px;line-height:1.65}.project-archive-grid{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.project-archive-grid .project-card h3{font-size:clamp(27px,2.3vw,38px)}.project-card-featured .project-card-media{aspect-ratio:auto;border-bottom:0;border-right:1px solid #ffffff1f;min-height:100%}.project-card-ledger .project-card-media{background:#fffefa}.project-card-ledger .project-card-media img{object-fit:contain;object-position:center}.project-card{border:1px solid var(--line);background:var(--paper-bright);border-radius:24px;flex-direction:column;min-width:0;scroll-margin-top:96px;transition:transform .26s cubic-bezier(.2,.8,.2,1),box-shadow .26s;display:flex;overflow:hidden;box-shadow:0 18px 55px #18203a14}.project-card:hover{transform:translateY(-5px);box-shadow:0 28px 76px #18203a24}.project-card-dark{color:#fff;background:radial-gradient(circle at 88% 8%,#4d65de52,#0000 29%),linear-gradient(145deg,#1b294f,#111a32 68%);border-color:#ffffff1a}.project-card-light{background:radial-gradient(circle at 90% 4%,#f26c5524,#0000 26%),linear-gradient(145deg,#f5f2ff,#fffefa 68%)}.project-card-media{aspect-ratio:16/9.4;border-bottom:1px solid var(--line);background:#e9e7ee;display:block;position:relative;overflow:hidden}.project-card-dark .project-card-media{background:#10182d;border-bottom-color:#ffffff1f}.project-card-video{background:#03050a}.project-card-video video{object-fit:contain;background:#03050a;width:100%;height:100%;display:block}.project-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.project-card-dark .project-card-media img{object-position:50% 30%}.project-card:hover .project-card-media img{transform:scale(1.025)}.project-card-media>span,.academic-card-media>span{color:#fff;font-family:var(--font-geist-mono), monospace;letter-spacing:.055em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c1326c2;border:1px solid #ffffff2e;border-radius:10px;padding:10px 12px;font-size:9px;position:absolute;bottom:14px;left:14px;right:14px}.project-card-body{flex-direction:column;flex:1;padding:clamp(27px,3vw,42px);display:flex}.project-card-meta{justify-content:space-between;align-items:center;gap:20px;display:flex}.project-card-meta p,.project-card-meta>span,.academic-card-type{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:9px;line-height:1.5}.project-card-dark .project-card-meta p{color:#b9c4ff}.project-card-body>.project-release-status{color:#b9c4ff;font-family:var(--font-geist-mono), monospace;letter-spacing:.055em;text-transform:uppercase;border-top:1px solid #ffffff29;border-bottom:1px solid #ffffff29;margin:18px 0 0;padding:12px 0;font-size:10px;font-weight:650;line-height:1.6}.project-release-status+h3{margin-top:18px}.project-card-meta>span{color:currentColor;border:1px solid;border-radius:50%;flex:none;place-items:center;width:35px;height:35px;display:grid}.project-card h3{letter-spacing:-.06em;margin:22px 0 0;font-size:clamp(30px,3vw,46px);font-weight:560;line-height:1.02}.project-card-body>p:not(.project-card-note){color:var(--ink-soft);margin:23px 0 0;font-size:14px;line-height:1.72}.project-card-dark .project-card-body>p:not(.project-card-note){color:#ffffffa8}.project-card .project-card-body>p.project-release-status{color:#b9c4ff;font-family:var(--font-geist-mono), monospace;letter-spacing:.055em;margin:18px 0 0;font-size:10px;font-weight:650;line-height:1.6}.project-card-stats{border:1px solid var(--line);background:var(--line);border-radius:14px;grid-template-columns:1fr 1fr;gap:1px;margin-top:27px;display:grid;overflow:hidden}.project-card-dark .project-card-stats{background:#ffffff21;border-color:#ffffff21}.project-card-stats>div{background:#ffffff94;gap:5px;padding:16px;display:grid}.project-card-dark .project-card-stats>div{background:#ffffff0d}.project-card-stats strong{letter-spacing:-.055em;font-size:clamp(22px,2.3vw,32px);font-weight:590}.project-card-stats span{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:9px}.project-card-dark .project-card-stats span{color:#ffffff80}.project-card .artifact-links{margin-top:25px}.project-card-note{border-top:1px solid var(--line);color:var(--ink-soft);margin:auto 0 0;padding-top:24px;font-size:11px;line-height:1.65}.project-card .artifact-links+.project-card-note{margin-top:25px}.project-card-dark .project-card-note{color:#ffffff8c;border-top-color:#ffffff1f}.toi-journey{z-index:1;border:1px solid var(--line);background:var(--paper-bright);border-radius:24px;margin-top:20px;position:relative;overflow:hidden;box-shadow:0 18px 55px #18203a14}.toi-journey-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.15fr) minmax(300px,.55fr);align-items:end;gap:clamp(40px,7vw,100px);padding:clamp(34px,4.5vw,64px);display:grid}.toi-journey-heading .section-kicker{margin-bottom:18px}.toi-journey-heading h2{letter-spacing:-.065em;max-width:850px;margin:0;font-size:clamp(38px,4vw,64px);font-weight:540;line-height:.98}.toi-journey-heading>p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.72}.toi-journey-shell{grid-template-columns:218px minmax(0,1fr);display:grid}.toi-journey-progress{border-right:1px solid var(--line);background:var(--lavender);min-width:0}.toi-journey-progress-status{border-bottom:1px solid var(--line);gap:12px;padding:24px 20px 20px;display:grid}.toi-journey-progress-status>span{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:650}.toi-journey-progress progress{appearance:none;background:#17233d1f;border:0;border-radius:999px;width:100%;height:4px;overflow:hidden}.toi-journey-progress progress::-webkit-progress-bar{background:#17233d1f;border-radius:999px}.toi-journey-progress progress::-webkit-progress-value{background:var(--blue);border-radius:999px;transition:width .26s cubic-bezier(.2,.8,.2,1)}.toi-journey-progress progress::-moz-progress-bar{background:var(--blue);border-radius:999px}.toi-journey-progress ol{margin:0;padding:0;list-style:none}.toi-journey-progress li+li{border-top:1px solid var(--line)}.toi-journey-progress button{width:100%;min-height:68px;color:var(--ink-soft);cursor:pointer;font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-align:left;text-transform:uppercase;background:0 0;border:0;grid-template-columns:32px 1fr;align-items:center;gap:12px;padding:13px 18px;font-size:10px;font-weight:650;transition:background .18s,color .18s;display:grid}.toi-journey-progress button:hover,.toi-journey-progress button:focus-visible{color:var(--blue);background:#ffffff85}.toi-journey-progress button[aria-current=step]{background:var(--paper-bright);color:var(--blue)}.toi-journey-progress button>span{border:1px solid;border-radius:50%;place-items:center;width:30px;height:30px;font-size:9px;display:grid}.toi-journey-progress button>strong{font:inherit}.toi-journey-content{background:var(--paper);grid-template-columns:minmax(0,1.06fr) minmax(330px,.84fr);gap:18px;min-width:0;padding:22px;display:grid}.toi-journey-figure{border:1px solid var(--line);background:#fff;border-radius:16px;align-self:start;min-width:0;margin:0;overflow:hidden}.toi-journey-figure>a,.toi-journey-figure-stage{display:block}.toi-journey-figure-stage{position:relative;overflow:hidden}.toi-journey-figure img{object-fit:contain;width:100%;height:auto;display:block}.toi-journey-focus{border:3px solid var(--coral);pointer-events:none;background:#f26c550d;border-radius:8px;width:94%;height:23%;transition:left .36s cubic-bezier(.2,.8,.2,1),top .36s cubic-bezier(.2,.8,.2,1),width .36s cubic-bezier(.2,.8,.2,1),height .36s cubic-bezier(.2,.8,.2,1);position:absolute;top:8%;left:3%;box-shadow:0 0 0 999px #0c132617}.toi-journey-focus>span{background:var(--ink);color:#fff;font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;border-radius:5px;padding:6px 8px;font-size:8px;font-weight:650;position:absolute;top:6px;left:6px}.toi-journey-focus[data-focus=bls-b]{width:46%;height:28%;top:34%;left:3%}.toi-journey-focus[data-focus=bls-c]{width:46%;height:28%;top:34%;left:51%}.toi-journey-focus[data-focus=folds]{width:94%;height:29%;top:65%;left:3%}.toi-journey-focus[data-focus=all]{width:97%;height:96%;top:1.5%;left:1.5%}.toi-journey-figure figcaption{border-top:1px solid var(--line);min-height:50px;color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.055em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 18px;padding:11px 14px;font-size:8px;line-height:1.45;display:flex}.toi-journey-figure figcaption a{color:var(--ink);border-bottom:1px solid;padding-bottom:2px}.toi-journey-figure figcaption a:hover,.toi-journey-figure figcaption a:focus-visible{color:var(--blue)}.toi-journey-guide{border:1px solid var(--line);background:var(--paper-bright);border-radius:16px;flex-direction:column;min-width:0;padding:clamp(24px,3vw,40px);display:flex}.toi-journey-guide article{animation:.32s cubic-bezier(.2,.8,.2,1) toi-step-in}.toi-journey-step-label{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:10px;font-weight:650}.toi-journey-guide h3{letter-spacing:-.055em;margin:16px 0 0;font-size:clamp(28px,2.65vw,40px);font-weight:560;line-height:1.03}.toi-journey-explanation{border-top:1px solid var(--line);gap:0;margin-top:24px;display:grid}.toi-journey-explanation>div{border-bottom:1px solid var(--line);padding:18px 0}.toi-journey-explanation h4{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.075em;text-transform:uppercase;margin:0;font-size:9px;font-weight:650}.toi-journey-explanation p{color:var(--ink-soft);margin:9px 0 0;font-size:13px;line-height:1.72}.toi-journey-values-label{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;margin:22px 0 0;font-size:8px;font-weight:650}.toi-journey-guide dl{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:9px 0 0;display:grid}.toi-journey-guide dl>div{grid-template-columns:minmax(112px,.62fr) 1fr;align-items:baseline;gap:14px;min-width:0;padding:10px 0;display:grid}.toi-journey-guide dl>div+div{border-top:1px solid var(--line)}.toi-journey-guide dt{overflow-wrap:anywhere;color:var(--blue);letter-spacing:-.025em;font-size:16px;font-weight:610}.toi-journey-guide dd{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.055em;text-transform:uppercase;margin:0;font-size:8px;line-height:1.45}.toi-journey-controls{gap:8px;margin-top:24px;display:flex}.toi-journey-controls button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;min-height:46px;font-family:var(--font-geist-mono), monospace;letter-spacing:.02em;text-align:center;border-radius:9px;flex:1 1 0;justify-content:center;align-items:center;padding:10px 13px;font-size:9px;font-weight:650;line-height:1.4;transition:background .18s,color .18s,transform .18s;display:inline-flex}.toi-journey-controls button:first-child{color:var(--ink);background:0 0}.toi-journey-controls button:hover:not(:disabled),.toi-journey-controls button:focus-visible:not(:disabled){background:var(--blue);color:#fff;transform:translateY(-2px)}.toi-journey-controls button:disabled{cursor:not-allowed;opacity:.32}.toi-journey-links{border-top:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:14px;margin-top:24px;padding-top:20px;display:flex}.toi-journey-links>span{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.065em;text-transform:uppercase;font-size:8px;font-weight:650}.toi-journey-links a{font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;border-bottom:1px solid;padding-bottom:4px;font-size:9px;font-weight:650}.toi-journey-links a:hover,.toi-journey-links a:focus-visible{color:var(--blue)}@keyframes toi-step-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.evidence-section{background:var(--paper-bright);padding:clamp(90px,10vw,155px) clamp(22px,6.5vw,110px)}.section-heading,.research-heading,.experience-intro{grid-template-columns:.35fr minmax(0,1fr) minmax(280px,.46fr);align-items:end;gap:clamp(35px,6vw,92px);margin-bottom:clamp(56px,7vw,96px);display:grid}.research-heading,.experience-intro{grid-template-columns:minmax(0,1.25fr) minmax(300px,.52fr)}.evidence-list{border-top:1px solid var(--line)}.evidence-row{border-bottom:1px solid var(--line);grid-template-columns:56px minmax(240px,.75fr) minmax(360px,1.15fr) minmax(180px,.48fr);align-items:start;gap:28px;padding:35px 0;display:grid}.evidence-number{border:1px solid var(--ink);width:42px;height:42px;font-family:var(--font-geist-mono), monospace;border-radius:50%;place-items:center;font-size:10px;display:grid}.evidence-row>div>p{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;margin:0 0 7px;font-size:10px;line-height:1.5}.evidence-row h3{letter-spacing:-.05em;margin:0;font-size:clamp(23px,2.1vw,34px);font-weight:570;line-height:1.08}.evidence-row>p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.7}.evidence-row>small{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;font-size:10px;line-height:1.65}.research-section{background:var(--paper-muted);padding:clamp(90px,10vw,155px) clamp(22px,6.5vw,110px)}.academic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.academic-card{border:1px solid var(--line);background:var(--paper-bright);border-radius:20px;flex-direction:column;min-width:0;transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s;display:flex;overflow:hidden;box-shadow:0 14px 44px #18203a12}.academic-card:hover{transform:translateY(-4px);box-shadow:0 23px 62px #18203a1f}.academic-card-project{background:linear-gradient(145deg,#eef0ff,#fffefa 70%)}.academic-card-dark{background:radial-gradient(circle at 90% 10%, #2d4cdd40, transparent 32%), var(--ink);color:#fff;border-color:#ffffff1a}.academic-card-media{aspect-ratio:4/3;border-bottom:1px solid var(--line);background:#fff;display:block;position:relative;overflow:hidden}.academic-card-dark .academic-card-media{border-bottom-color:#ffffff1c}.academic-card-media img{width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.academic-card:hover .academic-card-media img{transform:scale(1.02)}.academic-plot{background-color:#f4f5ff;background-image:linear-gradient(#2d4cdd12 1px,#0000 1px),linear-gradient(90deg,#2d4cdd12 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.academic-plot img{object-fit:contain;padding:clamp(18px,3vw,35px)}.academic-paper-preview img{object-fit:cover;object-position:50% 9%}.academic-card-body{flex-direction:column;flex:1;padding:clamp(25px,2.6vw,36px);display:flex}.academic-card-dark .academic-card-type{color:#b9c4ff}.academic-card h3{letter-spacing:-.055em;margin:17px 0 0;font-size:clamp(27px,2.4vw,38px);font-weight:560;line-height:1.04}.academic-card-body>p:not(.academic-card-type){color:var(--ink-soft);margin:20px 0 0;font-size:13px;line-height:1.72}.academic-card-dark .academic-card-body>p:not(.academic-card-type){color:#ffffffa3}.academic-links{flex-wrap:wrap;gap:16px;margin-top:auto;padding-top:24px;display:flex}.academic-links a{font-family:var(--font-geist-mono), monospace;letter-spacing:.035em;border-bottom:1px solid;padding-bottom:4px;font-size:10px;font-weight:650;transition:color .17s}.academic-links a:hover,.academic-links a:focus-visible{color:var(--blue)}.academic-card-dark .academic-links a:hover,.academic-card-dark .academic-links a:focus-visible{color:#b9c4ff}.academic-card-body small{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:20px;padding-top:17px;font-size:10px;line-height:1.6}.research-grid{grid-template-columns:1.08fr .92fr;gap:20px;display:grid}.research-story{border:1px solid var(--line);background:var(--paper-bright);box-shadow:var(--shadow-soft);overflow:hidden}.research-story-dark{background:var(--ink);color:#fff}.research-image{aspect-ratio:16/10;position:relative;overflow:hidden}.research-image img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.research-story:hover .research-image img{transform:scale(1.025)}.research-image>span{color:#ffffffb8;font-family:var(--font-geist-mono), monospace;letter-spacing:.05em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0d14279e;border-radius:999px;padding:7px 9px;font-size:9px;position:absolute;bottom:14px;right:14px}.research-story>div:last-child{padding:clamp(28px,4vw,52px)}.research-story>div:last-child>p:first-child{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;margin:0 0 18px;font-size:10px}.research-story-dark>div:last-child>p:first-child{color:#a9b7ff}.research-story h3{letter-spacing:-.06em;margin:0;font-size:clamp(30px,3vw,48px);font-weight:550;line-height:1.03}.research-story>div:last-child>p:last-child{color:var(--ink-soft);margin:22px 0 0;font-size:14px;line-height:1.75}.research-story-dark>div:last-child>p:last-child{color:#ffffffa3}.why-astronomy-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper-bright);grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr);align-items:start;gap:clamp(50px,9vw,150px);padding:clamp(90px,10vw,150px) clamp(22px,6.5vw,110px);display:grid}.why-astronomy-section h2{letter-spacing:-.07em;max-width:680px;margin:0;font-size:clamp(44px,5.2vw,82px);font-weight:540;line-height:.98}.why-astronomy-copy{gap:24px;padding-top:35px;display:grid}.why-astronomy-copy p{max-width:760px;color:var(--ink-soft);margin:0;font-size:clamp(17px,1.4vw,21px);line-height:1.72}.experience-section{background:var(--paper);padding:clamp(90px,10vw,155px) clamp(22px,6.5vw,110px)}.timeline{border-top:1px solid var(--line)}.timeline-row{border-bottom:1px solid var(--line);grid-template-columns:56px 155px minmax(250px,.7fr) minmax(360px,1.1fr);align-items:start;gap:28px;padding:34px 0;display:grid}.timeline-marker{border:1px solid var(--ink);width:42px;height:42px;font-family:var(--font-geist-mono), monospace;border-radius:50%;place-items:center;font-size:10px;display:grid}.timeline-row time,.timeline-row>div>p{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.05em;text-transform:uppercase;font-size:10px;line-height:1.55}.timeline-row h3{letter-spacing:-.045em;margin:0;font-size:24px;font-weight:580}.timeline-row>div>p{color:var(--blue);margin:8px 0 0}.timeline-row>p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.7}.about-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper-bright);grid-template-columns:1.05fr .95fr;min-height:520px;display:grid}.about-education,.credential-list{flex-direction:column;justify-content:center;padding:clamp(58px,7vw,110px);display:flex}.about-education{background:radial-gradient(circle at 86% 12%, #f26c5529, transparent 24%), var(--lavender)}.about-education h2{letter-spacing:-.07em;max-width:750px;margin:0;font-size:clamp(42px,5vw,76px);font-weight:540;line-height:.98}.about-education>p:last-child{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;margin:28px 0 0;font-size:11px}.credential-list{gap:0}.credential-group{border-top:1px solid var(--line);grid-template-columns:minmax(92px,.34fr) minmax(0,1fr);gap:18px;padding:20px 0;display:grid}.credential-group-heading strong{font-size:14px;line-height:1.5;display:block}.credential-group-heading span{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.05em;text-transform:uppercase;margin-top:6px;font-size:9px;line-height:1.5;display:block}.credential-group ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.credential-group li{font-size:14px;font-weight:600;line-height:1.5}.contact-section{background:var(--ink);color:#fff;text-align:center;place-items:center;min-height:690px;padding:110px 22px;display:grid;position:relative;overflow:hidden}.contact-section .section-kicker{color:#bdb4ff}.contact-section h2{z-index:1;max-width:1100px;font-size:clamp(58px,8vw,116px);line-height:.92}.contact-section>p:not(.section-kicker){z-index:1;color:#ffffffa6;max-width:650px;margin-top:32px}.contact-actions{z-index:1;justify-content:center}.contact-button{color:var(--ink);background:#fff;border-color:#fff}.contact-button:hover,.contact-button:focus-visible{border-color:var(--lavender-strong);background:var(--lavender-strong)}.contact-button-secondary{color:#fff;background:#ffffff0d;border-color:#ffffff8a}.contact-button-secondary:hover,.contact-button-secondary:focus-visible{background:#ffffff1f}.contact-orbit{border:1px solid #ffffff1f;border-radius:50%;width:min(92vw,1050px);height:min(39vw,450px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-8deg)}.contact-orbit:before{content:"";border:1px solid #ffffff14;border-radius:50%;width:62%;height:155%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(64deg)}.contact-orbit span{background:var(--coral);border-radius:50%;width:16px;height:16px;position:absolute;top:50%;right:-8px;box-shadow:0 0 30px #f26c55cc}footer{border-top:1px solid var(--line-dark);background:var(--ink);color:#fff;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;min-height:132px;padding:26px clamp(22px,5vw,78px);display:grid}.footer-brand .brand-mark{border-color:#fff}.footer-brand .brand-copy small,footer>p{color:#ffffff7a}footer>p{font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;margin:0;font-size:10px}.footer-links{font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;justify-self:end;gap:24px;font-size:10px;display:flex}.ledger-mobile-back{display:none}.ledger-hero{border-bottom:1px solid var(--line);background:var(--paper);grid-template-columns:minmax(0,.9fr) minmax(470px,.72fr);align-items:center;gap:clamp(44px,7vw,112px);min-height:min(820px,100svh - 78px);padding:clamp(64px,7vw,104px) clamp(22px,6.5vw,110px);display:grid;position:relative;overflow:hidden}.ledger-hero:before{content:none}.ledger-hero-copy,.ledger-hero-figure{z-index:1;position:relative}.ledger-hero h1{letter-spacing:-.072em;max-width:850px;margin:0;font-size:clamp(54px,6.2vw,96px);font-weight:550;line-height:.93}.ledger-hero-lede{max-width:720px;color:var(--ink-soft);margin:30px 0 0;font-size:clamp(17px,1.45vw,22px);line-height:1.65}.ledger-status{border-left:3px solid var(--coral);background:#f26c5517;gap:5px;max-width:660px;margin-top:28px;padding:17px 19px;display:grid}.ledger-status span,.ledger-status small{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;font-size:9px}.ledger-status strong{font-size:14px;line-height:1.5}.ledger-hero-figure{box-shadow:var(--shadow-soft);background:#ffffffad;border:1px solid #17233d21;border-radius:28px;padding:14px;transition:transform .26s,box-shadow .26s;display:block;overflow:hidden}.ledger-hero-figure:hover,.ledger-hero-figure:focus-visible{box-shadow:var(--shadow-deep);transform:translateY(-4px)}.ledger-hero-figure img{border-radius:18px;width:100%}.ledger-hero-figure>span{color:#fff;font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c1326c7;border:1px solid #ffffff2e;border-radius:11px;padding:11px 13px;font-size:9px;position:absolute;bottom:25px;left:25px;right:25px}.ledger-overview,.ledger-process,.ledger-results,.ledger-verification,.ledger-artifacts{padding:clamp(76px,8vw,124px) clamp(22px,6.5vw,110px)}.ledger-overview,.ledger-artifacts{background:var(--paper-bright)}.ledger-process{background:var(--ink);color:#fff;position:relative;overflow:hidden}.ledger-process:before{content:none}.ledger-section-heading{z-index:1;grid-template-columns:minmax(180px,.35fr) minmax(0,1.25fr);align-items:start;gap:clamp(36px,7vw,115px);margin-bottom:clamp(42px,5vw,66px);display:grid;position:relative}.ledger-section-heading h2,.ledger-results h2,.ledger-block h2,.ledger-boundaries h2{letter-spacing:-.07em;max-width:1000px;margin:0;font-size:clamp(40px,4.6vw,70px);font-weight:540;line-height:.98}.ledger-question-copy{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,72px);max-width:960px;padding-top:30px;display:grid}.ledger-question-copy p{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.75}.ledger-process .section-kicker{color:#b9c4ff}.ledger-question-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.ledger-question-grid article,.ledger-verification-grid article{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:clamp(26px,3vw,42px)}.ledger-question-grid article>span,.ledger-steps>li>span,.ledger-artifact-grid>a>span{width:40px;height:40px;color:var(--blue);font-family:var(--font-geist-mono), monospace;border:1px solid;border-radius:50%;place-items:center;font-size:9px;display:grid}.ledger-question-grid h3,.ledger-steps h3,.ledger-verification-grid h3{letter-spacing:-.05em;margin:28px 0 0;font-size:clamp(24px,2.3vw,36px);font-weight:570;line-height:1.08}.ledger-question-grid p,.ledger-steps p,.ledger-verification-grid p,.ledger-block p,.ledger-results-copy>p:not(.section-kicker,.boundary-note),.ledger-boundaries>p:not(.section-kicker){color:var(--ink-soft);margin:20px 0 0;font-size:14px;line-height:1.75}.ledger-steps{z-index:1;border-top:1px solid #ffffff29;grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid;position:relative}.ledger-steps>li{border-bottom:1px solid #ffffff29;grid-template-columns:54px minmax(0,820px);gap:20px;padding:clamp(28px,3vw,42px) 0;display:grid}.ledger-steps>li:nth-child(2n){padding-left:0;padding-right:0}.ledger-steps>li>span{color:#b9c4ff;border-color:#ffffff85}.ledger-steps h3{margin-top:4px}.ledger-steps p{color:#ffffff9e}.ledger-results{background:var(--paper);grid-template-columns:minmax(0,.88fr) minmax(460px,.72fr);align-items:start;gap:clamp(48px,7vw,108px);display:grid}.ledger-results-copy>p:not(.section-kicker,.boundary-note){max-width:760px}.ledger-result-cards{border-top:1px solid var(--line);gap:0;margin-top:34px;display:grid}.ledger-result-cards article{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,.34fr) minmax(0,1fr);gap:8px 28px;padding:24px 0;display:grid}.ledger-result-cards span,.ledger-result-cards small,.ledger-block-status span,.ledger-block-status small{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:9px;line-height:1.5}.ledger-result-cards strong{color:var(--blue);letter-spacing:-.055em;white-space:nowrap;grid-column:1;font-size:clamp(28px,3vw,42px);font-weight:570}.ledger-result-cards p{color:var(--ink-soft);grid-area:1/2;margin:0;font-size:13px;line-height:1.65}.ledger-result-cards small{grid-area:2/2}.ledger-gallery .project-gallery{grid-template-columns:1fr}.ledger-gallery .gallery-item,.ledger-gallery .gallery-item-primary{grid-column:1}.ledger-gallery .gallery-item img,.ledger-gallery .gallery-item-primary img{aspect-ratio:16/10;object-fit:contain;min-height:0}.ledger-verification{background:var(--lavender)}.ledger-verification-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.ledger-verification-grid article{background:0 0;border:0;border-radius:0}.ledger-verification-grid article+article{border-left:1px solid var(--line)}.ledger-verification-grid article>strong{color:var(--blue);letter-spacing:-.075em;font-size:clamp(42px,5vw,72px);font-weight:550}.ledger-verification-grid h3{margin-top:20px}.ledger-block{background:radial-gradient(circle at 8% 20%, #f26c5536, transparent 26%), var(--ink);color:#fff;grid-template-columns:minmax(270px,.46fr) minmax(0,1fr);align-items:center;gap:clamp(48px,8vw,130px);padding:clamp(90px,10vw,155px) clamp(22px,6.5vw,110px);display:grid}.ledger-block .section-kicker{color:#b9c4ff}.ledger-block p{color:#ffffffa6;max-width:820px}.ledger-block-status{background:#ffffff0f;border:1px solid #ffffff26;border-radius:22px;gap:10px;padding:clamp(30px,4vw,54px);display:grid}.ledger-block-status strong{letter-spacing:-.075em;font-size:clamp(42px,5vw,74px);font-weight:550;line-height:.98}.ledger-block-status span,.ledger-block-status small{color:#ffffff91}.ledger-artifact-grid{border-top:1px solid var(--line);grid-template-columns:1fr;gap:0;display:grid}.ledger-artifact-grid>a{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;min-height:88px;padding:20px 0;transition:transform .19s,border-color .19s,background .19s;display:grid}.ledger-artifact-grid>a:hover,.ledger-artifact-grid>a:focus-visible{background:0 0;transform:translate(6px)}.ledger-artifact-grid strong{letter-spacing:-.04em;font-size:22px;font-weight:600}.ledger-artifact-grid small{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;font-size:9px;line-height:1.5}.ledger-disclosure{border-left:2px solid var(--coral);max-width:900px;color:var(--ink-soft);margin:36px 0 0;padding-left:18px;font-size:12px;line-height:1.7}.ledger-disclosure a{color:var(--blue);border-bottom:1px solid}.ledger-boundaries{background:var(--ink);color:#fff;text-align:left;align-content:center;place-items:start;min-height:420px;padding:clamp(76px,8vw,124px) clamp(22px,6.5vw,110px);display:grid}.ledger-boundaries .section-kicker{color:#b9c4ff}.ledger-boundaries h2{max-width:1050px}.ledger-boundaries>p:not(.section-kicker){color:#ffffffa6;max-width:760px}.ledger-boundaries .button{margin-top:34px}.motion-ready [data-reveal]{opacity:0;transition:opacity .65s,transform .65s cubic-bezier(.2,.8,.2,1);transform:translateY(22px)}.motion-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes hero-float{0%{transform:scale(1.02)translateY(-3px)}to{transform:scale(1.035)translateY(6px)}}@keyframes orbit-travel{0%{offset-distance:0%}to{offset-distance:100%}}@media (width<=1180px){.project-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:minmax(0,1fr) minmax(380px,.72fr);gap:42px;padding-left:50px;padding-right:50px}.hero-proof-card-top{left:-22px}.hero-proof-card-bottom{right:-20px}.case-study-layout,.case-study-layout-reverse{grid-template-columns:1fr}.case-study-layout-reverse .case-study-copy{order:2}.case-study-layout-reverse .project-gallery{order:1}.evidence-row{grid-template-columns:52px minmax(220px,.8fr) minmax(320px,1.2fr)}.evidence-row>small{grid-column:2/-1}.timeline-row{grid-template-columns:52px 140px minmax(220px,.8fr) minmax(300px,1.2fr);gap:20px}.project-card-featured{grid-template-columns:minmax(0,1fr) minmax(390px,.92fr)}.ledger-hero{grid-template-columns:minmax(0,1fr) minmax(420px,.78fr);gap:44px;padding-left:50px;padding-right:50px}.ledger-results{grid-template-columns:1fr}.ledger-gallery .project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-gallery .gallery-item,.ledger-gallery .gallery-item-primary{grid-column:auto}}@media (width<=900px){.site-header{grid-template-columns:1fr auto}.desktop-nav,.header-actions{display:none}.mobile-menu{justify-self:end;display:block;position:relative}.ledger-mobile-back{min-height:44px;color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;justify-self:end;align-items:center;padding:12px 0;font-size:10px;font-weight:650;display:inline-flex}.mobile-menu-button{border:1px solid var(--ink);cursor:pointer;min-width:94px;min-height:44px;font-family:var(--font-geist-mono), monospace;background:0 0;border-radius:999px;justify-content:space-between;align-items:center;padding:0 14px;font-size:10px;display:flex}.mobile-navigation{border:1px solid var(--line);background:var(--paper-bright);min-width:240px;box-shadow:var(--shadow-soft);border-radius:16px;padding:10px;display:grid;position:absolute;top:54px;right:0}.mobile-navigation[hidden]{display:none}.mobile-navigation a{min-height:46px;font-family:var(--font-geist-mono), monospace;border-radius:9px;align-items:center;padding:0 12px;font-size:11px;display:flex}.mobile-navigation a:hover,.mobile-navigation a:focus-visible{background:var(--lavender)}.hero{background:radial-gradient(circle at 10% 10%, #c7bfff66, transparent 28%), var(--paper);grid-template-columns:1fr;padding:72px 30px 80px}.ledger-hero{background:var(--paper);grid-template-columns:1fr;padding:74px 30px 88px}.ledger-hero-figure{max-width:650px}.hero h1{max-width:760px}.hero-art{max-width:560px;margin-top:20px}.proof-band{grid-template-columns:1fr 1fr}.proof-band>div:nth-child(2){border-right:0}.proof-band>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.work-intro,.work-intro>div,.case-study-header,.case-study-header>div:last-child,.section-heading,.research-heading,.experience-intro,.toi-journey-heading,.toi-journey-shell,.toi-journey-content,.why-astronomy-section{grid-template-columns:1fr}.work-intro,.work-intro>div,.case-study-header,.case-study-header>div:last-child,.section-heading,.research-heading,.experience-intro,.toi-journey-heading,.why-astronomy-section{gap:24px}.toi-journey-progress{border-right:0;border-bottom:1px solid var(--line)}.toi-journey-progress-status{grid-template-columns:auto minmax(140px,280px);align-items:center;padding:18px 20px}.toi-journey-progress ol{display:flex;overflow-x:auto}.toi-journey-progress li{flex:1 0 auto;min-width:155px}.toi-journey-progress li+li{border-top:0;border-left:1px solid var(--line)}.toi-journey-progress button{min-height:64px}.toi-journey-content{gap:16px}.why-astronomy-copy{padding-top:0}.sdss-metric-grid{grid-template-columns:1fr 1fr}.evidence-row{grid-template-columns:52px 1fr}.evidence-row>p,.evidence-row>small{grid-column:2}.research-grid,.project-grid,.academic-grid,.about-section,.project-archive-grid{grid-template-columns:1fr}.project-card.project-card-featured{grid-column:auto;display:flex}.project-card-featured .project-card-media{aspect-ratio:16/9.4;border-bottom:1px solid #ffffff1f;border-right:0;min-height:0}.ledger-section-heading,.ledger-question-grid,.ledger-question-copy,.ledger-steps,.ledger-verification-grid,.ledger-block,.ledger-artifact-grid{grid-template-columns:1fr}.ledger-steps>li,.ledger-steps>li:nth-child(2n){border-right:0;padding-left:0;padding-right:0}.ledger-gallery .project-gallery{grid-template-columns:1fr}.ledger-verification-grid article+article{border-top:1px solid var(--line);border-left:0}.timeline-row{grid-template-columns:52px 1fr}.timeline-row time,.timeline-row>div,.timeline-row>p{grid-column:2}.timeline-row time{grid-row:1}footer{grid-template-columns:1fr auto}footer>p{display:none}}@media (width<=640px){html{scroll-padding-top:70px}.site-header{min-height:68px;padding:10px 18px}.brand-mark{width:36px;height:36px}.brand-mark:before{width:43px;height:16px}.brand-copy small{display:none}.hero{min-height:auto;padding:58px 20px 64px}.ledger-hero{min-height:auto;padding:58px 20px 70px}.ledger-hero h1{font-size:clamp(54px,16vw,78px)}.ledger-hero-figure{border-radius:18px;padding:8px}.ledger-hero-figure img{border-radius:12px}.ledger-hero-figure>span{bottom:16px;left:16px;right:16px}.hero h1{font-size:clamp(50px,14.4vw,74px);line-height:.96}.hero-intro{font-size:16px}.hero-actions,.contact-actions{display:grid}.button{width:100%}.hero-art{border-radius:160px 160px 24px 24px;padding:10px}.hero-art-inner{border-radius:152px 152px 17px 17px}.hero-art:before{width:62px;height:62px;top:18px;left:-10px}.hero-proof-card{min-width:0;max-width:190px;padding:12px}.hero-proof-card-top{top:18%;left:-6px}.hero-proof-card-bottom{bottom:12%;right:-7px}.proof-band{grid-template-columns:1fr}.proof-band>div{border-right:0;border-bottom:1px solid var(--line);min-height:88px}.proof-band>div:last-child{border-bottom:0}.project-archive-heading{flex-direction:column;align-items:flex-start;gap:8px}.work-intro,.case-study,.project-section,.evidence-section,.research-section,.experience-section,.why-astronomy-section,.ledger-overview,.ledger-process,.ledger-results,.ledger-verification,.ledger-block,.ledger-artifacts{padding:76px 20px}.project-section{padding-top:0}.work-intro h2,.case-study-header h2,.section-heading h2,.research-heading h2,.experience-intro h2,.about-education h2,.why-astronomy-section h2{font-size:43px}.toi-journey-heading{padding:32px 22px}.toi-journey-heading h2{font-size:38px}.toi-journey-content{padding:14px}.toi-journey-guide{padding:26px 22px}.toi-journey-progress-status{grid-template-columns:1fr;gap:9px}.toi-journey-progress button{min-width:148px}.toi-journey-figure figcaption{flex-direction:column;align-items:flex-start}.toi-journey-focus>span{padding:4px 6px;font-size:7px;top:4px;left:4px}.toi-journey-controls{flex-direction:column}.toi-journey-controls button{flex-basis:auto;width:100%}.ledger-section-heading h2,.ledger-results h2,.ledger-block h2,.ledger-boundaries h2{font-size:43px}.ledger-question-grid article,.ledger-verification-grid article,.ledger-block-status{padding:24px 20px}.ledger-result-cards strong{font-size:31px}.ledger-result-cards article{grid-template-columns:1fr}.ledger-result-cards strong,.ledger-result-cards p,.ledger-result-cards small{grid-area:auto/1}.ledger-artifact-grid>a{grid-template-columns:1fr;gap:6px;min-height:0}.ledger-artifact-grid>a small{grid-column:auto}.ledger-boundaries{min-height:0;padding:76px 20px}.case-study-header{margin-bottom:44px}.case-study-index{align-items:center}.project-gallery{grid-template-columns:1fr}.gallery-item,.gallery-item-primary{grid-column:1}.gallery-item img,.gallery-item-primary img{min-height:250px}.project-results,.sdss-metric-grid{grid-template-columns:1fr 1fr}.project-results strong{font-size:15px}.sdss-metric-grid>div{min-height:100px}.research-story>div:last-child{padding:28px 22px}.research-story h3{font-size:36px}.project-card h3,.academic-card h3{font-size:34px}.project-card-media,.academic-card-media{aspect-ratio:4/3}.evidence-row,.timeline-row{gap:12px;padding:28px 0}.about-education,.credential-list{padding:64px 22px}.credential-group{grid-template-columns:1fr;gap:12px}.contact-section{min-height:660px;padding:90px 20px}.contact-section h2{font-size:clamp(52px,15vw,82px)}.contact-orbit{width:145vw;height:58vw}footer{grid-template-columns:1fr;padding:30px 20px}.footer-links{justify-self:start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.motion-ready [data-reveal]{opacity:1;transform:none}}.resume-page{background:radial-gradient(circle at 12% 8%, #c7bfff57, transparent 22%), radial-gradient(circle at 92% 22%, #f26c551a, transparent 22%), var(--paper);min-height:100vh;padding:38px 22px 80px}.resume-toolbar{width:min(100%,1120px);font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;justify-content:space-between;align-items:center;margin:0 auto 20px;font-size:11px;font-weight:650;display:flex}.resume-toolbar>a,.resume-toolbar>div>a{padding:12px 0}.resume-toolbar>div{align-items:center;gap:18px;display:flex}.resume-toolbar>div>a{color:var(--blue)}.print-button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:999px;min-height:44px;padding:0 17px;transition:transform .18s,background .18s}.print-button:hover,.print-button:focus-visible{background:var(--blue);transform:translateY(-2px)}.resume-sheet{border:1px solid var(--line);background:var(--paper-bright);width:min(100%,1120px);box-shadow:var(--shadow-soft);margin:0 auto;padding:clamp(36px,6vw,82px)}.resume-header{border-bottom:3px solid var(--ink);grid-template-columns:minmax(0,1.5fr) minmax(220px,.5fr);gap:44px;padding-bottom:38px;display:grid}.resume-label{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.11em;text-transform:uppercase;margin:0 0 12px;font-size:10px;font-weight:700}.resume-header h1{letter-spacing:-.075em;margin:0;font-size:clamp(48px,7vw,78px);font-weight:570;line-height:.95}.resume-header>div>p:last-child{max-width:690px;color:var(--ink-soft);margin:20px 0 0;font-size:15px;line-height:1.65}.resume-header address{font-family:var(--font-geist-mono), monospace;overflow-wrap:anywhere;align-content:end;gap:10px;font-size:10px;font-style:normal;line-height:1.55;display:grid}.resume-header address a{color:var(--blue)}.resume-layout{grid-template-columns:minmax(0,1.6fr) minmax(245px,.58fr);gap:clamp(38px,6vw,78px);margin-top:42px;display:grid}.resume-section+.resume-section{margin-top:42px}.resume-section>h2{border-bottom:1px solid var(--line);color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.11em;text-transform:uppercase;margin:0 0 22px;padding-bottom:9px;font-size:11px}.resume-entry{border-bottom:1px solid var(--line);padding:0 0 24px}.resume-entry+.resume-entry{padding-top:24px}.resume-entry-last{border-bottom:0;padding-bottom:0}.resume-entry-heading{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.resume-entry h3,.resume-skill-group h3,.resume-side-entry h3{letter-spacing:-.02em;margin:0;font-size:15px;font-weight:690;line-height:1.35}.resume-entry-heading>span,.resume-side-entry>span{color:var(--ink-soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;text-align:right;flex:none;font-size:9px;line-height:1.5}.resume-entry ul{color:var(--ink-soft);gap:7px;margin:13px 0 0;padding-left:17px;font-size:12px;line-height:1.58;display:grid}.resume-entry li::marker{color:var(--coral)}.resume-job .resume-entry-heading>div>p,.resume-job>p,.resume-side-entry p,.resume-skill-group p{color:var(--ink-soft);margin:4px 0 0;font-size:11px;line-height:1.55}.resume-job>p{margin-top:11px;font-size:12px}.resume-skill-group+.resume-skill-group,.resume-side-entry+.resume-side-entry{margin-top:20px}.resume-skill-group h3,.resume-side-entry h3{font-size:12px}.resume-note{border-left:3px solid var(--coral);color:var(--ink-soft);background:#f26c5514;margin:36px 0 0;padding:16px;font-size:10px;line-height:1.6}@media (width<=760px){.resume-toolbar{align-items:flex-start;gap:14px}.resume-toolbar>div{flex-wrap:wrap;justify-content:flex-end}.resume-sheet{padding:34px 22px}.resume-header,.resume-layout{grid-template-columns:1fr}.resume-header{gap:24px}.resume-header address{align-content:start}.resume-entry-heading{gap:7px;display:grid}.resume-entry-heading>span{text-align:left}}@media print{@page{size:letter;margin:.42in}body{background:#fff}.resume-page{background:#fff;min-height:auto;padding:0}.resume-toolbar{display:none}.resume-sheet{width:100%;box-shadow:none;border:0;padding:0}.resume-header{padding-bottom:20px}.resume-header h1{font-size:52px}.resume-layout{gap:34px;margin-top:24px}.resume-section+.resume-section{margin-top:24px}.resume-section>h2{margin-bottom:12px}.resume-entry{break-inside:avoid;padding-bottom:13px}.resume-entry+.resume-entry{padding-top:13px}.resume-entry ul{gap:4px;margin-top:8px;font-size:10px;line-height:1.38}.resume-note{margin-top:20px}a{text-decoration:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
