@font-face{font-family:Europa;src:url('/fonts/europa.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;color-scheme:dark}body{margin:0;background:#060912;color:#edeaf5;font:18px/1.75 Europa,system-ui,sans-serif}.sky{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 85% 15%,#34235560,transparent 55%),radial-gradient(ellipse at 5% 60%,#164b5b38,transparent 55%)}.sky:after{content:"";position:absolute;inset:0;opacity:.6;background-image:radial-gradient(1px 1px at 20px 30px,#fff 80%,transparent),radial-gradient(1px 1px at 110px 130px,#a3c3e8 80%,transparent),radial-gradient(1px 1px at 60px 90px,#fff 80%,transparent);background-size:197px 211px,307px 331px,467px 421px}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:6px}a:hover{color:#bdefff}a:focus-visible,button:focus-visible{outline:2px solid #bdefff;outline-offset:6px}header,footer{max-width:1200px;margin:auto;padding:28px 40px;display:flex;justify-content:space-between;gap:24px}header a,footer a{text-decoration:none}header>a{letter-spacing:.04em}nav{display:flex;gap:30px;font-size:15px;color:#c4c1d4}main{max-width:1080px;margin:auto;padding:0 40px}.hero{height:540px;position:relative;display:flex;align-items:center;isolation:isolate}h1{font-family:Georgia,serif;font-size:clamp(64px,9vw,118px);font-weight:400;line-height:1.05;letter-spacing:-.065em;margin:0;position:relative;z-index:1;pointer-events:none;text-shadow:0 2px 30px #060912}h1 span{color:#c6a0e9}#universe{position:absolute;width:85%;height:100%;right:-10%;top:0;z-index:-1}#universe canvas{display:block;width:100%;height:100%}#motion{position:absolute;right:0;bottom:30px;background:#101423b8;border:1px solid #56536f;border-radius:3px;color:#d4cfe4;font:13px Europa,sans-serif;padding:8px 13px;cursor:pointer}section{padding:60px 0 70px;border-top:1px solid #b2add130;scroll-margin-top:30px}.section-heading{display:flex;align-items:center;gap:22px;margin-bottom:25px}.section-heading>span{font-size:13px;color:#a59bbd}h2{font:400 clamp(28px,4vw,38px)/1.3 Georgia,serif;letter-spacing:-.025em;margin:0}.intro{max-width:760px;font-size:clamp(18px,2.3vw,23px);line-height:1.8;margin:0 0 36px}video{width:100%;aspect-ratio:16/9;background:#080911;border:1px solid #b2add130;border-radius:5px;display:block}.contact{display:flex;gap:48px;margin-top:32px;flex-wrap:wrap}.contact a{text-decoration:none;font-size:16px}.contact span{display:block;color:#b5bdd5;font-size:14px;text-decoration:underline;text-underline-offset:4px}footer{font-size:14px;color:#aba5be;padding-bottom:40px}.skip{position:absolute;left:20px;top:-80px;background:#141827;z-index:10;padding:10px}.skip:focus{top:10px}@media(max-width:650px){header,footer{padding:24px}nav{gap:16px}header{font-size:15px}main{padding:0 24px}.hero{height:440px;align-items:flex-end;padding-bottom:65px}#universe{width:120%;right:-10%;top:-25px;height:360px}h1{font-size:76px}#motion{bottom:18px}section{padding:38px 0 48px}.contact{gap:20px;flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hero{height:360px}h1{font-size:clamp(64px,8vw,102px)}details{padding:0;border-top:1px solid #b2add140;scroll-margin-top:24px}summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;padding:28px 0}summary::-webkit-details-marker{display:none}summary .section-heading{margin:0}summary:focus-visible{outline:2px solid #bdefff;outline-offset:6px}.toggle{font:300 30px Europa;color:#b7b2cb}details[open] .toggle{transform:rotate(45deg)}.section-body{padding:0 0 48px}.intro{margin-bottom:20px}.contact{margin-top:18px}.video-intro{margin:38px 0 14px;color:#c9c4d9;font-size:17px}footer{margin-top:32px}@media(max-width:650px){.hero{height:310px;padding-bottom:55px}#universe{height:290px;top:-20px}h1{font-size:70px}#motion{bottom:8px}summary{padding:24px 0}.section-body{padding-bottom:32px}}
.hero{overflow:clip}.specific-ask{max-width:760px;color:#edeaf5;font-size:19px;margin:0 0 24px}

/* Responsive layout: readable measures, touch targets, and flexible navigation. */
header,footer{flex-wrap:wrap;align-items:center}header a,footer a{display:inline-flex;align-items:center;min-height:44px}nav{flex-wrap:wrap;gap:clamp(14px,3vw,30px)}nav a{min-width:44px;justify-content:center}#motion{min-height:44px;min-width:110px}.contact a{min-height:48px;overflow-wrap:anywhere}.section-heading{min-width:0}summary{gap:20px}.toggle{flex-shrink:0}.intro,.specific-ask{max-width:65ch}video{max-width:100%}
@media(min-width:651px){#universe{width:70%;right:-2%}.hero{height:380px}}
@media(max-width:650px){header,footer{gap:8px;padding:16px 24px}.hero{height:310px}h1{font-size:clamp(52px,12vw,70px)}.contact{gap:16px}.intro{line-height:1.75}}
@media(max-width:380px){header,footer{padding-inline:18px}main{padding-inline:18px}header{align-items:flex-start;flex-direction:column}nav{width:100%;justify-content:space-between}.hero{height:275px}#universe{height:250px}h2{font-size:27px}}
@media(max-height:500px) and (orientation:landscape){.hero{height:230px}#universe{height:230px;top:0;width:65%;right:0}.hero h1{font-size:64px}}

.contact{gap:14px}.contact a{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:48px;padding:10px 18px;border:1px solid #82779e;border-radius:4px;background:#171627;color:#f2edf9;text-decoration:underline;text-underline-offset:4px}.contact a:hover{background:#28213c;border-color:#d6bfef}.contact span{display:inline;color:inherit;font-size:18px;text-decoration:none}@media(max-width:650px){.contact{align-items:stretch}.contact a{justify-content:space-between}}

/* Keep the sculpture within its own space; let the text span its section. */
.hero{overflow:visible}#universe{width:66%;right:0;top:0;height:calc(100% - 24px);z-index:0;cursor:pointer;touch-action:pan-y}#universe:focus-visible{outline:2px solid #bdefff;outline-offset:-6px;border-radius:8px}.intro,.specific-ask{max-width:none}.contact{justify-content:center;align-items:center;flex-direction:row;flex-wrap:wrap;gap:12px}.contact a{flex:0 0 auto;width:auto;justify-content:center;gap:18px;padding:10px 18px}
@media(max-width:650px){#universe{width:100%;height:240px;right:0;top:0}.hero{height:310px;padding-bottom:28px;align-items:flex-end}.contact{flex-direction:row;align-items:center}.contact a{justify-content:center}.intro{font-size:18px}}
@media(max-width:380px){.hero{height:285px}#universe{height:220px}}
@media(max-height:500px) and (orientation:landscape){.hero{height:230px}#universe{height:210px;width:65%}}

.intro{text-align:justify;hyphens:auto;overflow-wrap:break-word}

header{justify-content:center;align-items:center;flex-direction:row}.toggle{display:inline-block;line-height:1;transform:none}details[open] .toggle{transform:rotate(180deg)}

/* One consistent size for all paragraph copy at every breakpoint. */
.section-body p{font-size:clamp(18px,2.3vw,23px);line-height:1.8}

/* Slow nebula light stays behind the content and away from its reading surface. */
.sky{overflow:hidden;background:radial-gradient(ellipse at 88% 18%,#38234e50,transparent 57%),radial-gradient(ellipse at 8% 72%,#17414b38,transparent 60%)}
.sky::before{content:"";position:absolute;inset:-12%;background:radial-gradient(ellipse at 4% 25%,#6874b52b,transparent 36%),radial-gradient(ellipse at 92% 52%,#9b62ac29,transparent 39%),radial-gradient(ellipse at 27% 95%,#4b9d9e21,transparent 40%);filter:blur(35px);opacity:.65;transform:scale(1);animation:nebula-breathe 24s ease-in-out infinite alternate;pointer-events:none}
.sky::after{opacity:.45}
@keyframes nebula-breathe{0%{opacity:.45;transform:translate3d(-1%,0,0) scale(1)}50%{opacity:.8;transform:translate3d(1%,-1%,0) scale(1.035)}100%{opacity:.55;transform:translate3d(0,1%,0) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.sky::before{animation:none;opacity:.6}}

/* The vertical stroke folds away as a section opens. */
summary .toggle{position:relative;width:22px;height:22px;transform:none}
details[open] summary .toggle{transform:none}
.toggle::before,.toggle::after{content:"";position:absolute;top:10px;left:2px;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform 220ms ease,opacity 220ms ease}
.toggle::after{transform:rotate(90deg)}
details[open] .toggle::after{transform:rotate(0);opacity:0}
details[data-closing] .toggle::after{transform:rotate(90deg);opacity:1}
@media(prefers-reduced-motion:reduce){.toggle::before,.toggle::after{transition:none}}

video + .specific-ask{margin-top:32px}

.section-body h3{font:400 clamp(23px,3vw,28px)/1.4 Georgia,serif;margin:32px 0 16px}.search-list{padding-left:1.3em;margin:0 0 32px;font-size:clamp(18px,2.3vw,23px);line-height:1.8}.search-list li{padding-left:.25em;margin-bottom:14px}.search-list li::marker{color:#b7a6cf}

.resume-link{margin:18px 0 28px}.resume-link a{display:inline-block;padding-block:5px}
