
:root{
  --bg:#F7F8FA;
  --surface:#FFFFFF;
  --ink:#0A0D14;
  --muted:#667085;
  --muted-2:#98A2B3;
  --line:#E4E7EC;
  --line-dark:rgba(255,255,255,.13);
  --accent:#315EF5;
  --accent-2:#75C8FF;
  --accent-soft:#EEF3FF;
  --night:#080B12;
  --night-2:#0E1420;
  --violet-soft:#F4F1FF;
  --cyan-soft:#EFF9FC;
  --rose-soft:#FFF5F6;
  --serif:"Baskerville","Iowan Old Style",Georgia,"Times New Roman",serif;
  --sans:Inter,"Helvetica Neue",Arial,sans-serif;
  --max:1240px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
img{display:block;max-width:100%}
::selection{background:#DDE6FF;color:var(--ink)}
.container{width:min(calc(100% - 48px),var(--max));margin:auto}
.eyebrow{font-size:10px;line-height:1.4;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.display,.section-title,.project-title,.detail-title,.editorial-title{font-family:var(--serif)}
.display{font-size:clamp(44px,5vw,66px);line-height:.99;letter-spacing:-.047em;font-weight:600;margin:0}
.section-title{font-size:clamp(31px,3.4vw,44px);line-height:1.06;letter-spacing:-.038em;font-weight:600;margin:0}
.lead{font-size:17px;line-height:1.65;color:#475467}
.body-copy{font-size:14px;line-height:1.78;color:var(--muted)}
.small{font-size:11px;line-height:1.55;color:var(--muted)}
.blue{color:var(--accent)}
.rule{border-top:1px solid var(--line)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .72s var(--ease),transform .72s var(--ease)}
.reveal.visible{opacity:1;transform:none}
.progress{position:fixed;left:0;top:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));z-index:500}

/* NAV */
.site-nav{position:fixed;z-index:300;top:0;left:0;right:0;transition:background .3s,border .3s,color .3s}
.site-nav .nav-inner{height:68px;width:min(calc(100% - 48px),var(--max));margin:auto;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:650;letter-spacing:.01em}
.brand-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}
.nav-links{display:flex;align-items:center;gap:28px;font-size:12px;color:#525866}
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:currentColor;transition:right .3s var(--ease)}
.nav-links a:hover::after{right:0}
.site-nav.dark{color:#F5F7FA}
.site-nav.dark .nav-links{color:#A7B0C0}
.site-nav.scrolled{background:rgba(247,248,250,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);color:var(--ink)}
.site-nav.scrolled .nav-links{color:#525866}
.menu-btn{display:none;background:transparent;border:0;width:36px;height:36px}
.menu-btn span{display:block;width:18px;height:1px;background:currentColor;margin:5px auto}

/* HOME HERO */
.home-hero{min-height:100svh;background:var(--night);color:#F5F7FA;display:grid;align-items:center;position:relative;overflow:hidden;padding:110px 0 70px}
.home-hero::before{content:"";position:absolute;inset:0;background:
radial-gradient(circle at 72% 38%,rgba(49,94,245,.20),transparent 30%),
radial-gradient(circle at 86% 64%,rgba(117,200,255,.10),transparent 22%);}
.home-grid{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:center;position:relative;z-index:2}
.home-copy{max-width:710px}
.home-copy .eyebrow{color:#8590A2;margin-bottom:22px}
.home-copy .display{color:#fff;max-width:680px}
.home-copy .lead{color:#C3CAD5;margin:25px 0 0;max-width:650px}
.home-copy .body-copy{color:#8F99AA;max-width:620px;margin:14px 0 0}
.hero-actions{display:flex;gap:20px;flex-wrap:wrap;margin-top:30px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.hero-actions a{padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.28)}
.signal-field{height:min(65vh,600px);min-height:430px;position:relative;border:1px solid rgba(255,255,255,.11);overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.008))}
.signal-field::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.08);left:50%;top:50%;transform:translate(-50%,-50%)}
.signal-field::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;border:1px solid rgba(255,255,255,.08);left:50%;top:50%;transform:translate(-50%,-50%)}
.signal-cross-x,.signal-cross-y{position:absolute;background:rgba(255,255,255,.07)}
.signal-cross-x{left:8%;right:8%;height:1px;top:50%}
.signal-cross-y{top:8%;bottom:8%;width:1px;left:50%}
.signal-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:94px;height:94px;border-radius:50%;background:rgba(49,94,245,.13);border:1px solid rgba(117,200,255,.36);display:grid;place-items:center;color:#DCE7FF;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.signal-node{position:absolute;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8792A5}
.signal-node::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent-2);margin-right:8px;box-shadow:0 0 16px rgba(117,200,255,.45)}
.signal-node.n1{left:11%;top:18%}.signal-node.n2{right:10%;top:24%}.signal-node.n3{left:15%;bottom:18%}.signal-node.n4{right:12%;bottom:17%}
.gaze-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 8px rgba(117,200,255,.09),0 0 28px rgba(117,200,255,.5);pointer-events:none;transition:left .11s linear,top .11s linear}
.gaze-trail{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(117,200,255,.45);pointer-events:none;animation:trailFade .65s ease forwards}
@keyframes trailFade{to{opacity:0;transform:scale(.2)}}
.signal-caption{position:absolute;left:18px;bottom:16px;font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:#687386}
.scroll-cue{position:absolute;left:24px;bottom:22px;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:#788396;display:flex;gap:10px;align-items:center}
.scroll-cue::before{content:"";width:42px;height:1px;background:#4D5665}

/* ABOUT */
.section{padding:112px 0}
.about{background:var(--surface);border-bottom:1px solid var(--line)}
.about-grid{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:start}
.about-copy{padding-right:44px}
.about-copy .section-title{max-width:690px}
.about-copy .lead{margin:26px 0 0;max-width:720px}
.about-copy .body-copy{margin:16px 0 0;max-width:720px}
.profile-table{margin-top:38px;border-top:1px solid var(--ink)}
.profile-row{display:grid;grid-template-columns:140px 1fr;gap:26px;padding:14px 0;border-bottom:1px solid var(--line)}
.profile-row .k{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}
.profile-row .v{font-size:13px;line-height:1.6}
.portrait-wrap{position:sticky;top:96px}
.portrait{aspect-ratio:4/5;overflow:hidden;background:#E9ECF2;position:relative}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.portrait::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.portrait-meta{display:flex;justify-content:space-between;gap:20px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}

/* APPROACH */
.section-head{display:grid;grid-template-columns:3fr 9fr;gap:32px;align-items:start;margin-bottom:48px}
.section-head .section-title{max-width:760px}
.approach-list{border-top:1px solid var(--ink)}
.approach-row{display:grid;grid-template-columns:1fr 2.2fr 5.8fr;gap:32px;padding:23px 0;border-bottom:1px solid var(--line);align-items:start}
.approach-row .num{font-size:9px;color:var(--muted);letter-spacing:.12em}
.approach-row h3{font-family:var(--serif);font-size:20px;line-height:1.2;margin:0;font-weight:600}
.approach-row p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}

/* SELECTED WORK */
.work{background:#F1F4FA;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.work-list{border-top:1px solid var(--ink)}
.project-row{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:center;padding:62px 0;border-bottom:1px solid var(--line);min-height:650px}
.project-media{height:520px;overflow:hidden;background:#E8ECF3;position:relative}
.project-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.project-row:hover .project-media img{transform:scale(1.025)}
.project-copy{padding-left:24px;max-width:450px}
.project-index{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:17px}
.project-title{font-size:clamp(33px,3.4vw,46px);line-height:1;letter-spacing:-.04em;font-weight:600;margin:0}
.project-tags{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:14px}
.project-copy p{font-size:14px;line-height:1.72;color:var(--muted);margin:22px 0 0}
.related-note{margin-top:17px;padding-top:15px;border-top:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--muted)}
.related-note strong{display:block;color:var(--ink);margin-bottom:3px}
.text-link{display:inline-flex;align-items:center;gap:11px;margin-top:26px;font-size:10px;text-transform:uppercase;letter-spacing:.13em}
.text-link::after{content:"↗";width:33px;height:33px;border-radius:50%;border:1px solid rgba(10,13,20,.27);display:grid;place-items:center;transition:transform .3s,background .3s,color .3s}
.text-link:hover::after{transform:rotate(45deg);background:var(--ink);color:white}

/* IMMERSIVE LAB */
.lab{background:var(--night);color:#F4F7FB;padding:116px 0}
.lab .eyebrow{color:#758198}
.lab .section-title{color:white}
.lab .body-copy{color:#8C97A8}
.lab-tabs{display:flex;gap:8px;margin:42px 0 16px}
.lab-tab{border:1px solid rgba(255,255,255,.12);background:transparent;color:#7E899B;padding:10px 14px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.11em;cursor:pointer;transition:.3s}
.lab-tab.active{background:#F4F7FB;color:#111520;border-color:#F4F7FB}
.lab-stage{border:1px solid rgba(255,255,255,.12);min-height:650px;display:none;grid-template-columns:minmax(0,1fr) 340px;background:#0B1019}
.lab-stage.active{display:grid}
.lab-scene{position:relative;overflow:hidden;min-height:650px}
.lab-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lab-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,11,18,.08),rgba(8,11,18,.26));pointer-events:none}
.lab-hud{position:absolute;z-index:5;left:18px;top:18px;padding:12px 14px;background:rgba(8,11,18,.62);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);font-size:10px;color:#CAD2DE;min-width:180px}
.lab-hud strong{display:block;color:#fff;font-family:var(--serif);font-size:18px;margin-top:3px}
.lab-side{border-left:1px solid rgba(255,255,255,.12);padding:26px;display:flex;flex-direction:column}
.lab-side .eyebrow{margin-bottom:11px}
.lab-side h3{font-family:var(--serif);font-size:27px;line-height:1.08;margin:0 0 13px}
.lab-side p{font-size:12px;line-height:1.65;color:#8C97A8;margin:0}
.lab-inspector{margin-top:auto;border-top:1px solid rgba(255,255,255,.12)}
.inspector-row{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:10px}
.inspector-row span:first-child{color:#687487}.inspector-row span:last-child{color:#DCE2EB}

/* dwell hotspots */
.hotspot{--p:0deg;position:absolute;z-index:8;width:54px;height:54px;border-radius:50%;border:0;cursor:pointer;background:
radial-gradient(circle at center,rgba(8,11,18,.78) 0 56%,transparent 57%),
conic-gradient(var(--accent-2) var(--p),rgba(255,255,255,.2) 0deg);color:white;display:grid;place-items:center}
.hotspot::before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid rgba(255,255,255,.22)}
.hotspot span{font-size:9px;z-index:2}
.hotspot.h1{left:28%;top:67%}.hotspot.h2{left:54%;top:46%}.hotspot.h3{left:75%;top:63%}
.hotspot.selected{box-shadow:0 0 0 7px rgba(117,200,255,.1),0 0 28px rgba(117,200,255,.32)}
.scene-gaze{position:absolute;z-index:12;width:10px;height:10px;border-radius:50%;background:white;box-shadow:0 0 0 8px rgba(49,94,245,.14),0 0 28px rgba(117,200,255,.46);pointer-events:none;left:50%;top:50%;transform:translate(-50%,-50%)}

/* mindfulness scene */
.mind-scene::before{content:"";position:absolute;z-index:4;inset:0;background:radial-gradient(circle at 50% 49%,transparent 12%,rgba(6,8,14,var(--vignette,.08)) 65%);transition:background .35s}
.anchor-ring{position:absolute;z-index:8;left:50%;top:49%;width:90px;height:90px;border-radius:50%;border:1px solid rgba(117,200,255,.75);transform:translate(-50%,-50%) scale(.7);opacity:0;transition:.5s var(--ease)}
.mind-scene.cue .anchor-ring{opacity:1;transform:translate(-50%,-50%) scale(1)}
.drift-meter{position:absolute;z-index:9;right:18px;bottom:18px;width:190px;background:rgba(8,11,18,.62);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);padding:12px}
.drift-bar{height:3px;background:rgba(255,255,255,.12);margin-top:8px;overflow:hidden}
.drift-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .12s linear}

/* difficulty */
.diff-scene .overlay{position:absolute;z-index:6;inset:0;background:rgba(8,11,18,var(--shade,.02));pointer-events:none}
.diff-controls{position:absolute;z-index:9;left:18px;bottom:18px;right:18px;background:rgba(8,11,18,.7);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);padding:14px}
.diff-controls input{width:100%;accent-color:var(--accent)}
.diff-scale{display:flex;justify-content:space-between;font-size:9px;color:#8C97A8;margin-top:8px}

/* LISTS */
.editorial{padding:108px 0;border-bottom:1px solid var(--line);background:var(--surface)}
.pub-list{border-top:1px solid var(--ink)}
.pub-row{display:grid;grid-template-columns:52px 1fr 145px 28px;gap:22px;padding:21px 0;border-bottom:1px solid var(--line);align-items:start}
.pub-no{font-size:9px;color:var(--muted)}
.pub-title{font-family:var(--serif);font-size:17px;line-height:1.35;font-weight:600}
.pub-authors{font-size:11px;line-height:1.55;color:var(--muted);margin-top:5px}
.pub-extra{font-size:10px;color:var(--muted);margin-top:4px}
.pub-status span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:4px}
.pub-status strong{font-size:11px}
.pub-arrow{font-size:15px}
.filter-row{display:flex;gap:8px;margin-bottom:24px}
.filter-btn{border:1px solid var(--line);background:white;padding:8px 12px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.filter-btn.active{background:var(--ink);color:white;border-color:var(--ink)}
.additional-list{border-top:1px solid var(--ink)}
.additional-row{display:grid;grid-template-columns:62px 1fr 250px;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.additional-row .n{font-size:9px;color:var(--muted)}
.additional-row h3{font-family:var(--serif);font-size:19px;line-height:1.2;margin:0 0 6px}
.additional-row p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
.additional-meta{font-size:10px;line-height:1.55;color:var(--muted)}

/* PAGE HERO */
.page-hero{padding:150px 0 92px;background:var(--surface);border-bottom:1px solid var(--line)}
.page-hero-grid{display:grid;grid-template-columns:3fr 9fr;gap:32px}
.page-hero .display{max-width:780px}
.page-hero .lead{max-width:720px;margin:20px 0 0}
.page-hero.dark{background:var(--night);color:white}
.page-hero.dark .eyebrow{color:#7A8598}.page-hero.dark .lead{color:#9AA5B5}

/* RESEARCH PAGE */
.research-map{padding:105px 0;background:var(--surface)}
.map-diagram{margin-top:40px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.map-row{display:grid;grid-template-columns:2.2fr 4fr 5.8fr;gap:32px;padding:23px 0;border-bottom:1px solid var(--line)}
.map-row:last-child{border-bottom:0}
.map-row .label{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.map-row h3{font-family:var(--serif);font-size:20px;margin:0}
.map-row p{font-size:13px;line-height:1.65;color:var(--muted);margin:0}
.research-feature{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:center;padding:64px 0;border-top:1px solid var(--line)}
.research-feature .visual{height:430px;overflow:hidden;background:#E9EDF5}
.research-feature .visual img{width:100%;height:100%;object-fit:cover}
.research-feature .copy{padding-left:24px}
.research-feature h3{font-family:var(--serif);font-size:31px;line-height:1.05;margin:0 0 16px}
.research-feature p{font-size:13px;line-height:1.7;color:var(--muted)}

/* ABOUT PAGE */
.bio-grid{display:grid;grid-template-columns:5fr 7fr;gap:32px;align-items:start}
.bio-grid .portrait-wrap{position:sticky;top:96px}
.timeline{border-top:1px solid var(--ink)}
.timeline-row{display:grid;grid-template-columns:120px 1fr;gap:26px;padding:18px 0;border-bottom:1px solid var(--line)}
.timeline-row .year{font-size:10px;color:var(--muted)}
.timeline-row h3{font-family:var(--serif);font-size:19px;margin:0 0 5px}
.timeline-row p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;border-top:1px solid var(--ink)}
.skill{padding-top:17px}
.skill h3{font-family:var(--serif);font-size:19px;margin:0 0 8px}
.skill p{font-size:12px;line-height:1.65;color:var(--muted)}
.beyond{display:grid;grid-template-columns:3fr 9fr;gap:32px;padding-top:24px;border-top:1px solid var(--ink)}
.beyond h3{font-family:var(--serif);font-size:22px;margin:0}
.beyond p{font-size:13px;line-height:1.7;color:var(--muted);max-width:720px}

/* PROJECT INDEX */
.project-index-page .project-row:first-child{border-top:1px solid var(--ink)}

/* DETAIL HERO */
.detail-hero{min-height:82svh;background:var(--night);color:white;position:relative;display:grid;align-items:end;overflow:hidden}
.detail-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.63}
.detail-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,11,18,.15),rgba(8,11,18,.76))}
.detail-hero-content{position:relative;z-index:3;padding:150px 0 58px}
.detail-hero-grid{display:grid;grid-template-columns:3fr 9fr;gap:32px}
.detail-title{font-size:clamp(45px,5.4vw,72px);line-height:.95;letter-spacing:-.047em;margin:0;font-weight:600;max-width:820px}
.detail-sub{font-size:15px;line-height:1.62;color:#C0C8D4;max-width:780px;margin:18px 0 0}
.detail-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:24px;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#8F9AAC}
.detail-intro{padding:102px 0;background:var(--surface);border-bottom:1px solid var(--line)}
.detail-intro-grid{display:grid;grid-template-columns:3fr 9fr;gap:32px}
.detail-intro .section-title{max-width:760px}
.detail-intro .lead{max-width:760px;margin:20px 0 0}

/* SCROLLY */
.scrolly{display:grid;grid-template-columns:7fr 5fr;min-height:210vh;background:var(--surface);border-bottom:1px solid var(--line)}
.scrolly-media{position:sticky;top:68px;height:calc(100svh - 68px);overflow:hidden;background:#0B1019}
.scrolly-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.015);transition:opacity .55s,transform .9s var(--ease)}
.scrolly-media img.active{opacity:1;transform:scale(1)}
.scrolly-steps{padding:10vh 48px}
.scrolly-step{min-height:66vh;display:flex;flex-direction:column;justify-content:center;opacity:.32;transition:opacity .35s}
.scrolly-step.active{opacity:1}
.step-no{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-bottom:12px}
.scrolly-step h3{font-family:var(--serif);font-size:clamp(26px,2.6vw,36px);line-height:1.08;margin:0 0 14px}
.scrolly-step p{font-size:13px;line-height:1.72;color:var(--muted);max-width:500px}

/* DETAIL SECTIONS */
.detail-section{padding:102px 0;background:var(--surface);border-bottom:1px solid var(--line)}
.detail-section.alt{background:#F2F5FB}
.detail-grid{display:grid;grid-template-columns:3fr 9fr;gap:32px}
.detail-grid .section-title{max-width:760px}
.detail-grid .body-copy{max-width:800px}
.media-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}
.media-pair img{width:100%;aspect-ratio:16/10;object-fit:cover}
.media-wide{margin-top:28px}
.media-wide img{width:100%;aspect-ratio:16/7;object-fit:cover}
.data-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.data-strip>div{padding:16px;border-right:1px solid var(--line)}
.data-strip>div:last-child{border-right:0}
.data-strip small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:5px}
.data-strip strong{font-family:var(--serif);font-size:16px}
.findings{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.finding{border-top:1px solid var(--ink);padding-top:14px}
.finding h4{font-family:var(--serif);font-size:20px;line-height:1.12;margin:0 0 8px}
.finding p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
.output-line{display:grid;grid-template-columns:145px 1fr;gap:22px;padding-top:18px;border-top:1px solid var(--line);margin-top:28px;font-size:12px}
.output-line strong{font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.output-line span{color:var(--muted);line-height:1.6}

/* DETAIL INTERACTIONS */
.detail-lab{margin-top:32px;border:1px solid var(--line);background:var(--night);color:white;min-height:560px;display:grid;grid-template-columns:1fr 300px}
.detail-lab-scene{position:relative;overflow:hidden;min-height:560px}
.detail-lab-scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.detail-lab-side{padding:24px;border-left:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column}
.detail-lab-side h4{font-family:var(--serif);font-size:24px;line-height:1.1;margin:9px 0 12px}
.detail-lab-side p{font-size:12px;line-height:1.65;color:#8E99AA}
.detail-toggle{margin-top:auto}
.detail-toggle button{width:100%;text-align:left;padding:10px 0;border:0;border-top:1px solid rgba(255,255,255,.10);background:transparent;color:#AAB3C1;font-size:10px;cursor:pointer}
.detail-toggle button.active{color:white}
.toggle-content{font-size:11px;line-height:1.6;color:#8E99AA;padding-top:10px}

/* BLUEGREEN */
.env-switch{margin-top:30px;background:var(--night);border:1px solid var(--line);position:relative;min-height:620px;overflow:hidden}
.env-switch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s}
.env-switch img.active{opacity:1}
.env-overlay{position:absolute;z-index:4;inset:0;background:linear-gradient(90deg,rgba(8,11,18,.7),transparent 65%)}
.env-copy{position:absolute;z-index:5;left:28px;bottom:28px;max-width:430px;color:white}
.env-copy h3{font-family:var(--serif);font-size:31px;margin:0 0 8px}
.env-copy p{font-size:12px;line-height:1.6;color:#CBD2DC}
.env-tabs{position:absolute;z-index:6;right:20px;top:20px;display:flex;gap:7px}
.env-tab{border:1px solid rgba(255,255,255,.2);background:rgba(8,11,18,.42);backdrop-filter:blur(10px);color:#C7CFDB;padding:8px 11px;font-size:9px;text-transform:uppercase;letter-spacing:.11em;cursor:pointer}
.env-tab.active{background:white;color:var(--ink)}

/* AI PROCESS */
.process-shell{margin-top:28px;border-top:1px solid var(--ink);display:grid;grid-template-columns:280px 1fr;gap:32px}
.process-nav{padding-top:10px}
.process-step{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:16px 0;color:var(--muted);cursor:pointer}
.process-step span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}
.process-step strong{font-family:var(--serif);font-size:18px}
.process-step.active{color:var(--ink);padding-left:8px}
.process-view{min-height:520px;position:relative;background:#F2F4F8}
.process-view img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .45s}
.process-view img.active{opacity:1}

/* FOOTER */
.footer{padding:34px 0;background:var(--bg)}
.footer-grid{display:flex;justify-content:space-between;gap:30px}
.footer-name{font-family:var(--serif);font-size:20px}
.footer-links{display:flex;gap:18px;font-size:11px;color:var(--muted)}

/* ACCESSIBILITY / IMAGE VISIBILITY */
.project-media img,.portrait img,.research-feature img,.detail-hero img,.scrolly-media img,.media-pair img,.media-wide img,.lab-scene>img,.detail-lab-scene img,.env-switch img,.process-view img{visibility:visible!important}
.media-enter{opacity:.96;transform:translateY(8px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.media-enter.visible{opacity:1;transform:none}

@media(max-width:1000px){
  .home-grid,.about-grid,.project-row,.research-feature,.bio-grid,.lab-stage,.detail-lab{grid-template-columns:1fr}
  .signal-field{height:430px}
  .about-copy{padding-right:0}
  .portrait-wrap{position:static;max-width:520px}
  .section-head,.page-hero-grid,.detail-hero-grid,.detail-intro-grid,.detail-grid{grid-template-columns:1fr;gap:18px}
  .approach-row,.map-row{grid-template-columns:1fr;gap:10px}
  .project-copy{padding-left:0;max-width:720px}
  .project-media{height:52vh;min-height:360px}
  .lab-side,.detail-lab-side{border-left:0;border-top:1px solid rgba(255,255,255,.12)}
  .lab-stage{min-height:auto}.lab-scene{min-height:540px}
  .scrolly{grid-template-columns:1fr;min-height:auto}
  .scrolly-media{position:relative;top:0;height:56vh}
  .scrolly-steps{padding:54px 24px}
  .scrolly-step{min-height:auto;padding:34px 0;opacity:1}
  .skills-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .container,.site-nav .nav-inner{width:min(calc(100% - 32px),var(--max))}
  .nav-links{display:none;position:absolute;left:0;right:0;top:68px;background:rgba(247,248,250,.97);padding:18px 16px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line);color:var(--ink)!important}
  .nav-links.open{display:flex}.menu-btn{display:block}
  .home-hero{padding-top:100px}.display{font-size:41px}.section-title{font-size:30px}.lead{font-size:15px}
  .signal-field{min-height:320px;height:350px}.signal-node{font-size:8px}.signal-field::before{width:310px;height:310px}.signal-field::after{width:190px;height:190px}
  .section,.lab,.editorial,.detail-section,.detail-intro,.research-map{padding:76px 0}
  .profile-row{grid-template-columns:1fr;gap:5px}
  .project-row{padding:42px 0;min-height:auto}.project-media{height:40vh;min-height:280px}.project-title{font-size:33px}
  .lab-tabs{overflow:auto}.lab-stage.active{display:block}.lab-scene{min-height:420px}.lab-side{min-height:300px}
  .hotspot{width:46px;height:46px}
  .pub-row{grid-template-columns:38px 1fr}.pub-status{grid-column:2}.pub-arrow{display:none}
  .additional-row{grid-template-columns:38px 1fr}.additional-meta{grid-column:2}
  .data-strip{grid-template-columns:1fr 1fr}.data-strip>div:nth-child(2){border-right:0}.data-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .findings,.media-pair,.skills-grid{grid-template-columns:1fr}
  .detail-title{font-size:44px}
  .output-line,.beyond,.process-shell{grid-template-columns:1fr}
  .process-view{min-height:390px}
  .env-switch{min-height:500px}.env-tabs{left:16px;right:auto;top:16px}
  .footer-grid{flex-direction:column}.footer-links{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal,.media-enter{opacity:1!important;transform:none!important;transition:none!important}
}

.lab-stage.active{opacity:1!important;transform:none!important}


/* ==========================================================
   V15 — Kinetic HELLO artwork
   ========================================================== */

.hero-art{
  height:min(68vh,630px);
  min-height:460px;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.11);
  background:
    radial-gradient(circle at 72% 28%,rgba(49,94,245,.16),transparent 26%),
    linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.006));
  isolation:isolate;
}
.hero-art::before{
  content:"";
  position:absolute;
  inset:10% 8%;
  border:1px solid rgba(255,255,255,.055);
  border-radius:50%;
  transform:rotate(-8deg);
}
.hero-art::after{
  content:"";
  position:absolute;
  width:360px;height:360px;
  border:1px solid rgba(117,200,255,.08);
  border-radius:50%;
  right:-110px;bottom:-130px;
}
.hello-grid{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  perspective:900px;
  z-index:3;
}
.hello-word{
  position:relative;
  width:min(92%,560px);
  height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(2px,.5vw,8px);
}
.hello-letter{
  --tx:0px;
  --ty:0px;
  --rot:0deg;
  display:inline-block;
  font-family:var(--serif);
  font-size:clamp(76px,9vw,132px);
  line-height:.8;
  font-weight:600;
  letter-spacing:-.055em;
  color:#F5F7FA;
  text-shadow:0 0 34px rgba(117,200,255,.03);
  transform:translate3d(var(--tx),var(--ty),0) rotate(var(--rot));
  transition:transform .22s ease-out,color .35s ease,text-shadow .35s ease;
  will-change:transform;
  opacity:0;
  animation:helloEnter 1s var(--ease) forwards;
}
.hello-letter:nth-child(1){animation-delay:.08s}
.hello-letter:nth-child(2){animation-delay:.16s}
.hello-letter:nth-child(3){animation-delay:.24s}
.hello-letter:nth-child(4){animation-delay:.32s}
.hello-letter:nth-child(5){animation-delay:.40s}

@keyframes helloEnter{
  0%{opacity:0;transform:translate3d(var(--tx),42px,0) rotate(-4deg)}
  100%{opacity:1;transform:translate3d(var(--tx),var(--ty),0) rotate(var(--rot))}
}

.hello-outline{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  font-family:var(--serif);
  font-size:clamp(84px,10vw,144px);
  font-weight:600;
  letter-spacing:-.065em;
  color:transparent;
  -webkit-text-stroke:1px rgba(117,200,255,.12);
  white-space:nowrap;
  z-index:-1;
  opacity:.72;
}
.hello-scan{
  position:absolute;
  left:-30%;
  top:0;bottom:0;
  width:26%;
  background:linear-gradient(90deg,transparent,rgba(117,200,255,.08),rgba(255,255,255,.09),transparent);
  transform:skewX(-14deg);
  filter:blur(4px);
  animation:helloScan 4.8s 1.1s var(--ease) infinite;
  pointer-events:none;
  z-index:5;
}
@keyframes helloScan{
  0%,15%{left:-30%;opacity:0}
  28%{opacity:1}
  60%{left:110%;opacity:.8}
  75%,100%{left:110%;opacity:0}
}
.hello-orbit{
  position:absolute;
  left:50%;top:50%;
  width:min(72%,470px);
  aspect-ratio:1.8/1;
  border:1px solid rgba(117,200,255,.14);
  border-radius:50%;
  transform:translate(-50%,-50%) rotate(-12deg);
  z-index:1;
}
.hello-orbit::before{
  content:"";
  position:absolute;
  width:8px;height:8px;border-radius:50%;
  background:var(--accent-2);
  box-shadow:0 0 22px rgba(117,200,255,.65);
  left:7%;top:50%;
  transform:translate(-50%,-50%);
  animation:orbitDot 6.4s linear infinite;
}
@keyframes orbitDot{
  0%{left:7%;top:50%}
  25%{left:50%;top:1%}
  50%{left:93%;top:50%}
  75%{left:50%;top:99%}
  100%{left:7%;top:50%}
}
.hello-meta{
  position:absolute;
  left:18px;right:18px;bottom:16px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#667286;
  font-size:9px;
  letter-spacing:.13em;
  text-transform:uppercase;
  z-index:7;
}
.hello-cursor{
  position:absolute;
  width:12px;height:12px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 8px rgba(49,94,245,.12),0 0 28px rgba(117,200,255,.45);
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
  z-index:8;
  transition:left .09s linear,top .09s linear;
}
.hello-cursor::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:46px;height:46px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(117,200,255,.15);
  border-radius:50%;
}
.hero-email-line{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:30px;
  font-size:11px;
  color:#BFC8D4;
}
.hero-email-line a{
  padding-bottom:4px;
  border-bottom:1px solid rgba(255,255,255,.25);
}
.hero-email-line a:hover{color:#fff}
.contact-direct{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
}
.contact-direct a{
  font-size:11px;
  color:var(--muted);
}
.contact-direct a:hover{color:var(--accent)}
.footer-links{
  align-items:flex-start;
}
.footer-links a{
  overflow-wrap:anywhere;
}

/* slightly calmer opening typography */
.home-copy .display{
  font-size:clamp(42px,4.6vw,60px);
  max-width:640px;
}
.home-copy .lead{
  font-size:16px;
}

/* graduate status emphasis */
.grad-note{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:18px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#8A94A4;
}
.grad-note::before{
  content:"";
  width:6px;height:6px;
  border-radius:50%;
  background:var(--accent-2);
}

/* responsive */
@media(max-width:1000px){
  .hero-art{height:480px;min-height:420px}
}
@media(max-width:680px){
  .hero-art{height:390px;min-height:350px}
  .hello-word{height:210px}
  .hello-letter{font-size:72px}
  .hello-outline{font-size:78px}
  .hero-email-line{gap:10px;flex-direction:column}
  .hello-meta{font-size:8px}
}
@media(prefers-reduced-motion:reduce){
  .hello-letter,.hello-scan,.hello-orbit::before{animation:none!important;opacity:1!important}
}


/* ==========================================================
   V16 — Brand unification across all pages
   Matches the dark kinetic Home visual language.
   ========================================================== */

:root{
  --brand-night:#090C13;
  --brand-panel:#0D1220;
  --brand-line:rgba(255,255,255,.11);
  --brand-blue:#315EF5;
  --brand-cyan:#75C8FF;
  --brand-white:#F6F8FB;
  --brand-ice:#DCE5F2;
}

/* Top-level page hero: same visual DNA as Home */
.brand-hero{
  min-height:72svh;
  background:var(--brand-night);
  color:var(--brand-white);
  padding:124px 0 64px;
  position:relative;
  overflow:hidden;
  display:grid;
  align-items:center;
}
.brand-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 78% 34%,rgba(49,94,245,.18),transparent 27%),
    radial-gradient(circle at 86% 70%,rgba(117,200,255,.07),transparent 24%);
}
.brand-hero-grid{
  display:grid;
  grid-template-columns:7fr 5fr;
  gap:32px;
  align-items:center;
  position:relative;
  z-index:2;
}
.brand-hero-copy .eyebrow{color:#7F8A9E;margin-bottom:20px}
.brand-hero-copy .display{
  color:white;
  max-width:690px;
  font-size:clamp(42px,4.7vw,62px);
}
.brand-hero-copy .lead{
  color:#BAC4D2;
  max-width:670px;
  margin:22px 0 0;
  font-size:16px;
}
.brand-hero-copy .body-copy{
  color:#7F8A9D;
  max-width:650px;
  margin:14px 0 0;
}
.brand-hero-meta{
  margin-top:25px;
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.13em;
  color:#7C8799;
}
.brand-hero-meta span{
  display:flex;
  align-items:center;
  gap:7px;
}
.brand-hero-meta span::before{
  content:"";
  width:5px;height:5px;border-radius:50%;
  background:var(--brand-cyan);
  box-shadow:0 0 14px rgba(117,200,255,.38);
}

.brand-art{
  height:min(57vh,520px);
  min-height:380px;
  border:1px solid var(--brand-line);
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.007)),
    radial-gradient(circle at 45% 48%,rgba(49,94,245,.13),transparent 29%);
  perspective:900px;
}
.brand-art::before,
.brand-art::after{
  content:"";
  position:absolute;
  border:1px solid rgba(117,200,255,.09);
  border-radius:50%;
}
.brand-art::before{
  width:72%;aspect-ratio:1;left:50%;top:50%;
  transform:translate(-50%,-50%);
}
.brand-art::after{
  width:42%;aspect-ratio:1;right:-10%;bottom:-9%;
}
.brand-word-wrap{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  z-index:3;
}
.brand-word{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  white-space:nowrap;
  max-width:94%;
}
.brand-letter{
  --bx:0px;--by:0px;--br:0deg;
  display:inline-block;
  font-family:var(--serif);
  font-size:clamp(58px,7vw,104px);
  font-weight:600;
  line-height:.8;
  letter-spacing:-.06em;
  color:#F5F7FA;
  transform:translate3d(var(--bx),var(--by),0) rotate(var(--br));
  transition:transform .2s ease-out,color .3s ease;
  will-change:transform;
}
.brand-word-outline{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  font-family:var(--serif);
  font-size:clamp(62px,7.5vw,112px);
  font-weight:600;
  letter-spacing:-.065em;
  color:transparent;
  -webkit-text-stroke:1px rgba(117,200,255,.11);
  white-space:nowrap;
  pointer-events:none;
}
.brand-art .scan{
  position:absolute;
  top:0;bottom:0;left:-30%;
  width:24%;
  background:linear-gradient(90deg,transparent,rgba(117,200,255,.08),rgba(255,255,255,.06),transparent);
  transform:skewX(-14deg);
  filter:blur(3px);
  animation:brandScan 5.4s 1s var(--ease) infinite;
  z-index:5;
  pointer-events:none;
}
@keyframes brandScan{
  0%,18%{left:-30%;opacity:0}
  32%{opacity:1}
  62%{left:110%;opacity:.8}
  78%,100%{left:110%;opacity:0}
}
.brand-art .orbit{
  position:absolute;
  left:50%;top:50%;
  width:72%;height:44%;
  border:1px solid rgba(117,200,255,.12);
  border-radius:50%;
  transform:translate(-50%,-50%) rotate(-11deg);
  z-index:1;
}
.brand-art .orbit::after{
  content:"";
  position:absolute;
  width:7px;height:7px;border-radius:50%;
  background:var(--brand-cyan);
  box-shadow:0 0 18px rgba(117,200,255,.6);
  left:8%;top:50%;
  animation:brandOrbit 6.8s linear infinite;
}
@keyframes brandOrbit{
  0%{left:8%;top:50%}
  25%{left:50%;top:0}
  50%{left:92%;top:50%}
  75%{left:50%;top:100%}
  100%{left:8%;top:50%}
}
.brand-cursor{
  position:absolute;
  width:10px;height:10px;border-radius:50%;
  background:#fff;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 8px rgba(49,94,245,.12),0 0 26px rgba(117,200,255,.42);
  pointer-events:none;
  z-index:7;
  transition:left .09s linear,top .09s linear;
}
.brand-art-meta{
  position:absolute;
  left:16px;right:16px;bottom:14px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  z-index:8;
  color:#667286;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.13em;
}

/* Consistent section rhythm across the site */
.section-head{
  position:relative;
}
.section-head::before{
  content:"";
  position:absolute;
  left:0;
  top:-22px;
  width:32px;
  height:2px;
  background:linear-gradient(90deg,var(--brand-blue),var(--brand-cyan));
}
.section-head .eyebrow{color:#6C7482}
.editorial,.section,.research-map{
  position:relative;
}
.editorial::after,.section::after,.research-map::after{
  content:"";
  position:absolute;
  right:0;top:0;
  width:1px;height:100%;
  background:linear-gradient(180deg,transparent,rgba(49,94,245,.08),transparent);
  pointer-events:none;
}

/* Dark footer to close every page in the same visual language */
.footer{
  background:var(--brand-night)!important;
  color:#E9EDF3;
  border-top:1px solid rgba(255,255,255,.08);
  padding:38px 0;
}
.footer .small,.footer-links{color:#7E899A}
.footer-links a:hover{color:#fff}

/* Research page visuals */
.research-feature{
  position:relative;
  transition:background .35s ease;
}
.research-feature:hover{
  background:#F8FAFD;
}
.research-feature .visual{
  position:relative;
}
.research-feature .visual::after{
  content:"";
  position:absolute;
  inset:0;
  box-shadow:inset 0 0 0 1px rgba(10,13,20,.06);
  pointer-events:none;
}
.research-feature .copy .eyebrow{
  color:var(--brand-blue);
}

/* Projects page cohesion */
.project-index-page .work{
  background:#F4F6FA;
}
.project-index-page .project-row{
  position:relative;
}
.project-index-page .project-row::before{
  content:"";
  position:absolute;
  left:0;top:0;
  width:44px;height:2px;
  background:linear-gradient(90deg,var(--brand-blue),transparent);
}

/* Publications */
.filter-btn{
  transition:background .25s,color .25s,border .25s,transform .25s;
}
.filter-btn:hover{transform:translateY(-1px)}
.filter-btn.active{
  background:var(--brand-night);
  border-color:var(--brand-night);
}

/* About page */
.about-brand-band{
  background:var(--brand-night);
  color:white;
  padding:80px 0;
}
.about-brand-band .section-title{color:white}
.about-brand-band .body-copy{color:#8E98A8}
.about-brand-band .skills-grid{border-top-color:rgba(255,255,255,.18)}
.about-brand-band .skill{border-top:0}
.about-brand-band .skill h3{color:#F3F5F8}
.about-brand-band .skill p{color:#8D98A8}
.about-brand-band .section-head::before{background:linear-gradient(90deg,var(--brand-cyan),var(--brand-blue))}

/* Detail heroes: more like Home */
.detail-hero{
  min-height:78svh;
  background:var(--brand-night);
}
.detail-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 78% 35%,rgba(49,94,245,.15),transparent 28%),
    linear-gradient(90deg,rgba(8,11,18,.12),transparent 46%);
  pointer-events:none;
}
.detail-hero::after{
  background:linear-gradient(180deg,rgba(8,11,18,.18),rgba(8,11,18,.84));
  z-index:2;
}
.detail-hero-content{z-index:3}
.detail-hero .eyebrow{color:#8290A5}
.detail-title{
  text-shadow:0 8px 34px rgba(0,0,0,.18);
}
.detail-meta span{
  display:flex;
  align-items:center;
  gap:7px;
}
.detail-meta span::before{
  content:"";
  width:4px;height:4px;border-radius:50%;
  background:var(--brand-cyan);
}

/* dark chapter strips inside detail pages */
.chapter-band{
  background:var(--brand-night);
  color:white;
  padding:62px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.chapter-band-grid{
  display:grid;
  grid-template-columns:3fr 9fr;
  gap:32px;
}
.chapter-band .eyebrow{color:#748095}
.chapter-band h3{
  font-family:var(--serif);
  font-size:clamp(27px,3vw,39px);
  line-height:1.08;
  margin:0;
  max-width:720px;
}
.chapter-band p{
  font-size:13px;
  line-height:1.7;
  color:#8D98A8;
  max-width:720px;
  margin:14px 0 0;
}

/* Scrolly right text gets a blue active cue */
.scrolly-step{
  position:relative;
}
.scrolly-step::before{
  content:"";
  position:absolute;
  left:-20px;
  top:50%;
  width:2px;
  height:0;
  background:linear-gradient(180deg,var(--brand-blue),var(--brand-cyan));
  transform:translateY(-50%);
  transition:height .35s var(--ease);
}
.scrolly-step.active::before{height:44px}

/* Better cohesion for interactive blocks */
.detail-lab,.lab-stage{
  box-shadow:0 24px 80px rgba(5,9,18,.16);
}
.lab-tab.active{
  box-shadow:0 0 0 1px rgba(117,200,255,.08),0 6px 24px rgba(49,94,245,.12);
}

/* content micro-accent */
.output-line strong,.data-strip small,.finding h4{
  color:#26344D;
}

/* page-specific art color variations */
.brand-art[data-tone="research"]{
  background:
    linear-gradient(145deg,rgba(255,255,255,.022),rgba(255,255,255,.006)),
    radial-gradient(circle at 48% 50%,rgba(49,94,245,.14),transparent 31%);
}
.brand-art[data-tone="projects"]{
  background:
    linear-gradient(145deg,rgba(255,255,255,.022),rgba(255,255,255,.006)),
    radial-gradient(circle at 62% 38%,rgba(117,200,255,.12),transparent 30%);
}
.brand-art[data-tone="publications"]{
  background:
    linear-gradient(145deg,rgba(255,255,255,.022),rgba(255,255,255,.006)),
    radial-gradient(circle at 38% 62%,rgba(49,94,245,.13),transparent 31%);
}
.brand-art[data-tone="about"]{
  background:
    linear-gradient(145deg,rgba(255,255,255,.022),rgba(255,255,255,.006)),
    radial-gradient(circle at 55% 45%,rgba(117,200,255,.11),transparent 31%);
}

@media(max-width:1000px){
  .brand-hero-grid{grid-template-columns:1fr}
  .brand-art{height:420px}
  .chapter-band-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .brand-hero{padding-top:100px}
  .brand-art{min-height:330px;height:350px}
  .brand-letter{font-size:54px}
  .brand-word-outline{font-size:58px}
  .brand-art-meta{font-size:7px}
  .chapter-band{padding:46px 0}
}
