@font-face{font-family:Manrope;src:url(Manrope.woff2) format('woff2');font-display:swap;font-weight:200 800}@font-face{font-family:Literata;src:url(Literata.woff2) format('woff2');font-display:swap;font-weight:200 900}@font-face{font-family:Literata;src:url(Literata-Italic.woff2) format('woff2');font-display:swap;font-style:italic;font-weight:200 900}
:root{--ink:#eff0e6;--muted:#acb3a6;--green:#111f18;--gold:#d7bd8c;--line:#b9aa842b}*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{margin:0;background:#0e1913;color:var(--ink);font:14px/1.6 Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button,a{-webkit-tap-highlight-color:transparent}.skip{position:absolute;top:-100px;left:20px;z-index:30;background:var(--gold);color:#142018;padding:12px}.skip:focus{top:10px}.masthead{height:88px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.signature{display:flex;gap:17px;align-items:center;font-size:16px;font-weight:550;letter-spacing:.01em}.signature small{display:block;color:var(--muted);font-size:10px;letter-spacing:.09em;font-weight:400;margin-top:3px}.monogram{font-family:Literata,Georgia,serif;font-size:25px;font-style:italic;color:var(--gold);border-right:1px solid var(--line);padding-right:18px}.room-address{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.room-address span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin:0 10px 2px 0}.edition{font-size:11px;color:var(--muted)}.edition span{padding-left:15px;color:var(--gold)}.room-shell{max-width:1920px;margin:auto}.room-viewport{position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden;isolation:isolate;background:#16251c}.room-world{position:absolute;inset:0;transform:translate(var(--tx,0),var(--ty,0)) scale(var(--scale,1));transform-origin:0 0;transition:transform 1.05s cubic-bezier(.22,.68,.18,1);will-change:transform}.environment{display:block;width:100%;height:100%;object-fit:fill}.room-shade{position:absolute;inset:0;background:linear-gradient(90deg,#08130b85 0,transparent 43%),linear-gradient(0deg,#06110ba1,transparent 35%);pointer-events:none}.room-intro{position:absolute;left:6%;bottom:12%;width:34%;transition:opacity .35s,transform .6s;pointer-events:none;text-shadow:0 2px 20px #0008}.eyebrow{font-size:9px;letter-spacing:.24em;color:var(--gold);margin:0 0 18px}.room-intro h1{font:400 clamp(42px,5.8vw,105px)/1.04 Literata,Georgia,serif;letter-spacing:-.045em;margin:0 0 24px}.room-intro h1 em{color:#e6d0a6;font-weight:400}.room-intro>p:not(.eyebrow){font-size:clamp(12px,1.1vw,17px);line-height:1.8;color:#deded1}.gesture{display:flex;align-items:center;gap:12px;margin-top:28px;font-size:10px;color:#d9dcca;letter-spacing:.03em}.gesture>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid #d7bd8c78;border-radius:50%;color:var(--gold)}.scene-label{position:absolute;left:4.5%;right:4.5%;bottom:22px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.22em;color:#ddd7c4aa;pointer-events:none}.hotspot{position:absolute;z-index:2;width:45px;height:45px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid #ead3a46e;border-radius:50%;background:#111a12a3;box-shadow:0 1px 20px #0003;transition:background .2s,box-shadow .2s,opacity .25s}.hotspot::before{content:'';position:absolute;inset:-8px;border:1px solid #ead3a425;border-radius:50%;transition:inset .3s}.hotspot i{font:400 11px Manrope;color:#f5dfba;font-style:normal}.hotspot>span{position:absolute;left:56px;top:3px;display:block;min-width:170px;padding:9px 13px;background:#102017ee;border:1px solid #b9aa8440;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s;pointer-events:none}.hotspot strong{font-weight:500;font-size:12px;display:block}.hotspot small{font-size:9px;color:#c9c9b8;display:block;margin-top:3px}.hotspot:hover,.hotspot:focus-visible{background:#8d7548d9;box-shadow:0 0 50px #ffe1a53d;z-index:4}.hotspot:hover:before,.hotspot:focus-visible:before{inset:-12px}.hotspot:hover>span,.hotspot:focus-visible>span{opacity:1;transform:translateX(0)}.hotspot.awards{left:29%;top:22%}.hotspot.books{left:68%;top:20%}.hotspot.author{left:56%;top:49%}.hotspot.projects{left:76%;top:67%}.environment{transition:transform .8s cubic-bezier(.22,.68,.18,1);transform-origin:var(--origin,50% 50%)}.room-world.preview .environment{transform:scale(1.035)}.overview{position:absolute;left:4.5%;top:28px;border:1px solid #d7bd8c60;background:#102017ed;padding:13px 18px;z-index:6;font-size:12px}.overview kbd{margin-left:20px;color:#a9b3a1;font:9px Manrope}.detail-panel{position:absolute;right:3.5%;top:50%;transform:translateY(-50%);width:32%;max-width:460px;padding:34px;background:#102017f5;border:1px solid #b9aa8459;box-shadow:0 20px 80px #0005;z-index:5}.detail-panel .eyebrow{font-size:9px;line-height:1.7;margin-bottom:14px}.detail-panel h2{font:400 clamp(25px,3vw,48px)/1.18 Literata,Georgia,serif;letter-spacing:-.025em;margin:0 0 18px}.detail-description{font-size:12px;line-height:1.9;color:#ccd1c4;margin:0 0 24px}.detail-links{border-top:1px solid var(--line)}.detail-links a{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;color:#e6d0a6}.detail-links a:hover{color:white;padding-left:5px}.detail-links a b{font-weight:400}.detail-note{font-size:9px;line-height:1.8;color:#a6ae9e;margin-top:22px}.is-focused .room-intro,.is-focused .scene-label{opacity:0;transform:translateY(10px)}.is-focused .hotspot{opacity:0;pointer-events:none}.room-menu{display:grid;grid-template-columns:repeat(4,1fr);background:#122119;border-top:1px solid #cdb88440;border-bottom:1px solid var(--line)}.room-menu>a{display:flex;gap:15px;align-items:center;padding:25px 24px;border-right:1px solid var(--line);transition:background .25s}.room-menu>a:last-child{border-right:0}.room-menu>a:hover,.room-menu>a[aria-current=true]{background:#20372a}.menu-number{font-size:9px;color:#b29b72;align-self:flex-start;padding-top:5px}.room-menu>a>span:nth-child(2){font-size:13px}.room-menu small{display:block;font-size:9px;color:#a7b39f;margin-top:5px;line-height:1.8}.room-menu b{margin-left:auto;color:var(--gold);font-size:18px;font-weight:300}.colophon{max-width:1600px;padding:45px 5%;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:25px}.colophon p{font-family:Literata,Georgia,serif;font-size:19px;margin:0}.colophon p span{font:11px/1.8 Manrope;color:var(--muted)}.colophon>div{display:flex;gap:28px;font-size:11px;color:var(--gold)}footer{max-width:1600px;margin:auto;border-top:1px solid var(--line);padding:25px 5% 32px;display:flex;justify-content:space-between;align-items:flex-start;gap:25px;color:#8d9b89;font-size:9px}footer details{max-width:340px}footer summary{cursor:pointer}footer details p{line-height:1.8}footer a{color:#b7c0ab}[hidden]{display:none!important}
@media(min-width:1700px){.room-menu>a{padding:28px 40px}.room-menu>a>span:nth-child(2){font-size:15px}.room-menu small{font-size:11px}.detail-description,.detail-links a{font-size:14px}}
@media(max-width:900px){.masthead{height:76px}.room-address{display:none}.room-intro{left:5%;bottom:14%}.room-intro h1{font-size:49px;margin-bottom:14px}.eyebrow{margin-bottom:12px;font-size:8px}.room-intro>p:not(.eyebrow){font-size:11px}.gesture{margin-top:15px;font-size:8px}.hotspot{width:35px;height:35px}.hotspot>span{display:none}.room-menu>a{padding:19px 15px;gap:9px}.room-menu>a>span:nth-child(2){font-size:11px}.room-menu small{font-size:8px}.room-menu b{display:none}.detail-panel{padding:22px;width:37%;right:2%}.detail-panel h2{font-size:28px;margin-bottom:12px}.detail-description{font-size:10px;margin-bottom:15px}.detail-links a{font-size:10px;padding:10px 0}.detail-note{font-size:8px;margin-top:13px}.overview{top:14px;padding:9px 12px;font-size:10px}.colophon>div{display:grid;gap:10px}.colophon p{font-size:16px}}
@media(max-width:600px){.masthead{height:78px;padding:0 5%}.signature{font-size:13px;gap:11px}.signature small{font-size:8px;letter-spacing:.04em}.monogram{font-size:23px;padding-right:11px}.edition{font-size:9px;max-width:78px}.edition span{padding-left:3px}.room-viewport{aspect-ratio:1672/1280;overflow:hidden}.room-world{height:auto;aspect-ratio:1672/941;bottom:auto;top:0}.room-shade{background:linear-gradient(0deg,#0e191300,transparent)}.room-intro{top:74%;bottom:auto;left:5%;width:90%;text-shadow:none;display:flex;align-items:center;gap:18px}.room-intro .eyebrow{display:none}.room-intro h1{font-size:28px;white-space:nowrap;margin:0}.room-intro h1 br{display:none}.room-intro h1 em{display:block}.room-intro>p:not(.eyebrow){font-size:9px;line-height:1.7;margin:0}.gesture,.scene-label{display:none}.hotspot{width:30px;height:30px}.hotspot:before{inset:-4px}.hotspot i{font-size:8px}.room-menu{grid-template-columns:1fr 1fr}.room-menu>a{padding:20px 14px;min-height:91px;border-bottom:1px solid var(--line)}.room-menu>a:nth-child(even){border-right:0}.room-menu>a:nth-last-child(-n+2){border-bottom:0}.room-menu>a>span:nth-child(2){font-size:11px}.room-menu small{font-size:8px}.is-focused{aspect-ratio:auto!important;min-height:0;overflow:visible}.is-focused .room-world{position:relative;transform:none!important;opacity:.48}.is-focused .room-intro{display:none}.is-focused .overview{top:12px;left:5%;font-size:10px;background:#102017}.overview kbd{display:none}.detail-panel{position:relative;top:auto;right:auto;transform:none;width:auto;max-width:none;margin:-38px 5% 24px;padding:24px;box-shadow:0 10px 50px #0005}.detail-panel h2{font-size:30px}.detail-description{font-size:12px;line-height:1.9}.detail-links a{font-size:12px;padding:15px 0}.detail-note{font-size:10px}.colophon{padding:30px 5%;display:block}.colophon p{font-size:16px}.colophon>div{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px;font-size:10px}footer{padding-top:23px;flex-wrap:wrap;gap:18px}footer details{max-width:100%;order:3;flex-basis:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before{animation:none!important;transition:none!important}.room-world.preview .environment{transform:none}}

@media(max-width:600px){.hotspot{width:40px;height:40px}.room-menu>a>span:nth-child(2){font-size:12px}.room-menu small{font-size:9px}.signature small{font-size:9px}}

.room-points{position:absolute;left:0;right:0;top:0;aspect-ratio:1672/941;pointer-events:none}.room-points .hotspot{pointer-events:auto}.is-focused .room-points .hotspot{pointer-events:none}

/* Five sections in the personal website; stationary interaction targets. */
.hotspot.awards{left:33%;top:19%}.hotspot.community{left:16%;top:30%}
.hotspot.community>span{min-width:245px}
.room-intro{bottom:9%;left:5%;width:33%}.room-intro h1{font-size:clamp(42px,5vw,84px)}
.room-menu{grid-template-columns:repeat(5,minmax(0,1fr))}.room-menu>a{padding:22px 16px;gap:10px}.room-menu>a>span:nth-child(2){font-size:12px;line-height:1.55}.room-menu small{font-size:9px;line-height:1.7}.room-menu b{font-size:17px}

@media(max-width:1100px) and (min-width:601px){.room-menu{grid-template-columns:repeat(3,minmax(0,1fr))}.room-menu>a:nth-child(3){border-right:0}.room-menu>a:nth-child(-n+3){border-bottom:1px solid var(--line)}.room-menu>a{padding:18px}.room-intro{bottom:9%}.room-intro h1{font-size:clamp(39px,5.5vw,55px)}}
@media(max-width:600px){.room-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.room-menu>a{padding:17px 12px;min-height:93px;gap:8px}.room-menu>a:nth-child(-n+4){border-bottom:1px solid var(--line)}.room-menu>a:nth-child(even){border-right:0}.room-menu>a:nth-child(odd){border-right:1px solid var(--line)}.room-menu>a>span:nth-child(2){font-size:12px}.room-menu small{font-size:9px}.room-intro{top:74%;bottom:auto;left:5%;width:90%}.room-intro h1{font-size:27px}.room-intro>p:not(.eyebrow){font-size:9px}}

.footer-email{font-size:13px;color:var(--gold);white-space:nowrap}
@media(max-width:1100px) and (min-width:601px){.room-menu{grid-template-columns:repeat(6,minmax(0,1fr))}.room-menu>a{grid-column:span 2}.room-menu>a:nth-child(n+4){grid-column:span 3}}
@media(max-width:600px){.room-menu>a:last-child{grid-column:1/-1;border-right:0}footer .footer-email{font-size:14px;flex-basis:100%;order:1}footer details{order:3}}
