:root{color-scheme:dark;--void:#050304;--surface:#100609;--paper:#e8e4dc;--muted:#87818b;--wine:#741f32;--plum:#18060c;--indigo:#3b0d19;--ember:#9f5548;--line:#ffffff13;--page-gutter:clamp(1.25rem, 4vw, 4.75rem);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--void);scroll-padding-top:clamp(4.5rem,8vw,7rem)}body{background:var(--void);min-width:320px;color:var(--paper);margin:0;position:relative}main{z-index:1;position:relative;overflow:clip}a{color:inherit}::selection{color:#fff;background:#741f32b8}.skip-link{z-index:100;border:1px solid var(--line);background:var(--paper);color:var(--void);border-radius:0 0 .35rem .35rem;padding:.65rem .85rem;font-size:.78rem;font-weight:700;text-decoration:none;position:fixed;top:0;left:1rem;transform:translateY(-120%)}.skip-link:focus{transform:translateY(1rem)}.site-header{z-index:20;padding:clamp(1.35rem, 3vw, 2.5rem) var(--page-gutter);background:linear-gradient(#050304eb 0%,#050304b8 70%,#05030400 100%);justify-content:space-between;align-items:flex-start;display:flex;position:fixed;inset:0 0 auto}.identity{gap:.25rem;text-decoration:none;display:grid}.identity strong{letter-spacing:.13em;font-size:.75rem;font-weight:700}.identity span{color:var(--muted);letter-spacing:.16em;font-size:.6rem}.site-header nav{gap:clamp(1rem,2.25vw,2.5rem);display:flex}.site-header nav a,.text-link{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;font-weight:600;text-decoration:none;transition:color .18s;position:relative}.site-header nav a:after,.text-link:after{transform-origin:100%;content:"";background:currentColor;height:1px;transition:scale .18s;position:absolute;bottom:-.4rem;left:0;right:0;scale:0 1}.site-header nav a:hover,.site-header nav a:focus-visible,.text-link:hover,.text-link:focus-visible{color:var(--paper)}.site-header nav a:hover:after,.site-header nav a:focus-visible:after,.text-link:hover:after,.text-link:focus-visible:after{transform-origin:0;scale:1}.intro{isolation:isolate;min-height:max(45rem,100svh);padding:clamp(7.5rem, 11vw, 10rem) var(--page-gutter) clamp(4rem, 7vw, 7rem);align-items:center;display:grid;position:relative;overflow:hidden}.intro__copy{z-index:5;width:min(47rem,58vw);position:relative}.eyebrow{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin:0 0 clamp(1.5rem,4vw,3.5rem);font-size:clamp(.58rem,.75vw,.68rem);font-weight:600;line-height:1.6}.intro__location{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 clamp(1.75rem,4.5vw,4rem);font-size:clamp(.78rem,1.05vw,.98rem);font-weight:600;line-height:1.5}h1,h2{letter-spacing:-.055em;margin:0;font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-weight:400}h1{text-wrap:balance;max-width:10ch;font-size:clamp(4rem,8.6vw,8.4rem);line-height:.82}.intro__summary{max-width:38rem;color:var(--muted);margin:clamp(2.25rem,5vw,4.5rem) 0 2rem;font-size:clamp(.94rem,1.35vw,1.12rem);line-height:1.75}.text-link{color:var(--paper);padding:.4rem 0;display:inline-block}.intro__actions{flex-wrap:wrap;align-items:center;gap:clamp(1.25rem,3vw,2rem);display:flex}.event-horizon{--horizon-x:72%;--horizon-y:50%;z-index:0;pointer-events:none;width:100%;height:100svh;position:fixed;inset:0;overflow:hidden}.event-horizon__stage,.event-horizon__canvas{width:100%;max-width:100%;height:100%;position:absolute;inset:0}.event-horizon__stage{z-index:1;opacity:0;transition:opacity .18s}.event-horizon__stage:before,.event-horizon__stage:after{content:"";border-radius:50%;position:absolute}.event-horizon__stage:before{top:var(--horizon-y);left:var(--horizon-x);aspect-ratio:1.3;background:conic-gradient(from 238deg, transparent 0 23%, #741f3229 34%, transparent 45% 65%, #3b0d1938 79%, transparent 91%);filter:blur(3rem);width:min(70vw,70rem);translate:-50% -50%}.event-horizon__stage:after{top:var(--horizon-y);left:var(--horizon-x);aspect-ratio:1;border:1px solid #8e777312;width:min(38vw,32rem);translate:-50% -50%;box-shadow:0 0 0 1.2rem #9f554805,0 0 0 6rem #3b0d1906}.event-horizon__mist{top:var(--horizon-y);left:var(--horizon-x);aspect-ratio:1.35;filter:blur(3.8rem);background:radial-gradient(at 53% 49%,#0000 0 23%,#741f3224 38%,#0000 68%),conic-gradient(from 90deg,#0000,#3b0d192b,#0000 42%);border-radius:50%;width:min(70vw,64rem);position:absolute;translate:-50% -50%;rotate:-12deg}.event-horizon__disk{top:var(--horizon-y);left:var(--horizon-x);background:linear-gradient(90deg, transparent 1%, #3b0d192e 13%, var(--plum) 29%, var(--wine) 46%, var(--ember) 53%, var(--indigo) 69%, transparent 98%);filter:blur(4px)brightness(.9);border-radius:50%;width:min(60vw,54rem);height:clamp(4.25rem,8vw,7rem);position:absolute;translate:-50% -50%;rotate:-11deg;box-shadow:0 -.45rem 1.8rem #9f554824,0 .55rem 3.2rem #3b0d1947}.event-horizon__disk:after{content:"";filter:blur(1.5px);background:linear-gradient(90deg,#0000,#741f32,#8e7773,#9f5548,#3b0d19,#0000);border-radius:50%;position:absolute;inset:44% 2%;box-shadow:0 0 1.5rem #741f324d}.event-horizon__core{z-index:3;top:var(--horizon-y);left:var(--horizon-x);aspect-ratio:1;background:#000001;border:1px solid #e8e4dc06;border-radius:50%;width:min(29vw,23rem);position:absolute;translate:-50% -50%;box-shadow:inset 0 0 2.5rem #000001,0 0 5.5rem #3b0d1957}.event-horizon__lens{z-index:4;top:var(--horizon-y);left:var(--horizon-x);aspect-ratio:1;border:1px solid #9f55482e;border-radius:50%;width:min(34vw,27rem);position:absolute;translate:-50% -50%;box-shadow:inset .9rem 0 1.4rem #741f3224,-.7rem 0 1.8rem #8e77731f,.8rem 0 2rem #3b0d1933}.event-horizon__arc{z-index:5;top:var(--horizon-y);left:var(--horizon-x);aspect-ratio:1;filter:drop-shadow(0 0 1.2rem #741f323d);border:1px solid #e8e4dc1f;border-color:#e8e4dc1f #9f55486b #0000 #0000;border-radius:50%;width:min(39vw,31rem);position:absolute;translate:-50% -50%;rotate:-20deg;mask-image:linear-gradient(90deg,#0000 8%,#000 42%,#0000 84%)}.event-horizon__stars{z-index:6;opacity:.3;background-image:radial-gradient(circle at 25% 24%,#e8e4dc61 0 .5px,#0000 .8px),radial-gradient(circle at 68% 31%,#e8e4dc4d 0 .5px,#0000 .8px),radial-gradient(circle at 81% 72%,#e8e4dc40 0 .5px,#0000 .8px);background-size:13rem 11rem,17rem 19rem,23rem 21rem;position:absolute;inset:0}.event-horizon__canvas{z-index:2;opacity:0;pointer-events:none;transition:opacity .18s;display:block;-webkit-mask-image:linear-gradient(90deg,#0000001f 0%,#00000047 15%,#000000b8 34%,#000 50%);mask-image:linear-gradient(90deg,#0000001f 0%,#00000047 15%,#000000b8 34%,#000 50%)}@media (pointer:fine){body[data-scene-status=ready]{cursor:default}body[data-scene-status=ready][data-scene-interacting=true]{cursor:grabbing}}[data-scene-status=fallback] .event-horizon__stage,[data-scene-status=ready] .event-horizon__canvas{opacity:1}section{min-height:100svh;padding:clamp(5rem, 10vw, 10rem) var(--page-gutter);position:relative}section>h2{text-wrap:balance;max-width:9ch;font-size:clamp(3rem,7vw,7rem);line-height:.88}.work,.capabilities,.about,.contact{background:0 0}.work>h2{margin-bottom:clamp(5rem,13vw,12rem)}.project{grid-template-columns:minmax(8rem,1fr) minmax(18rem,2fr);align-items:start;gap:clamp(2rem,8vw,8rem);padding-block:clamp(5rem,10vw,9rem);display:grid}.project__index{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;gap:.65rem;font-size:.67rem;line-height:1.5;display:flex}.project__body{max-width:52rem}.project__body>.eyebrow{margin-bottom:1.25rem}.project h3,.capabilities h3,.about h3{margin:0;font-weight:450}.project h3{letter-spacing:-.05em;text-wrap:balance;max-width:12ch;font-family:Iowan Old Style,Baskerville,Times New Roman,serif;font-size:clamp(2.6rem,5.5vw,5.7rem);font-weight:400;line-height:.92}.project__summary,.about__biography{color:var(--muted);font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.65}.project__summary{max-width:42rem;margin:clamp(2rem,4vw,3.5rem) 0}.project dl{gap:.7rem;margin:0 0 2rem;display:grid}.project dl>div{grid-template-columns:8rem 1fr;gap:1rem;padding-block:.7rem;display:grid}.project dt{color:var(--paper);letter-spacing:.13em;text-transform:uppercase;font-size:.65rem;font-weight:650}.project dd{color:var(--muted);margin:0;font-size:.92rem;line-height:1.7}.tag-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tag-list li{color:var(--muted);letter-spacing:.08em;background:#ffffff09;border-radius:999px;padding:.5rem .75rem;font-size:.67rem}.project__links{gap:1.5rem;margin-top:2.25rem;display:flex}.project__links a,.contact a{text-underline-offset:.4rem;text-decoration-color:#e8e4dc59;text-decoration-thickness:1px}.capabilities__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2.5rem,6vw,6rem);margin-top:clamp(5rem,12vw,10rem);display:grid}.capabilities__grid article{min-height:20rem;padding:2rem clamp(1rem,3vw,2.5rem) 2rem 0}.capabilities__grid article:not(:first-child){padding-left:clamp(1rem,3vw,2.5rem)}.capabilities h3,.about h3{letter-spacing:.12em;text-transform:uppercase;font-size:.78rem}.capabilities ul,.contact ul,.experience-list,.experience-highlights,.education-list{padding:0;list-style:none}.capabilities li{color:var(--muted);padding-block:.75rem;font-size:clamp(.9rem,1.3vw,1rem)}.about__biography{max-width:45rem;margin:clamp(3rem,7vw,6rem) 0 clamp(5rem,10vw,9rem) auto}.about__title{white-space:nowrap;max-width:none;margin-bottom:clamp(3rem,7vw,6rem)}.experience-list{margin:0}.profile-label{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin:0 0 1.25rem;font-size:.68rem;font-weight:650;line-height:1.6}.experience-list>li,.education-list>li{grid-template-columns:minmax(15rem,1fr) minmax(18rem,2fr);gap:clamp(2rem,7vw,7rem);padding-block:2.25rem;display:grid}.experience-list__meta>span,.experience-list__meta>p,.education-list span,.education-list p{color:var(--muted);font-size:.76rem;line-height:1.7}.experience-list__meta h3{margin-top:1.25rem}.experience-list__meta>p,.education-list p{margin-bottom:0}.experience-highlights{gap:.85rem;margin:0;display:grid}.experience-highlights li{color:var(--muted);padding-left:1.2rem;font-size:clamp(.88rem,1.25vw,1rem);line-height:1.7;position:relative}.experience-highlights li:before{color:var(--ember);content:"•";position:absolute;top:0;left:0}.education-section{margin-top:clamp(2.5rem,5vw,4.5rem)}.education-list{margin:0}.education-list>li{gap:clamp(2rem,7vw,7rem);padding-block:1.5rem}.education-list h3{letter-spacing:.02em;text-transform:none;margin:0;font-size:clamp(.95rem,1.45vw,1.15rem);font-weight:500;line-height:1.35}.education-list p{margin-top:.45rem}.contact{align-content:center;display:grid}.contact h2{max-width:11ch}.contact__email{width:fit-content;margin-top:clamp(3rem,7vw,6rem);font-size:clamp(1.1rem,2.2vw,1.7rem)}.contact ul{gap:1.5rem;margin:2rem 0 0;display:flex}.contact ul a{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}:focus-visible{outline:2px solid var(--ember);outline-offset:.35rem}@media (width<=64rem){.intro__copy{width:min(42rem,70vw)}.event-horizon{--horizon-x:68%}}@media (width<=48rem){.site-header nav{gap:1rem}.site-header nav a:nth-child(2),.site-header nav a:nth-child(3){display:none}.intro{align-items:start;min-height:max(43rem,100svh);padding-top:clamp(8.5rem,24vh,12rem)}.intro__copy{width:100%}h1{max-width:8.5ch;font-size:clamp(3.65rem,17vw,6rem)}.intro__summary{max-width:min(32rem,88%)}.event-horizon{--horizon-x:58%;--horizon-y:62%}.event-horizon__canvas{-webkit-mask-image:none;mask-image:none}.event-horizon__core{width:min(51vw,20rem)}.event-horizon__lens{width:min(55vw,22rem)}.event-horizon__arc{width:min(59vw,24rem)}.event-horizon__disk{width:min(91vw,40rem)}section{min-height:auto;padding-block:6rem}.contact{min-height:100svh}.project,.project dl>div,.experience-list>li,.education-list>li{grid-template-columns:1fr}.project{gap:2rem}.capabilities__grid{grid-template-columns:1fr}.capabilities__grid article,.capabilities__grid article:not(:first-child){min-height:auto;padding:2rem 0}.about__biography{margin-left:0}.about__title{white-space:normal}}@media (width<=30rem){.identity span{display:none}.intro__summary{max-width:100%;font-size:.91rem}.eyebrow{max-width:31ch}}@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}}
