@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');
:root{color-scheme:dark;--gold:#e9c681;--ivory:#f5eee1;--muted:#b8b7b5}*{box-sizing:border-box}body{margin:0;background:#080e16;color:var(--ivory);font-family:'Cormorant Garamond',Georgia,serif;min-height:100svh}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid #f7da99;outline-offset:7px}[hidden]{display:none!important}.world{position:fixed;inset:0;overflow:hidden;z-index:-1}.scene{position:absolute;inset:0;background:#101a25 url('./hall.png') center center/cover no-repeat;transform-origin:50% 55%;transition:transform 1.5s cubic-bezier(.6,0,.25,1),filter 1.5s;will-change:transform}.vignette{position:absolute;inset:0;background:linear-gradient(#030911d9 0%,#03091155 25%,transparent 45%,#02071140 72%,#030811f5 100%)}header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:30px;position:relative;z-index:3}.brand{display:flex;gap:12px;align-items:center;font-size:26px;white-space:nowrap}.brand-star{font-size:53px;color:var(--gold);line-height:1}.brand small{display:block;font:9px 'Manrope',sans-serif;letter-spacing:2.1px;margin-top:6px;color:var(--gold)}nav{display:flex;align-items:center;gap:28px;font-size:17px}nav a{padding:9px 0;transition:color .2s}nav a:hover{color:var(--gold)}.intro{text-align:center;padding-top:10px;pointer-events:none}.eyebrow{font:10px 'Manrope',sans-serif;letter-spacing:3px;color:#c3b698;margin:0 0 6px}h1{font-weight:400;font-size:clamp(48px,5.4vw,86px);line-height:1.08;color:#ffe0a1;text-shadow:0 2px 20px #ad782c66;margin:0}.intro>p:not(.eyebrow){font-size:23px;margin:9px 0;color:#ded9d1}.ornament{font-size:15px;letter-spacing:5px;color:#b79458;margin-top:17px}.doors{display:grid;grid-template-columns:repeat(4,1fr);gap:2%;margin:10px 6% 0;height:clamp(330px,48vh,550px)}.door{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;border:0;padding:0 4px 0;background:transparent;color:var(--ivory);cursor:pointer;isolation:isolate;--glow:255,194,86}.door:before{content:'';position:absolute;z-index:-1;top:0;bottom:74px;width:80%;border-radius:50% 50% 5px 5px;box-shadow:inset 0 0 25px rgba(var(--glow),0),0 0 30px rgba(var(--glow),0);background:linear-gradient(90deg,transparent,rgba(var(--glow),0),transparent);border:1px solid transparent;transition:all .45s}.door:hover:before,.door:focus-visible:before,.door.selected:before{box-shadow:inset 0 0 45px rgba(var(--glow),.38),0 0 35px rgba(var(--glow),.6),0 0 100px rgba(var(--glow),.25);border-color:rgba(var(--glow),.65);background:linear-gradient(90deg,transparent,rgba(var(--glow),.23),transparent)}.door-title{font-size:clamp(21px,1.8vw,29px);line-height:1.2;text-shadow:0 2px 8px black;transition:color .35s,transform .35s;white-space:nowrap}.door:hover .door-title,.door:focus-visible .door-title{color:rgb(var(--glow));transform:translateY(-3px)}.door-desc{max-width:190px;font-size:16px;line-height:1.35;color:#d3cfc7;margin-top:8px;min-height:44px;text-shadow:0 2px 8px #000}.door-number{font:10px 'Manrope',sans-serif;letter-spacing:3px;text-transform:uppercase;color:rgb(var(--glow));margin-bottom:9px;opacity:.75}.door.selected:after{content:'';position:absolute;width:3px;top:15%;bottom:75px;left:50%;background:#fff4d4;box-shadow:0 0 25px 15px rgba(var(--glow),.6);animation:opening 1.3s forwards;border-radius:50% 50% 0 0;z-index:-1}@keyframes opening{from{width:1px;left:50%;opacity:0}35%{opacity:1}to{width:72%;left:14%;opacity:1}}footer{text-align:center;padding:27px 20px 22px}.hint{display:flex;gap:20px;align-items:center;justify-content:center;font-size:16px;color:#e3d9c6;margin:0}.hint>span:first-child,.hint>span:last-child{color:var(--gold)}.hint i{height:17px;border-left:1px solid #bfa57466}.closing{font-size:20px;font-style:italic;margin:16px 0 10px;color:#cbc5bb}footer small{font:9px 'Manrope',sans-serif;letter-spacing:2.5px;color:#aaa396}.mobile-hint{display:none}.flash{position:fixed;inset:0;pointer-events:none;z-index:10;background:#fff3d8;opacity:0;transition:opacity .4s}.entering .scene{transform:scale(5);filter:brightness(1.7) blur(2px)}.entering .intro,.entering footer,.entering header{opacity:0;transition:opacity .4s}.entering .door:not(.selected){opacity:0;transition:opacity .4s}.return{color:var(--gold);border:1px solid #ad90574d;border-radius:30px;padding:11px 21px;background:#0c1420bd;font-size:17px;cursor:pointer}.inside .scene{filter:brightness(.24) blur(5px);transform:scale(1.06)}.inside header nav{display:none}.page{max-width:1000px;margin:5vh auto 60px;padding:35px 42px 45px;background:linear-gradient(135deg,#111d2deb,#080e18e8);border:1px solid #bba16a40;box-shadow:0 25px 100px #0005;animation:reveal .75s ease}.page .chapter{color:var(--gold);font:11px 'Manrope',sans-serif;letter-spacing:3px;margin:0 0 24px}.page h1{font-size:clamp(45px,6vw,76px)}.page .lead{font-size:27px;line-height:1.4;color:#d9d2c6;max-width:680px}.page-content{border-top:1px solid #bba16a40;margin-top:32px;padding-top:26px}.page h2{font-size:29px;font-weight:400;color:var(--gold);margin:0 0 12px}.page-content p{font:16px/1.8 'Manrope',sans-serif;color:#bac2cb;max-width:650px}.empty-label{display:inline-block;color:#cbb98f!important;font-size:12px!important;letter-spacing:1px}.page-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:35px}.page-links a{padding:10px 18px;border:1px solid #bba16a40;border-radius:3px;font-size:18px}.page-links a:hover{background:#bba16a20}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes reveal{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.doors{height:51vh}.intro{padding-top:2vh}}@media(max-width:1100px){header{padding:0 4%;height:90px}nav{gap:16px;font-size:15px}.brand{font-size:22px}.brand small{font-size:8px;letter-spacing:1.2px}.doors{margin-left:5%;margin-right:5%;gap:1%}.door-title{font-size:22px}.door-desc{font-size:15px}.intro{padding-top:18px}}@media(max-width:760px){header{height:90px;padding:0 6%}nav{display:none}.brand{font-size:23px}.brand small{font-size:8px}.brand-star{font-size:43px}.intro{padding:16px 20px 0}.eyebrow{font-size:9px;line-height:1.8;letter-spacing:2px}h1{font-size:52px}.intro>p:not(.eyebrow){font-size:21px}.ornament{margin:15px 0 26px}.world .scene{background-size:auto 100%;background-position:center;opacity:.7}.doors{display:flex;flex-direction:column;height:auto;margin:0 7%;gap:15px}.door{min-height:110px;padding:20px 24px;align-items:flex-start;background:linear-gradient(100deg,#0b1528e8,#0c162bc9);border:1px solid #b992534d;border-radius:4px;text-align:left}.door:before{top:0;bottom:0;left:0;width:100%;border-radius:4px}.door:after{content:'↗';position:absolute;right:23px;top:42px;font-size:23px;color:var(--gold)}.door-title{font-size:28px;white-space:normal}.door-desc{max-width:85%;min-height:0;margin-top:5px;font-size:16px}.door-number{position:absolute;right:25px;top:18px}.desktop-hint{display:none}.mobile-hint{display:inline}.hint{font-size:14px;gap:11px}.closing{font-size:18px}.return{font-size:15px;padding:9px 12px}.inside .brand small{display:none}.inside .brand{font-size:18px}.page{margin:20px 5% 40px;padding:28px 24px}.page .lead{font-size:24px}.page-links{gap:9px}.page-links a{font-size:17px}.door.selected:after{top:0;bottom:0}.entering .scene{transform:scale(3)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.entering .scene{transform:none;filter:none}}
@media(min-width:761px){body{min-height:760px}.world{min-height:760px}.scene{background-size:100% 100%}#hall{min-height:656px}.doors{position:absolute;left:6%;right:6%;top:max(26vh,198px);height:max(60vh,456px);margin:0;gap:2%}.door:before{bottom:110px}.door{padding-bottom:12px}.door.selected:after{bottom:110px}.door-desc{min-height:44px}footer{position:absolute;top:max(86vh,654px);left:0;right:0;padding-top:12px}.intro{padding-top:0}.ornament{margin-top:10px}}



.page{border-color:rgba(var(--glow),.3)}.page .chapter{color:rgb(var(--glow))}.page h1{text-shadow:0 0 35px rgba(var(--glow),.2)}
@media(min-width:761px){.doors{left:9%;right:9%}}
/* Elemental chapter environments */
.inside .scene{background-size:cover;filter:brightness(.6);transform:scale(1);opacity:1}.inside[data-element=earth] .scene{background-image:url('./earth.png')}.inside[data-element=air] .scene{background-image:url('./air.png')}.inside[data-element=water] .scene{background-image:url('./water.png')}.inside[data-element=fire] .scene{background-position:19% 50%;background-size:auto 160%;filter:brightness(.25)}.inside .vignette{background:linear-gradient(#020913aa,#02091333 35%,#020913bb)}.inside header{background:linear-gradient(#030a13aa,transparent)}.page{max-width:1120px;margin:32px auto 65px;padding:38px 46px 36px;background:linear-gradient(125deg,#091522ed,#091522d9);backdrop-filter:blur(9px);position:relative;z-index:1}.page h1{color:#f5eee1;font-size:clamp(48px,6vw,80px)}.page .lead{max-width:760px;color:#d5dce0;font-size:27px;margin:17px 0 32px}.page-topline{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:24px}.page .chapter{margin:0;line-height:1.6;font-size:12px}.motion-toggle{background:transparent;color:#c3ced7;border:1px solid #ffffff30;border-radius:30px;padding:8px 12px;font:12px 'Manrope',sans-serif;cursor:pointer}.chapter-content p,.chapter-content li{font:16px/1.85 'Manrope',sans-serif;color:#c8d0d6}.chapter-content h2{font-size:34px;color:#eff2ec}.chapter-content .overline{font:12px/1.6 'Manrope',sans-serif;letter-spacing:2px;color:rgb(var(--glow));margin:0 0 15px}.section-heading{margin:42px 0 20px}.section-heading h2{margin-bottom:5px}.section-heading p{margin:0;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #a4d5b33b;border-bottom:1px solid #a4d5b33b;padding:25px 0;gap:25px}.stats strong{display:block;color:#c5e8b8;font-size:35px;font-weight:500}.stats span{font:13px/1.6 'Manrope',sans-serif;color:#b8c6bd;display:block;margin-top:5px}.timeline{border-left:1px solid #8ccc7540;padding-left:25px}.role{position:relative;border:1px solid #9cc38330;margin:0 0 14px;background:#111e18a6;border-radius:3px}.role:before{content:'';position:absolute;top:32px;left:-31px;width:9px;height:9px;background:#9ec88c;border-radius:50%;box-shadow:0 0 12px #8ed27466}.role summary{display:flex;align-items:center;gap:20px;cursor:pointer;padding:24px;list-style:none}.role summary::-webkit-details-marker{display:none}.role-date{font:12px/1.7 'Manrope',sans-serif;color:#bacda9;min-width:142px}.role-main{flex:1}.role-main strong{font-size:28px;display:block;font-weight:500;color:#edf1df}.role-main>span{display:block;font:14px/1.6 'Manrope',sans-serif;color:#c1cbbd;margin-top:6px}.expand{font-size:28px;color:#b7d89e}.role[open] .expand{transform:rotate(45deg)}.role-details{padding:0 25px 22px;border-top:1px solid #a7cf8e25}.role-details .location{font-size:12px;color:#a7c094;margin:18px 0 8px}.role-details .role-intro{color:#e1e6d8;font-size:17px}.role-details ul{padding-left:20px;margin-bottom:0}.role-details li{padding-left:7px;margin-bottom:12px}.role-details li::marker{color:#95c580}.degree-card{position:relative;background:linear-gradient(125deg,#688da526,#e4f1fb0b);border:1px solid #d5eafb40;padding:32px;overflow:hidden}.degree-year{position:absolute;right:28px;top:22px;font-size:68px;color:#cae5fa50}.degree-card h2{font-size:37px;line-height:1.25;position:relative;padding-right:100px}.degree-card h2 em{font-weight:400;font-style:normal;color:#bad8ef}.degree-card .university{font-size:18px;color:#e1eaf2}.degree-detail{border-top:1px solid #d1e6f630;padding-top:18px;margin-top:24px}.degree-detail summary,.bio-more summary{display:flex;justify-content:space-between;cursor:pointer;color:rgb(var(--glow));font:15px/1.6 'Manrope',sans-serif;list-style:none}.degree-detail summary::-webkit-details-marker,.bio-more summary::-webkit-details-marker{display:none}.degree-detail p{margin-bottom:0}.skill-tabs{display:flex;flex-wrap:wrap;gap:8px}.skill-tabs button{font:14px/1.5 'Manrope',sans-serif;color:#c4d6e5;background:#0a1826;border:1px solid #afcbe833;padding:11px 15px;cursor:pointer;border-radius:30px}.skill-tabs button[aria-selected=true]{background:#d5e7f6;color:#142431;border-color:#e2f1fd}.skill-panel{margin-top:20px;padding:26px;background:#aac8eb0b;border:1px solid #b8d7f52b;min-height:200px}.skill-panel h3{font-size:25px;font-weight:400;color:#e1eefa;margin:0 0 22px}.skill-chips{display:flex;flex-wrap:wrap;gap:10px}.skill-chips span{font:14px/1.5 'Manrope',sans-serif;padding:8px 12px;background:#a9cce817;color:#d4e5f3;border-radius:3px}.about-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:35px;border-top:1px solid #82d8ee36;padding-top:34px}.bio h2{font-size:40px}.bio-more{padding-top:20px;border-top:1px solid #74d0eb33;margin-top:25px}.contact-panel{background:linear-gradient(#15677830,#0b303c77);border:1px solid #65c6df40;padding:26px;align-self:start}.contact-panel h2{font-size:29px}.contact-link{position:relative;display:block;padding:20px 22px 20px 0;border-bottom:1px solid #85d3e52c}.contact-link span{display:block;font:12px 'Manrope',sans-serif;color:#9dc7d2;margin-bottom:8px}.contact-link strong{font:15px/1.5 'Manrope',sans-serif;color:#dcf4f7;overflow-wrap:anywhere}.contact-link b{position:absolute;right:0;top:32px;color:#8cd9ec;font-weight:400}.contact-link:hover strong{text-decoration:underline}.copy-email{font:12px 'Manrope',sans-serif;background:transparent;color:#aad9e7;border:1px solid #75cee044;padding:8px 12px;margin-top:12px;border-radius:3px;cursor:pointer}.copy-status{font-size:13px!important;color:#c0ebf2!important;margin-bottom:0}.project-pending{padding:32px;border:1px solid #de99433b;background:linear-gradient(125deg,#a8460e20,#15101799)}.project-pending h2{font-size:42px;color:#ffe3c0}.project-pending p{max-width:650px}.quiet-link{display:inline-block;padding:13px 0;color:#edb47e;border-bottom:1px solid #e2a06466;font-size:19px;margin-top:12px}.page-links{display:flex!important;border-top:1px solid #ffffff22;padding-top:28px;gap:12px;justify-content:space-between}.page-links a{flex:1;font-size:19px;padding:14px;border-color:#ffffff25;min-width:160px}.page-links small{display:block;font:10px 'Manrope',sans-serif;letter-spacing:2px;text-transform:uppercase;color:#a8b6c5;margin-bottom:9px}.page-links a>span{float:right;color:#b9c8d7}.atmosphere{display:none;position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.inside .atmosphere{display:block}.atmosphere i{position:absolute;left:var(--x);top:var(--y);opacity:0;animation-delay:calc(var(--i)*-.9s)}[data-element=air] .atmosphere i{height:1px;width:28vw;background:linear-gradient(90deg,transparent,#c9e8ff99,transparent);transform:rotate(-12deg);animation:wind-drift 9s linear infinite;animation-delay:calc(var(--i)*-.9s)}[data-element=earth] .atmosphere i{width:3px;height:3px;background:#b5d391;border-radius:50%;animation:dust-drift 13s linear infinite;animation-delay:calc(var(--i)*-.9s)}[data-element=water] .atmosphere i{width:28vw;height:7vw;border:1px solid #8cddf53d;border-radius:50%;animation:ripple-drift 9s ease-out infinite;animation-delay:calc(var(--i)*-.9s)}[data-element=fire] .atmosphere i{width:3px;height:5px;border-radius:50%;background:#ffba63;box-shadow:0 0 10px #ff771f;animation:dust-drift 8s linear infinite;animation-delay:calc(var(--i)*-.9s)}@keyframes wind-drift{0%{opacity:0;translate:-35vw 10vh}20%,70%{opacity:.7}100%{opacity:0;translate:50vw -15vh}}@keyframes dust-drift{0%{opacity:0;translate:0 15vh}25%,60%{opacity:.65}100%{opacity:0;translate:8vw -35vh}}@keyframes ripple-drift{0%{opacity:0;scale:.3}25%{opacity:.7}100%{opacity:0;scale:1.7}}.motion-paused .atmosphere i{animation-play-state:paused}
@media(max-width:1100px){.page{margin:25px 5% 50px}.about-grid{gap:24px}.contact-panel{padding:22px}.role summary{gap:16px}.role-date{min-width:125px}.role-main strong{font-size:25px}}@media(max-width:760px){.page{padding:26px 22px;margin:15px 5% 35px}.page-topline{align-items:flex-start;gap:10px}.page .chapter{font-size:10px;letter-spacing:2px}.motion-toggle{font-size:10px;padding:6px 9px;white-space:nowrap}.page .lead{font-size:24px}.stats{gap:18px;grid-template-columns:1fr}.stats>div{display:flex;align-items:center;gap:15px}.stats strong{font-size:28px;min-width:120px}.stats span{font-size:12px;max-width:155px}.timeline{padding-left:18px}.role:before{left:-24px}.role summary{padding:18px;flex-wrap:wrap;gap:8px}.role-date{width:100%}.role-main{min-width:0}.role-main strong{font-size:26px}.role-main>span{font-size:13px}.role-details{padding:0 18px 16px}.role-details li{font-size:15px}.degree-card{padding:24px}.degree-year{position:static;font-size:40px;display:block;margin-bottom:15px}.degree-card h2{font-size:30px;padding:0}.skill-tabs{gap:8px}.skill-tabs button{font-size:12px;padding:9px 12px}.skill-panel{padding:20px}.about-grid{grid-template-columns:1fr;gap:25px}.bio h2{font-size:35px}.contact-link strong{font-size:16px}.page-links{flex-direction:column}.page-links a{width:100%;min-width:0}.project-pending{padding:24px}.inside .world .scene{background-size:cover}.inside[data-element=fire] .scene{background-size:auto 150%}}@media(prefers-reduced-motion:reduce){.atmosphere{display:none!important}.motion-toggle{display:none}.page{animation:none}}
.inside[data-element=fire] .scene{background-image:url("./fire.png");background-position:center;background-size:cover;filter:brightness(.6)}

/* Slightly stronger embers and earth motes; more visible water ripples. */
[data-element=fire] .atmosphere i{width:5px;height:7px;background:#ffd394;box-shadow:0 0 13px 2px #ff8d3d99;animation-name:ember-drift}
[data-element=earth] .atmosphere i{width:5px;height:5px;background:#cfe9a5;box-shadow:0 0 9px 2px #a8d26f66;animation-name:earth-drift}
[data-element=water] .atmosphere i{border:1px solid #9ae9ff55;box-shadow:0 0 8px #57c8e517,inset 0 0 6px #57c8e50e;animation-name:water-ripple}
@keyframes ember-drift{0%{opacity:0;translate:0 15vh}20%,65%{opacity:.85}100%{opacity:0;translate:8vw -35vh}}
@keyframes earth-drift{0%{opacity:0;translate:0 15vh}20%,65%{opacity:.82}100%{opacity:0;translate:8vw -35vh}}
@keyframes water-ripple{0%{opacity:0;scale:.3}20%,45%{opacity:.68}100%{opacity:0;scale:1.7}}
