@font-face{font-family:Editorial;src:url('fonts/editorial.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url('fonts/manrope.ttf') format('truetype');font-weight:400 600;font-display:swap}
:root{--paper:#f1f3f3;--surface:#f8f9f9;--ink:#161e23;--muted:#536169;--line:#bfc9cd;--aqua:#97dff1;--accent:#007e9e;--glass:rgba(250,254,255,.51);--serif:Editorial,'Bodoni MT',Georgia,serif;--sans:Manrope,Arial,sans-serif;color-scheme:light}
html[data-atmosphere=aqua]{--paper:#deeff2;--surface:#e9f8f9;--ink:#103845;--muted:#38636e;--line:#98bec7;--aqua:#71d6e9;--accent:#00738c;--glass:rgba(230,253,255,.55)}html[data-atmosphere=chrome]{--paper:#151e26;--surface:#1d2b35;--ink:#e9f1f4;--muted:#b3c8d3;--line:#49606e;--aqua:#95ddef;--accent:#9be9ff;--glass:rgba(29,48,60,.72);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;transition:background .7s,color .7s;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button{border:0;background:none}button:focus-visible,a:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button:disabled{cursor:default}::selection{background:#a9e6f4;color:#142732}.skip-link{position:fixed;left:20px;top:-80px;z-index:999;background:var(--surface);padding:12px 20px}.skip-link:focus{top:15px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(64px,7.5vw,116px);line-height:.95;letter-spacing:-.055em}h2 em{font-style:italic;font-weight:400}h3{font-size:31px;line-height:1.2}small{font-size:11px}canvas{display:block}section{position:relative;scroll-margin-top:0}.section-pad{padding:100px 6vw}.eyebrow,.section-index{font-size:10px;font-weight:500;letter-spacing:.17em;text-transform:uppercase}.section-index{color:var(--muted);margin-bottom:45px}.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 6vw;position:absolute;top:0;left:0;right:0;z-index:30}.wordmark{font-family:var(--serif);font-size:25px;letter-spacing:-.04em;white-space:nowrap}.wordmark-dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--accent);margin-left:9px;vertical-align:middle}nav{display:flex;align-items:center;gap:32px;font-size:12px}nav a{position:relative;padding:10px 0}nav a:after{content:'';position:absolute;left:0;right:100%;bottom:5px;height:1px;background:var(--accent);transition:right .3s}nav a:hover:after,nav a[aria-current]:after{right:0}nav a:last-child{margin-left:14px}.menu-toggle{display:none}.glass{position:relative;isolation:isolate;background:radial-gradient(ellipse at var(--mx,35%) var(--my,15%),rgba(255,255,255,.8),transparent 65%),var(--glass);border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 0 0 1px rgba(104,146,161,.25),inset 0 -8px 14px rgba(116,191,217,.1),0 3px 14px rgba(24,66,84,.03);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:box-shadow .25s,transform .25s,background .4s}.glass:hover{box-shadow:inset 0 0 0 1px rgba(104,146,161,.4),inset 0 -8px 18px rgba(116,191,217,.25),0 5px 20px rgba(24,66,84,.1)}.glass:active{transform:scale(.96)}html[data-atmosphere=chrome] .glass{background:radial-gradient(ellipse at var(--mx,35%) var(--my,15%),rgba(164,220,240,.22),transparent 65%),var(--glass);border-color:#627d8c}.pill{border-radius:100px;padding:15px 25px;display:inline-flex;align-items:center;gap:35px;font-size:12px}.pill span{font-size:21px;line-height:1}.hero{min-height:790px;height:min(920px,100svh);overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 10% 40%,rgba(255,255,255,.95),transparent 60%),radial-gradient(ellipse at 85% 90%,rgba(158,214,232,.14),transparent 60%)}html[data-atmosphere=chrome] .hero{background:radial-gradient(ellipse at 0 40%,#34505e88,transparent 65%)}.hero-topline{display:flex;justify-content:space-between;position:absolute;top:135px;left:6vw;right:6vw;z-index:2}.hero-topline .eyebrow{color:var(--muted)}.hero-grid{position:absolute;inset:185px 6vw 135px;border:1px solid var(--line);border-right:0;border-left:0;opacity:.35}.hero-copy{position:absolute;z-index:4;top:210px;right:6vw;width:48%;pointer-events:none}.hero-copy a{pointer-events:auto}h1{font-size:clamp(90px,10.7vw,174px);line-height:.76;letter-spacing:-.065em}h1 span{display:inline-block;margin-top:10px}.hero-subtitle{font-size:11px;letter-spacing:.27em;text-transform:uppercase;margin-top:34px}.hairline{height:1px;width:85px;background:var(--line);margin:33px 0 23px}.hero-note{font-size:13px;line-height:1.65;margin-left:30%;max-width:190px}.circle-link{width:49px;height:49px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:25px;position:absolute;right:0;bottom:10px;transition:background .3s,transform .3s}.circle-link:hover{background:var(--aqua);transform:rotate(45deg)}.sculpture-wrap{position:absolute;top:150px;left:-13%;width:83%;height:calc(100% - 240px);z-index:3}.sculpture-wrap canvas{width:100%;height:100%;cursor:grab;touch-action:pan-y;position:relative;z-index:2}.sculpture-wrap canvas:active{cursor:grabbing}.sculpture-fallback{position:absolute;inset:15% 8%;border:28px solid #c3d4df;border-top-color:#fff;border-bottom-color:#58889e;border-radius:48%;transform:rotate(-32deg);box-shadow:inset 0 0 22px #476579,0 5px 25px #99b4c455;z-index:1}.webgl-ready .sculpture-fallback,.orb-ready .orb-fallback{display:none}.hero-bottom{display:flex;align-items:center;gap:30px;position:absolute;bottom:43px;left:6vw;right:6vw;z-index:5}.object-label{font-size:9px;letter-spacing:.14em;line-height:2;color:var(--muted)}.object-label small{font-size:9px;letter-spacing:.015em;text-transform:none}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:6px}.hero-bottom .pill{margin-left:auto}.scroll-note{font-size:10px;margin-left:30px;display:flex;gap:35px;align-items:center}.scroll-note span{font-size:20px}.about-section{display:grid;grid-template-columns:1fr 3fr;border-bottom:1px solid var(--line);padding-top:110px;padding-bottom:105px}.about-content h2{margin-bottom:32px}.large-copy{font-family:var(--serif);font-size:clamp(28px,3.2vw,46px);line-height:1.2;letter-spacing:-.02em;max-width:880px}.about-bottom{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-top:45px}.about-bottom p{max-width:330px;color:var(--muted);font-size:13px}.text-link{display:inline-flex;gap:35px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px;font-size:12px}.text-link span{font-size:21px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:60px}.section-heading p{color:var(--muted);font-size:13px;padding:0 0 8px 30px}.project{border-top:1px solid var(--line)}.project:last-child{border-bottom:1px solid var(--line)}.project summary{list-style:none;display:grid;grid-template-columns:90px 1fr 230px 60px;align-items:center;gap:30px;padding:28px 0;cursor:pointer}.project summary::-webkit-details-marker{display:none}.project-no{font-family:var(--serif);font-size:65px;color:var(--muted);line-height:1;opacity:.65}.project-name{font-family:var(--serif);font-size:37px;letter-spacing:-.025em;line-height:1.1}.project-name small{font-family:var(--sans);display:block;letter-spacing:.02em;margin-top:10px;font-size:11px;color:var(--muted)}.project-plus{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:46px;height:46px;justify-self:end;font-size:24px;transition:transform .4s,background .3s}.project[open] .project-plus{transform:rotate(45deg);background:var(--aqua);color:#173b49}.project-art{height:90px;overflow:hidden;position:relative;filter:saturate(.65);transition:filter .4s,transform .4s}.project:hover .project-art{filter:saturate(1);transform:scale(1.025)}.art-leaf{background:radial-gradient(ellipse at 20% 30%,#e2efcb88,transparent 35%),repeating-linear-gradient(130deg,transparent 0 17px,#d9e7b333 18px 19px),linear-gradient(20deg,#2c4a38,#a6b899 60%,#dae5c9)}.art-leaf:after{content:'';position:absolute;inset:12% 20%;border-radius:100% 0 100% 0;border:1px solid #e5f4cc88;background:repeating-linear-gradient(40deg,transparent 0 10px,#e3efc444 11px 12px);transform:rotate(20deg)}.art-wave{background:repeating-radial-gradient(ellipse at 20% 70%,#e6f7f288 0px,#6fadb744 3px,#89c6cb22 6px,transparent 9px,transparent 12px),linear-gradient(45deg,#3a7a8c,#d1e8e6)}.art-spore{background:radial-gradient(circle at 20% 40%,#f5fcfc 0 8px,#9fb8bc 9px 11px,transparent 12px),radial-gradient(circle at 70% 70%,#dff4f3 0 18px,#8fa9b2 19px 21px,transparent 22px),radial-gradient(circle at 50% 20%,#e4f3f0 0 13px,#90aeb5 14px 16px,transparent 17px),radial-gradient(circle at 95% 10%,#dfebed 0 18px,#8babb1 19px 21px,transparent 22px),linear-gradient(20deg,#8bafb5,#d6e8e7)}.project-body{padding:0 90px 35px 120px;max-width:900px;animation:reveal .4s ease}.project-body>p:first-child{font-size:15px;line-height:1.9}.project-footnote{font-size:10px;color:var(--muted);margin-top:20px;text-transform:uppercase;letter-spacing:.1em}.publications-section{display:grid;grid-template-columns:1fr 3fr;background:var(--surface);border-block:1px solid var(--line)}.publications-content h2{margin-bottom:30px}.publications-content>.large-copy{font-size:33px;color:var(--muted)}.publication-empty{display:flex;gap:35px;align-items:center;margin-top:45px;padding-top:35px;border-top:1px solid var(--line)}.publication-empty p{font-size:12px;color:var(--muted);margin-top:8px}.tiny-orbit{width:70px;height:70px;border:1px solid var(--line);border-radius:50%;position:relative;transform:rotate(-35deg)}.tiny-orbit:before{content:'';position:absolute;inset:20px -15px;border:1px solid var(--accent);border-radius:50%}.tiny-orbit:after{content:'';position:absolute;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 25%,white,#8ad8ee 40%,#4a7186);top:0;left:20px}.art-section{padding-bottom:80px}.art-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.art-copy>.eyebrow{color:var(--muted);display:block;margin-bottom:30px}.art-copy h2{font-size:clamp(64px,7vw,106px);margin-bottom:30px}.art-copy>p{font-size:14px;color:var(--muted);line-height:1.9}.world-tabs{display:flex;gap:8px;margin-top:34px;flex-wrap:wrap}.world-tabs button{border-radius:30px;padding:11px 16px;font-size:10px}.world-tabs .active{box-shadow:inset 0 0 0 1px #78b8cb,inset 0 -12px 22px #9dddf766}.orb-instruction{font-size:10px;color:var(--muted);display:block;margin-top:18px;min-height:36px}.orb-stage{height:480px;position:relative}.orb-stage canvas{width:100%;height:100%;cursor:grab;touch-action:pan-y}.orb-stage canvas:active{cursor:grabbing}.orb-caption{position:absolute;bottom:4px;left:20%;right:20%;display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:.12em}.orb-fallback{position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle at 30% 20%,#fff9,transparent 35%),url('tidal.jpg') center/cover;border:2px solid #e9ffff;box-shadow:inset -20px -20px 35px #123a65aa,0 20px 35px #18334322;z-index:-1}.art-banner{margin-top:65px}.landscape-art{height:360px;background:url('tidal.jpg') center 47%/cover;border-radius:2px}.art-banner>span{font-size:11px;display:flex;justify-content:space-between;margin-top:13px;color:var(--muted)}.art-banner small{font-size:10px}.contact-section{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 3fr;padding-top:80px;padding-bottom:100px}.contact-section .eyebrow{margin-bottom:28px}.contact-section h2{font-size:clamp(90px,12vw,170px)}.cyan{color:var(--accent)}.contact-description{color:var(--muted);font-size:13px;margin-top:25px}.contact-links{display:flex;gap:50px;align-items:center;margin-top:35px}.site-footer{padding:30px 6vw 110px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;font-size:10px;color:var(--muted);align-items:center}.secret-button{font-size:28px;width:44px;height:44px;transition:transform .7s,color .4s}.secret-button:hover{transform:rotate(120deg);color:var(--accent)}.experience-controls{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:50;border-radius:50px;display:flex;padding:5px 10px;gap:3px;align-items:center}.experience-controls:hover{transform:translateX(-50%)}.experience-controls button{padding:8px 10px;display:flex;align-items:center;gap:9px;font-size:10px;min-height:33px;border-radius:30px}.experience-controls button:hover{background:#99cde922}.control-divider{height:18px;width:1px;background:var(--line)}.control-cycle{font-size:15px;color:var(--muted)}.atmosphere-swatch{width:14px;height:14px;border-radius:50%;border:1px solid #a7c1cc;background:radial-gradient(circle at 30% 20%,white,#bddfea 60%,#8aafc3)}[data-atmosphere=aqua] .atmosphere-swatch{background:radial-gradient(circle at 30% 20%,white,#6ccde3 60%,#148096)}[data-atmosphere=chrome] .atmosphere-swatch{background:radial-gradient(circle at 30% 20%,white,#788d9e 40%,#192b38 75%)}#motion-icon{font-size:13px;min-width:12px}#ripples{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}.ripple{position:absolute;width:16px;height:16px;margin:-8px;border:1px solid #76c5de88;border-radius:50%;box-shadow:0 0 5px #a8d9e94d,inset 0 0 6px #fff9;animation:ripple 1.3s ease-out forwards}.ripple.trail{width:5px;height:5px;margin:-2.5px;animation:trail 1s ease-out forwards;opacity:.5}.ripple:after{content:'';position:absolute;inset:3px;border:1px solid #b4e4f077;border-radius:50%}dialog{width:min(900px,90vw);padding:35px;border:1px solid var(--line);border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 40px 150px #051c3a44;max-height:92svh;overflow:auto}dialog::backdrop{background:#122d3e55;backdrop-filter:blur(14px)}.secret-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.close-dialog{border-radius:50%;width:40px;height:40px;font-size:24px}dialog h2{font-size:70px;margin:20px 0}dialog>p{font-size:12px;color:var(--muted)}#secret-canvas{width:100%;height:240px;margin:25px 0;touch-action:none;border:1px solid var(--line);border-radius:10px;background:radial-gradient(ellipse at center,#bfe6f533,transparent 70%)}.secret-bottom{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.1em}.secret-bottom .pill{font-size:11px;padding:9px 17px}.entry-content{max-width:900px;margin:0 auto}.entry-content p{margin-bottom:1.5em}.entry-content img{max-width:100%;height:auto}.inner-main{padding-top:150px;min-height:70vh}.inner-main h1{font-size:90px;line-height:1;margin-bottom:45px}.inner-main .section-pad{padding-top:40px}.inner-main a{text-decoration:underline}.wp-block-image img{max-width:100%;height:auto}.admin-bar .site-header{top:32px}
@keyframes ripple{to{transform:scale(10);opacity:0}}@keyframes trail{to{transform:scale(6);opacity:0}}@keyframes reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero-copy{right:8vw;width:45%}.section-pad{padding-left:8vw;padding-right:8vw}.site-header{padding-inline:8vw}}
@media(max-width:1000px){nav{gap:20px}.hero-copy{width:52%;top:235px}h1{font-size:12vw}.hero-note{margin-left:15%}.sculpture-wrap{left:-24%;width:95%}.project summary{grid-template-columns:65px 1fr 170px 45px;gap:20px}.project-name{font-size:31px}.project-art{height:75px}.art-layout{gap:10px}.orb-stage{height:390px}.world-tabs button{padding:10px 12px}.about-section,.publications-section,.contact-section{grid-template-columns:1fr 3.3fr}.about-bottom{align-items:flex-start;flex-direction:column;gap:25px}.project-body{padding-left:85px}}
@media(max-width:700px){.site-header{height:82px;padding-inline:6vw}.wordmark{font-size:23px}.menu-toggle{display:flex;align-items:center;gap:15px;border-radius:30px;padding:9px 15px;font-size:11px}.site-header nav{display:none;position:absolute;top:75px;left:6vw;right:6vw;flex-direction:column;align-items:stretch;gap:0;padding:18px 25px;border:1px solid var(--line);background:var(--surface);border-radius:15px;box-shadow:0 10px 35px #142d3d16}.site-header nav.open{display:flex}nav a{padding:13px 0}nav a:last-child{margin-left:0}.hero{min-height:820px;height:100svh;max-height:980px}.hero-topline{top:108px}.edition{display:none}.hero-grid{inset:145px 6vw 135px}.hero-copy{top:165px;left:6vw;right:6vw;width:auto}.hero-copy h1{font-size:19.5vw;line-height:.83;letter-spacing:-.065em}.hero-copy h1 span{margin-top:0}.hero-subtitle{font-size:9px;letter-spacing:.2em;margin-top:20px}.hero-copy .hairline{margin:22px 0 16px;width:50px}.hero-note{font-size:11px;margin-left:0;max-width:170px}.circle-link{right:2px;bottom:4px;width:43px;height:43px}.sculpture-wrap{left:-32%;width:150%;top:400px;height:300px}.hero-bottom{bottom:28px;gap:15px;flex-wrap:wrap}.object-label{font-size:8px;max-width:150px}.object-label small{font-size:8px}.hero-bottom .pill{font-size:10px;gap:17px;padding:12px 18px}.scroll-note{width:100%;justify-content:space-between;margin:8px 0 0;border-top:1px solid var(--line);padding-top:12px;font-size:9px}.section-pad{padding:65px 6vw}.section-index{margin-bottom:35px;font-size:9px}.about-section,.publications-section,.contact-section{display:block}h2{font-size:67px}.large-copy{font-size:29px}.about-bottom{margin-top:25px;gap:25px}.about-content h2{margin-bottom:25px}.section-heading{display:block;margin-bottom:35px}.section-heading p{padding:25px 0 0;font-size:12px}.project summary{grid-template-columns:38px 1fr 35px;gap:14px;padding:25px 0}.project-no{font-size:42px}.project-name{font-size:28px}.project-name small{font-size:10px;line-height:1.5;margin-top:8px}.project-art{display:none}.project-plus{width:34px;height:34px;font-size:18px}.project-body{padding:0 12px 26px 52px}.project-body>p:first-child{font-size:13px}.publication-empty{gap:25px}.publication-empty h3{font-size:27px}.publications-content>.large-copy{font-size:28px}.tiny-orbit{min-width:60px;width:60px;height:60px}.art-layout{display:flex;flex-direction:column;gap:10px;align-items:stretch}.art-copy h2{font-size:74px}.art-copy>.eyebrow{margin-bottom:20px}.art-copy>p{font-size:13px}.orb-stage{height:360px}.orb-caption{left:15%;right:15%}.art-banner{margin-top:35px}.landscape-art{height:240px}.art-banner>span{font-size:10px;gap:15px}.art-banner small{font-size:8px;text-align:right}.contact-section h2{font-size:100px}.contact-links{align-items:flex-start;flex-direction:column;gap:25px}.contact-section .section-index{margin-bottom:40px}.site-footer{padding-bottom:100px;gap:15px;font-size:9px}.footer-center{display:none}.experience-controls{bottom:15px;white-space:nowrap}.experience-controls button{padding:7px 9px}.secret-button{font-size:26px}dialog{padding:22px;width:93vw}dialog h2{font-size:59px}dialog .eyebrow{font-size:8px}#secret-canvas{height:210px}.inner-main h1{font-size:62px}.admin-bar .site-header{top:46px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}

.publication-list{margin-top:35px}.publication-item{padding:30px 0;border-top:1px solid var(--line)}.publication-item h3{font-size:30px}.publication-excerpt,.citation-text{font-size:12px;color:var(--muted);margin-top:15px;line-height:1.8}.copy-citation{padding:8px 16px;border-radius:30px;font-size:10px;margin-top:18px}.artwork-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:45px}.artwork-item img{width:100%;height:220px;object-fit:cover}.artwork-item h3{font-size:27px;margin-top:12px}.editable-copy p{margin-bottom:12px;font-size:15px;line-height:1.9}@media(max-width:700px){.artwork-grid{grid-template-columns:1fr}.editable-copy p{font-size:13px}}
/* Landscape edition: daylight → water → stars. */
:root{--serif:Manrope,Arial,sans-serif;--night-progress:0}
body{background:#b5e4f4}.journey{position:fixed;inset:0;z-index:-1;pointer-events:none;background:#77c8ee}.landscape{position:absolute;inset:0;background-position:center;background-size:cover;will-change:opacity}.meadow{background-image:url('meadow.jpg')}.shore{background-image:url('shore.jpg');opacity:var(--shore,0)}.night{background-image:url('night-analog.jpg');opacity:var(--night,0)}.landscape-shade{position:absolute;inset:0;background:linear-gradient(90deg,#effaff4d,transparent 75%);opacity:calc(1 - var(--night,0))}
body:has(.hero){isolation:isolate;background:transparent}body:has(.inner-main){background:var(--paper)}body:has(.inner-main) .journey{display:none}
.hero,.about-section,.research-section,.publications-section,.art-section,.contact-section,.site-footer,html[data-atmosphere=chrome] .hero{background:transparent;border:0}.hero{min-height:760px;height:100svh}.hero-grid,.hero-topline,.hero-note,.hero-subtitle,.hairline,.footer-center{display:none}.site-header{height:100px;color:#15343b}.wordmark{font-family:var(--sans);font-size:17px;letter-spacing:-.05em;font-weight:600}.wordmark-dot{background:#126868}.site-header nav{padding:6px 24px;border:1px solid #fff9;border-radius:60px;background:#efffff69;backdrop-filter:blur(20px)}nav a:last-child{margin-left:0}.hero-copy{left:6vw;right:auto;top:25%;width:80%;color:#102e3a}h1{font-family:var(--sans);font-size:clamp(80px,11.5vw,180px);font-weight:400;line-height:.95;letter-spacing:-.085em;text-shadow:0 2px 30px #fff5}.hero-copy h1 span{margin-top:0}.circle-link{position:static;margin-top:40px;background:#efffff77;border-color:#fff9}.sculpture-wrap{left:auto;right:-5%;top:38%;width:52%;height:46%;opacity:.95}.hero-bottom{bottom:38px;color:#15343b}.hero-bottom .pill{margin-left:0}.hero-bottom .object-label{order:2;margin-left:auto;color:#173f49}.hero-bottom .scroll-note{margin-left:15px}.object-label .live-dot{display:none}.object-label{font-size:0}.object-label small{font-size:10px;letter-spacing:0}.about-section{padding-top:130px;padding-bottom:180px;min-height:90svh;align-items:center}.about-content,.publications-content{padding:48px;border:1px solid #fff9;background:#efffffce;border-radius:25px;backdrop-filter:blur(22px);box-shadow:0 20px 70px #234f6620}.about-bottom:has(p:empty){margin-top:30px}.about-bottom p:empty{display:none}.about-content h2{font-size:50px;letter-spacing:-.06em}.large-copy{font-family:var(--sans);font-size:clamp(22px,2.4vw,36px);line-height:1.45;letter-spacing:-.045em}.section-index{color:#163b47;font-size:11px;letter-spacing:.08em}.section-heading{margin-bottom:35px}.section-heading h2,.publications-content h2{font-size:clamp(48px,6vw,88px);letter-spacing:-.065em}.section-heading p:empty{display:none}.research-section{min-height:100svh;padding-top:140px;padding-bottom:120px}.project-list{background:#efffffc9;border:1px solid #fff9;border-radius:25px;padding:15px 32px;backdrop-filter:blur(24px);box-shadow:0 20px 70px #234f6620}.project:first-child{border-top:0}.project:last-child{border-bottom:0}.project-name{font-family:var(--sans);font-size:30px;letter-spacing:-.055em}.project-no{font-family:var(--sans);font-size:21px}.project-art{border-radius:12px}.project-body{padding-left:120px}.project-body p,.editable-copy{font-size:14px;line-height:1.9}.publications-section{min-height:80svh;align-items:center;padding-bottom:160px}.publication-empty{margin-top:30px}.publication-empty h3{font-family:var(--sans);font-size:20px}.publication-empty p:empty{display:none}.art-section{min-height:115svh;padding-top:170px;padding-bottom:130px;overflow:hidden;color:#ebf7ff;--ink:#ebf7ff;--muted:#c1d6eb;--line:#aac8e24d;--glass:#1d426c77;--accent:#b6e9ff}.art-section .section-index,.art-copy>.eyebrow{color:#d0e5ff}.art-copy h2{font-size:clamp(60px,7vw,105px);letter-spacing:-.07em}.art-copy>p{color:#c1d6eb}.art-layout{position:relative;z-index:2}.art-copy .eyebrow{font-size:38px;margin-bottom:20px}.world-tabs .glass{background:#1b497a66;color:#effaff;border-color:#a8d8f688}.celestial-dial{position:absolute;width:min(70vw,850px);height:auto;right:-15%;top:0;opacity:.32;pointer-events:none;transform:rotate(-15deg)}.celestial-dial svg{display:block;width:100%;fill:none;stroke:#a6d9ff;stroke-width:.7}.celestial-dial .star-map{stroke-width:1.8}.celestial-dial text{fill:#cdeaff;stroke:0;text-anchor:middle;font-size:25px;font-family:Georgia,serif}.orb-caption{color:#c1d6eb}.contact-section{min-height:65svh;align-items:center;color:#effaff;--ink:#effaff;--muted:#c1d6eb;--line:#abcfee66;--glass:#17416a88;--accent:#b4edff}.contact-section .section-index{color:#d1e8ff}.contact-section h2{font-size:clamp(70px,10vw,150px);letter-spacing:-.075em}.contact-section .eyebrow:empty,.contact-description:empty{display:none}.contact-links .glass{color:#effaff;background:#15416d88;border-color:#a9d5ee88}.site-footer{color:#d1e8ff;padding-top:40px}.experience-controls{background:#e8faffd9;color:#183d4e;--line:#8eafb9;--muted:#31586b;--glass:#e8faffd9}.experience-controls .control-cycle{color:#31586b}.glass{box-shadow:inset 0 1px 2px #fff9,inset 0 -8px 15px #70b5d622,0 7px 24px #1b668b15}
html[data-landscape=night]{--ink:#eff7ff;--muted:#bdd9ed}html[data-landscape=meadow],html[data-landscape=shore]{--ink:#16323c;--muted:#41616c}html[data-atmosphere=aqua] .landscape{filter:saturate(1.2) hue-rotate(6deg)}html[data-atmosphere=chrome] .landscape{filter:saturate(.65) brightness(.7)}html[data-atmosphere=chrome] .hero-copy,html[data-atmosphere=chrome] .hero-bottom,html[data-atmosphere=chrome] .site-header{color:#fff}html[data-atmosphere=chrome] .about-content,html[data-atmosphere=chrome] .publications-content,html[data-atmosphere=chrome] .project-list{color:#173641;--muted:#42616e;--line:#9bb8c0}html[data-atmosphere=chrome] .site-header nav{background:#133e5588}
/* Separate wavefronts, with no filled bubble or moving dot. */
.ripple,.ripple.trail{width:0;height:0;margin:0;border:0;box-shadow:none;background:none;animation:none;opacity:1}.ripple:after{display:none}.ripple i{position:absolute;width:160px;height:160px;left:-80px;top:-80px;border:1.4px solid #e3faffd9;border-radius:50%;box-shadow:0 1px 1px #14597977,inset 0 1px 1px #fff9;opacity:0;animation:water-ring 1.8s cubic-bezier(.12,.45,.3,1) forwards}.ripple i:nth-child(2){animation-delay:.15s}.ripple i:nth-child(3){animation-delay:.3s}.ripple.trail i{width:95px;height:95px;left:-47.5px;top:-47.5px;border-width:1px;animation-duration:1.5s}.ripple.trail i:nth-child(3){display:none}@keyframes water-ring{0%{transform:scale(.03);opacity:0}12%{opacity:.8}100%{transform:scale(1.25);opacity:0}}
@media(max-width:1000px){.hero-copy{top:25%;width:90%}.sculpture-wrap{right:-18%;width:75%}.project summary{grid-template-columns:60px 1fr 170px 40px}.project-body{padding-left:80px}.about-section,.publications-section{grid-template-columns:1fr 4fr}}
@media(max-width:700px){.site-header{height:80px}.wordmark{font-size:16px}.site-header nav{border-radius:20px;background:#efffffef}.hero{min-height:760px;height:100svh;max-height:1000px}.hero-copy{top:25%;left:6vw;width:88%}.hero-copy h1{font-size:18vw;line-height:1.03;letter-spacing:-.085em}.circle-link{margin-top:24px}.sculpture-wrap{top:48%;height:33%;right:-22%;width:100%}.hero-bottom{bottom:30px;gap:10px}.hero-bottom .object-label{max-width:125px}.hero-bottom .scroll-note{margin-left:0}.about-section{min-height:90svh;padding-top:90px;padding-bottom:100px}.about-content,.publications-content{padding:30px 24px;border-radius:20px}.about-content h2{font-size:42px}.large-copy{font-size:24px;line-height:1.5}.research-section{padding-top:90px;padding-bottom:90px}.project-list{padding:5px 20px;border-radius:20px}.project summary{grid-template-columns:25px 1fr 30px;gap:12px}.project-name{font-size:25px}.project-no{font-size:14px}.project-body{padding:0 0 25px 37px}.section-heading h2,.publications-content h2{font-size:48px}.publications-section{min-height:80svh;padding-bottom:120px}.art-section{padding-top:110px;min-height:110svh}.art-copy h2{font-size:66px}.orb-stage{height:340px}.celestial-dial{width:110vw;right:-42%;top:15px}.contact-section{padding-top:80px;min-height:65svh}.contact-section h2{font-size:75px}.site-footer{padding-bottom:110px}.landscape{background-position:58% center}.meadow{background-position:40% center}}
/* Light, atmosphere, and discovery edition. */
[hidden]{display:none!important}.landscape{inset:-12px;transform:translate(var(--drift-x,0px),var(--drift-y,0px)) scale(1.025);transition:filter 1s}.shore{mask-image:radial-gradient(ellipse at 72% 65%,#000 max(0%,calc(var(--shore-radius,0%) - 24%)),transparent var(--shore-radius,0%));-webkit-mask-image:radial-gradient(ellipse at 72% 65%,#000 max(0%,calc(var(--shore-radius,0%) - 24%)),transparent var(--shore-radius,0%))}.night{mask-image:radial-gradient(ellipse at 72% 15%,#000 max(0%,calc(var(--night-radius,0%) - 28%)),transparent var(--night-radius,0%));-webkit-mask-image:radial-gradient(ellipse at 72% 15%,#000 max(0%,calc(var(--night-radius,0%) - 28%)),transparent var(--night-radius,0%))}
.sun-rays,.water-light,.aurora-light,.transition-light,.pointer-light{position:absolute;inset:0;pointer-events:none}.sun-rays{background:conic-gradient(from 155deg at 85% -10%,transparent 0deg,#faffdb45 5deg,transparent 11deg,#fffbd51a 17deg,transparent 27deg,#f7ffda33 31deg,transparent 37deg);mix-blend-mode:screen;opacity:calc((1 - var(--night,0))*.6);transform-origin:85% 0;animation:sun-drift 24s ease-in-out infinite alternate}.water-light{inset:30% -20% -20%;background:repeating-radial-gradient(ellipse at 30% 50%,transparent 0 20px,#bfffff22 24px,transparent 29px 55px),repeating-radial-gradient(ellipse at 80% 30%,transparent 0 38px,#eaffff33 40px,transparent 44px 80px);filter:blur(2px);mix-blend-mode:screen;opacity:calc(var(--water,0)*.5);animation:caustics 15s ease-in-out infinite alternate}.aurora-light{background:radial-gradient(ellipse at 66% 8%,#71f7c526,transparent 45%),conic-gradient(from 175deg at 95% 0%,transparent 0deg,#67d6ff25 18deg,transparent 35deg,#ac78f71c 50deg,transparent 65deg);opacity:var(--night,0);mix-blend-mode:screen;animation:aurora-drift 22s ease-in-out infinite alternate}.transition-light{background:radial-gradient(ellipse at 76% 55%,#fff4bba8, #efa0b04d 25%,transparent 65%);mix-blend-mode:screen;opacity:var(--horizon-glow,0)}.pointer-light{background:radial-gradient(ellipse 320px 250px at var(--px,70%) var(--py,30%),#e6ffff26,transparent 75%);mix-blend-mode:screen}.journey #atmospheric-stars{position:absolute;inset:0;width:100%;height:100%;opacity:var(--night,0)}
@keyframes sun-drift{to{transform:rotate(7deg) scale(1.08)}}@keyframes caustics{to{transform:translate(3%,-3%) scale(1.08) rotate(3deg)}}@keyframes aurora-drift{to{transform:translate(-4%,2%) scale(1.12);filter:hue-rotate(22deg)}}
.light-reveal{opacity:0;transform:translateY(32px);filter:blur(5px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),filter 1.1s ease}.light-reveal.is-visible{opacity:1;transform:none;filter:none}.about-content,.publications-content,.project-list{position:relative;box-shadow:inset 0 1px 2px #fff,0 20px 70px #234f6620}.about-content:before,.publications-content:before,.project-list:before{content:'';position:absolute;inset:-1px;pointer-events:none;border:1px solid transparent;border-radius:inherit;background:linear-gradient(125deg,#ffffffb0,transparent 35%,#bcf7ff70 70%,transparent) border-box;mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask-composite:exclude}.glass:before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 25%,#fff5 48%,transparent 70%);opacity:0;transform:translateX(-20%);transition:transform .7s,opacity .7s;pointer-events:none}.glass:hover:before{opacity:.65;transform:translateX(15%)}.project[open] .project-body{animation:project-arrival .6s ease}@keyframes project-arrival{from{opacity:0;transform:translateY(-8px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.art-section{padding-top:120px;min-height:150svh}.star-explorer{position:relative;z-index:3;margin:0 0 70px}.star-explorer-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#e2f4ff}.star-explorer-heading>span:last-child{font-size:24px}.star-map{height:340px;position:relative}.star-map svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.sky-connection{fill:none;stroke:#b7e5ff;stroke-width:.9;stroke-dasharray:1000;stroke-dashoffset:1000;opacity:.55;transition:stroke-dashoffset 2.8s ease}.is-visible .sky-connection{stroke-dashoffset:0}.star-map:has(.sky-star:hover) .sky-connection,.star-map:has(.sky-star:focus-visible) .sky-connection{stroke:#fff;filter:drop-shadow(0 0 4px #8bd8ff);opacity:1}.sky-star{position:absolute;left:var(--sx);top:var(--sy);transform:translate(-50%,-50%);width:64px;min-height:64px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#e6f7ff;isolation:isolate;overflow:visible}.star-core{font-size:23px;line-height:1;text-shadow:0 0 9px #fff,0 0 25px #9adfff;animation:star-breathe 4s ease-in-out infinite;animation-delay:var(--delay)}.sky-star:before,.sky-star:after{content:'';position:absolute;width:48px;height:48px;top:-1px;border:1px solid #bcdeff44;border-radius:50%;opacity:.5;transition:transform .7s,opacity .7s}.sky-star:after{width:64px;height:64px;top:-9px;opacity:0}.sky-star:hover:before,.sky-star:focus-visible:before,.sky-star.selected:before{transform:scale(1.18);opacity:1}.sky-star:hover:after,.sky-star:focus-visible:after{transform:scale(1.3);opacity:.8}.sky-star:hover .star-core,.sky-star:focus-visible .star-core{color:white;text-shadow:0 0 15px white,0 0 45px #93daff;transform:rotate(90deg)}.star-core{transition:transform .7s,color .7s}.star-name{font-size:10px;letter-spacing:.02em;white-space:nowrap;position:absolute;top:56px;left:50%;transform:translateX(-50%);padding:3px 8px;border-radius:20px;background:#0b23414d;backdrop-filter:blur(6px)}.star-map-hint{font-size:11px;color:#c8e5ff;opacity:.8}.celestial-dial{top:450px;opacity:.2}.star-explorer+.art-layout{padding-top:20px;border-top:1px solid #c6e5ff33}.art-copy>.eyebrow{display:none}.art-copy h2{font-size:clamp(48px,6vw,80px)}@keyframes star-breathe{0%,100%{opacity:.65;filter:brightness(.9)}50%{opacity:1;filter:brightness(1.5)}}
#star-discovery{width:min(570px,90vw);padding:55px 45px;background:radial-gradient(ellipse at 85% 0%,#356c9766,transparent 70%),#0b203bed;border:1px solid #a9d7ee88;border-radius:28px;color:#effaff;box-shadow:inset 0 1px 1px #e0f8ff66,0 30px 150px #020a27aa;backdrop-filter:blur(30px);overflow:hidden}#star-discovery[open]{animation:discovery-open .5s cubic-bezier(.2,.7,.2,1)}#star-discovery::backdrop{background:#020b2e66;backdrop-filter:blur(13px)}.close-discovery{position:absolute;right:18px;top:18px;width:40px;height:40px;border-radius:50%;color:#e9f8ff;background:#345d8044;font-size:24px}.discovery-symbol{display:block;font-size:48px;margin-bottom:28px;text-shadow:0 0 25px #b3e4ff}#discovery-category{color:#c9e7ff}#star-discovery h2{font-size:clamp(32px,5vw,52px);line-height:1.08;letter-spacing:-.06em;margin:20px 0}#star-discovery #discovery-body{font-size:14px;color:#c7dfee;line-height:1.8;margin-bottom:30px}#discovery-action,#discovery-link{background:#28577e77;color:white;border-color:#9bc4e477;gap:25px;margin:8px 8px 0 0}#discovery-action:focus-visible,.close-discovery:focus-visible{outline-color:#d6f4ff}@keyframes discovery-open{from{opacity:0;transform:translateY(18px) scale(.95);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@media(max-width:700px){.star-map{height:275px}.star-name{font-size:9px}.star-explorer{margin-bottom:55px}.star-explorer-heading{font-size:11px}.art-section{padding-top:90px}.celestial-dial{top:430px}.sky-star{width:56px}.star-map .sky-star:nth-of-type(1){left:15%}.star-map .sky-star:nth-of-type(4){left:84%}#star-discovery{padding:40px 27px}.sun-rays{opacity:calc((1 - var(--night,0))*.4)}.water-light{filter:none}.light-reveal{transform:translateY(18px);filter:none}}
html[data-motion=off] .light-reveal{opacity:1;transform:none;filter:none}html[data-motion=off] .landscape{transform:none}html[data-motion=off] .pointer-light{display:none}html[data-motion=off] .sky-connection{stroke-dashoffset:0}@media(prefers-reduced-motion:reduce){.light-reveal{opacity:1;transform:none;filter:none}.landscape{transform:none}.sky-connection{stroke-dashoffset:0}}
/* Beyond: one planetary system, one set of interactions. */
.beyond-section{min-height:110svh;padding-top:110px;padding-bottom:100px;color:#eaf7ff;--ink:#eaf7ff;--muted:#bbd7e9;--line:#8fbad644;--accent:#caf0ff}.beyond-section .section-index{color:#c9e8f8;margin-bottom:20px}.beyond-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px}.beyond-heading h2{font-size:clamp(60px,8vw,110px);letter-spacing:-.075em;line-height:1}.beyond-heading>p{font-size:11px;color:#c6e2f4;padding-bottom:10px}.solar-stage{height:660px;max-height:80svh;position:relative;margin-top:15px;isolation:isolate}.solar-stage canvas{width:100%;height:100%;position:relative;z-index:2;cursor:grab;touch-action:pan-y}.solar-stage canvas:active{cursor:grabbing}.planet-links{display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:wrap;margin-top:5px}.planet-select{color:#dcefff;display:inline-flex;align-items:center;gap:9px;font-size:11px;padding:10px 2px;border-bottom:1px solid transparent;transition:color .3s,border-color .3s;min-height:44px}.planet-select .star-name{position:static;transform:none;padding:0;background:none;backdrop-filter:none;font-size:11px;white-space:normal}.planet-select:hover,.planet-select.selected{border-color:#c4e8ff99;color:white}.planet-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:radial-gradient(circle at 25% 25%,#d1faff,#3bb9cb 45%,#123865);box-shadow:0 0 12px #9cdef944}.planet-dot.p1{background:radial-gradient(circle at 25% 25%,#dcfaca,#548960 50%,#244b62)}.planet-dot.p2{background:radial-gradient(circle at 25% 25%,#f1f6f4,#9baebc 50%,#4b607d)}.planet-dot.p3{background:radial-gradient(circle at 25% 25%,#e7f8ff,#a1c7e3 50%,#5c7eac)}.planet-dot.p4{background:radial-gradient(circle at 25% 25%,#c29aa6,#5a4f74 50%,#151c3d)}.solar-fallback{position:absolute;inset:10% 0;display:flex;align-items:center;justify-content:space-around;gap:12px}.fallback-planet{width:14%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 28% 22%,#c5f7ff,#21a6bd 40%,#172950 80%);box-shadow:inset -12px -10px 18px #05112b88,0 0 25px #93cfff22}.fallback-planet.p1{filter:hue-rotate(60deg)}.fallback-planet.p2{filter:saturate(.1);width:10%}.fallback-planet.p3{filter:saturate(.4);position:relative}.fallback-planet.p3:after{content:'';position:absolute;inset:30% -35%;border:8px solid #a8d0ee88;border-radius:50%;transform:rotate(-25deg)}.fallback-planet.p4{filter:hue-rotate(75deg) brightness(.5)}.solar-ready .solar-fallback{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#star-discovery{position:fixed;inset:auto 4vw 15vh auto;margin:0;width:min(400px,40vw);padding:40px 30px;max-height:70svh;overflow:auto;z-index:55}.discovery-symbol{font-size:30px;margin-bottom:18px}#star-discovery h2{font-size:36px}#discovery-category{font-size:10px}#star-discovery #discovery-body{font-size:13px}#star-discovery .close-discovery{width:34px;height:34px;font-size:21px}
@media(max-width:700px){.beyond-section{padding-top:85px;min-height:95svh}.beyond-heading{display:block}.beyond-heading h2{font-size:70px}.beyond-heading>p{margin-top:22px;font-size:10px}.solar-stage{height:430px;max-height:none;margin-inline:-5vw;margin-top:20px}.planet-links{gap:8px 17px;margin-top:0}.planet-select,.planet-select .star-name{font-size:10px}#star-discovery{inset:auto 4vw 85px 4vw;width:auto;max-height:44svh;padding:28px 25px}#star-discovery h2{font-size:28px;margin:12px 0}.discovery-symbol{display:none}#discovery-action,#discovery-link{font-size:11px;padding:10px 15px}.planet-dot{width:9px;height:9px}}
/* Three distinct material and lighting atmospheres. */
.mode-prism,.mode-caustics,.mode-silver{position:absolute;inset:-10%;pointer-events:none;opacity:0;transition:opacity 1.2s ease;mix-blend-mode:screen;will-change:transform}
.mode-prism{background:conic-gradient(from 35deg at 75% 20%,transparent 0deg,#ffbce52b 35deg,#b7e8ff44 75deg,transparent 110deg,#ffe4ad44 175deg,#c4c4ff33 235deg,transparent 300deg),radial-gradient(ellipse at 20% 10%,#ffe0c45c,transparent 55%);animation:pearl-light 25s ease-in-out infinite alternate}
.mode-caustics{background:repeating-radial-gradient(ellipse at 25% 60%,transparent 0 40px,#8dffff55 44px,transparent 49px 100px),repeating-radial-gradient(ellipse at 80% 20%,transparent 0 75px,#a1fcff44 81px,transparent 87px 150px);mask-image:linear-gradient(transparent,#000 45%);filter:blur(1.5px);animation:deep-caustics 12s ease-in-out infinite alternate}
.mode-silver{background:linear-gradient(115deg,transparent 25%,#eef8ff33 38%,#ffffff88 39%,#c3d3f522 41%,transparent 50%),linear-gradient(20deg,#07112333,transparent 50%,#b9cbdf33);mix-blend-mode:soft-light;animation:silver-sweep 18s ease-in-out infinite alternate}
html[data-atmosphere=pearl] .landscape{filter:saturate(.88) brightness(1.06) contrast(.98)}html[data-atmosphere=pearl] .mode-prism{opacity:.85}html[data-atmosphere=pearl] .sun-rays{filter:sepia(.2);opacity:calc((1 - var(--night,0))*.9)}html[data-atmosphere=pearl] .about-content,html[data-atmosphere=pearl] .publications-content,html[data-atmosphere=pearl] .project-list{background:linear-gradient(130deg,#fff8f5e8,#e4f7ffbd 50%,#f2eaffd9);box-shadow:inset 0 1px 2px white,0 18px 70px #485f8129}
html[data-atmosphere=aqua] .landscape{filter:saturate(1.45) hue-rotate(12deg) contrast(1.15) brightness(.8)}html[data-atmosphere=aqua] .mode-caustics{opacity:.7}html[data-atmosphere=aqua] .landscape-shade{background:linear-gradient(180deg,#004a7c55,#00c6d92b 55%,#002b5f44);opacity:1;mix-blend-mode:color}html[data-atmosphere=aqua] .aurora-light{filter:hue-rotate(-30deg);opacity:calc(.35 + var(--night,0)*.65)}html[data-atmosphere=aqua] .pointer-light{background:radial-gradient(ellipse 400px 300px at var(--px,70%) var(--py,30%),#70ffff55,transparent 75%)}html[data-atmosphere=aqua] .hero-copy,html[data-atmosphere=aqua] .hero-bottom,html[data-atmosphere=aqua] .site-header{color:#efffff;text-shadow:0 2px 20px #002f5d44}html[data-atmosphere=aqua] .section-index{color:#e4ffff;text-shadow:0 1px 5px #00394d}html[data-atmosphere=aqua] .about-content,html[data-atmosphere=aqua] .publications-content,html[data-atmosphere=aqua] .project-list{background:linear-gradient(130deg,#dcffffdf,#8ae5f2c9);border-color:#bcffff;box-shadow:inset 0 1px 2px white,0 0 35px #32e3fb33,0 20px 60px #002c5a44}html[data-atmosphere=aqua] .site-header nav{background:#004c6a77;border-color:#a4f6ff99}html[data-atmosphere=aqua] .experience-controls{background:linear-gradient(#d6ffffeb,#83dcebef);box-shadow:inset 0 1px 2px white,0 0 35px #1ce9ff66;color:#103f54}
html[data-atmosphere=chrome] .landscape{filter:grayscale(1) contrast(1.55) brightness(.5)}html[data-atmosphere=chrome] .mode-silver{opacity:1}html[data-atmosphere=chrome] .landscape-shade{background:linear-gradient(140deg,#09101c77,transparent 50%,#9baac333);opacity:1;mix-blend-mode:multiply}html[data-atmosphere=chrome] .aurora-light{filter:grayscale(1)}html[data-atmosphere=chrome] .pointer-light{background:radial-gradient(ellipse 450px 200px at var(--px,70%) var(--py,30%),#dbe5ff66,transparent 75%)}html[data-atmosphere=chrome] .sun-rays{filter:grayscale(1);opacity:.3}html[data-atmosphere=chrome] .hero-copy h1{color:#edf5ff;text-shadow:0 1px 1px #fff9,0 8px 35px #0008}html[data-atmosphere=chrome] .about-content,html[data-atmosphere=chrome] .publications-content,html[data-atmosphere=chrome] .project-list{color:#edf3fc;--muted:#bfcbdb;--line:#8c9eb555;background:linear-gradient(135deg,#aebed752,#162236de 35%,#465469ad 75%,#121e30dc);border-color:#c4d4ee88;box-shadow:inset 0 1px 2px #f1f6ffcc,inset 0 -1px 2px #0009,0 25px 80px #0007}html[data-atmosphere=chrome] .section-index{color:#e5edff}html[data-atmosphere=chrome] .project-art{filter:grayscale(1)}html[data-atmosphere=chrome] .glass,html[data-atmosphere=chrome] .site-header nav{background:linear-gradient(170deg,#d4deec66,#182334d9 40%,#68768a77 80%,#283549);border-color:#c3cfdf99;box-shadow:inset 0 1px 1px #fff9,0 4px 25px #0005;color:#edf3ff}html[data-atmosphere=chrome] .experience-controls{background:linear-gradient(170deg,#ebf1fa,#8290a5 48%,#dce5f1);color:#101c31;--muted:#253954;--line:#536980;box-shadow:inset 0 1px 2px white,0 10px 30px #0009}html[data-atmosphere=chrome] .experience-controls button{color:#101c31}html[data-atmosphere=chrome] #star-discovery{background:linear-gradient(140deg,#7f91a877,#121c2bf2 45%,#354356ed);border-color:#c3d2e8}html[data-atmosphere=aqua] #star-discovery{background:radial-gradient(ellipse at 90% 0,#00bbca44,transparent 70%),#00364af0;border-color:#94f7ffbb}html[data-atmosphere=pearl] #star-discovery{background:linear-gradient(140deg,#66768bda,#18283af5 60%,#4a4d70ec)}
#mode-transition{position:fixed;inset:0;z-index:58;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 100%,#e7ffff55,transparent 70%)}.mode-changing #mode-transition{animation:atmosphere-wave 1.3s ease-out}html[data-atmosphere=chrome] #mode-transition{background:linear-gradient(115deg,transparent 15%,#dfe9ff77 45%,transparent 70%)}html[data-atmosphere=pearl] #mode-transition{background:radial-gradient(ellipse at 50% 100%,#ffe7f577,#d6f9ff44 35%,transparent 75%)}
@keyframes pearl-light{to{transform:rotate(8deg) scale(1.1);filter:hue-rotate(25deg)}}@keyframes deep-caustics{to{transform:translate(4%,-5%) scale(1.12) rotate(5deg)}}@keyframes silver-sweep{from{transform:translateX(-15%) rotate(-3deg)}to{transform:translateX(15%) rotate(3deg)}}@keyframes atmosphere-wave{0%{opacity:0;transform:translateY(30%)}30%{opacity:.8}100%{opacity:0;transform:translateY(-15%)}}
html[data-motion=off] #mode-transition{display:none}@media(prefers-reduced-motion:reduce){#mode-transition{display:none}}
html[data-atmosphere=chrome] .section-heading,html[data-atmosphere=aqua] .section-heading{color:#f0faff}html[data-atmosphere=aqua] .hero-bottom .glass{color:#073848;text-shadow:none}
/* Five palettes. Ring patterns belong only to Beyond. */
.water-light{display:none}.mode-caustics{opacity:0}html[data-atmosphere=aqua] .mode-caustics{opacity:calc(var(--beyond,0)*.65)}.mode-prism,.mode-silver{opacity:0}.mode-sunset,.mode-acid,.mode-glitch{position:absolute;inset:-8%;pointer-events:none;opacity:0;transition:opacity 1.2s ease;mix-blend-mode:screen}
.palette-picker{position:fixed;bottom:83px;left:50%;transform:translateX(-50%);z-index:70;width:240px;padding:8px;border:1px solid #d9f5ffb3;border-radius:20px;background:#092b3bed;backdrop-filter:blur(28px);box-shadow:inset 0 1px 1px #fff6,0 15px 50px #00121a66;color:#effaff}.palette-picker button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border-radius:12px;font-size:12px;text-align:left;min-height:44px;color:#effaff}.palette-picker button:hover,.palette-picker button:focus-visible{background:#d2f4ff22}.palette-picker button[aria-pressed=true]{background:#bde9ff26}.palette-check{margin-left:auto;opacity:0}.palette-picker button[aria-pressed=true] .palette-check{opacity:1}.palette-dot{width:20px;height:20px;border-radius:50%;border:1px solid #fff8;box-shadow:inset 0 1px 3px #fff8}.palette-dot.aqua{background:linear-gradient(135deg,#b5ffff,#05b7ca,#1141a9)}.palette-dot.iridescent{background:conic-gradient(#f5bfff,#7ef7ff,#ffd6a6,#c798ff,#f5bfff)}.palette-dot.sunset{background:linear-gradient(135deg,#ffda70,#ff827e,#b14bab)}.palette-dot.acid{background:linear-gradient(135deg,#d4ff19,#63f274,#ff2ed9)}.palette-dot.glitch{background:linear-gradient(110deg,#090d22 30%,#81fff1 32% 48%,#ec45c5 50% 70%,#e0efff 72%)}
html[data-atmosphere=iridescent] .landscape{filter:saturate(1.2) hue-rotate(18deg) brightness(.98)}html[data-atmosphere=iridescent] .mode-prism{opacity:1;background:conic-gradient(from 25deg at 70% 35%,#ff9bc44d,#93ffff77 60deg,#cca1ff66 130deg,#ffdbac66 200deg,#79f5df44 270deg,#ff9bc44d);mix-blend-mode:soft-light;animation:iridescent-shift 18s ease-in-out infinite alternate}html[data-atmosphere=iridescent] .about-content,html[data-atmosphere=iridescent] .publications-content,html[data-atmosphere=iridescent] .project-list{background:linear-gradient(125deg,#fbdcffe8,#c4faffda 45%,#ffecd7e0);border-color:#fff;box-shadow:inset 0 1px 3px white,0 0 40px #cfa6ff55}html[data-atmosphere=iridescent] .experience-controls{background:linear-gradient(120deg,#f4c8f9ee,#bcf6f5ee,#f5d9c4ee);color:#253151}html[data-atmosphere=iridescent] .atmosphere-swatch{background:conic-gradient(#f5bfff,#7ef7ff,#ffd6a6,#c798ff,#f5bfff)}
.mode-sunset{background:linear-gradient(180deg,#d34d9d55,#ff7e5855 55%,#ffcc5d44),radial-gradient(ellipse at 75% 45%,#ffd38b99,transparent 58%);mix-blend-mode:soft-light;animation:sunset-glow 18s ease-in-out infinite alternate}html[data-atmosphere=sunset] .mode-sunset{opacity:1}html[data-atmosphere=sunset] .landscape{filter:sepia(.45) saturate(1.65) hue-rotate(320deg) brightness(.87)}html[data-atmosphere=sunset] .sun-rays{filter:sepia(1) saturate(2.5);opacity:.7}html[data-atmosphere=sunset] .aurora-light{filter:hue-rotate(90deg)}html[data-atmosphere=sunset] .about-content,html[data-atmosphere=sunset] .publications-content,html[data-atmosphere=sunset] .project-list{background:linear-gradient(135deg,#ffe8d2e8,#ffc3b2dd,#f7b9d5df);border-color:#fff0d8;box-shadow:inset 0 1px 2px #fff,0 0 45px #ff8b5466;color:#442638;--muted:#78445b;--line:#ad768477}html[data-atmosphere=sunset] .experience-controls{background:linear-gradient(135deg,#fff0c9ef,#ffa99eef,#df94c2ef);color:#42263e}html[data-atmosphere=sunset] .atmosphere-swatch{background:linear-gradient(135deg,#ffdc7d,#ff8c73,#a44799)}html[data-atmosphere=sunset] #star-discovery{background:linear-gradient(130deg,#623848ef,#4b2347f5);border-color:#ffd2ac}
.mode-acid{background:conic-gradient(from 0deg at 65% 45%,#e8ff0055,#00ffff22,#ff00bc77,#9dff0055,#e8ff0055);mix-blend-mode:color;animation:acid-flow 22s linear infinite}html[data-atmosphere=acid] .mode-acid{opacity:.8}html[data-atmosphere=acid] .landscape{filter:saturate(2.7) hue-rotate(65deg) contrast(1.15) brightness(.88)}html[data-atmosphere=acid] .aurora-light{filter:hue-rotate(110deg) saturate(2)}html[data-atmosphere=acid] .about-content,html[data-atmosphere=acid] .publications-content,html[data-atmosphere=acid] .project-list{background:linear-gradient(135deg,#e7ffb9ef,#bff4c0e3);color:#1c3d26;--muted:#375e3d;--line:#598c6477;border-color:#deff53;box-shadow:inset 0 1px 2px #fff,0 0 35px #baff0066,12px 12px 50px #ff00cb22}html[data-atmosphere=acid] .experience-controls{background:linear-gradient(120deg,#ddff64f2,#a7f4bbf2);color:#263716;border-color:#efffb3}html[data-atmosphere=acid] .atmosphere-swatch{background:linear-gradient(135deg,#d4ff19,#63f274,#ff2ed9)}html[data-atmosphere=acid] #star-discovery{background:linear-gradient(135deg,#183c30f5,#402555f5);border-color:#dbff4f}
.mode-glitch{background:repeating-linear-gradient(0deg,#03131d00 0 4px,#15253933 5px 6px),linear-gradient(90deg,#01ffd51c,transparent 40%,#ff00b51f);mix-blend-mode:multiply;animation:glitch-travel 14s steps(8,end) infinite}html[data-atmosphere=glitch] .mode-glitch{opacity:1}html[data-atmosphere=glitch] .landscape{filter:invert(1) hue-rotate(165deg) saturate(.85) contrast(1.25) brightness(.65)}html[data-atmosphere=glitch] .sun-rays{filter:invert(1);opacity:.25}html[data-atmosphere=glitch] .aurora-light{filter:hue-rotate(80deg)}html[data-atmosphere=glitch] .about-content,html[data-atmosphere=glitch] .publications-content,html[data-atmosphere=glitch] .project-list{background:linear-gradient(135deg,#15293ff0,#21132fef);color:#ddfff6;--muted:#b3d6cf;--line:#77969d77;border-color:#9af6e8;box-shadow:-3px 0 #6dffe544,3px 0 #f47acd55,inset 0 1px 2px #fff8}html[data-atmosphere=glitch] h1,html[data-atmosphere=glitch] .beyond-heading h2{color:#e6fff9;text-shadow:-2px 0 #53ffe08c,2px 0 #fc5fba99}html[data-atmosphere=glitch] .experience-controls{background:linear-gradient(120deg,#0a2536f5,#30223df5);color:#d4fff1;border-color:#a2f3e1;--muted:#c9e7e2;--line:#91b0b4;box-shadow:-2px 0 #6dffe566,2px 0 #ff6fb066}html[data-atmosphere=glitch] .experience-controls .control-cycle{color:#b4e2d9}html[data-atmosphere=glitch] .atmosphere-swatch{background:linear-gradient(110deg,#090d22 30%,#81fff1 32% 48%,#ec45c5 50% 70%,#e0efff 72%)}html[data-atmosphere=glitch] #star-discovery{background:#121d32f2;border-color:#94ffdf;box-shadow:-3px 0 #4effd244,3px 0 #ff4aba55}
html[data-atmosphere=sunset] .hero-copy,html[data-atmosphere=acid] .hero-copy,html[data-atmosphere=glitch] .hero-copy,html[data-atmosphere=sunset] .hero-bottom,html[data-atmosphere=acid] .hero-bottom,html[data-atmosphere=glitch] .hero-bottom,html[data-atmosphere=sunset] .site-header,html[data-atmosphere=acid] .site-header,html[data-atmosphere=glitch] .site-header{color:#f4fff9;text-shadow:0 2px 20px #152d3866}html[data-atmosphere=sunset] .section-heading,html[data-atmosphere=acid] .section-heading,html[data-atmosphere=glitch] .section-heading,html[data-atmosphere=sunset] .section-index,html[data-atmosphere=acid] .section-index,html[data-atmosphere=glitch] .section-index{color:#effff8;text-shadow:0 1px 8px #001e35}html[data-atmosphere=sunset] .site-header nav,html[data-atmosphere=acid] .site-header nav,html[data-atmosphere=glitch] .site-header nav{background:#12253d99;color:#effff8}
@keyframes iridescent-shift{to{transform:rotate(30deg) scale(1.2);filter:hue-rotate(65deg)}}@keyframes sunset-glow{to{transform:translateY(-3%) scale(1.06);filter:hue-rotate(-12deg)}}@keyframes acid-flow{to{transform:rotate(360deg) scale(1.15)}}@keyframes glitch-travel{0%,100%{transform:translate(0)}33%{transform:translate(2px,-3px)}66%{transform:translate(-2px,4px)}}
@media(max-width:700px){.palette-picker{bottom:76px;width:230px}.experience-controls button{font-size:10px;gap:7px}}
/* Research as three chapters, illustrated with dedicated landscape artwork. */
.research-chapters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;background:none!important;border:0!important;padding:0!important;box-shadow:none!important;backdrop-filter:none!important}.research-chapters:before{display:none}.research-chapter{border:1px solid #edffffbd!important;border-radius:24px;overflow:hidden;align-self:start;background:linear-gradient(135deg,#f1ffffe6,#def4f5d9);box-shadow:inset 0 1px 1px #fff,0 15px 50px #073e5c26;color:#173a44;--muted:#466974;--line:#a8c8cc;backdrop-filter:blur(24px)}.research-chapter summary{display:block;padding:0;list-style:none;position:relative}.chapter-visual{display:block;aspect-ratio:1.15;background-size:cover;background-position:center;transition:transform 1s cubic-bezier(.2,.6,.2,1),filter 1s;position:relative}.chapter-undergraduate{background-image:url('undergraduate.jpg')}.chapter-graduate{background-image:url('graduate.jpg')}.chapter-future{background-image:url('future.jpg')}.research-chapter:hover .chapter-visual{transform:scale(1.045);filter:saturate(1.12)}.chapter-caption{position:relative;z-index:1;display:grid;grid-template-columns:1fr 32px;align-items:center;gap:14px;padding:25px 23px 28px;background:linear-gradient(140deg,#f3ffffe8,#e3f7f5ed)}.chapter-caption .project-no{grid-column:1/-1;font-size:10px;letter-spacing:.1em;opacity:.7}.chapter-caption .project-name{font-size:clamp(22px,2.4vw,34px);letter-spacing:-.055em;line-height:1.2;overflow-wrap:anywhere}.chapter-caption .project-name small{font-size:10px;letter-spacing:0;margin-top:10px}.chapter-caption .project-plus{width:31px;height:31px;font-size:17px;background:#f6ffff77}.research-chapter .project-body{padding:0 23px 28px;max-width:none;font-size:13px;line-height:1.8;background:#edf9f7f2}.research-chapter[open] .chapter-caption{padding-bottom:20px}.research-chapter .editable-copy{font-size:13px;line-height:1.8}.research-section{padding-bottom:100px;min-height:100svh}
html[data-atmosphere=iridescent] .research-chapter .chapter-caption{background:linear-gradient(135deg,#f8e4fff2,#d7fbfff2 60%,#ffe9d9f2)}html[data-atmosphere=sunset] .research-chapter .chapter-caption{background:linear-gradient(135deg,#ffebd4f2,#ffcfccf2);color:#502c3e}html[data-atmosphere=acid] .research-chapter .chapter-caption{background:linear-gradient(135deg,#efffbff2,#c8f4d1f2);color:#243f2d}html[data-atmosphere=glitch] .research-chapter{border-color:#8ce4cf!important;background:#152a3cf2;--muted:#bcded6;--line:#718d9d}html[data-atmosphere=glitch] .research-chapter .chapter-caption,html[data-atmosphere=glitch] .research-chapter .project-body{background:#152a3cf2;color:#defff2}html[data-atmosphere=glitch] .research-chapter .chapter-visual{filter:invert(1) hue-rotate(170deg) saturate(.8)}
/* A separate, softly photographed Gen X Soft Club room for Contact. */
.contact-room{position:absolute;inset:-5px;z-index:8;pointer-events:none;background:linear-gradient(90deg,#e7f2ed55,transparent 80%),url('contact-lime.jpg') center/cover;opacity:var(--contact,0);filter:saturate(.65) contrast(.86) brightness(1.08);will-change:opacity}.contact-room:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,#eff7ed04 0 1px,#245b4c04 2px 3px);opacity:.45}.softclub-contact{min-height:100svh;display:grid;grid-template-columns:1fr 3fr;align-items:center;padding-block:150px;color:#1d4d50;--ink:#1d4d50;--muted:#4b7070;--accent:#2f7476;--line:#719c9980;--glass:#e3f0ec88}.softclub-contact .section-index,html[data-atmosphere=sunset] .softclub-contact .section-index,html[data-atmosphere=acid] .softclub-contact .section-index,html[data-atmosphere=glitch] .softclub-contact .section-index,html[data-atmosphere=aqua] .softclub-contact .section-index{color:#315e5b;text-shadow:none;align-self:start;margin-top:14px;letter-spacing:.08em}.contact-copy{max-width:800px}.softclub-contact h2{font-weight:400;font-size:clamp(80px,11vw,160px);letter-spacing:-.075em;line-height:1.1;color:#224d50;text-shadow:0 1px 25px #effff877}.softclub-contact .contact-links{margin-top:45px;gap:40px}.softclub-contact .glass,html[data-atmosphere=glitch] .softclub-contact .glass{background:#e8f4ee8c;color:#244f53;border:1px solid #eef8f4aa;box-shadow:inset 0 1px 1px #fff8,0 8px 25px #467b7222;backdrop-filter:blur(18px);font-size:12px;padding:16px 25px}.softclub-contact .text-link{color:#355f5d;font-size:11px}.site-footer{color:#315e5b;background:#d9eae333;border-top:1px solid #52796d33}.site-footer .secret-button:hover{color:#173f44}
@media(max-width:1000px){.research-chapters{gap:16px}.chapter-caption{padding:22px 17px}.chapter-caption .project-name{font-size:25px}.research-chapter .project-body{padding-inline:17px}.softclub-contact{grid-template-columns:1fr 4fr}}
@media(max-width:700px){.research-chapters{display:grid;grid-template-columns:1fr;gap:25px}.research-chapter{border-radius:22px}.chapter-visual{aspect-ratio:1.45}.chapter-caption{padding:24px;grid-template-columns:1fr 34px}.chapter-caption .project-name{font-size:34px}.chapter-caption .project-no{font-size:10px}.research-chapter .project-body{padding:0 24px 28px}.research-section{padding-bottom:110px}.softclub-contact{display:block;min-height:90svh;padding-top:100px;padding-bottom:130px}.softclub-contact .section-index{margin-bottom:100px;margin-top:0}.softclub-contact h2{font-size:85px}.softclub-contact .contact-links{margin-top:35px}.contact-room{background-position:62% center}.site-footer{font-size:9px}}
/* Research chapter navigation: standalone glossy desktop icons. */
.research-chapters{gap:36px;align-items:start}.research-chapter,html[data-atmosphere=glitch] .research-chapter{background:none;border:0!important;box-shadow:none;backdrop-filter:none;overflow:visible;color:#f3ffff;--muted:#d7eff5}.research-chapter summary{overflow:visible;padding:10px 0 0;border-radius:20px}.research-chapter .chapter-visual{width:220px;height:220px;aspect-ratio:auto;margin:0 auto 25px;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 16px 18px #05465d40);transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .65s}.chapter-undergraduate{background-image:url('undergraduate-icon.png')}.chapter-graduate{background-image:url('graduate-icon.png')}.chapter-future{background-image:url('future-icon.png')}.research-chapter:hover .chapter-visual{transform:translateY(-8px) scale(1.06);filter:drop-shadow(0 23px 20px #05465d55)}.research-chapter .chapter-caption,html[data-atmosphere=iridescent] .research-chapter .chapter-caption,html[data-atmosphere=sunset] .research-chapter .chapter-caption,html[data-atmosphere=acid] .research-chapter .chapter-caption,html[data-atmosphere=glitch] .research-chapter .chapter-caption{background:none;color:#f3ffff;padding:10px 4px 20px;grid-template-columns:1fr 30px;gap:12px;text-shadow:0 1px 15px #0541598c}.research-chapter .project-no{display:none}.research-chapter .project-name{font-size:clamp(24px,2.6vw,35px);overflow-wrap:normal}.research-chapter .project-name small{color:#e0f4f6;font-size:11px}.research-chapter .project-plus{background:#d9ffff33;color:#efffff;border-color:#eaffffb3;backdrop-filter:blur(10px);text-shadow:none}.research-chapter .project-body,html[data-atmosphere=glitch] .research-chapter .project-body{margin-top:12px;padding:22px;border:1px solid #e7ffffb3;border-radius:18px;background:#e7faf3e3;color:#244e52;backdrop-filter:blur(20px);box-shadow:0 10px 25px #0b455522}.research-chapter .chapter-visual,html[data-atmosphere=glitch] .research-chapter .chapter-visual{filter:drop-shadow(0 16px 18px #05465d40)}
@media(max-width:1000px){.research-chapters{gap:25px}.research-chapter .chapter-visual{width:185px;height:185px}.research-chapter .project-name{font-size:25px}}
@media(max-width:700px){.research-chapters{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.research-chapter .chapter-visual{width:100%;height:auto;aspect-ratio:1;margin:0 auto 15px}.research-chapter .chapter-caption{display:flex;flex-direction:column;gap:8px;align-items:center;padding:5px 0 15px;text-align:center}.research-chapter .project-name{font-size:13px;letter-spacing:-.04em;white-space:nowrap}.research-chapter .project-name small{font-size:9px;margin-top:8px;white-space:normal}.research-chapter .project-plus{width:26px;height:26px;font-size:15px;margin-top:5px;justify-self:center}.research-chapter .project-body{padding:14px;font-size:11px;overflow-wrap:break-word}.research-chapter .editable-copy{font-size:11px}.research-section{min-height:85svh}.research-chapter[open] .chapter-caption{padding-bottom:15px}}
/* Soft animated light pools behind the research icons. */
.research-chapter .chapter-visual{isolation:isolate;overflow:visible;--halo-a:#8fffe8;--halo-b:#54c7ff;--halo-c:#d4ffff;--halo-delay:0s}.research-chapter .chapter-visual:before,.research-chapter .chapter-visual:after{content:'';position:absolute;pointer-events:none;z-index:-1;border-radius:50%;inset:9% -7%;background:radial-gradient(ellipse at 45% 45%,var(--halo-c) 0%,var(--halo-a) 25%,var(--halo-b) 48%,transparent 72%);filter:blur(20px);opacity:.46;transform:scale(.9);animation:icon-glow-breathe 6.5s ease-in-out infinite;animation-delay:var(--halo-delay)}.research-chapter .chapter-visual:after{inset:20% -20%;background:radial-gradient(ellipse at 55% 50%,var(--halo-a),transparent 68%);filter:blur(30px);opacity:.35;animation:icon-glow-drift 9s ease-in-out infinite alternate;animation-delay:var(--halo-delay)}.research-chapter .chapter-undergraduate{--halo-a:#a5ff9b;--halo-b:#2ce6c7;--halo-c:#d4ffdb;--halo-delay:-1s}.research-chapter .chapter-graduate{--halo-a:#a5faff;--halo-b:#599dff;--halo-c:#e0ffff;--halo-delay:-3s}.research-chapter .chapter-future{--halo-a:#abdcff;--halo-b:#c08bff;--halo-c:#e6d9ff;--halo-delay:-5s}.research-chapter:hover .chapter-visual:before,.research-chapter:focus-within .chapter-visual:before{opacity:.7}.research-chapter:hover .chapter-visual:after,.research-chapter:focus-within .chapter-visual:after{opacity:.5}@keyframes icon-glow-breathe{0%,100%{transform:scale(.88) translateY(3%);opacity:.36}50%{transform:scale(1.14) translateY(-3%);opacity:.63}}@keyframes icon-glow-drift{from{transform:translate(-6%,4%) scale(.9)}to{transform:translate(6%,-5%) scale(1.16)}}
@media(max-width:700px){.research-chapter .chapter-visual:before{inset:4% -9%;filter:blur(12px)}.research-chapter .chapter-visual:after{filter:blur(18px)}}
.research-chapter .chapter-visual{background-image:none!important}.chapter-undergraduate{--icon-art:url('undergraduate-icon.png')}.chapter-graduate{--icon-art:url('graduate-icon.png')}.chapter-future{--icon-art:url('future-icon.png')}.chapter-icon{position:absolute;inset:0;z-index:1;background:var(--icon-art) center/contain no-repeat;pointer-events:none}.research-chapter .chapter-visual:before,.research-chapter .chapter-visual:after{z-index:0}

/* Decorative light stays with the artwork, never follows the pointer. */
.pointer-light{display:none!important}

/* A legible liquid-glass scroll cue, matching the experience control. */
.hero-bottom .scroll-note.scroll-pill{display:inline-flex;align-items:center;justify-content:center;gap:22px;width:auto;margin:0;padding:13px 22px;min-height:48px;border:1px solid #f1ffffd9;border-radius:100px;background:linear-gradient(155deg,#f3ffffcf,#c9ebf1a8);box-shadow:inset 0 1px 2px #fff,inset 0 -7px 13px #78b6cd26,0 5px 20px #12476524;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);font-size:11px;letter-spacing:.01em;line-height:1.3;color:#234954;text-shadow:none}.hero-bottom .scroll-note.scroll-pill span{font-size:22px;line-height:1}.hero-bottom .scroll-note.scroll-pill:hover{box-shadow:inset 0 1px 2px #fff,inset 0 -7px 16px #78b6cd44,0 7px 24px #12476538;transform:translateY(-2px)}html[data-atmosphere=glitch] .hero-bottom .scroll-note.scroll-pill{background:linear-gradient(155deg,#244057e6,#192839c9);color:#e4fff8;border-color:#bceee5;box-shadow:inset 0 1px 2px #fff7,-1px 0 #7fffd755,1px 0 #fa9cda55}html[data-atmosphere=sunset] .hero-bottom .scroll-note.scroll-pill{background:linear-gradient(155deg,#fff2dbdc,#ffd1c7c4);color:#5a3848}html[data-atmosphere=iridescent] .hero-bottom .scroll-note.scroll-pill{background:linear-gradient(130deg,#f8e7ffdc,#d5ffffd1,#fff0dbd4);color:#384257}html[data-atmosphere=acid] .hero-bottom .scroll-note.scroll-pill{background:linear-gradient(135deg,#ecffcbdc,#c6f3ddd1);color:#2c4e39}@media(max-width:700px){.hero-bottom .scroll-note.scroll-pill{width:auto;margin:0;padding:12px 20px;min-height:45px;gap:22px;border-top:1px solid #f1ffffd9;font-size:10px}}

/* Both opening controls share the same glass treatment and baseline. */
:root{--control-bottom:24px;--control-height:45px;--control-glass:#e8faffd9;--control-ink:#183d4e;--control-edge:#f1ffffd9;--control-shadow:inset 0 1px 2px white,0 5px 20px #12476524}html[data-atmosphere=aqua]{--control-glass:linear-gradient(#d6ffffeb,#83dcebef);--control-ink:#103f54;--control-shadow:inset 0 1px 2px white,0 0 35px #1ce9ff66}html[data-atmosphere=iridescent]{--control-glass:linear-gradient(120deg,#f4c8f9ee,#bcf6f5ee,#f5d9c4ee);--control-ink:#253151}html[data-atmosphere=sunset]{--control-glass:linear-gradient(135deg,#fff0c9ef,#ffa99eef,#df94c2ef);--control-ink:#42263e}html[data-atmosphere=acid]{--control-glass:linear-gradient(120deg,#ddff64f2,#a7f4bbf2);--control-ink:#263716;--control-edge:#efffb3}html[data-atmosphere=glitch]{--control-glass:linear-gradient(120deg,#0a2536f5,#30223df5);--control-ink:#d4fff1;--control-edge:#a2f3e1;--control-shadow:-2px 0 #6dffe566,2px 0 #ff6fb066}html[data-atmosphere] .experience-controls,html[data-atmosphere] .hero-bottom .scroll-note.scroll-pill{background:var(--control-glass);color:var(--control-ink);border-color:var(--control-edge);box-shadow:var(--control-shadow);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.experience-controls{bottom:var(--control-bottom);min-height:var(--control-height)}.hero-bottom{top:calc(100svh - var(--control-bottom) - var(--control-height));bottom:auto;height:var(--control-height);align-items:stretch}html[data-atmosphere] .hero-bottom .scroll-note.scroll-pill{height:var(--control-height);min-height:var(--control-height);padding:0 22px;box-sizing:border-box}.hero-bottom .scroll-note.scroll-pill:hover{transform:none}@media(max-width:700px){:root{--control-bottom:15px}.hero-bottom{top:calc(100svh - var(--control-bottom) - var(--control-height));bottom:auto;flex-wrap:nowrap}.hero-bottom .scroll-note.scroll-pill{width:auto;margin:0}}

/* Keep navigation at the right after removing the repeated name. */
.site-header{justify-content:flex-end}

.starfall-layer{position:fixed;inset:0;z-index:45;overflow:hidden;pointer-events:none;contain:strict}
.shooting-star{position:absolute;height:2px;border-radius:100%;transform-origin:left center;background:linear-gradient(90deg,#fff 0%,#b8f5ffdd 12%,#96dfff77 45%,transparent 100%);box-shadow:0 0 8px #a5f1ff99;will-change:transform,opacity}
.shooting-star:before{content:'';position:absolute;left:-3px;top:-2px;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff,0 0 19px #7de5ff,0 1px 5px #174965}
#starfall:disabled{opacity:.65;cursor:default}

/* Clear deep sky behind the real planetary system. */
.night{background-image:radial-gradient(ellipse at 70% 20%,#12365499,transparent 48%),radial-gradient(ellipse at 15% 75%,#24174777,transparent 55%),linear-gradient(#020917,#04162e 70%,#092634)}
.mode-caustics,html[data-atmosphere=aqua] .mode-caustics{display:none}
.planet-dot.p0{background:radial-gradient(circle at 25% 25%,#bcffff,#02bdbf 35%,#005c50 58%,#093891)}
.planet-dot.p1{background:radial-gradient(circle at 25% 25%,#90caff,#2563df 45%,#07145c)}
.planet-dot.p2{background:radial-gradient(circle at 25% 25%,#ffe8b5,#ff937d 45%,#a6275b)}
.planet-dot.p3{background:radial-gradient(circle at 25% 25%,#fff5d5,#d0b17f 50%,#7f5c55)}

/* Restore the night coast; the separate white caustic overlay stays removed. */
.night{background-image:url('night-analog.jpg')}

/* Let the liquid night artwork retain its restrained cobalt and aqua palette. */
html[data-atmosphere=aqua] .night{filter:saturate(1.05) contrast(1.04) brightness(.82)}

/* Preserve the reference-led analog sky and its warm spectral light. */
html[data-atmosphere=aqua] .night{filter:saturate(.94) contrast(1.02) brightness(.9)}
html[data-atmosphere=aqua] .landscape-shade{opacity:calc(1 - var(--night,0))}

.solar-stage canvas{touch-action:none}
.solar-view-controls{position:absolute;bottom:15px;right:0;z-index:4;display:flex;align-items:center;gap:2px;border-radius:50px;padding:4px;background:#dff5ff24;color:#ecfaff;border-color:#d7f6ff66;backdrop-filter:blur(18px);box-shadow:inset 0 1px 1px #fff5,0 5px 24px #07152822}
.solar-view-controls button{min-width:37px;min-height:34px;border-radius:40px;font-size:18px;display:grid;place-items:center}
.solar-view-controls button:hover{background:#e7ffff24}
.solar-view-controls #solar-reset{font-size:10px;padding:0 12px;border-left:1px solid #ddf6ff44;border-radius:0 30px 30px 0}
@media(max-width:700px){.solar-view-controls{right:4vw;bottom:7px}}

@media(min-width:701px){.beyond-section{padding-top:75px}.solar-stage{height:clamp(390px,56svh,620px);max-height:none}}

/* A larger orbital canvas with unrestricted view controls. */
@media(min-width:701px){.solar-stage{height:clamp(520px,72svh,850px);max-height:none}}
@media(max-width:700px){.solar-stage{height:clamp(470px,72svh,740px);max-height:none}}

.planet-dot.star-dot{background:radial-gradient(circle,#fff 15%,#f2fbff 40%,#a1d7ff);box-shadow:0 0 10px #d5edff,0 0 19px #8acfff99}

/* Center the orbit in a taller, lower canvas with room above its silhouette. */
.solar-stage{margin-top:clamp(40px,6svh,72px)}
@media(min-width:701px){.solar-stage{height:clamp(600px,82svh,1040px);max-height:none}}
@media(max-width:700px){.solar-stage{height:clamp(540px,82svh,900px);margin-top:36px;max-height:none}}

/* Keep every orbital control and name outside the rendering area. */
.orbital-footer{position:relative;z-index:3;margin-top:52px;display:flex;flex-direction:column;gap:25px;align-items:center}
.orbital-footer .solar-view-controls{position:relative;inset:auto;align-self:flex-end;flex-shrink:0}
.orbital-footer .planet-links{position:relative;margin:0;padding:15px 12px 5px;width:100%}
@media(max-width:700px){.orbital-footer{margin-top:38px;gap:20px}.orbital-footer .solar-view-controls{inset:auto;align-self:center}.orbital-footer .planet-links{padding-inline:0}}

/* Reference-inspired ambient lounge for Contact. */
.contact-room{background-image:linear-gradient(90deg,#e6f0e922,transparent 65%),url('contact-lime.jpg');filter:saturate(.82) contrast(.92) brightness(1.03) blur(.5px)}
.contact-room:after{opacity:.55}
@media(max-width:700px){.contact-room{background-position:68% center}}

/* Selected Lime Conversation Lounge: preserve the vivid reference colors and motion. */
.contact-room{background-image:linear-gradient(90deg,#e4f1dc12,transparent 70%),url('contact-lime.jpg');filter:saturate(.98) contrast(.97) brightness(1.02)}
.softclub-contact h2{color:#164d49;text-shadow:0 1px 24px #efffdcaa}
@media(max-width:700px){.contact-room{background-position:59% center}}

/* Contact participates in every selected atmosphere. */
.contact-room{transition:filter 1s ease}
.contact-room:before{content:'';position:absolute;inset:-12%;pointer-events:none;background:var(--contact-wash,transparent);mix-blend-mode:soft-light;opacity:.72}
html[data-atmosphere=aqua] .contact-room{filter:saturate(.98) contrast(.97) brightness(1.02);--contact-wash:linear-gradient(115deg,#b3ffff18,transparent 65%)}
html[data-atmosphere=iridescent] .contact-room{filter:hue-rotate(65deg) saturate(.95) contrast(.96) brightness(1.06);--contact-wash:conic-gradient(from 35deg at 60% 35%,#ffb9e688,#b6ffff66,#d6bbff88,#ffdebd66,#ffb9e688)}
html[data-atmosphere=sunset] .contact-room{filter:sepia(.22) hue-rotate(278deg) saturate(1.35) contrast(1.02) brightness(.98);--contact-wash:linear-gradient(125deg,#ffdd8b55,#ff7c9555 50%,#e7a3d333)}
html[data-atmosphere=acid] .contact-room{filter:hue-rotate(38deg) saturate(2.3) contrast(1.12) brightness(.98);--contact-wash:conic-gradient(from 20deg at 65% 40%,#efff0066,#00ffd955,#ff3bc166,#d5ff0055,#efff0066)}
html[data-atmosphere=glitch] .contact-room{filter:invert(1) hue-rotate(155deg) saturate(1.2) contrast(1.2) brightness(.74);--contact-wash:linear-gradient(90deg,#00ffcf44,transparent 45%,#ff40a744)}
html[data-atmosphere=glitch] .contact-room:after{background:repeating-linear-gradient(0deg,transparent 0 3px,#fff5 4px,transparent 5px);opacity:.25}
.softclub-contact{--contact-ink:#164d49;--contact-shadow:0 1px 18px #efffe9aa;--contact-button:#e8f4ee8c;--contact-button-ink:#244f53}
html[data-atmosphere=iridescent] .softclub-contact{--contact-ink:#253f59;--contact-shadow:0 1px 18px #eaffffaa;--contact-button:#eef6ffae;--contact-button-ink:#273e59}
html[data-atmosphere=sunset] .softclub-contact{--contact-ink:#542d3f;--contact-shadow:0 1px 20px #fff1d2bb;--contact-button:#fff0e3aa;--contact-button-ink:#542d3f}
html[data-atmosphere=acid] .softclub-contact{--contact-ink:#173f2d;--contact-shadow:0 1px 18px #e9ffb9aa;--contact-button:#edffd1a6;--contact-button-ink:#173f2d}
html[data-atmosphere=glitch] .softclub-contact{--contact-ink:#e4fff4;--contact-shadow:-1px 0 1px #4dffd98c,1px 0 1px #ff69b58c,0 2px 16px #001a26;--contact-button:#102c3cc7;--contact-button-ink:#dffff2}
html[data-atmosphere] .softclub-contact h2,html[data-atmosphere] .softclub-contact .section-index,html[data-atmosphere] .softclub-contact .text-link{color:var(--contact-ink);text-shadow:var(--contact-shadow)}
html[data-atmosphere] .softclub-contact .glass{background:var(--contact-button);color:var(--contact-button-ink)}

/* A closer rhythm between chapters; the orbital canvas keeps its full interaction space. */
.about-section{min-height:60svh;padding-block:75px}
.research-section{min-height:68svh;padding-top:75px;padding-bottom:65px}
.publications-section{min-height:50svh;padding-block:65px}
.beyond-section{min-height:0;padding-top:55px;padding-bottom:65px}
.softclub-contact{min-height:75svh;padding-block:90px}
@media(max-width:700px){
 .about-section{min-height:58svh;padding-block:60px}
 .research-section{min-height:60svh;padding-block:60px}
 .publications-section{min-height:46svh;padding-block:55px}
 .beyond-section{padding-top:55px;padding-bottom:55px}
 .softclub-contact{min-height:70svh;padding-top:65px;padding-bottom:100px}
 .softclub-contact .section-index{margin-bottom:55px}
}

/* Settle into the next chapter without capturing wheel or touch gestures. */
html{scroll-snap-type:none;scroll-padding-top:0}
main>section{scroll-snap-align:none}
.site-footer{scroll-snap-align:none}
@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none;scroll-behavior:auto}}

/* Each chapter occupies a full screen; expanded content can grow naturally. */
main>section[id]{min-height:100svh}
.hero{max-height:none}
.about-section,.publications-section,.softclub-contact{align-items:center}
@media(max-width:700px){
 .about-section,.publications-section,.softclub-contact{display:flex;flex-direction:column;justify-content:center;align-items:stretch}
 .about-section>.section-index,.publications-section>.section-index,.softclub-contact>.section-index{margin-top:0;margin-bottom:35px;align-self:auto}
}

/* Liquid-glass chapter rail, clear of the content and bottom controls. */
.chapter-rail{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:42;display:flex;flex-direction:column;align-items:center;gap:10px;width:42px;padding:14px 3px 9px;border-radius:30px;background:var(--control-glass);color:var(--control-ink);border:1px solid var(--control-edge);box-shadow:var(--control-shadow);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.chapter-count{font-size:8px;letter-spacing:.02em;white-space:nowrap;opacity:.8}
.chapter-track{position:relative;display:flex;flex-direction:column;align-items:center;width:100%}
.chapter-track:before,.chapter-progress{content:'';position:absolute;left:calc(50% - 1px);top:17px;bottom:17px;width:2px;border-radius:2px;background:currentColor;opacity:.18;pointer-events:none}
.chapter-progress{opacity:.8;transform-origin:top;transform:scaleY(var(--chapter-progress,0));transition:transform .15s linear}
.chapter-rail .chapter-marker{position:relative;display:grid;place-items:center;width:36px;height:35px;min-height:35px;padding:0;margin:0!important;isolation:isolate}
.chapter-marker span{width:7px;height:7px;border-radius:50%;background:var(--control-ink);opacity:.36;box-shadow:0 0 0 3px transparent;transition:opacity .25s,transform .25s,box-shadow .25s}
.chapter-marker[aria-current] span{opacity:1;transform:scale(1.15);box-shadow:0 0 0 4px #ffffff55,0 0 12px #ccffffaa}
.chapter-rail .chapter-marker:after{display:none}
.chapter-marker:before{content:attr(data-label);position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(5px);font-size:10px;line-height:1.2;letter-spacing:.01em;padding:9px 12px;border-radius:30px;white-space:nowrap;background:var(--control-glass);color:var(--control-ink);border:1px solid var(--control-edge);box-shadow:0 3px 14px #123c5020;backdrop-filter:blur(18px);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.chapter-marker[aria-current]:before,.chapter-marker:hover:before,.chapter-marker:focus-visible:before{opacity:1;transform:translateY(-50%)}
@media(max-width:700px){.chapter-rail{right:7px;width:28px;padding:11px 0 7px;gap:5px}.chapter-count{font-size:6px}.chapter-rail .chapter-marker{width:28px;height:32px;min-height:32px}.chapter-marker span{width:5px;height:5px}.chapter-marker:before{right:calc(100% + 7px);font-size:9px;padding:7px 10px}.chapter-track:before,.chapter-progress{top:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.chapter-progress,.chapter-marker span,.chapter-marker:before{transition:none}}

/* A personal specimen in an atmospheric, living meadow. */
.hero{--hero-x:0px;--hero-y:0px;--sun-x:78%;--sun-y:28%}
.hero-weather{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.hero-clouds{position:absolute;inset:-12%;background:radial-gradient(ellipse at 24% 25%,#edffff40,transparent 19%),radial-gradient(ellipse at 68% 15%,#fff9,transparent 15%);filter:blur(22px);mix-blend-mode:soft-light;animation:hero-cloud-drift 46s ease-in-out infinite alternate}
.hero-refraction{position:absolute;inset:-10%;background:radial-gradient(ellipse at var(--sun-x) var(--sun-y),#eeffff3d,transparent 36%),linear-gradient(115deg,transparent 50%,#e6ffff1a 57%,transparent 64%);mix-blend-mode:screen;transform:translate(calc(var(--hero-x)*.35),calc(var(--hero-y)*.35));transition:transform 1.4s ease-out}
.hero-grass{position:absolute;inset:-1.5%;background:url('meadow.jpg') center/cover;mask-image:linear-gradient(transparent 70%,#000 92%);-webkit-mask-image:linear-gradient(transparent 70%,#000 92%);transform-origin:50% 100%;opacity:var(--hero-presence,1);animation:hero-grass-sway 8s ease-in-out infinite alternate;pointer-events:none;will-change:transform}
.hero-copy{transform:translate(calc(var(--hero-x)*-.12),calc(var(--hero-y)*-.12));transition:transform 1.8s ease-out}
.hero-copy h1{position:relative;background:linear-gradient(112deg,currentColor 0%,currentColor 41%,#e0ffff 47%,#fff 49%,#b7eaf3 51%,currentColor 57%,currentColor 100%);background-size:280% 100%;background-position:100% 50%;background-clip:text;-webkit-background-clip:text;animation:hero-name-light 4.8s 1s ease-in-out both}
@supports(-webkit-background-clip:text){.hero-copy h1{-webkit-text-fill-color:transparent}}
.hero-wasp{position:absolute;right:12%;top:31%;width:clamp(230px,29vw,430px);aspect-ratio:1.5;z-index:6;padding:0;background:none;border-radius:50%;cursor:pointer;transform:translate(var(--hero-x),var(--hero-y));transition:filter .6s;--specimen:url('oil-slick-wasp.png')}
.hero-wasp:disabled{cursor:default}.hero-wasp:focus-visible{outline:1px solid #e4ffff;outline-offset:10px}
.wasp-hover{display:block;width:100%;height:100%;animation:wasp-hover 5.5s ease-in-out infinite}
.wasp-art{display:block;position:relative;width:100%;height:100%;background-image:var(--specimen);background-position:center;background-size:contain;background-repeat:no-repeat;filter:drop-shadow(0 12px 18px #00556022) drop-shadow(0 0 7px #d9ffff66);transition:filter .5s;transform:rotate(-7deg)}
.wasp-art:after{content:'';position:absolute;inset:0;background:inherit;clip-path:polygon(48% 38%,67% 5%,100% 16%,100% 72%,55% 51%);transform-origin:51% 43%;animation:wasp-wing-light .18s ease-in-out infinite alternate;opacity:.55}
.hero-wasp:hover .wasp-art{filter:drop-shadow(0 8px 20px #7bffed77) drop-shadow(0 0 5px #efffff99)}
html[data-atmosphere=iridescent] .wasp-art{filter:hue-rotate(48deg) drop-shadow(0 0 13px #d5c4ff88)}
html[data-atmosphere=sunset] .wasp-art{filter:hue-rotate(205deg) saturate(.8) drop-shadow(0 0 15px #ffcaa488)}
html[data-atmosphere=acid] .wasp-art{filter:hue-rotate(290deg) saturate(1.6) drop-shadow(0 0 15px #cbff6388)}
html[data-atmosphere=glitch] .wasp-art{filter:hue-rotate(150deg) contrast(1.08) drop-shadow(0 0 6px #b8ffe955)}
.wasp-flight-ring{position:absolute;z-index:5;width:18px;height:18px;margin:-9px;border:1px solid #d5ffffc9;border-radius:50%;pointer-events:none;box-shadow:0 0 10px #8fffff55,inset 0 0 7px #caffff44;animation:wasp-wake 1.7s ease-out forwards}
@keyframes hero-cloud-drift{from{transform:translate(-2%,0) scale(1)}to{transform:translate(4%,2%) scale(1.05)}}
@keyframes hero-grass-sway{from{transform:translate(-2px,1px) skewX(-.12deg) scale(1.005)}to{transform:translate(3px,-2px) skewX(.12deg) scale(1.012)}}
@keyframes hero-name-light{0%,18%{background-position:100% 50%}85%,100%{background-position:0% 50%}}
@keyframes wasp-hover{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(2deg)}}
@keyframes wasp-wing-light{from{transform:perspective(500px) rotateX(-7deg);opacity:.3}to{transform:perspective(500px) rotateX(8deg);opacity:.65}}
@keyframes wasp-wake{from{opacity:.8;transform:scale(.3) rotateX(45deg)}to{opacity:0;transform:scale(4.5) rotateX(45deg)}}
@media(max-width:700px){.hero-wasp{width:clamp(160px,43vw,240px);right:11%;top:55%}.hero-grass{background-position:40% center}.hero-copy h1{background-size:350% 100%}}
@media(prefers-reduced-motion:reduce){.hero-clouds,.hero-grass,.hero-copy h1,.wasp-hover,.wasp-art:after{animation:none}.hero-copy,.hero-refraction{transform:none;transition:none}.hero-wasp{transform:none}.wasp-art:after{display:none}.hero-copy h1{background:none;-webkit-text-fill-color:currentColor}}

/* A small discovery in the grass, disappearing and reappearing rather than circling. */
.hero-wasp{width:clamp(95px,12vw,155px);right:17%;top:63%}
.wasp-hover{animation:wasp-quiet-hover 7s ease-in-out infinite}
.wasp-art:after{animation:wasp-wing-light 1.8s ease-in-out infinite alternate;opacity:.2}
.wasp-teleport-ring{width:14px;height:14px;margin:-7px;animation:wasp-teleport-glimmer .9s ease-out forwards;border-color:#e7ffffa6;box-shadow:0 0 12px #bcffef66}
@keyframes wasp-quiet-hover{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(.6deg)}}
@keyframes wasp-teleport-glimmer{from{opacity:.6;transform:scale(.4) rotateX(55deg)}to{opacity:0;transform:scale(3) rotateX(55deg)}}
@media(max-width:700px){.hero-wasp{width:95px;right:17%;top:68%}}
@media(prefers-reduced-motion:reduce){.wasp-hover,.wasp-art:after{animation:none}}

/* Opaque obsidian and oil-slick reflections retain their contrast in the meadow. */
.wasp-art{filter:drop-shadow(0 2px 2px #00192155) drop-shadow(0 0 2px #e9ffff70)}
.hero-wasp:hover .wasp-art{filter:drop-shadow(0 2px 3px #00192166) drop-shadow(0 0 5px #b4f9ff88)}

/* A still landscape and custom drawn name: no background wobble or lettering drift. */
.hero-grass,.hero-clouds,.sun-rays{animation:none!important;transform:none!important}
.hero-copy,.hero-refraction{transform:none!important;transition:none!important}
.hero-copy h1{animation:none;background:none;-webkit-text-fill-color:currentColor;text-shadow:none}
.hero-wasp{--specimen:url('clear-wing-wasp.png');transform:none}
.wasp-hover,.wasp-art:after{animation:none!important;transform:none!important}
.wasp-art{background-image:none;transform:rotate(-7deg)}
.wasp-art:before,.wasp-art:after{content:'';position:absolute;inset:0;background-image:var(--specimen);background-size:contain;background-position:center;background-repeat:no-repeat}
.wasp-art:before{clip-path:polygon(0 0,48% 0,48% 37%,54% 51%,100% 82%,100% 100%,0 100%)}
.wasp-art:after{clip-path:polygon(49% 38%,67% 5%,100% 16%,100% 73%,54% 51%);opacity:.38}
.hero-copy:has(.name-wordmark){top:26%;width:min(75vw,1080px)}
.name-wordmark{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 2px 1px #164e5a33) drop-shadow(0 6px 20px #d5ffff20)}
.name-wordmark .letter-core{stroke:url(#name-pearl);stroke-width:9;stroke-linecap:butt;stroke-linejoin:round;fill:none}
.name-wordmark .letter-edge{stroke:#b8ffff66;stroke-width:11;stroke-linecap:butt;stroke-linejoin:round;fill:none}
.wordmark-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.hero-copy:has(.name-wordmark){top:29%;width:85vw}.name-wordmark .letter-core{stroke-width:10}}

/* Let the specimen vanish softly as the landing scene is left behind. */
.hero-wasp{transition:opacity .3s ease,visibility 0s,filter .4s}
.hero-wasp.is-away{opacity:0!important;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s .3s,filter .4s}
@media(prefers-reduced-motion:reduce){.hero-wasp,.hero-wasp.is-away{transition:none}}

/* Scroll-triggered CRT interference, without shifting the page itself. */
.scroll-crt{position:fixed;inset:0;z-index:44;pointer-events:none;overflow:hidden;opacity:var(--crt-drive,0);contain:strict;backdrop-filter:blur(.45px) contrast(1.035);-webkit-backdrop-filter:blur(.45px) contrast(1.035)}
.crt-scanlines,.crt-grain,.crt-band{position:absolute;inset:0;pointer-events:none}
.crt-scanlines{background:repeating-linear-gradient(0deg,#001a2960 0 1px,transparent 1px 3px,#efffff26 3px 4px);opacity:.42}
.crt-grain{inset:-20%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px 180px;opacity:.18;mix-blend-mode:soft-light;transform:translate(var(--crt-grain-x,0px),var(--crt-grain-y,0px))}
.crt-band{inset:auto -3% auto;height:8%;top:var(--crt-band-y,36%);background:linear-gradient(transparent,#edffff25 30%,#072c402e 49%,#e7ffff50 50%,transparent 56%);transform:translateX(var(--crt-shift,0px));opacity:.5}
.crt-band:after{content:'';position:absolute;left:0;right:0;top:51%;height:1px;background:linear-gradient(90deg,transparent,#a6fff7a6 20%,#ffb6ea70 48%,transparent 85%)}
.crt-band.secondary{height:3%;top:calc(100% - var(--crt-band-y,36%));opacity:.3;transform:translateX(calc(var(--crt-shift,0px)*-1))}
@media(max-width:700px){.crt-scanlines{opacity:.3}.crt-grain{opacity:.13}}
@media(prefers-reduced-motion:reduce){.scroll-crt{display:none}}

/* Larger, more pronounced analog interference during scrolling. */
.scroll-crt{backdrop-filter:blur(1.35px) contrast(1.09) saturate(1.08);-webkit-backdrop-filter:blur(1.35px) contrast(1.09) saturate(1.08)}
.crt-scanlines{background:repeating-linear-gradient(0deg,#00131f9c 0 2px,transparent 2px 6px,#e9ffff5c 6px 7px);opacity:.68}
.crt-grain{background-size:310px 310px;opacity:.42;mix-blend-mode:overlay}
.crt-band{height:21%;opacity:.85;background:linear-gradient(transparent,#e4ffff44 22%,#082f4e66 43%,#efffff8c 49%,#ff9ee43b 51%,transparent 65%);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}
.crt-band:after{height:3px;background:linear-gradient(90deg,transparent,#9efffbd9 16%,#ffb5ecb8 52%,transparent 90%)}
.crt-band.secondary{height:12%;opacity:.65}
@media(max-width:700px){.crt-scanlines{opacity:.55}.crt-grain{opacity:.32}}

/* A yellow-accented late-night broadcast, tucked into the About panel. */
.about-content{position:relative}
.about-tv{position:absolute;right:22px;bottom:23px;width:49px;height:44px;padding:2px;filter:drop-shadow(0 4px 4px #103a4933);transition:transform .25s,filter .25s}
.about-tv svg{display:block;width:100%;height:100%}.about-tv:hover{transform:rotate(-5deg) translateY(-2px);filter:drop-shadow(0 4px 7px #387d7566)}
.test-tv{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;width:min(670px,88vw);max-width:none;max-height:86svh;overflow:auto;padding:15px 20px 13px;border:2px solid #fff19b;border-radius:24px;background:linear-gradient(140deg,#fff063,#f4cb23 55%,#e8ae11);color:#17232b;box-shadow:0 24px 100px #00152370,inset 0 2px 2px #fffbd1,inset 0 -3px 3px #9d750c77;z-index:85;backdrop-filter:none;isolation:isolate}
.test-tv[open]{animation:tv-arrive .24s ease-out}.test-tv-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;font:600 11px/1.2 var(--sans);letter-spacing:.17em}.test-tv-close{font-size:26px;line-height:1;min-width:34px;min-height:34px;border-radius:50%;background:#2c303d;color:#fff6c2;letter-spacing:0}.test-tv-close:hover{background:#101b25}
.test-tv-screen{position:relative;aspect-ratio:1.45;overflow:hidden;border:12px solid #182631;border-radius:39px;background:#0b1322;box-shadow:0 1px 0 #fff693,inset 0 0 25px #000;isolation:isolate}
.test-bars{position:absolute;inset:0 0 24%;background:linear-gradient(90deg,#efefdc 0 14.285%,#eddf32 14.285% 28.57%,#3ed2d9 28.57% 42.855%,#52be52 42.855% 57.14%,#d150bd 57.14% 71.425%,#de3e48 71.425% 85.71%,#344ad5 85.71%);filter:saturate(1.18);transform:scaleX(1.025) translateX(var(--tv-distortion,0px));transition:transform .1s}
.test-bars-bottom{position:absolute;inset:76% 0 0;background:linear-gradient(90deg,#172044 0 17%,#e7e9df 17% 34%,#4c1f63 34% 51%,#080d17 51% 69%,#1b2230 69% 78%,#02050d 78% 88%,#292f3b 88%)}
.test-tv-lines{position:absolute;inset:0;opacity:.35;background:repeating-linear-gradient(0deg,#0009 0 1px,transparent 1px 4px);pointer-events:none}
.test-tv-grain{position:absolute;inset:-15%;opacity:.2;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23s)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");background-size:160px;transform:translateY(var(--tv-noise-y,0px));pointer-events:none}
.test-tv-tear{position:absolute;left:0;right:0;height:16%;top:-20%;background:linear-gradient(transparent,#eaffff3b,#151c334d,transparent);animation:tv-tracking 6s linear infinite;pointer-events:none}
.test-tv-message{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);padding:12px 20px;background:#111829eb;color:#fff1b6;text-align:center;white-space:nowrap;box-shadow:3px 0 #5fdce055,-3px 0 #ed5fa755}
.test-tv-message>span{font-family:ui-monospace,monospace;font-size:clamp(20px,3.4vw,35px);letter-spacing:.11em;line-height:1.2}.test-tv-message small{display:block;font-family:ui-monospace,monospace;font-size:8px;letter-spacing:.22em;margin-top:8px}
.test-tv-vignette{position:absolute;inset:0;border-radius:22px;background:radial-gradient(ellipse at 50% 44%,transparent 35%,#0010214d 80%,#000a),linear-gradient(125deg,#ffffff26,transparent 32%);box-shadow:inset 0 0 25px #0009;pointer-events:none}
.test-tv-foot{display:flex;align-items:center;gap:10px;padding:12px 8px 0;font:9px/1 var(--sans);letter-spacing:.15em}.test-tv-led{width:5px;height:5px;background:#1b6651;border-radius:50%;box-shadow:0 0 4px #53a260}.test-tv-foot i{margin-left:auto;width:70px;height:9px;background:repeating-linear-gradient(90deg,#454128 0 1px,transparent 1px 4px);opacity:.6}
@keyframes tv-tracking{from{top:-20%}to{top:110%}}@keyframes tv-arrive{from{opacity:0;transform:translate(-50%,-50%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(max-width:700px){.about-tv{right:17px;bottom:19px;width:43px;height:39px}.test-tv{padding:10px 12px 12px;border-radius:19px;width:92vw}.test-tv-screen{border-width:8px;border-radius:26px}.test-tv-top{margin-bottom:6px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.test-tv[open],.test-tv-tear{animation:none}.test-bars,.about-tv{transition:none}}

/* Phone layouts: generous targets, safe edges, readable chapters, and scroll-first orbiting. */
.solar-touch-toggle{display:none!important}
@media(max-width:700px){
 :root{--control-bottom:calc(12px + env(safe-area-inset-bottom,0px));--control-height:44px}
 html{scroll-padding-top:0}body{overflow-wrap:break-word}
 .section-pad{padding-left:22px;padding-right:55px}
 .site-header{height:82px;padding:12px 20px;align-items:flex-start}
 .menu-toggle{min-height:44px;padding:10px 17px;background:var(--control-glass);color:var(--control-ink);border-color:var(--control-edge)}
 .site-header #main-nav{left:20px;right:20px;top:66px;padding:12px 20px;border-radius:22px;background:#102f42f2;color:#f0ffff;max-height:calc(100svh - 110px);overflow:auto}
 .site-header #main-nav a{min-height:44px;display:flex;align-items:center;font-size:14px}
 .hero-copy:has(.name-wordmark){left:6vw;top:27%;width:82vw}
 .name-wordmark{filter:drop-shadow(0 2px 2px #15455944)}
 .hero-bottom{left:12px;right:auto;top:auto;bottom:var(--control-bottom);height:44px;flex-wrap:nowrap}
 html[data-atmosphere] .hero-bottom .scroll-note.scroll-pill{padding:0 12px;font-size:10px;gap:12px;height:44px;min-height:44px}
 .experience-controls,.experience-controls:hover{left:auto;right:12px;transform:none;bottom:var(--control-bottom);padding:4px 6px;min-height:44px;gap:0;max-width:calc(100vw - 24px)}
 .experience-controls button{min-height:36px;padding:6px 8px;font-size:10px;gap:6px}
 .palette-picker{bottom:calc(70px + env(safe-area-inset-bottom,0px));left:auto;right:12px;transform:none;max-width:calc(100vw - 24px)}
 .palette-picker button{min-height:48px}
 .chapter-rail{left:auto;right:7px;top:50%;bottom:auto;width:30px;max-height:65svh;gap:6px;padding:12px 0 8px;align-items:center}
 .chapter-rail .chapter-marker{width:30px;height:35px;min-height:35px}
 .chapter-count{font-size:7px}
 .chapter-marker:before{top:auto;bottom:calc(100% + 12px);right:0;transform:none!important;font-size:9px}
 .chapter-marker[aria-current]:before{display:none}
 .chapter-rail:before{content:attr(data-current-section);position:absolute;bottom:calc(100% + 8px);right:0;padding:7px 9px;border-radius:20px;background:var(--control-glass);color:var(--control-ink);border:1px solid var(--control-edge);font-size:9px;line-height:1;white-space:nowrap}
 .about-section,.research-section,.publications-section,.softclub-contact{padding-top:72px;padding-bottom:100px}
 .about-content,.publications-content{padding:26px 22px;border-radius:22px;width:100%;min-width:0}
 .about-content h2,.publications-content h2{font-size:clamp(35px,9vw,48px);overflow-wrap:normal}
 .large-copy{font-size:clamp(19px,5vw,23px);line-height:1.5;letter-spacing:-.035em}
 .about-bottom{margin-top:28px;padding-right:42px}
 .text-link{min-height:44px;align-items:center;gap:22px}
 .about-tv{width:44px;height:44px;right:17px;bottom:22px}
 .section-heading h2{font-size:clamp(42px,12vw,58px)}
 .research-chapters{grid-template-columns:1fr;gap:12px}
 .research-chapter summary{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;min-height:124px}
 .research-chapter .chapter-visual{width:96px;height:102px;aspect-ratio:auto;margin:0}
 .research-chapter .chapter-caption{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:6px;padding:10px 0;text-align:left}
 .research-chapter .project-name{font-size:clamp(15px,4.3vw,21px);letter-spacing:-.045em;white-space:normal;overflow-wrap:normal}
 .research-chapter .project-name small{font-size:10px;line-height:1.5;margin-top:5px}
 .research-chapter .project-plus{width:36px;height:44px;margin:0;justify-self:end}
 .research-chapter .project-body{padding:20px;font-size:14px;line-height:1.75}
 .research-chapter .editable-copy{font-size:14px;line-height:1.75}
 .beyond-section{padding-top:65px;padding-bottom:105px}
 .beyond-heading{display:block}.beyond-heading h2{font-size:58px}.beyond-heading>p{margin-top:22px;font-size:11px;line-height:1.6}
 .solar-stage{height:clamp(340px,55svh,480px);margin:22px -16px 0 -12px}
 .solar-stage canvas{touch-action:pan-y;outline-offset:-3px}
 .solar-stage canvas[data-touch-active=true]{touch-action:none;outline:1px solid #b8ffff70;outline-offset:-3px;border-radius:18px}
 .solar-touch-toggle{display:grid!important;font-size:11px!important;padding:0 12px!important;min-width:78px!important}
 .orbital-footer{margin-top:24px;gap:17px}
 .solar-view-controls button{min-width:44px;min-height:44px}
 .orbital-footer .planet-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px;padding:0}
 .planet-select{justify-content:flex-start;font-size:11px;min-height:44px;gap:7px;min-width:0}
 .planet-select .star-name{font-size:11px;overflow-wrap:normal}
 #star-discovery{inset:auto 12px calc(72px + env(safe-area-inset-bottom,0px)) 12px;width:auto;max-height:55svh;padding:30px 24px;border-radius:24px}
 .close-discovery{min-width:44px;min-height:44px}
 .softclub-contact h2{font-size:clamp(62px,17vw,85px)}
 .softclub-contact .contact-links{gap:20px;margin-top:30px}
 .softclub-contact .glass{min-height:48px;padding:13px 20px;font-size:13px}
 .test-tv{width:calc(100vw - 24px);max-height:calc(100svh - 32px - env(safe-area-inset-bottom,0px));border-radius:20px}
 .test-tv-close{min-width:44px;min-height:44px}
 .inner-main{padding-top:100px}.inner-main .section-pad{padding:30px 22px 100px}.inner-main h1{font-size:clamp(38px,11vw,62px)}
 .entry-content img,.entry-content video,.entry-content iframe{max-width:100%;height:auto}
 .entry-content p,.entry-content li{font-size:16px;line-height:1.75}
}
@media(max-width:360px){.section-pad{padding-left:17px;padding-right:49px}.research-chapter summary{grid-template-columns:78px minmax(0,1fr);gap:8px}.research-chapter .chapter-visual{width:78px;height:92px}.research-chapter .project-name{font-size:15px}.research-chapter .chapter-caption{grid-template-columns:minmax(0,1fr) 28px}.research-chapter .project-plus{width:28px}.about-content,.publications-content{padding:24px 18px}.experience-controls button{padding-inline:7px}.hero-wasp{width:85px}}
@media(max-height:500px) and (orientation:landscape){.chapter-rail .chapter-marker{height:25px;min-height:25px}.chapter-rail{padding-block:8px;gap:4px}.chapter-count{display:none}.hero-copy:has(.name-wordmark){top:23%;width:55vw}.hero-wasp{top:55%;width:90px}.test-tv{max-height:90svh;width:min(480px,85vw)}.test-tv-screen{aspect-ratio:2.1}}
@media(max-width:700px){.chapter-rail:before{top:calc(100% + 7px);bottom:auto;right:0;writing-mode:vertical-rl;padding:10px 7px;font-size:10px;max-height:130px}}

/* Research opens as a solid reading surface with room for a period's work. */
.research-reader{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;width:min(920px,calc(100vw - 64px));max-width:none;max-height:86svh;padding:28px 46px 55px;border:1px solid #fafffd;border-radius:28px;background:#f0f6f2;color:#163b40;--ink:#163b40;--muted:#48676b;--line:#bfd2cc;box-shadow:0 30px 120px #001a4266;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#749e9b #e4eeea;scrollbar-width:thin;z-index:90}
.research-reader::backdrop{background:#08293480;backdrop-filter:blur(10px)}
.research-reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.research-reader-index{font-size:10px;letter-spacing:.13em;color:#48686b}
.research-reader-close{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#dce9e4;color:#234a50;border:1px solid #b9d0c8;font-size:27px;line-height:1}
.research-reader-close:hover{background:#ccdfd7}.research-reader-close:focus-visible{outline:2px solid #187e8d;outline-offset:3px}
.research-reader-header{display:grid;grid-template-columns:130px minmax(0,1fr);gap:30px;align-items:center;padding:5px 0 32px;border-bottom:1px solid #bfd2cc;margin-bottom:32px}
.research-reader-icon{display:block;width:130px;height:135px;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 12px 12px #417a7729)}
.research-reader h2{margin:0;font-size:clamp(42px,5.5vw,72px);line-height:1.05;letter-spacing:-.065em;font-family:var(--sans);overflow-wrap:anywhere}
.research-reader-subtitle{font-size:13px;color:#48676b;margin-top:14px;line-height:1.6}
.research-reader-copy{max-width:68ch;margin:auto;font-size:17px;line-height:1.85;overflow-wrap:break-word}
.research-reader-copy p,.research-reader-copy .editable-copy{font-size:17px;line-height:1.85;color:#24494d}
.research-reader-copy p+p{margin-top:1.2em}.research-reader-copy h2,.research-reader-copy h3,.research-reader-copy h4{font-family:var(--sans);margin:1.6em 0 .65em;letter-spacing:-.04em;line-height:1.25;font-size:28px}.research-reader-copy h4{font-size:21px}
.research-reader-copy ul,.research-reader-copy ol{padding-left:1.4em;margin:1.2em 0}.research-reader-copy li+li{margin-top:.45em}
.research-reader-copy a{color:#126675;text-decoration:underline;text-underline-offset:4px}.research-reader-copy img,.research-reader-copy video,.research-reader-copy iframe{max-width:100%;height:auto;border-radius:12px}.research-reader-copy figure{margin:1.8em 0}.research-reader-copy blockquote{border-left:2px solid #72a9a5;padding-left:22px;margin:1.5em 0;color:#48676b}
@media(max-width:700px){.research-reader{width:calc(100vw - 24px);max-height:calc(100svh - 28px - env(safe-area-inset-bottom,0px));padding:18px 23px 35px;border-radius:24px}.research-reader-toolbar{margin-bottom:20px}.research-reader-header{grid-template-columns:76px minmax(0,1fr);gap:16px;padding-bottom:25px;margin-bottom:25px}.research-reader-icon{width:76px;height:85px}.research-reader h2{font-size:clamp(28px,7.5vw,44px);overflow-wrap:normal}.research-reader-subtitle{font-size:12px;margin-top:9px}.research-reader-copy,.research-reader-copy p,.research-reader-copy .editable-copy{font-size:16px;line-height:1.75}.research-reader-copy h2,.research-reader-copy h3{font-size:25px}}
@media(max-width:360px){.research-reader-header{grid-template-columns:1fr;gap:15px}.research-reader-icon{width:85px;height:90px}.research-reader h2{font-size:35px}}
.research-reader{min-height:72svh}
@media(max-width:700px){.research-reader{min-height:82svh}}
.research-reader-toolbar{position:sticky;top:-28px;z-index:3;background:#f0f6f2;padding-block:8px}
@media(max-width:700px){.research-reader-toolbar{top:-18px}}

/* A milky liquid-glass reading surface, with the landscape softly visible beneath. */
.research-reader{background:linear-gradient(135deg,#f4fffcd1,#e0f3eed4 52%,#f5faffc9);border-color:#f5ffffc9;backdrop-filter:blur(30px) saturate(1.2);-webkit-backdrop-filter:blur(30px) saturate(1.2);box-shadow:inset 0 1px 1px #fff,inset 0 -1px 2px #bce2d98c,0 26px 100px #001a424d}
.research-reader::backdrop{background:#08293438;backdrop-filter:blur(3px)}
.research-reader-toolbar{background:linear-gradient(100deg,#edf9f1a6,#e8f7f19c);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:16px}
.research-reader-close{background:#eafff580;border-color:#f5ffffbd;box-shadow:inset 0 1px 1px #fff9}
.research-reader-close:hover{background:#edfff9c7}

/* Let the chapter icons speak for themselves; keep only the reader's close control. */
.research-chapter .project-plus{display:none}
.research-chapter .chapter-caption{grid-template-columns:1fr}
.research-reader-index{display:none}
.research-reader-toolbar{justify-content:flex-end;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0}
@media(max-width:700px){.research-chapter .chapter-caption{grid-template-columns:1fr}}

/* Compact chapter mastheads leave the reading panel to the actual work. */
.research-reader{padding:18px 38px 40px;min-height:80svh;max-height:90svh}
.research-reader-toolbar{top:-18px;padding-block:0;margin-bottom:4px}
.research-reader-header{grid-template-columns:66px minmax(0,1fr);gap:19px;padding:0 0 20px;margin-bottom:24px}
.research-reader-icon{width:66px;height:72px}
.research-reader h2{font-size:clamp(30px,3.8vw,46px);line-height:1.12;letter-spacing:-.055em}
.research-reader-subtitle{font-size:12px;margin-top:6px;line-height:1.4}
.research-reader-copy{max-width:72ch}
@media(max-width:700px){
 .research-reader{padding:12px 22px 30px;min-height:88svh;max-height:calc(100svh - 20px - env(safe-area-inset-bottom,0px))}
 .research-reader-toolbar{top:-12px;margin-bottom:2px}
 .research-reader-header{grid-template-columns:46px minmax(0,1fr);gap:12px;padding-bottom:16px;margin-bottom:20px}
 .research-reader-icon{width:46px;height:52px}
 .research-reader h2{font-size:clamp(24px,6.8vw,32px);overflow-wrap:normal}
 .research-reader-subtitle{font-size:11px;margin-top:4px}
}
@media(max-width:360px){.research-reader-header{grid-template-columns:38px minmax(0,1fr);gap:10px}.research-reader-icon{width:38px;height:46px}.research-reader h2{font-size:24px}}

/* A compact liquid-glass contact card with three direct profile destinations. */
.contact-profiles{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;width:min(520px,calc(100vw - 40px));max-width:none;max-height:85svh;padding:55px 38px 35px;border:1px solid #f3fffdd6;border-radius:28px;background:linear-gradient(135deg,#f3fff9d4,#def1e9d9 65%,#eaf4ffd1);backdrop-filter:blur(28px) saturate(1.2);-webkit-backdrop-filter:blur(28px) saturate(1.2);color:#21474a;box-shadow:inset 0 1px 1px white,0 25px 90px #0c3b494d;overflow:auto;overscroll-behavior:contain;z-index:90}
.contact-profiles::backdrop{background:#133c3b42;backdrop-filter:blur(5px)}
.contact-profiles h2{font-family:var(--sans);font-size:clamp(34px,5vw,49px);line-height:1.15;letter-spacing:-.06em;margin:0 0 26px;color:#21474a}
.contact-profiles-close{position:absolute;right:17px;top:15px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#effffb88;border:1px solid #fff9;color:#21474a;font-size:27px;line-height:1}
.contact-profiles-close:hover{background:#f3fffbd9}.contact-profiles button:focus-visible,.contact-profiles a:focus-visible{outline:2px solid #1c7881;outline-offset:4px}
.profile-links{display:grid;gap:12px}.profile-links>a{display:flex;align-items:center;gap:16px;min-height:70px;padding:14px 18px;border-radius:18px;border:1px solid #f7ffffb8;background:#f1fff94d;color:#21474a;box-shadow:inset 0 1px 1px #fff9;font-size:17px;transition:background .25s,transform .25s}
.profile-links>a:hover{background:#f7fffbba;transform:translateY(-2px)}.profile-arrow{margin-left:auto;font-size:23px;color:#496f70}
.profile-symbol{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;border-radius:10px;font-family:var(--sans);font-size:21px;line-height:1;font-weight:600}
.linkedin-symbol{background:#126b91;color:#f1ffff;letter-spacing:-.06em}.orcid-symbol{background:#7f9e28;color:white;border-radius:50%;font-size:17px;font-weight:500;letter-spacing:-.05em}.inat-symbol{background:#d1e8b8;color:#3d6937}.inat-symbol svg{width:27px;height:27px}
@media(max-width:700px){.contact-profiles{width:calc(100vw - 28px);padding:60px 25px 28px;border-radius:25px}.contact-profiles h2{font-size:37px;margin-bottom:25px}.profile-links>a{min-height:68px;font-size:16px;padding:13px 15px}.contact-profiles-close{right:14px;top:13px}}
@media(prefers-reduced-motion:reduce){.profile-links>a{transition:none}}

/* A silver scarab opens into an impossible, quiet interior. */
.hero-beetle{position:absolute;z-index:7;left:23%;top:72%;width:clamp(100px,10vw,142px);aspect-ratio:1;padding:0;border:0;background:none;cursor:pointer;perspective:600px;transition:opacity .35s,visibility 0s;filter:drop-shadow(0 8px 6px #12382c66)}
.beetle-shell{position:absolute;inset:0;background:url('chrome-beetle.png') center/contain no-repeat;transition:transform .65s cubic-bezier(.22,.7,.2,1),filter .5s;backface-visibility:hidden}
.beetle-shell-left{clip-path:polygon(0 0,25% 0,93% 100%,0 100%);transform-origin:28% 42%}
.beetle-shell-right{clip-path:polygon(25% 0,100% 0,100% 100%,93% 100%);transform-origin:76% 62%}
.beetle-heart{position:absolute;inset:26% 33%;border-radius:50%;background:radial-gradient(ellipse,#f0fff9,#8af5dc 42%,#246d73 75%);box-shadow:0 0 24px #adfff388;opacity:0;transition:opacity .5s}
.hero-beetle:hover .beetle-shell{filter:brightness(1.15)}.hero-beetle:focus-visible{outline:1px solid white;outline-offset:3px;border-radius:50%}
.hero-beetle.is-opening .beetle-shell-left{transform:translate(-12%,-5%) rotate(-17deg) rotateY(-35deg)}
.hero-beetle.is-opening .beetle-shell-right{transform:translate(12%,5%) rotate(17deg) rotateY(35deg)}
.hero-beetle.is-opening .beetle-heart{opacity:1}.hero-beetle.is-away{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s,visibility 0s .35s}
.insect-emergence{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}.emergent-insect{position:absolute;width:3px;height:7px;border-radius:50%;background:#eeffdc;box-shadow:0 0 6px #efffd3,0 0 16px #b9ffe9;opacity:0;animation:insect-rise var(--life) ease-in-out forwards}
.emergent-insect:before,.emergent-insect:after{content:'';position:absolute;top:0;width:6px;height:3px;border-radius:70%;background:#e4ffff88;filter:blur(.4px)}.emergent-insect:before{right:2px;transform:rotate(-30deg)}.emergent-insect:after{left:2px;transform:rotate(30deg)}
@keyframes insect-rise{0%{opacity:0;transform:translate(0,10px) scale(.6)}15%{opacity:.75}40%{transform:translate(calc(var(--drift) * -.3),-60px) scale(.9)}65%{opacity:.6;transform:translate(var(--drift),-130px)}100%{opacity:0;transform:translate(calc(var(--drift) * .4),-240px) scale(.3)}}
.beetle-dream{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#c3e9df;overflow:hidden;color:#173e40;--dream-x:0px;--dream-y:0px}
.beetle-dream::backdrop{background:#d9ffef}.beetle-dream[open]{animation:dream-enter .9s cubic-bezier(.2,.7,.15,1) both}.beetle-dream.is-closing{animation:dream-leave .38s ease-in both}
.dream-room{position:absolute;inset:-3%;background:url('beetle-pool.jpg') center/cover no-repeat;transform:translate(var(--dream-x),var(--dream-y)) scale(1.025);transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.dream-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 20% 20%,#e8ffd142,transparent 60%),linear-gradient(120deg,#c0ffff12,transparent 45%,#b4ffd91c);mix-blend-mode:screen;animation:dream-breathe 12s ease-in-out infinite alternate}
.dream-water{position:absolute;inset:45% -10% -15%;pointer-events:none;opacity:.16;background:repeating-radial-gradient(ellipse at 40% 80%,transparent 0 32px,#d9ffed70 34px,transparent 37px 68px);filter:blur(9px);transform:perspective(500px) rotateX(52deg);animation:dream-water 14s ease-in-out infinite alternate;mix-blend-mode:screen}
.dream-close{position:absolute;right:max(24px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));z-index:3;width:48px;height:48px;border:1px solid #ffffffa6;border-radius:50%;background:#dffff553;backdrop-filter:blur(16px);color:#173e40;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 4px 24px #36787820}.dream-close:hover{background:#efffffc9}.dream-close:focus-visible{outline:2px solid #185c62;outline-offset:4px}
@keyframes dream-enter{from{clip-path:circle(0px at var(--portal-x) var(--portal-y));filter:blur(9px)}to{clip-path:circle(150vmax at var(--portal-x) var(--portal-y));filter:blur(0)}}
@keyframes dream-leave{from{opacity:1}to{opacity:0;filter:blur(12px)}}
@keyframes dream-breathe{to{opacity:.45}}@keyframes dream-water{to{transform:perspective(500px) rotateX(52deg) translate(20px,-15px) scale(1.1)}}
@media(max-width:700px){.hero-beetle{left:14%;top:73%;width:100px}.dream-room{background-position:44% center}.dream-close{right:18px;top:max(18px,env(safe-area-inset-top))}}
@media(prefers-reduced-motion:reduce){.beetle-shell,.beetle-heart,.hero-beetle,.dream-room{transition:none}.beetle-dream[open],.beetle-dream.is-closing,.dream-light,.dream-water{animation:none}.insect-emergence{display:none}}

/* A contained glass window keeps each dream inside the landscape. */
.portal-fly{left:58%;top:68%;width:clamp(86px,9vw,120px)}.portal-shield{left:43%;top:78%;width:clamp(86px,8vw,110px)}
.portal-insect-art{position:absolute;inset:0;background:center/contain no-repeat;transition:filter .4s,transform .5s}
.portal-fly .portal-insect-art{background-image:url('iridescent-fly.png')}.portal-shield .portal-insect-art{background-image:url('edessa-stink-bug.png')}
.portal-insect:hover .portal-insect-art{filter:brightness(1.15)}.portal-insect.is-opening .portal-insect-art{transform:translateY(-5px) scale(1.06);filter:brightness(1.4) drop-shadow(0 0 12px #ddffdf)}
.beetle-dream{inset:0;width:min(780px,calc(100vw - 48px),104svh);height:auto;aspect-ratio:4/3;max-height:78svh;margin:auto;padding:0;border:7px solid #e1fff453;border-radius:27px;background:#c2e4da;box-shadow:0 28px 100px #061c3c66,0 0 0 1px #ffffffad,inset 0 0 0 1px #fff8;backdrop-filter:blur(18px)}
.beetle-dream::backdrop{background:#102d4238;backdrop-filter:blur(3px)}
.beetle-dream[open]{animation:portal-window-enter .65s cubic-bezier(.2,.7,.2,1) both}.beetle-dream.is-closing{animation:portal-window-leave .26s ease-in both}
.dream-room{inset:-2%;transform:translate(var(--dream-x),var(--dream-y)) scale(1.015);background-position:center}
.beetle-dream[data-world=beetle] .dream-room{background-image:url('dream-tideland.jpg')}
.beetle-dream[data-world=fly] .dream-room{background-image:url('dream-silver-room.jpg')}
.beetle-dream[data-world=shield] .dream-room{background-image:url('dream-lime-lounge.jpg')}
.dream-close{right:13px;top:13px;width:44px;height:44px;background:#effffbc2;box-shadow:0 4px 20px #123e4630}
@keyframes portal-window-enter{from{opacity:0;transform:translateY(22px) scale(.89);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes portal-window-leave{to{opacity:0;transform:translateY(12px) scale(.96);filter:blur(6px)}}
@media(max-width:700px){.portal-beetle{left:11%;top:72%;width:92px}.portal-fly{left:38%;top:65%;width:84px}.portal-shield{left:48%;top:81%;width:84px}.beetle-dream{width:min(calc(100vw - 30px),100svh);max-height:75svh;border-width:5px;border-radius:20px}.dream-close{right:9px;top:9px}.dream-room{background-position:center}}
@media(max-height:500px) and (orientation:landscape){.portal-beetle{top:61%;width:75px}.portal-fly{top:58%;width:70px}.portal-shield{top:70%;width:70px}}
@media(prefers-reduced-motion:reduce){.beetle-dream[open],.beetle-dream.is-closing{animation:none}.portal-insect-art{transition:none}}

/* Recognizable little companions, suspended inside each hidden world. */
.dream-pet{position:absolute;z-index:2;pointer-events:none;isolation:isolate}
.dream-pet-art{display:block;position:absolute;inset:0;background:center bottom/contain no-repeat;filter:drop-shadow(0 2px 3px #f2ffff66)}
.dream-pet-shadow{position:absolute;z-index:-1;left:18%;right:18%;bottom:-4%;height:9%;border-radius:50%;background:#1b485944;filter:blur(6px)}
.beetle-dream[data-world=beetle] .dream-pet{left:55%;bottom:16%;width:23%;height:33%}
.beetle-dream[data-world=beetle] .dream-pet-art{background-image:url('pet-judy.png')}
.beetle-dream[data-world=fly] .dream-pet{left:27%;bottom:22%;width:18%;height:26%}
.beetle-dream[data-world=fly] .dream-pet-art{background-image:url('pet-pewter.png')}
.beetle-dream[data-world=shield] .dream-pet{left:31%;bottom:38%;width:18%;height:33%}
.beetle-dream[data-world=shield] .dream-pet-art{background-image:url('pet-bartlett.png')}
.beetle-dream[open] .dream-pet-art{animation:dream-pet-float 7s ease-in-out infinite}
.beetle-dream[open] .dream-pet-shadow{animation:dream-pet-shadow 7s ease-in-out infinite}
@keyframes dream-pet-float{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-5px) rotate(.4deg)}}
@keyframes dream-pet-shadow{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.3;transform:scale(.86)}}
@media(prefers-reduced-motion:reduce){.beetle-dream[open] .dream-pet-art,.beetle-dream[open] .dream-pet-shadow{animation:none}}

/* Small pools of light make the hidden insect entrances discoverable. */
.hero-beetle,.hero-wasp{isolation:isolate;transition:opacity .35s,visibility 0s,scale .3s ease,translate .3s ease,filter .4s}
.hero-beetle::before,.hero-wasp::before{content:'';position:absolute;z-index:-1;inset:13%;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse,#f1fff2b3 0%,#b0ffeb70 32%,#67e7eb2e 58%,transparent 75%);filter:blur(8px);opacity:.65;transform:scale(.88);animation:insect-invitation-light 4.8s ease-in-out infinite}
.portal-fly::before{background:radial-gradient(ellipse,#eaffffb8,#b6c6ff75 34%,#90ecff30 58%,transparent 75%);animation-delay:-1.5s}
.portal-shield::before{background:radial-gradient(ellipse,#edfff6c2,#7ff9ee80 34%,#c4ff812e 58%,transparent 75%);animation-delay:-3s}
.hero-wasp::before{animation-delay:-2.2s}
.hero-beetle:hover,.hero-beetle:focus-visible,.hero-wasp:hover,.hero-wasp:focus-visible{scale:1.09;translate:0 -3px;animation:insect-hello .5s ease-in-out}
.hero-beetle:hover::before,.hero-beetle:focus-visible::before,.hero-wasp:hover::before,.hero-wasp:focus-visible::before{animation:none;opacity:1;transform:scale(1.2);filter:blur(6px)}
.hero-beetle.is-away::before,.hero-wasp.is-away::before{animation-play-state:paused}
@keyframes insect-invitation-light{0%,100%{opacity:.45;transform:scale(.84)}50%{opacity:.88;transform:scale(1.15)}}
@keyframes insect-hello{0%,100%{rotate:0deg}22%{rotate:-2deg}48%{rotate:2deg}74%{rotate:-1deg}}
@media(prefers-reduced-motion:reduce){.hero-beetle::before,.hero-wasp::before{animation:none;opacity:.65}.hero-beetle:hover,.hero-beetle:focus-visible,.hero-wasp:hover,.hero-wasp:focus-visible{animation:none;scale:1;translate:none}.hero-beetle,.hero-wasp{transition:none}}

/* A quiet glass speech bubble introduces the companion in each world. */
.dream-pet-speech{position:absolute;z-index:2;margin:0;padding:17px 20px;border:1px solid #ffffffb3;border-radius:21px;background:linear-gradient(135deg,#f1fffbd9,#e8f7f0b8);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);box-shadow:0 8px 30px #12384424,inset 0 1px 0 #fff9;color:#183f43;font-family:var(--sans);font-size:15px;line-height:1.55;letter-spacing:0;pointer-events:none;text-align:left;text-wrap:pretty}
.dream-pet-speech::after{content:'';position:absolute;top:calc(100% - 1px);left:30px;width:19px;height:15px;background:#e8f7f0bf;clip-path:polygon(0 0,100% 0,0 100%)}
.beetle-dream[data-world=beetle] .dream-pet-speech{left:12%;top:27%;width:49%}.beetle-dream[data-world=beetle] .dream-pet-speech::after{left:auto;right:28px;transform:scaleX(-1)}
.beetle-dream[data-world=fly] .dream-pet-speech{left:44%;top:43%;width:43%}
.beetle-dream[data-world=shield] .dream-pet-speech{left:49%;top:23%;width:43%}
.beetle-dream[open] .dream-pet-speech{animation:pet-speech-arrive .5s .55s ease-out both}
@keyframes pet-speech-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:600px) and (orientation:portrait){.beetle-dream{aspect-ratio:1/1}.beetle-dream[data-world] .dream-pet-speech{left:6%;right:6%;top:15%;width:auto;padding:13px 15px;font-size:13px;line-height:1.5;border-radius:17px}.beetle-dream[data-world=beetle] .dream-pet{bottom:8%}.beetle-dream[data-world=fly] .dream-pet{bottom:12%}.beetle-dream[data-world=shield] .dream-pet{bottom:13%}.beetle-dream[data-world=shield] .dream-pet-speech::after{left:27%}.beetle-dream[data-world=fly] .dream-pet-speech::after{left:20%}}
@media(max-height:500px) and (orientation:landscape){.dream-pet-speech{font-size:12px;line-height:1.35;padding:10px 12px}.beetle-dream[data-world=beetle] .dream-pet-speech{top:15%;width:56%}.beetle-dream[data-world=fly] .dream-pet-speech{top:27%}.beetle-dream[data-world=shield] .dream-pet-speech{top:20%}}
@media(prefers-reduced-motion:reduce){.beetle-dream[open] .dream-pet-speech{animation:none}}
