/* Spatial art direction: porcelain, peacock teal, apricot light. */
:root{--page:#f3f5ef;--ink:#163f47;--teal:#176a6c;--orange:#b8532f;--pointer-x:50%;--pointer-y:35%;--scroll-depth:0}
body{overflow-x:clip;background:var(--page);isolation:isolate}
.ambient-space{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at var(--pointer-x) var(--pointer-y),#d5e9e260,transparent 52%),radial-gradient(ellipse at 95% 10%,#f3b98822,transparent 44%);transition:background-position .2s}
.reading-progress{position:fixed;inset:0 0 auto;z-index:60;height:3px;pointer-events:none}
.reading-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#7bac9c 63%,#d98555);transform:scaleX(var(--read-progress,0));transform-origin:left}
.site-header{background:#f3f5efc9;backdrop-filter:blur(20px);border-bottom-color:#c6d7cf80}
.header-inner{min-height:94px}
.site-label{letter-spacing:.045em}
.site-label>span{letter-spacing:.13em;font-size:.75rem}
.header-github{border-radius:50px;background:#ffffff66}
.hero{grid-template-columns:.95fr 1.2fr;gap:32px;position:relative;min-height:700px;min-height:min(820px,calc(100svh - 94px));padding-block:38px 72px;align-items:center;perspective:1600px}
.hero-copy{position:relative;z-index:2;transform:translate3d(0,calc(var(--hero-scroll,0) * -22px),0);will-change:transform}
.hero .eyebrow{font-size:.75rem;letter-spacing:.07em;line-height:1.8;max-width:400px}
.hero h1{font-size:clamp(2.5rem,3.7vw,3.45rem);font-weight:500;line-height:1.5;letter-spacing:-.05em;margin-top:24px}
.hero h1>span{color:var(--teal)}
.hero-description{font-size:1.0625rem;line-height:1.95;max-width:30em;margin-top:26px}
.hero-footnote{font-size:.8125rem;letter-spacing:.04em;color:#637b79;margin-top:38px}
.hero-actions{margin-top:30px}
.button{border-radius:40px;box-shadow:0 8px 20px -10px #176a6c77;transition:transform .25s,box-shadow .25s}
.button:hover{transform:translateY(-3px);box-shadow:0 14px 25px -12px #176a6c88}
.spatial-stage{position:relative;min-width:0;align-self:center;isolation:isolate;margin-inline:-10px;transform:translate3d(0,calc(var(--hero-scroll,0) * 32px),0)}
.spatial-stage:before{content:"";position:absolute;inset:14% 4% 19%;border-radius:50%;background:radial-gradient(ellipse,#b9dace66,transparent 70%);filter:blur(22px);z-index:-1}
.scene-heading{display:flex;align-items:center;justify-content:space-between;padding:0 26px;gap:12px;color:var(--teal);font-size:.875rem;letter-spacing:.06em}
.scene-edition{font-family:var(--mono);font-size:.75rem;letter-spacing:.05em;color:#718983}
.scene-viewport{position:relative;height:clamp(380px,36vw,515px);max-width:100%;margin-top:0}
#intelligence-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y;position:relative;z-index:1;outline-offset:-12px}
#intelligence-canvas:active{cursor:grabbing}
#intelligence-canvas:focus-visible{outline:1px dashed #467f7799;border-radius:35%}
.scene-coordinate{position:absolute;left:29px;bottom:24px;font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;color:#728983;pointer-events:none}
.scene-side-label{position:absolute;right:9px;top:50%;writing-mode:vertical-rl;font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;color:#779087;pointer-events:none}
.scene-fallback{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:16px;color:var(--teal);text-align:center;padding:30px;z-index:0}
.scene-fallback>span{font-size:1.6rem;font-weight:500;letter-spacing:.12em}
.scene-fallback p{font-size:.9375rem;color:var(--muted)}
.spatial-stage[data-state="ready"] .scene-fallback{display:none}
.spatial-stage[data-state="unavailable"] canvas{visibility:hidden}
.spatial-stage[data-state="unavailable"] .scene-tools,.spatial-stage[data-state="unavailable"] .scene-modes{display:none}
.scene-console{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 21px;padding:10px 0;border-top:1px solid #bbd0c7;border-bottom:1px solid #bbd0c74f}
.scene-modes{display:flex;gap:4px}
.scene-modes button,.scene-tools button{font:inherit;font-size:.875rem;border:0;background:transparent;cursor:pointer;color:#5f7a73;min-height:42px;padding:7px 12px;border-radius:40px;transition:background .2s,color .2s,transform .2s}
.scene-modes button>span{font-family:var(--mono);font-size:.75rem;opacity:.66;margin-right:7px}
.scene-modes button[aria-pressed="true"]{background:#1d6d6d;color:#fffefa;box-shadow:0 5px 15px -8px #135957aa}
.scene-modes button:hover{transform:translateY(-1px)}
.scene-tools{display:flex;gap:1px}
.scene-tools button{padding-inline:8px;font-size:.8125rem}
.scene-tools button:hover{background:#e2ebe2;color:var(--teal)}
.scene-caption{font-size:.875rem;line-height:1.8;margin:14px 26px 0;color:#426660;min-height:1.8em}
.scene-help{font-size:.75rem;color:#758780;letter-spacing:.03em;margin:5px 26px 0}
.scroll-cue{position:absolute;bottom:23px;left:0;display:flex;align-items:center;gap:29px;font-size:.75rem;letter-spacing:.08em;color:#69857e}
.scroll-cue>span:last-child{display:inline-block;font-size:1.125rem;animation:scroll-cue 2.6s ease-in-out infinite;color:var(--orange)}
@keyframes scroll-cue{0%,100%{transform:translateY(-2px)}50%{transform:translateY(4px)}}
.research-section{position:relative;isolation:isolate;border-top:1px solid #c6d7cf;border-bottom:0;background:linear-gradient(145deg,#e4eeeaee,#f7f8f1f2 66%);padding-block:79px 64px}
.research-section:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(120deg,transparent 72%,#b5d4c44d 72.1%,transparent 72.3%);opacity:.75}
.section-heading{margin-bottom:43px;perspective:1000px}
.section-heading h2{font-size:2.2rem;font-weight:500;letter-spacing:.035em}
.section-heading .eyebrow{font-size:.75rem;color:#5a8277;letter-spacing:.11em}
.section-intro{font-size:1rem}
.paper-list{perspective:1600px;display:flex;flex-direction:column;gap:15px}
.paper{position:relative;grid-template-columns:59px 1fr;padding:30px 35px 29px 28px;border:1px solid #d2dfd5;border-radius:12px;background:#fffff9d9;box-shadow:0 4px 6px -6px #3d75694d,0 15px 32px -30px #1b554f55;transition:transform .35s,box-shadow .35s,border-color .35s;transform-origin:center center;transform-style:preserve-3d}
.paper:before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:3px;border-radius:0 3px 3px 0;background:var(--orange);opacity:0;transition:opacity .3s}
.paper:hover,.paper:focus-within{transform:translate3d(3px,-3px,16px);border-color:#a8c9ba;box-shadow:-5px 6px 0 -3px #dce7de,0 22px 38px -28px #1e5e5799}
.paper:hover:before,.paper:focus-within:before{opacity:1}
.paper-index>span:first-child{font-size:1.8rem;color:#8cad9e;font-weight:400}
.paper h3{font-size:1.3125rem;line-height:1.6;max-width:920px}
.paper h3 a{text-decoration:none}
.paper h3 a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.paper-summary{max-width:900px}
.abstract-content{background:#edf3ec;border-radius:0 7px 7px 0}
.section#projects{padding-block:80px;perspective:1400px}
.project-grid{gap:25px;perspective:1600px}
.project-card{transform-style:preserve-3d;transform:perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)) translateY(var(--card-lift,0px));background:#fefff8;border:1px solid #c8dccf;border-radius:14px;box-shadow:0 10px 25px -22px #245b4e6b;transition:transform .22s ease-out,box-shadow .3s,border-color .3s;padding:30px 30px 22px;isolation:isolate}
.project-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,10%),#ffffff9c,transparent 62%);opacity:0;transition:opacity .3s;z-index:-1}
.project-card:hover,.project-card:focus-within{border-color:#89b6a3;box-shadow:0 20px 38px -23px #2f6d5e69}
.project-card:hover:before{opacity:1}
.project-top,.project-card h3{transform:translateZ(18px)}
.project-description,.project-focus{transform:translateZ(10px)}
.project-bottom{transform:translateZ(14px)}
.vision-card{background:linear-gradient(125deg,#fbead7,#fff7eb);border-color:#e2c2a2}
.charge-card{background:linear-gradient(125deg,#dceee4,#f0f7ed)}
.project-featured .project-focus{border-radius:7px;padding:20px 17px;background:#ffffff4d;margin-top:20px;border:1px solid #c8ddcd80;box-shadow:inset 0 1px 0 #ffffffa6;transform:translateZ(23px)}
.vision-card .project-focus{border-color:#e4cdb680;background:#fff8eb66}
.project-featured h3{margin-top:24px}
.agent-card{background:transparent;border-style:dashed;box-shadow:none}
.site-footer{border-top-color:#bdcfc3;padding-block:36px;position:relative}
.footer-contact{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,520px);gap:12px 40px;font-style:normal;padding-block:16px 12px;border-block:1px solid #d3dfd5;margin-top:3px}
.footer-contact a{display:flex;align-items:center;gap:17px;min-height:44px;padding:5px 0;color:var(--teal);min-width:0}
.contact-label{font-size:.875rem;color:var(--muted);flex:none}
.contact-value{font-size:1rem;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.contact-arrow{font-size:.875rem;color:var(--orange);margin-left:auto}
.footer-contact a:hover .contact-value{text-decoration:underline;text-underline-offset:5px}
@media(max-width:650px){.footer-contact{grid-template-columns:1fr;gap:5px;padding-block:12px}.footer-contact a{gap:13px}.contact-value{font-size:.9375rem}}
.reveal-ready{opacity:0;transform:translate3d(0,28px,-20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal-ready.is-revealed{opacity:1;transform:translate3d(0,0,0)}
body[data-motion="paused"] .scroll-cue>span:last-child{animation-play-state:paused}
body[data-motion="paused"] .hero-copy,body[data-motion="paused"] .spatial-stage{transform:none}
body[data-motion="paused"] .project-card{transform:none!important}
@media(min-width:1500px){.hero{gap:60px}.scene-viewport{height:530px}.hero h1{font-size:3.45rem}}
@media(max-width:1100px){.hero{grid-template-columns:1fr 1.12fr;gap:13px;min-height:680px}.hero h1{font-size:2.55rem}.scene-heading{padding-inline:15px}.scene-edition{font-size:.75rem;letter-spacing:0}.scene-console{margin-inline:8px;gap:5px}.scene-modes button{padding-inline:9px}.scene-tools button{padding-inline:6px}.scene-caption,.scene-help{margin-inline:14px}.scene-viewport{height:420px}.scene-side-label{right:0}.project-card{padding:26px 24px 21px}.paper{padding:28px 25px;gap:20px}}
@media(max-width:850px){.header-inner{min-height:84px}.hero{grid-template-columns:1fr;gap:20px;padding-block:45px 62px;min-height:0}.hero h1{font-size:3rem;line-height:1.45}.hero-copy{max-width:620px;transform:none}.hero-description{max-width:530px;margin-top:21px}.hero-description br{display:none}.hero-footnote{margin-top:27px}.spatial-stage{max-width:650px;width:100%;margin:5px auto 10px;transform:none}.scene-viewport{height:490px}.scene-heading{padding-inline:25px}.scene-edition{font-size:.75rem;letter-spacing:.03em}.scene-console{margin-inline:25px}.scene-modes button{padding-inline:14px}.scene-caption,.scene-help{margin-inline:30px}.scene-coordinate{left:35px}.scene-side-label{right:20px}.scroll-cue{bottom:21px}.paper{grid-template-columns:42px 1fr;padding:27px 25px;gap:17px}.research-section{padding-block:58px}.section#projects{padding-block:60px}.project-featured .project-focus{padding:15px 12px}.project-card{padding:24px 20px 20px}.section-heading h2{font-size:2rem}}
@media(max-width:600px){.header-inner{min-height:0}.site-label>span{font-size:.75rem;letter-spacing:.08em}.hero{padding-block:35px 56px;gap:20px}.hero .eyebrow{font-size:.75rem;letter-spacing:0;max-width:320px}.hero h1{font-size:clamp(2rem,7.65vw,2.9rem);margin-top:20px}.hero-description{font-size:1rem;line-height:1.9}.hero-footnote{font-size:.75rem;letter-spacing:0;margin-top:25px}.hero-actions{margin-top:26px}.spatial-stage{margin:0 -10px;width:calc(100% + 20px);max-width:none}.scene-viewport{height:clamp(315px,90vw,430px)}.scene-heading{padding-inline:17px;font-size:.875rem}.scene-edition{font-size:.75rem;letter-spacing:0}.scene-coordinate{left:23px;bottom:19px;font-size:.75rem}.scene-side-label{right:10px;font-size:.75rem;display:none}.scene-console{margin-inline:14px;gap:3px}.scene-modes{gap:1px}.scene-modes button{font-size:.875rem;padding:6px 10px}.scene-modes button>span{font-size:.75rem;margin-right:4px}.scene-tools{gap:0}.scene-tools button{font-size:.8125rem;padding-inline:6px}.scene-caption{font-size:.875rem;margin:13px 20px 0;min-height:3.6em}.scene-help{margin:0 20px;font-size:.75rem}.scroll-cue{bottom:17px}.research-section{padding-block:40px}.section-heading{gap:15px;margin-bottom:26px}.section-heading h2{font-size:1.8rem;letter-spacing:.02em}.section-intro{font-size:.9375rem}.paper-list{gap:15px;perspective:none}.paper{grid-template-columns:1fr;gap:12px;padding:22px 19px;border-radius:11px}.paper-index{flex-direction:row;gap:11px}.paper-index>span:first-child{font-size:1.25rem}.paper h3{font-size:1.1875rem}.paper:hover,.paper:focus-within{transform:none}.paper-meta{gap:7px 10px}.abstract-content{padding:17px 14px}.paper-summary{font-size:1rem}.section#projects{padding-block:44px}.project-grid{gap:18px;perspective:none}.project-card{padding:25px 22px 21px;transform:none!important}.project-featured .project-focus{padding:17px 13px}.project-top,.project-card h3,.project-description,.project-focus,.project-bottom{transform:none}.site-footer{padding-block:28px}}
@media(max-width:360px){.scene-modes button{padding-inline:8px}.scene-modes button>span{display:none}.scene-edition{font-size:.75rem;letter-spacing:-.055em}.scene-heading{gap:7px}.scene-tools button{padding-inline:5px}}
@media(prefers-reduced-motion:reduce){.hero-copy,.spatial-stage,.project-card,.paper,.paper:hover,.paper:focus-within{transform:none!important}.reveal-ready{opacity:1;transform:none}.scroll-cue>span:last-child{animation:none}.ambient-space{display:none}}
@media print{.spatial-stage,.scroll-cue,.reading-progress,.ambient-space{display:none}.hero-copy{transform:none}.hero{min-height:0;display:block}.paper,.project-card{box-shadow:none;transform:none}.paper-list{display:block}.paper{border:0;border-top:1px solid #ccc;border-radius:0;padding:14px 0}.reveal-ready{opacity:1;transform:none}.section#projects{padding-block:20px}.research-section{background:white}.site-header{display:none}}
