@font-face{font-family:"Space Grotesk";src:url("/assets/fonts/space-grotesk-latin.woff2") format("woff2");font-style:normal;font-weight:400 700;font-display:swap;font-stretch:normal}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-400-latin.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-500-latin.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}

:root{--paper:#f4f1e9;--surface:#fbfaf6;--ink:#1d1d1a;--muted:#5f5d56;--line:#d8d3c8;--accent:#984c16;--dark:#20201d;--radius:10px;--max:1240px;--pad:clamp(20px,4vw,64px);--shadow:0 18px 50px rgb(29 29 26/.08)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Space Grotesk",Arial,sans-serif;font-size:16px;line-height:1.55;overflow-x:hidden;isolation:isolate}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
button,a{touch-action:manipulation}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.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}
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:10px 14px;background:var(--ink);color:var(--surface);transform:translateY(-150%)}
.skip-link:focus{transform:none}

.ambient-scene{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:var(--scene-opacity,.42);contain:strict}
body>.site-header,body>main,body>.contact-band,body>.site-footer{position:relative;z-index:1}
.home{--scene-opacity:.9;background:#171815}
.research-page{--scene-opacity:.72}
.conferences-page{--scene-opacity:.78}
.projects-page{--scene-opacity:.88}
.experience-page{--paper:#dfe8d7;--surface:#edf3e7;--ink:#182116;--muted:#56624f;--line:#b9c9ae;--accent:#416b35;--dark:#132011;--scene-opacity:.74}
.experience-page .site-header{background:rgb(223 232 215/.9)}
.experience-page .education-section{background:rgb(246 248 241/.9)}
.music-page{--scene-opacity:.88}
.certifications-page{--scene-opacity:.68}
.journey-page{--paper:#eae3d7;--surface:#f5f0e7;--accent:#75462f;--scene-opacity:.76}
.journey-page .site-header{background:rgb(241 238 231/.92)}
.contact-page{--scene-opacity:.76}
.home .hero::before,.inner-page .page-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(115deg,rgb(244 241 233/.86),rgb(244 241 233/.28) 52%,transparent 78%)}
.projects-page .page-hero::before,.music-page .page-hero::before{background:linear-gradient(115deg,rgb(13 17 13/.9),rgb(13 17 13/.32) 56%,transparent 82%)}
.experience-page .page-hero::before{background:linear-gradient(115deg,rgb(237 241 231/.88),rgb(237 241 231/.24) 58%,transparent 82%)}
.journey-page .page-hero::before{background:linear-gradient(115deg,rgb(241 238 231/.88),rgb(241 238 231/.24) 58%,transparent 82%)}
.home .hero-portrait picture{box-shadow:0 30px 80px rgb(29 29 26/.12),0 0 0 1px rgb(152 76 22/.12)}
.home .hero-portrait::before,.home .hero-portrait::after{content:"";position:absolute;z-index:2;width:42px;height:42px;pointer-events:none}
.home .hero-portrait::before{left:-12px;top:-12px;border-left:1px solid var(--accent);border-top:1px solid var(--accent)}
.home .hero-portrait::after{right:-12px;bottom:-12px;border-right:1px solid var(--accent);border-bottom:1px solid var(--accent)}

/* Immersive scene direction — the canvas is the visual stage, not decoration. */
.home .site-header{background:rgb(23 24 21/.84);color:#f4f1e9;border-color:rgb(244 241 233/.12)}
.home .brand-mark{background:#f4f1e9;color:#171815}.home .brand small{color:#aaa79f}.home .menu-toggle span:not(.sr-only){background:#f4f1e9}.home .nav-contact{border-color:#f4f1e9}
.home .hero{max-width:none;min-height:calc(100svh - 80px);padding-left:max(var(--pad),calc((100vw - 1440px)/2 + var(--pad)));padding-right:max(var(--pad),calc((100vw - 1440px)/2 + var(--pad)));color:#f4f1e9;overflow:hidden;background:linear-gradient(90deg,rgb(23 24 21/.96) 0%,rgb(23 24 21/.82) 43%,rgb(23 24 21/.28) 72%,rgb(23 24 21/.68) 100%)}
.home .hero::before{background:radial-gradient(circle at 77% 23%,rgb(228 167 121/.2),transparent 25%),linear-gradient(125deg,transparent 56%,rgb(244 241 233/.05) 56.2%,transparent 56.5%)}
.home .hero-copy{position:relative;z-index:3;max-width:760px}.home .hero h1{font-size:clamp(78px,11vw,168px);text-shadow:0 8px 40px rgb(0 0 0/.22)}.home .hero h1 span{color:#e4a779}.home .hero-alias,.home .hero-intro{color:#d3cec3}.home .hero-alias strong,.home .hero-intro strong{color:#f4f1e9}.home .button-dark{background:#f4f1e9;color:#171815}.home .text-link{color:#f4f1e9}.home .eyebrow{color:#e4a779}
.home .hero-portrait{position:absolute;z-index:1;right:max(0px,calc((100vw - 1540px)/2));top:0;width:min(58vw,820px);height:100%;margin:0;opacity:.78}.home .hero-portrait picture{height:100%;border-radius:0;background:transparent;box-shadow:none;mask-image:linear-gradient(90deg,transparent 0%,#000 28%,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 28%,#000 100%)}.home .hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.08) brightness(.72)}.home .portrait-note{right:30px;bottom:42px;background:rgb(23 24 21/.78);color:#f4f1e9;border:1px solid rgb(244 241 233/.16);box-shadow:none;backdrop-filter:blur(12px)}.home .portrait-note span{color:#e4a779}.home .hero-portrait::before,.home .hero-portrait::after{display:none}.home .hero-index{position:relative;z-index:3;border-color:rgb(244 241 233/.18)}.home .hero-index p{color:#aaa79f}.home .hero-index strong{color:#f4f1e9}.home .hero-index p::before{background:#e4a779}

.inner-page .page-hero{position:relative;min-height:clamp(560px,72svh,820px);display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:rgb(244 241 233/.42)}
.inner-page .page-hero::before{background:linear-gradient(100deg,rgb(244 241 233/.94) 0%,rgb(244 241 233/.66) 43%,rgb(244 241 233/.08) 76%,transparent 100%)}
.inner-page .page-hero::after{content:"";position:absolute;z-index:-1;inset:24px;border:1px solid rgb(152 76 22/.18);border-radius:var(--radius);pointer-events:none}
.inner-page .page-hero-grid,.inner-page .breadcrumbs{position:relative;z-index:2}.inner-page .page-hero-grid{align-items:center}.inner-page .page-hero h1{text-shadow:0 10px 45px rgb(29 29 26/.08)}
.research-page .page-hero{background:rgb(244 241 233/.2)}
.projects-page .page-hero,.music-page .page-hero{background:rgb(13 17 13/.28)}
.projects-page .page-hero::before,.music-page .page-hero::before{background:linear-gradient(100deg,rgb(13 17 13/.96),rgb(13 17 13/.66) 48%,rgb(13 17 13/.05) 82%,transparent)}
.projects-page .page-hero::after{border-color:rgb(143 211 107/.22)}.music-page .page-hero::after{border-color:rgb(228 167 121/.22)}
.experience-page .page-hero{background:rgb(223 232 215/.18)}.experience-page .page-hero::before{background:linear-gradient(100deg,rgb(223 232 215/.94),rgb(223 232 215/.58) 46%,rgb(223 232 215/.06) 82%,transparent)}.experience-page .page-hero::after{border-color:rgb(65 107 53/.24)}
.journey-page .page-hero{background:rgb(234 227 215/.18)}.journey-page .page-hero::before{background:linear-gradient(100deg,rgb(234 227 215/.94),rgb(234 227 215/.58) 46%,rgb(234 227 215/.06) 82%,transparent)}
.contact-page .contact-main,.conferences-page .record-section,.certifications-page .credentials-section,.journey-page .timeline-section{background:linear-gradient(180deg,rgb(244 241 233/.58),rgb(244 241 233/.92))}
.experience-page .journey-list-section,.experience-page .civic-section{background:linear-gradient(180deg,rgb(223 232 215/.52),rgb(223 232 215/.9))}
.music-page .music-editorial,.music-page .platform-section,.music-page .credits-section{background:linear-gradient(180deg,rgb(32 32 29/.48),rgb(32 32 29/.9))}

.site-header{height:80px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;background:rgb(244 241 233/.94);border-bottom:1px solid transparent;backdrop-filter:blur(14px);transition:border-color .25s ease}
.site-header.is-scrolled{border-color:var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;line-height:1.1}
.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--paper);font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.08em}
.brand strong{display:block;font-size:14px}.brand small{display:block;margin-top:5px;color:var(--muted);font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}
.site-nav{display:flex;align-items:center;gap:clamp(16px,2.5vw,34px)}
.site-nav a{font:500 11px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;position:relative}
.site-nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.site-nav a:hover::after{transform:scaleX(1)}
.nav-secondary{display:block}.nav-contact{padding:11px 16px;border:1px solid var(--ink);border-radius:999px;transition:background .2s,color .2s}.nav-contact:hover{background:var(--ink);color:var(--surface)}
.arrow-up-right{--arrow-stroke:max(1px,.075em);display:inline-block;position:relative;width:max(.78em,11px);height:max(.78em,11px);flex:0 0 auto;vertical-align:-.04em;color:currentColor}
.arrow-up-right::before{content:"";position:absolute;top:0;right:0;width:68%;height:68%;border-top:var(--arrow-stroke) solid currentColor;border-right:var(--arrow-stroke) solid currentColor}
.arrow-up-right::after{content:"";position:absolute;left:6%;top:49%;width:104%;height:var(--arrow-stroke);background:currentColor;transform:rotate(-45deg);transform-origin:center}
.latest-list li>a .arrow-up-right,.round-link .arrow-up-right,.platform-list i .arrow-up-right{--arrow-stroke:1.5px;width:16px;height:16px}
.menu-toggle{display:none;border:0;background:transparent;width:44px;height:44px;padding:12px}.menu-toggle span:not(.sr-only){display:block;height:1px;background:var(--ink);margin:6px 0}

.eyebrow{margin:0 0 20px;color:var(--accent);font:500 11px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.1em}.eyebrow::before{content:"";display:inline-block;width:8px;height:8px;margin-right:9px;border-radius:50%;background:currentColor}.eyebrow-light{color:#e4a779}
.hero{min-height:calc(100svh - 80px);padding:clamp(48px,7vw,96px) var(--pad) 44px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);grid-template-rows:1fr auto;gap:48px clamp(40px,7vw,110px);position:relative;max-width:1440px;margin:auto}
.hero-copy{align-self:center}.hero h1{font-size:clamp(70px,10.2vw,154px);line-height:.79;letter-spacing:-.085em;margin:0;font-weight:500}.hero h1 span{color:var(--accent)}
.hero-alias{margin:26px 0;color:var(--muted);font:400 12px/1.4 "IBM Plex Mono",monospace}.hero-alias strong{color:var(--ink);font-weight:500}
.hero-intro{max-width:690px;margin:0;font-size:clamp(17px,1.7vw,23px);line-height:1.5;letter-spacing:-.02em}.hero-intro strong{font-weight:600}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:36px;flex-wrap:wrap}.button{display:inline-flex;gap:16px;align-items:center;justify-content:center;padding:15px 20px;border-radius:999px;text-decoration:none;font:500 11px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.04em;transition:transform .22s ease,background .22s ease}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:var(--surface)}.text-link{font:500 11px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.04em}
.hero-portrait{align-self:center;position:relative}.hero-portrait picture{display:block;overflow:hidden;border-radius:var(--radius);background:#d8d4cb}.hero-portrait img{aspect-ratio:1;object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .4s ease,transform .5s ease}.hero-portrait:hover img{filter:grayscale(.2);transform:scale(1.015)}
.portrait-note{position:absolute;right:-18px;bottom:28px;width:190px;padding:17px 18px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.portrait-note span,.portrait-note strong{display:block}.portrait-note span{color:var(--accent);font:500 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}.portrait-note strong{margin-top:7px;font-size:13px}
.hero-index{grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.hero-index>span{display:none}.hero-index p{margin:0;color:var(--muted);font:400 10px/1.6 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}.hero-index p::before{content:"";display:inline-block;width:24px;height:1px;background:var(--accent);margin:0 10px 3px 0}.hero-index strong{color:var(--ink);font-weight:500}

.ticker{overflow:hidden;background:var(--ink);color:var(--surface);padding:16px 0;border-top:3px solid var(--accent)}.ticker-track{display:flex;align-items:center;gap:28px;min-width:max-content;font:400 10px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;animation:ticker 38s linear infinite}.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}.ticker i{width:5px;height:5px;border-radius:50%;background:#e4a779;flex:0 0 auto}
.section-shell{max-width:1440px;margin:auto;padding:clamp(88px,11vw,160px) var(--pad)}
.section-heading{display:grid;grid-template-columns:minmax(260px,.7fr) 1.4fr .8fr;gap:32px;align-items:start;margin-bottom:64px}.section-heading .eyebrow{grid-column:1}.section-heading h2{grid-column:2;margin:0;font-size:clamp(42px,5.8vw,80px);line-height:.98;letter-spacing:-.055em;font-weight:500}.section-heading>p:last-child{grid-column:3;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.section-heading.compact{grid-template-columns:.65fr 1.35fr}.section-heading.compact h2{font-size:clamp(42px,5vw,72px)}
.overview{background:var(--surface);max-width:none}.overview>*{max-width:1312px;margin-left:auto;margin-right:auto}
.feature-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.feature{padding:clamp(26px,4vw,52px);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;min-height:500px}.feature-count{font:500 10px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:auto}.feature h3{font-size:clamp(28px,3vw,46px);line-height:1.05;letter-spacing:-.045em;margin:52px 0 18px;font-weight:500;max-width:680px}.feature p{color:var(--muted);max-width:600px;margin:0 0 28px}.card-link{margin-top:auto;padding-top:28px;border-top:1px solid currentColor;display:flex;justify-content:space-between;gap:16px;text-decoration:none;font:500 10px/1.35 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em}.feature-research{background:var(--paper)}
.lrpt-visual{margin:48px 0}.lrpt-visual a{display:block;padding:12px;background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.lrpt-visual img{width:100%;height:auto}.lrpt-visual figcaption{margin-top:12px;color:var(--muted);font:400 9px/1.5 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.03em}.lrpt-visual-home{margin:22px 0 30px}.lrpt-visual-home a{padding:8px}.lrpt-visual-home figcaption{margin-top:9px}
.feature-practice{background:var(--accent);color:#fff6ee;border-color:var(--accent)}.feature-practice .feature-count{color:#f0c9ae}.date-list{list-style:none;padding:0;margin:28px 0 40px}.date-list li{display:grid;grid-template-columns:86px 1fr;gap:18px;padding:16px 0;border-top:1px solid rgb(255 246 238/.35);font-size:13px}.date-list time{font:400 9px/1.5 "IBM Plex Mono",monospace;text-transform:uppercase}.feature-music{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,.45fr) 1fr;grid-template-rows:auto 1fr auto;column-gap:clamp(36px,7vw,100px);min-height:auto;background:var(--ink);color:var(--surface)}.feature-music .feature-count{grid-column:1/-1;margin:0;color:#aaa79f}.music-visual{grid-column:1;grid-row:2/4;align-self:end;margin-top:32px;max-width:340px}.music-visual img{width:100%;border-radius:var(--radius)}.feature-music h3{grid-column:2;margin-top:56px}.feature-music p{grid-column:2;color:#bdb9b1}.feature-music .card-link{grid-column:2;color:var(--surface)}
.latest-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.latest-list li{display:grid;grid-template-columns:160px 1fr 54px;gap:24px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.latest-list time,.latest-list span{color:var(--muted);font:400 10px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em}.latest-list h3{font-size:clamp(21px,2.2vw,32px);line-height:1.2;letter-spacing:-.03em;font-weight:500;margin:5px 0 0}.latest-list li>a{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;text-decoration:none;transition:background .2s,color .2s,border-color .2s}.latest-list li>a:hover{background:var(--accent);border-color:var(--accent);color:white}
.contact-band{background:var(--dark);color:#f4f1e9;padding:clamp(72px,10vw,140px) var(--pad);border-radius:var(--radius) var(--radius) 0 0}.contact-band h2{max-width:1000px;font-size:clamp(44px,7vw,104px);line-height:.94;letter-spacing:-.06em;font-weight:500;margin:0 0 72px}.email-link{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;border-top:1px solid #55534d;border-bottom:1px solid #55534d;color:#e4a779;text-decoration:none;font-size:clamp(24px,5vw,74px);line-height:1;letter-spacing:-.05em;overflow-wrap:anywhere}
.site-footer{padding:48px var(--pad) 28px;background:var(--dark);color:#aaa79f;display:grid;grid-template-columns:1.4fr .7fr .7fr;gap:48px}.site-footer p{max-width:390px;margin:12px 0 0;font-size:13px}.site-footer a{display:block;color:#d8d5ce;text-decoration:none;margin:8px 0;font-size:13px}.site-footer .footer-name{font-size:20px;color:#f4f1e9}.site-footer .footer-label{font:500 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:#aaa79f}.footer-meta{grid-column:1/-1;margin-top:28px;padding-top:22px;border-top:1px solid #3b3a36;display:flex;justify-content:space-between;gap:24px;font:400 9px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em}
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .35s ease,transform .35s ease}.reveal-delay-1{transition-delay:.06s}.reveal-delay-2{transition-delay:.12s}.js .reveal.is-visible{opacity:1;transform:none}

@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}
.inner-page .contact-band{margin-top:40px}.breadcrumbs{display:flex;gap:10px;color:var(--muted);font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;margin-bottom:clamp(52px,8vw,100px)}.breadcrumbs a{text-decoration:none}.page-hero{padding-top:52px;padding-bottom:clamp(80px,10vw,150px);border-bottom:1px solid var(--line)}.page-hero-grid{display:grid;grid-template-columns:.25fr 1.15fr .65fr;gap:clamp(24px,5vw,72px);align-items:start}.page-index{margin:4px 0 0;color:var(--accent);font:500 11px/1 "IBM Plex Mono",monospace}.page-hero h1{font-size:clamp(56px,8vw,120px);line-height:.9;letter-spacing:-.07em;font-weight:500;margin:0}.page-intro{font-size:clamp(17px,1.8vw,23px);line-height:1.55;letter-spacing:-.02em;margin:44px 0 0;color:var(--muted)}
.record-intro{display:grid;grid-template-columns:minmax(150px,.45fr) minmax(0,1.5fr) minmax(190px,.55fr);gap:32px;margin-bottom:64px}.record-intro h2{margin:0;font-size:clamp(42px,5vw,72px);font-weight:500;letter-spacing:-.05em;line-height:1;overflow-wrap:normal;word-break:normal;hyphens:none}.record-intro>p:last-child{color:var(--muted);margin:0;line-height:1.7;font-size:14px}
.paper-feature{padding-top:clamp(88px,10vw,144px);padding-bottom:clamp(88px,10vw,144px)}.paper-secondary{background:var(--surface);max-width:none}.paper-secondary>*{max-width:1312px;margin-left:auto;margin-right:auto}.paper-header{display:grid;grid-template-columns:.45fr 1.55fr;gap:48px;padding-bottom:48px;border-bottom:1px solid var(--line)}.paper-header h2{font-size:clamp(42px,5vw,76px);font-weight:500;line-height:.95;letter-spacing:-.055em;margin:0}.paper-header h2 span{color:var(--accent)}.paper-subtitle{font-size:clamp(18px,2vw,26px);margin:22px 0 0;max-width:780px}.paper-code{color:var(--muted);font:400 9px/1.7 "IBM Plex Mono",monospace;text-transform:uppercase}.paper-layout{display:grid;grid-template-columns:.45fr 1.55fr;gap:48px;padding-top:52px}.paper-sidebar{position:sticky;top:110px;align-self:start}.meta-label{color:var(--accent);font:500 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}.paper-sidebar>p:not(.meta-label){font-size:13px;margin:0 0 34px}.tag-list{display:flex;flex-wrap:wrap;gap:7px}.tag-list span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.03em}.paper-copy{max-width:820px}.paper-copy p{font-size:17px;line-height:1.72;margin:0 0 24px}.paper-copy .lead{font-size:clamp(23px,2.6vw,36px);line-height:1.35;letter-spacing:-.035em}.link-cluster{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:40px}.link-cluster>a:not(.button){font:500 10px/1 "IBM Plex Mono",monospace;text-transform:uppercase;text-decoration-thickness:1px}
.press-list{border-top:1px solid var(--line)}.press-list a{display:grid;grid-template-columns:110px 180px 1fr 30px;gap:24px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line);text-decoration:none}.press-list time,.press-list span{color:var(--muted);font:400 9px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase}.press-list strong{font-size:18px;line-height:1.3}.press-list i{font-style:normal;text-align:right}
.record-section{padding-top:clamp(88px,10vw,144px)}.record-list{border-top:1px solid var(--line)}.record-item{display:grid;grid-template-columns:145px 1fr 58px;gap:38px;padding:42px 0;border-bottom:1px solid var(--line);align-items:start}.record-date strong,.record-date span{display:block}.record-date strong{font-size:35px;font-weight:500;letter-spacing:-.04em}.record-date span{color:var(--muted);font:400 9px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase}.record-top{display:flex;gap:18px;align-items:center;color:var(--muted);font:400 9px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase}.status-pill{padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--ink)}.record-content h3{font-size:clamp(25px,3vw,42px);line-height:1.1;letter-spacing:-.04em;font-weight:500;margin:20px 0 14px}.record-content h3 a{text-decoration:none}.record-content p{max-width:760px;color:var(--muted);margin:0 0 24px}.round-link,.record-mark{width:52px;height:52px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;text-decoration:none;font:500 10px/1 "IBM Plex Mono",monospace}.round-link:hover{background:var(--accent);border-color:var(--accent);color:white}.next-page{padding-top:32px}.next-page>a{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none}.next-page span{color:var(--muted)}.next-page strong{font-size:clamp(20px,2.2vw,32px)}
.experience-list{border-top:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:.55fr 1.45fr;gap:clamp(36px,7vw,110px);padding:50px 0;border-bottom:1px solid var(--line)}.experience-row>div:first-child{display:flex;justify-content:space-between;color:var(--muted);font:400 9px/1.5 "IBM Plex Mono",monospace;text-transform:uppercase}.experience-row h3{font-size:clamp(27px,3vw,42px);font-weight:500;line-height:1.1;letter-spacing:-.04em;margin:0 0 8px}.experience-row p{max-width:760px;color:var(--muted);line-height:1.7}.experience-row p strong{color:var(--ink)}.org-link{color:var(--accent);font:500 11px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;text-decoration:none}.experience-row .tag-list{margin-top:26px}.education-section{background:var(--surface);max-width:none}.education-section>*{max-width:1312px;margin-left:auto;margin-right:auto}.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.education-card{padding:36px;border:1px solid var(--line);border-radius:var(--radius);min-height:280px}.education-card>span{color:var(--accent);font:500 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase}.education-card h3{font-size:clamp(25px,3vw,38px);font-weight:500;line-height:1.15;letter-spacing:-.04em}.education-card p{color:var(--muted)}.education-card dl{display:flex;gap:24px;margin-top:38px}.education-card dl div{padding-right:24px;border-right:1px solid var(--line)}.education-card dt{color:var(--muted);font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase}.education-card dd{margin:8px 0 0}.civic-list{border-top:1px solid var(--line)}.civic-list>a,.civic-list>div{display:grid;grid-template-columns:1fr 1.4fr 30px;gap:24px;padding:25px 0;border-bottom:1px solid var(--line);text-decoration:none}.civic-list strong{font-size:18px}.civic-list span{color:var(--muted);font-size:13px}.civic-list i{font-style:normal;text-align:right}.additional-record{max-width:850px;color:var(--muted);font-size:13px;line-height:1.8;margin-top:38px}
.music-page{background:var(--ink);color:var(--surface)}.music-page .site-header{background:rgb(32 32 29/.94);color:var(--surface)}.music-page .brand-mark{background:var(--surface);color:var(--ink)}.music-page .menu-toggle span:not(.sr-only){background:var(--surface)}.music-page .page-index,.music-page .eyebrow{color:#e4a779}.music-page .page-hero,.music-page .music-editorial,.music-page .platform-section,.music-page .credits-section{border-color:#44423d}.music-page .breadcrumbs,.music-page .page-intro{color:#bdb9b1}.music-page .page-hero{border-color:#44423d}.music-editorial{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(48px,9vw,140px);align-items:center}.album-stage img{width:100%;border-radius:var(--radius)}.album-stage>span{display:block;color:#88857f;margin-top:12px;font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase}.music-copy h2{font-size:clamp(42px,5.4vw,76px);font-weight:500;line-height:.98;letter-spacing:-.055em}.music-copy>p:not(.eyebrow){color:#bdb9b1;font-size:18px;line-height:1.65;max-width:720px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:52px;border-top:1px solid #44423d}.stat-grid div{padding:26px 16px 0 0}.stat-grid dt{font-size:clamp(30px,4vw,54px);color:#e4a779}.stat-grid dd{margin:6px 0;color:#88857f;font:400 9px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase}.platform-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #44423d;border-left:1px solid #44423d}.platform-list a{min-height:150px;padding:24px;border-right:1px solid #44423d;border-bottom:1px solid #44423d;display:grid;grid-template-columns:1fr auto;text-decoration:none}.platform-list span{color:#88857f;font:400 9px/1 "IBM Plex Mono",monospace}.platform-list strong{grid-column:1;font-size:25px;align-self:end}.platform-list i{grid-column:2;grid-row:1/3;font-style:normal;align-self:center;color:#e4a779}.credits-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.credits-grid a{padding:34px;border:1px solid #44423d;border-radius:var(--radius);text-decoration:none;min-height:260px}.credits-grid span,.credits-grid i{color:#e4a779;font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;font-style:normal}.credits-grid h3{font-size:28px;font-weight:500;line-height:1.1}.credits-grid p{color:#aaa79f}.credits-grid i{display:block;margin-top:32px}.social-strip{display:flex;flex-wrap:wrap;gap:18px;margin-top:40px}.social-strip a{color:#d8d5ce;font:500 10px/1 "IBM Plex Mono",monospace;text-transform:uppercase}.music-page .contact-band,.music-page .site-footer{background:#171715}
.projects-page{--paper:#0d110d;--surface:#111710;--ink:#e6eadf;--muted:#a3aca0;--line:#2d392c;--accent:#8fd36b;--dark:#080b08;background:var(--paper);color:var(--ink)}.projects-page .site-header{background:rgb(13 17 13/.94)}.projects-page .brand-mark{background:var(--accent);color:#0d110d}.projects-page .menu-toggle span:not(.sr-only){background:var(--ink)}.projects-page .site-nav{background:var(--paper)}.projects-page .page-hero{border-color:var(--line)}.projects-page .breadcrumbs,.projects-page .page-intro{color:var(--muted)}.projects-page .page-index,.projects-page .eyebrow{color:var(--accent)}.projects-page .contact-band,.projects-page .site-footer{background:var(--dark)}
.project-terminal{padding-top:clamp(72px,8vw,110px);padding-bottom:30px}.terminal-window{border:1px solid #344232;border-radius:var(--radius);background:#080b08;box-shadow:0 30px 80px rgb(0 0 0/.25);overflow:hidden}.terminal-bar{min-height:48px;padding:0 18px;border-bottom:1px solid #283226;display:flex;align-items:center;gap:8px;color:#727d70;font:400 9px/1 "IBM Plex Mono",monospace}.terminal-bar span{width:9px;height:9px;border-radius:50%;background:#42503f}.terminal-bar span:first-child{background:#984c16}.terminal-bar span:nth-child(2){background:#b08b43}.terminal-bar span:nth-child(3){background:#6b9b5c}.terminal-bar b{margin-left:8px;font-weight:400}.terminal-command{margin:0;padding:25px 28px 10px;color:#c7cec2;font:400 12px/1.7 "IBM Plex Mono",monospace;overflow-wrap:anywhere}.terminal-command>span{color:var(--accent)}.terminal-output{padding:8px 28px 24px;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;color:#9da899;font:400 12px/1.7 "IBM Plex Mono",monospace}.terminal-output span::before{content:"drwxr-xr-x  ";color:#4f5c4c}.terminal-ready{border-top:1px solid #20291f;padding-bottom:25px}.terminal-cursor{display:inline-block;width:7px;height:13px;margin-left:8px;background:var(--accent);vertical-align:-2px;animation:cursor-blink 1.1s steps(1) infinite}
.project-archive{padding-top:clamp(70px,9vw,120px)}.project-heading{display:grid;grid-template-columns:.55fr 1.2fr .75fr;gap:36px;margin-bottom:60px}.project-heading h2{font-size:clamp(42px,5.5vw,78px);line-height:.98;letter-spacing:-.055em;font-weight:500;margin:0}.project-heading>p:last-child{color:var(--muted);font-size:14px;line-height:1.75;margin:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-card{min-height:560px;padding:clamp(26px,3vw,42px);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column;transition:transform .22s ease,border-color .22s ease}.project-card:hover{transform:translateY(-3px);border-color:#597054}.project-featured{grid-column:1/-1;min-height:auto}.project-meta{display:flex;justify-content:space-between;gap:18px;color:var(--accent);font:500 9px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}.project-card h3{font-size:clamp(31px,4vw,58px);line-height:1;letter-spacing:-.05em;font-weight:500;margin:48px 0 18px}.project-card:not(.project-featured) h3{font-size:clamp(29px,3.2vw,46px)}.project-lead{color:#c0c8bc;font-size:17px;line-height:1.65;max-width:800px}.project-card-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(40px,8vw,120px);align-items:end}.project-fact{margin:34px 0;padding:20px 0 20px 20px;border-left:2px solid var(--accent)}.project-fact strong,.project-fact span{display:block}.project-fact strong{color:var(--accent);font:500 clamp(28px,4vw,52px)/1 "IBM Plex Mono",monospace;letter-spacing:-.05em}.project-fact span{margin-top:12px;color:var(--muted);font-size:12px;line-height:1.6}.project-stack{display:flex;flex-wrap:wrap;gap:7px;margin:24px 0}.project-stack span{padding:7px 10px;border:1px solid #394737;border-radius:999px;color:#b9c3b5;font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase}.project-note{color:#7f897d;font:400 10px/1.7 "IBM Plex Mono",monospace;margin:10px 0 30px}.project-links{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:auto;padding-top:24px;border-top:1px solid var(--line)}.project-links a{color:var(--accent);font:500 10px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;text-decoration:none}.project-source{display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:end;border-top:1px solid var(--line)}.project-source h2{font-size:clamp(42px,5vw,72px);line-height:1;letter-spacing:-.05em;font-weight:500;margin:0}.project-source>div:last-child{display:flex;flex-direction:column;align-items:flex-start}.project-source a{padding:14px 0;border-bottom:1px solid var(--line);color:var(--accent);font:500 11px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;text-decoration:none}
@keyframes cursor-blink{50%{opacity:0}}
.credential-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.credential-card{padding:28px;border:1px solid var(--line);border-radius:var(--radius);min-height:300px;display:flex;flex-direction:column;text-decoration:none;background:var(--surface)}.credential-card>div{display:flex;justify-content:space-between;color:var(--muted);font:400 9px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase}.credential-card h3{font-size:24px;line-height:1.15;letter-spacing:-.035em;font-weight:500;margin:48px 0 14px}.credential-card p{color:var(--muted);font:400 10px/1.6 "IBM Plex Mono",monospace;overflow-wrap:anywhere}.credential-card i{margin-top:auto;color:var(--accent);font:500 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;font-style:normal}.issuer-links{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:52px;padding-top:26px;border-top:1px solid var(--line)}.issuer-links .meta-label{width:100%}.issuer-links a{font:500 10px/1 "IBM Plex Mono",monospace;text-transform:uppercase}
.timeline-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.timeline-list li{display:grid;grid-template-columns:.45fr 1.55fr;gap:48px;padding:38px 0;border-bottom:1px solid var(--line)}.timeline-list>li>strong{font-size:clamp(45px,6vw,84px);font-weight:500;line-height:1;color:var(--accent);letter-spacing:-.06em}.timeline-list h3{font-size:clamp(26px,3vw,42px);font-weight:500;letter-spacing:-.04em;margin:2px 0 12px}.timeline-list p{color:var(--muted);margin:0}.timeline-list li.timeline-current{background:var(--ink);color:var(--surface);margin:0 calc(-1 * var(--pad));padding-left:var(--pad);padding-right:var(--pad);border-radius:var(--radius)}.timeline-current p{color:#aaa79f}.honors-section{background:var(--surface);max-width:none}.honors-section>*{max-width:1312px;margin-left:auto;margin-right:auto}.honors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.honors-grid article{padding:30px;border:1px solid var(--line);border-radius:var(--radius);min-height:240px}.honors-grid span{color:var(--accent);font:500 10px/1 "IBM Plex Mono",monospace}.honors-grid h3{font-size:24px;line-height:1.15;font-weight:500;margin:50px 0 12px}.honors-grid p{color:var(--muted);font-size:13px}.skill-rows{border-top:1px solid var(--line)}.skill-rows>div{display:grid;grid-template-columns:.6fr 1.4fr;gap:40px;padding:25px 0;border-bottom:1px solid var(--line)}.skill-rows h3{margin:0;font-size:18px}.skill-rows p{margin:0;color:var(--muted)}
.contact-main{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(50px,9vw,140px)}.contact-primary h2{font-size:clamp(50px,7vw,96px);font-weight:500;letter-spacing:-.06em;margin:0}.contact-primary>p:not(.eyebrow){max-width:720px;font-size:18px;color:var(--muted)}.contact-lines{margin-top:60px;border-top:1px solid var(--line)}.contact-lines>a,.contact-lines>div{display:grid;grid-template-columns:130px 1fr 30px;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:center}.contact-lines span{color:var(--muted);font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase}.contact-lines strong{font-size:clamp(18px,2.4vw,30px);font-weight:500;overflow-wrap:anywhere}.contact-lines i{font-style:normal}.contact-aside{padding:34px;border:1px solid var(--line);border-radius:var(--radius);align-self:start}.contact-aside ul{padding:0;margin:20px 0 38px;list-style:none}.contact-aside li{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.profile-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.profile-groups>div{padding:30px;border:1px solid var(--line);border-radius:var(--radius)}.profile-groups h3{font-size:25px;font-weight:500;margin:0 0 26px}.profile-groups a{display:block;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none;font:500 10px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase}.not-found{min-height:70svh;display:flex;flex-direction:column;justify-content:center}.not-found h1{font-size:clamp(58px,9vw,130px);font-weight:500;line-height:.86;letter-spacing:-.07em;margin:20px 0 34px}.not-found>p:not(.eyebrow,.page-index){max-width:620px;color:var(--muted);font-size:18px}

@media(max-width:1100px){.menu-toggle{display:block}.site-nav{position:absolute;left:0;right:0;top:80px;padding:24px var(--pad) 30px;background:var(--paper);border-bottom:1px solid var(--line);display:none;align-items:stretch;flex-direction:column}.site-nav.is-open{display:flex}.site-nav a{padding:8px 0}.nav-secondary{display:block}.nav-contact{text-align:center;margin-top:8px}.music-page .site-nav{background:var(--dark)}}
@media(max-width:1000px){.hero{grid-template-columns:1fr .8fr}.hero h1{font-size:clamp(64px,11vw,110px)}.section-heading{grid-template-columns:1fr 1.5fr}.section-heading>p:last-child{grid-column:2}.feature-grid{grid-template-columns:1fr}.feature-music{grid-column:auto}.section-heading.compact{grid-template-columns:1fr}.section-heading.compact h2{grid-column:1}.latest-list li{grid-template-columns:120px 1fr 54px}}
@media(max-width:720px){.site-header{height:68px}.brand small{display:none}.menu-toggle{display:block}.site-nav{position:absolute;left:0;right:0;top:68px;padding:24px var(--pad) 30px;background:var(--paper);border-bottom:1px solid var(--line);display:none;align-items:stretch;flex-direction:column}.site-nav.is-open{display:flex}.site-nav>a:not(.nav-contact):nth-child(n){display:block}.site-nav a{padding:8px 0}.nav-secondary{display:block}.nav-contact{text-align:center;margin-top:8px}.hero{min-height:auto;padding-top:48px;grid-template-columns:1fr;gap:36px}.hero-copy{display:block}.hero h1{font-size:clamp(64px,22vw,106px)}.hero-alias{margin:20px 0}.hero-intro{font-size:17px}.hero-portrait{grid-row:auto}.portrait-note{right:12px;bottom:12px}.hero-index{grid-template-columns:1fr;gap:12px}.ticker-track{animation:ticker 28s linear infinite}.section-heading{display:block}.section-heading h2{margin-bottom:24px}.section-heading>p:last-child{max-width:560px}.feature{min-height:430px}.feature-music{display:flex}.music-visual{order:2;max-width:240px}.feature-music h3{order:3;margin-top:32px}.feature-music p{order:4}.feature-music .card-link{order:5}.energy-diagram{height:130px}.flow.input::after{width:90px}.latest-list li{grid-template-columns:1fr 46px;gap:12px}.latest-list time{grid-column:1/-1}.latest-list li>a{grid-column:2;grid-row:2}.site-footer{grid-template-columns:1fr 1fr}.site-footer>div:first-child{grid-column:1/-1}.footer-meta{grid-column:1/-1;flex-direction:column}.contact-band h2{margin-bottom:50px}}
@keyframes ticker{to{transform:translateX(-50%)}}
@media(max-width:1000px){.page-hero-grid{grid-template-columns:.2fr 1fr}.page-intro{grid-column:2}.record-intro{grid-template-columns:minmax(120px,.4fr) minmax(0,1.6fr)}.record-intro>p:last-child{grid-column:2}.paper-header,.paper-layout{grid-template-columns:.38fr 1.62fr}.press-list a{grid-template-columns:90px 140px 1fr 24px}.credential-grid,.honors-grid{grid-template-columns:repeat(2,1fr)}.contact-main{grid-template-columns:1fr}.contact-aside{max-width:620px}.music-editorial{grid-template-columns:.8fr 1.2fr}}
@media(max-width:1000px){.project-heading{grid-template-columns:1fr 1.5fr}.project-heading>p:last-child{grid-column:2}.project-card-layout{grid-template-columns:1fr}.project-source{grid-template-columns:1fr}}
@media(max-width:720px){.music-page .site-nav{background:var(--dark)}.page-hero{padding-top:32px}.breadcrumbs{margin-bottom:54px}.page-hero-grid{display:block}.page-index{margin-bottom:28px}.page-hero h1{font-size:clamp(54px,17vw,90px)}.page-intro{margin-top:28px}.record-intro{display:block}.record-intro h2{margin-bottom:20px}.paper-header,.paper-layout{display:block}.paper-header>div:first-child{margin-bottom:36px}.paper-sidebar{position:static;margin-bottom:40px}.research-flow{height:180px}.research-flow span:nth-child(1)::after{width:70px}.research-flow span:nth-child(2)::after,.research-flow span:nth-child(3)::after{width:50px}.press-list a{grid-template-columns:1fr 24px;gap:9px 16px}.press-list time,.press-list span{grid-column:1}.press-list strong{grid-column:1}.press-list i{grid-column:2;grid-row:1/4}.record-item{grid-template-columns:1fr 48px;gap:20px}.record-date{grid-column:1/-1}.record-content{grid-column:1}.round-link,.record-mark{grid-column:2;grid-row:2}.experience-row{grid-template-columns:1fr;gap:24px}.education-grid{grid-template-columns:1fr}.education-card dl{flex-wrap:wrap}.civic-list>a,.civic-list>div{grid-template-columns:1fr 26px;gap:8px 14px}.civic-list span{grid-column:1}.civic-list i{grid-column:2;grid-row:1/3}.music-editorial{display:block}.album-stage{max-width:420px;margin-bottom:56px}.stat-grid{grid-template-columns:repeat(3,1fr)}.platform-list{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-list a{min-width:0;padding:20px}.credits-grid{grid-template-columns:1fr}.credential-grid,.honors-grid{grid-template-columns:1fr}.timeline-list li{grid-template-columns:1fr;gap:20px}.timeline-list li.timeline-current{margin:0 -20px;padding-left:20px;padding-right:20px}.skill-rows>div{grid-template-columns:1fr;gap:8px}.contact-lines>a,.contact-lines>div{grid-template-columns:1fr 24px;gap:9px 14px}.contact-lines strong{grid-column:1}.contact-lines i{grid-column:2;grid-row:1/3}.profile-groups{grid-template-columns:1fr}.not-found{min-height:60svh}}
@media(max-width:720px){.project-heading{display:block}.project-heading h2{margin-bottom:24px}.terminal-output{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.project-featured{grid-column:auto}.project-card{min-height:auto}.project-card-layout{display:block}.project-source{display:block}.project-source>div:last-child{margin-top:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track,.terminal-cursor{animation:none}.reveal{opacity:1;transform:none;transition:none}.hero-portrait img{transform:none;transition:none}.button,.site-header,.site-nav a::after,.nav-contact,.latest-list li>a,.round-link,.project-card{transition:none}}

/* Final scene composition: effects live inside each hero, above its wash and below its copy. */
.hero,.page-hero{isolation:isolate}
.hero>.ambient-scene,.page-hero>.ambient-scene{z-index:0;mix-blend-mode:multiply}
.home .hero>.ambient-scene,.projects-page .page-hero>.ambient-scene,.music-page .page-hero>.ambient-scene{mix-blend-mode:screen}
.hero-copy,.hero-index,.page-hero-grid,.breadcrumbs{position:relative;z-index:3}
.home .hero-portrait{z-index:1}

@media(max-width:720px){
  .home .site-nav{background:#171815;color:#f4f1e9}
  .home .hero{min-height:calc(100svh - 68px);padding:46px 20px 30px;display:flex;flex-direction:column;justify-content:flex-end;gap:26px}
  .home .hero-copy{max-width:none}
  .home .hero h1{font-size:clamp(70px,22vw,106px);line-height:.76}
  .home .hero-intro{max-width:34rem;font-size:16px;line-height:1.55}
  .home .hero-actions{margin-top:28px;gap:18px}
  .home .hero-portrait{position:absolute;inset:0;width:100%;height:100%;opacity:.48}
  .home .hero-portrait picture{height:100%;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 42%,transparent 88%);mask-image:linear-gradient(180deg,#000 0%,#000 42%,transparent 88%)}
  .home .hero-portrait img{object-position:62% top}
  .home .portrait-note{display:none}
  .home .hero-index{grid-template-columns:repeat(3,1fr);gap:8px;padding-top:16px}
  .home .hero-index p{font-size:7px;line-height:1.55}
  .home .hero-index p::before{width:24px;display:block;margin:0 0 8px}
  .inner-page .page-hero{min-height:calc(100svh - 68px);padding:30px 20px 62px;display:flex;flex-direction:column;justify-content:flex-end}
  .inner-page .breadcrumbs{margin-bottom:auto}
  .inner-page .page-hero::before{background:linear-gradient(180deg,rgb(244 241 233/.06) 0%,rgb(244 241 233/.72) 50%,rgb(244 241 233/.97) 100%)}
  .inner-page .page-hero::after{inset:12px}
  .projects-page .page-hero::before,.music-page .page-hero::before{background:linear-gradient(180deg,rgb(13 17 13/.08),rgb(13 17 13/.72) 50%,rgb(13 17 13/.97) 100%)}
  .experience-page .page-hero::before{background:linear-gradient(180deg,rgb(223 232 215/.04),rgb(223 232 215/.7) 50%,rgb(223 232 215/.97) 100%)}
  .journey-page .page-hero::before{background:linear-gradient(180deg,rgb(234 227 215/.04),rgb(234 227 215/.7) 50%,rgb(234 227 215/.97) 100%)}
  .page-hero h1{font-size:clamp(55px,16.4vw,90px);line-height:.84}
}

/* ========================================================================
   FULL-SITE AUTHORED SCENE SYSTEM
   Real ThreeUI renderers remain fixed behind the complete document while
   every chapter becomes a deliberate translucent reading plane.
   ======================================================================== */
.threeui-scene{position:fixed;inset:0;z-index:0;width:100vw;height:100svh;border:0;pointer-events:none;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 0s linear 1.1s;background:#080a09;contain:strict;transform:translateZ(0);backface-visibility:hidden}
.threeui-scene.is-ready{opacity:.96;visibility:visible;transition-delay:0s}
.scene-sakura{filter:hue-rotate(292deg) saturate(1.18) brightness(1.04) contrast(.92);background:#2b1c25}
.scene-constellation{filter:hue-rotate(338deg) saturate(.56) brightness(1.3)}
.scene-drift{filter:hue-rotate(78deg) saturate(.9) brightness(.84)}
.scene-topology{filter:sepia(.72) hue-rotate(337deg) saturate(1.8) brightness(.78)}
.scene-living{filter:none;background:#1c2a18}
.scene-waveform{filter:sepia(.5) hue-rotate(330deg) saturate(1.45) brightness(.8)}
.scene-tree{filter:sepia(.7) hue-rotate(338deg) saturate(1.25) brightness(1.08)}
.scene-signals{filter:sepia(.65) hue-rotate(335deg) saturate(1.5) brightness(.8)}
body>.site-header,body>main,body>.contact-band,body>.site-footer{z-index:2}
body::after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(110% 85% at 50% 40%,transparent 38%,rgb(0 0 0/.38) 100%)}

/* The navigation is a solid interface layer; it never inherits scene opacity. */
.site-header{z-index:500!important;color:#f4f1e9;background:rgb(8 10 9/.88)!important;border-color:rgb(255 255 255/.12)!important;backdrop-filter:blur(22px) saturate(1.25)}
.site-header .brand-mark{background:#f4f1e9;color:#10110f}.site-header .brand small{color:#aaa79f}.site-header .menu-toggle span:not(.sr-only){background:#f4f1e9}.site-header .nav-contact{border-color:#f4f1e9}.site-header .site-nav{color:#f4f1e9}
body.menu-open{overflow:hidden}

/* Shared full-page rhythm. */
.hero,.page-hero{isolation:isolate;min-height:calc(100svh - 80px);background:linear-gradient(90deg,rgb(7 9 8/.86),rgb(7 9 8/.38) 58%,rgb(7 9 8/.68))!important;color:#f4f1e9;border:0!important}
.hero::before,.page-hero::before{background:linear-gradient(180deg,rgb(5 7 6/.12),rgb(5 7 6/.08) 48%,rgb(5 7 6/.72))!important}
.page-hero::after{inset:clamp(12px,2vw,28px);border-color:rgb(255 255 255/.18)!important;border-radius:24px}
.page-hero .breadcrumbs,.page-hero .page-intro{color:#d5d3ca}.page-hero .page-index,.page-hero .eyebrow{color:#e4a779}.page-hero h1{text-shadow:0 10px 55px rgb(0 0 0/.55)}
.inner-page main>section:not(.page-hero){position:relative;margin-top:clamp(14px,2vw,28px);margin-bottom:clamp(14px,2vw,28px);border:1px solid rgb(255 255 255/.16);border-radius:28px;box-shadow:0 36px 100px rgb(0 0 0/.22);backdrop-filter:blur(28px) saturate(1.1);overflow:hidden}
.inner-page main>section.section-shell:not(.page-hero){max-width:calc(1440px - (2 * clamp(12px,2vw,28px)))}
.inner-page main>section:not(.page-hero)::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(135deg,rgb(255 255 255/.1),transparent 38%)}
.inner-page .contact-band{margin-top:clamp(20px,4vw,60px)}
.section-shell{padding-top:clamp(96px,12vw,180px);padding-bottom:clamp(96px,12vw,180px)}
.section-heading h2,.record-intro h2,.project-heading h2,.contact-primary h2{font-size:clamp(48px,7vw,100px);line-height:.88;letter-spacing:-.07em}
.feature,.project-card,.credential-card,.education-card,.honors-grid article,.contact-aside,.profile-groups>div,.credits-grid a{border-radius:20px;backdrop-filter:blur(15px);box-shadow:inset 0 1px rgb(255 255 255/.12),0 18px 60px rgb(0 0 0/.12)}
.record-item,.experience-row,.timeline-list li,.press-list a,.civic-list>a,.civic-list>div{transition:background .3s ease,transform .3s ease,padding .3s ease}
.record-item:hover,.experience-row:hover,.timeline-list li:hover,.press-list a:hover,.civic-list>a:hover{transform:translateX(8px)}

/* Home: a complete night-scroll composition inspired by Kage. */
.home{--paper:#080a09;--surface:#101310;--ink:#f1eee5;--muted:#aaa89f;--line:rgb(255 255 255/.16);--accent:#e4a779;--dark:#050706;background:#080a09;color:#f1eee5}
.home .hero{min-height:calc(100svh - 80px);background:linear-gradient(90deg,rgb(5 7 6/.93),rgb(5 7 6/.48) 46%,rgb(5 7 6/.18) 72%,rgb(5 7 6/.7))!important}
.home .hero::before{background:radial-gradient(circle at 72% 25%,rgb(224 72 43/.14),transparent 27%),linear-gradient(180deg,transparent 54%,rgb(5 7 6/.72))!important}
.home .hero-portrait{opacity:.58}.home .hero-portrait img{filter:grayscale(1) contrast(1.12) brightness(.7)}
.home .ticker{position:relative;z-index:3;border-color:#e4a779;background:rgb(5 7 6/.92)}
.home .overview,.home .latest{position:relative;max-width:calc(1440px - (2 * clamp(12px,2vw,28px)));margin:clamp(18px,3vw,42px) auto;border:1px solid rgb(255 255 255/.14);border-radius:28px;background:rgb(7 10 8/.84)!important;color:#f1eee5;box-shadow:0 40px 120px rgb(0 0 0/.38);backdrop-filter:blur(24px);overflow:hidden}
.home .overview::before,.home .latest::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgb(228 167 121/.1),transparent 32%,rgb(255 255 255/.025))}
.home .section-heading>p:last-child,.home .latest-list time,.home .latest-list span,.home .feature p{color:#aaa89f}
.home .feature{border-color:rgb(255 255 255/.15)}
.home .feature-research{background:rgb(244 241 233/.94);color:#1d1d1a}.home .feature-research p{color:#5f5d56}.home .feature-research .feature-count{color:#7a756b}
.home .feature-practice{background:linear-gradient(155deg,#a75219,#6b2e0b)}
.home .feature-music{background:linear-gradient(145deg,rgb(23 24 21/.96),rgb(7 9 8/.94))}
.home .latest-list li>a{color:#f4f1e9}.home .latest-list h3{color:#f4f1e9}

/* Light archival pages float as readable paper over the live environment. */
.research-page,.conferences-page,.certifications-page,.journey-page,.contact-page{--paper:#ece7dc;--surface:#f5f1e7;--ink:#201f1b;--muted:#666159;--line:#cfc7b9;--accent:#99501e;background:#0a0b09}
.research-page main>section:not(.page-hero),.conferences-page main>section:not(.page-hero),.certifications-page main>section:not(.page-hero),.journey-page main>section:not(.page-hero),.contact-page main>section:not(.page-hero){color:var(--ink);background:rgb(244 241 233/.93)!important;border-color:rgb(255 255 255/.45)}
.research-page .paper-card,.research-page .press-section,.conferences-page .record-section,.certifications-page .credentials-section,.journey-page .timeline-section,.contact-page .contact-main{background:rgb(244 241 233/.93)!important}
.credential-card,.education-card,.honors-grid article,.contact-aside,.profile-groups>div{background:rgb(255 255 255/.48)}
.research-page .page-hero{background:linear-gradient(90deg,rgb(8 8 8/.84),rgb(30 20 12/.25),rgb(8 8 8/.7))!important}
.conferences-page .page-hero{background:linear-gradient(90deg,rgb(18 9 4/.86),rgb(62 35 18/.26),rgb(18 9 4/.7))!important}
.certifications-page .page-hero{background:linear-gradient(90deg,rgb(20 12 6/.84),rgb(82 50 25/.2),rgb(20 12 6/.72))!important}
.journey-page .page-hero{background:linear-gradient(90deg,rgb(17 10 6/.84),rgb(72 45 28/.22),rgb(17 10 6/.7))!important}
.contact-page .page-hero{background:linear-gradient(90deg,rgb(18 10 5/.86),rgb(78 38 14/.24),rgb(18 10 5/.7))!important}

/* Projects: terminal archive becomes an uninterrupted green computational world. */
.projects-page{--paper:#050805;--surface:rgb(9 15 9/.9);--ink:#edf5e8;--muted:#a9b6a4;--line:#344631;--accent:#9be277;--dark:#030503;background:#050805}
.projects-page main>section:not(.page-hero){background:rgb(5 10 5/.86)!important;color:var(--ink);border-color:rgb(143 211 107/.22)}
.projects-page .page-hero{background:linear-gradient(90deg,rgb(3 7 3/.9),rgb(6 17 7/.24),rgb(3 7 3/.7))!important}
.projects-page .terminal-window,.projects-page .project-card{background:rgb(4 8 4/.84);border-color:rgb(143 211 107/.25)}
.projects-page .project-card:hover{background:rgb(10 20 9/.9)}

/* Experience: the exact Living Green world continues behind every chapter. */
.experience-page{--paper:#dfe8d7;--surface:#edf3e7;--ink:#172115;--muted:#556250;--line:#b8c8ad;--accent:#47723a;--dark:#101a0e;background:#0d180c}
.experience-page .page-hero{background:linear-gradient(90deg,rgb(9 22 9/.83),rgb(23 59 24/.2),rgb(9 22 9/.7))!important}
.experience-page main>section:not(.page-hero){background:rgb(232 239 225/.92)!important;color:var(--ink);border-color:rgb(214 234 201/.46)}
.experience-page .experience-row:hover,.experience-page .civic-list>a:hover{background:rgb(255 255 255/.38)}

/* Music: the authored audio wordmark is allowed to dominate the whole page. */
.music-page{--paper:#090908;--surface:#11110f;--ink:#f4f1e9;--muted:#aaa79f;--line:#3e3d37;--accent:#e4a779;--dark:#050504;background:#090908}
.music-page .page-hero{background:linear-gradient(90deg,rgb(7 7 7/.82),rgb(27 17 12/.22),rgb(7 7 7/.68))!important}
.music-page main>section:not(.page-hero){background:rgb(10 10 9/.86)!important;color:#f4f1e9;border-color:rgb(228 167 121/.2)}
.music-page .music-copy>p:not(.eyebrow),.music-page .credits-grid p{color:#bdb9b1}.music-page .platform-list,.music-page .credits-grid a{background:rgb(15 15 13/.55)}

/* Footer remains fully opaque and legible regardless of the renderer beneath it. */
.contact-band{z-index:3;background:#171815!important;color:#f4f1e9;border:1px solid rgb(255 255 255/.12)}
.site-footer{z-index:3;background:#0b0c0a!important;color:#aaa79f}

@media(max-width:1100px){
  .site-header{height:68px}
  .site-nav{display:none!important;position:fixed!important;inset:68px 0 0!important;z-index:999!important;height:calc(100svh - 68px)!important;padding:28px 24px 40px!important;background:#0a0b09!important;color:#f4f1e9!important;border:0!important;overflow:auto!important;opacity:1!important;backdrop-filter:none!important}
  .site-nav.is-open{display:flex!important}
  .site-nav a{display:flex!important;align-items:center;justify-content:space-between;min-height:62px;padding:16px 4px!important;border-bottom:1px solid rgb(255 255 255/.14);font-size:clamp(16px,4.7vw,24px);letter-spacing:-.02em;text-transform:none}
  .site-nav a::after{display:none}
  .site-nav .nav-contact{margin-top:18px;border:1px solid #f4f1e9;border-radius:999px;justify-content:center}
  .menu-toggle{position:relative;z-index:1001}
  .menu-toggle span:not(.sr-only){transition:transform .25s ease,opacity .25s ease}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-3.5px) rotate(-45deg)}
}

@media(max-width:720px){
  .threeui-scene{height:100svh}
  .hero,.page-hero{min-height:calc(100svh - 68px)}
  .inner-page main>section:not(.page-hero),.home .overview,.home .latest{margin:12px;border-radius:20px}
  .section-shell{padding-left:20px;padding-right:20px;padding-top:92px;padding-bottom:92px}
  .home .hero{margin:0;min-height:calc(100svh - 68px);border-radius:0}
  .home .overview,.home .latest{padding-left:20px;padding-right:20px}
  .home .feature{padding:26px;min-height:auto}
  .home .feature-research{background:rgb(244 241 233/.97)}
  .section-heading h2,.record-intro h2,.project-heading h2,.contact-primary h2{font-size:clamp(46px,13.8vw,72px)}
  .record-item:hover,.experience-row:hover,.timeline-list li:hover,.press-list a:hover,.civic-list>a:hover{transform:none}
}

@media(prefers-reduced-motion:reduce){.threeui-scene{display:none}.threeui-scene.is-ready{opacity:0}}

/* Article chapters use the same full-page reading planes as section chapters. */
.inner-page main>article{position:relative;margin-top:clamp(14px,2vw,28px);margin-bottom:clamp(14px,2vw,28px);border:1px solid rgb(255 255 255/.16);border-radius:28px;box-shadow:0 36px 100px rgb(0 0 0/.22);backdrop-filter:blur(28px) saturate(1.1);overflow:hidden;max-width:calc(1440px - (2 * clamp(12px,2vw,28px)))}
.inner-page main>article::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(135deg,rgb(255 255 255/.1),transparent 38%)}
.research-page main>article,.conferences-page main>article,.certifications-page main>article,.journey-page main>article,.contact-page main>article{color:#201f1b;background:rgb(244 241 233/.95)!important;border-color:rgb(255 255 255/.48)}
.projects-page main>article{color:#edf5e8;background:rgb(5 10 5/.88)!important;border-color:rgb(143 211 107/.22)}
.experience-page main>article{color:#172115;background:rgb(232 239 225/.94)!important;border-color:rgb(214 234 201/.46)}
.music-page main>article{color:#f4f1e9;background:rgb(10 10 9/.88)!important;border-color:rgb(228 167 121/.2)}
@media(max-width:720px){.inner-page main>article{margin:12px;border-radius:20px}}
.journey-page>.ambient-scene{position:fixed;inset:0;z-index:0;width:100vw;height:100svh;opacity:.9;mix-blend-mode:screen}

/* Homepage — Sylva Sakura Sunset: soft botanical dusk, not temple noir. */
.home{--paper:#21171e;--surface:#30222b;--ink:#fff7f8;--muted:#d3bdc5;--line:rgb(255 237 244/.2);--accent:#f0a7b9;--dark:#160f14;background:#21171e}
.home::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 75% 20%,rgb(255 193 164/.22),transparent 30%),linear-gradient(145deg,rgb(80 41 65/.2),rgb(212 105 123/.1) 52%,rgb(45 28 48/.24))}
.home .site-header{background:rgb(31 20 28/.86)!important}
.home .hero{background:linear-gradient(90deg,rgb(39 22 34/.88),rgb(63 35 50/.45) 48%,rgb(48 29 40/.18) 74%,rgb(34 21 31/.62))!important}
.home .hero::before{background:radial-gradient(circle at 73% 23%,rgb(255 187 169/.22),transparent 30%),linear-gradient(180deg,transparent 48%,rgb(31 19 28/.68))!important}
.home .hero h1 span,.home .eyebrow{color:#f0a7b9}.home .hero-alias,.home .hero-intro{color:#eadce1}.home .hero-index p{color:#d1bbc3}.home .hero-index p::before{background:#f0a7b9}
.home .hero-portrait{opacity:.5}.home .hero-portrait img{filter:grayscale(.65) sepia(.18) hue-rotate(292deg) saturate(.82) contrast(1.02) brightness(.78)}
.home .ticker{border-color:#f0a7b9;background:rgb(29 18 26/.92)}
.home .overview,.home .latest{background:rgb(35 23 31/.86)!important;border-color:rgb(255 224 235/.17)}
.home .overview::before,.home .latest::before{background:linear-gradient(135deg,rgb(240 167 185/.15),transparent 34%,rgb(255 255 255/.03))}
.home .feature-practice{background:linear-gradient(155deg,#b45f78,#6c334f)}
.home .feature-music{background:linear-gradient(145deg,rgb(48 31 43/.96),rgb(24 16 22/.95))}

/* Homepage contrast and portrait integrity. */
.home .ticker,.home .ticker-track,.home .ticker-track span{color:#fff4f7}
.home .ticker-track span{opacity:.92}.home .ticker-track i{background:#f0a7b9}
.home .feature-music{color:#fff7f8}
.home .feature-music h3{color:#fff7f8;text-shadow:none}
.home .feature-music p{color:#ddcbd2}
.home .feature-music .feature-count{color:#e9b9c7}
.home .feature-music .card-link{color:#fff1f5;border-color:rgb(255 237 244/.3)}
.home .portrait-note{background:rgb(37 24 33/.94);color:#fff7f8;border:1px solid rgb(255 225 235/.26);box-shadow:0 18px 50px rgb(17 9 14/.34)}
.home .portrait-note span{color:#f0a7b9}.home .portrait-note strong{color:#fff7f8}
.home .hero-portrait{opacity:1}
.home .hero-portrait img{filter:saturate(.72) contrast(1.03) brightness(.9)}
@media(max-width:720px){
  .home .hero-portrait{opacity:1}
  .home .hero-portrait picture{-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 95%);mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 95%)}
  .home .hero-portrait img{filter:saturate(.7) contrast(1.03) brightness(.82)}
}

/* 2026-08-24 scene refinements: each specialist page gets a distinct,
   full-document visual identity while retaining its established palette. */
.scene-drift{filter:saturate(1.08) brightness(.95) contrast(1.06)}
.projects-page .threeui-scene.is-ready{opacity:1}

.music-page>.ambient-scene,.journey-page>.ambient-scene{
  position:fixed;inset:0;z-index:0;width:100vw;height:100svh;pointer-events:none
}
.music-page>.ambient-scene{opacity:.92;mix-blend-mode:screen}
.music-page .page-hero{background:linear-gradient(90deg,rgb(6 5 6/.88),rgb(57 20 38/.26),rgb(6 5 6/.66))!important}
.music-page main>section:not(.page-hero){background:rgb(10 9 10/.72)!important;border-color:rgb(228 167 121/.27)}
.music-page .music-editorial,.music-page .platform-section,.music-page .credits-section{box-shadow:0 38px 120px rgb(0 0 0/.46),inset 0 1px rgb(255 255 255/.08)}
.music-page .platform-list,.music-page .credits-grid a{background:rgb(15 12 14/.64)}

.journey-page>.ambient-scene{opacity:.92;mix-blend-mode:normal}
.journey-page .page-hero{background:linear-gradient(90deg,rgb(25 13 8/.88),rgb(106 62 36/.23),rgb(17 9 5/.66))!important}
.journey-page main>section:not(.page-hero),.journey-page main>article{background:rgb(244 241 233/.86)!important}
.journey-page .timeline-section{background:linear-gradient(180deg,rgb(248 244 236/.88),rgb(239 231 217/.82))!important}
.journey-page .timeline-list{display:grid;gap:16px;border:0;position:relative}
.journey-page .timeline-list li{position:relative;overflow:hidden;padding:clamp(28px,4vw,52px);border:1px solid rgb(117 70 47/.2);border-radius:22px;background:linear-gradient(135deg,rgb(255 252 246/.68),rgb(235 220 202/.42));box-shadow:inset 0 1px rgb(255 255 255/.7),0 18px 55px rgb(66 37 21/.08)}
.journey-page .timeline-list li::before,.journey-page .timeline-list li::after{content:"";position:absolute;pointer-events:none;border:1px solid rgb(117 70 47/.16);border-radius:50%}
.journey-page .timeline-list li::before{width:180px;height:64px;right:-34px;top:24px;transform:rotate(-12deg)}
.journey-page .timeline-list li::after{width:7px;height:7px;right:56px;top:49px;background:#a66b47;border:0;box-shadow:0 0 0 8px rgb(166 107 71/.09)}
.journey-page .timeline-list li:hover{transform:translateY(-3px);background:linear-gradient(135deg,rgb(255 252 246/.82),rgb(235 220 202/.55))}
.journey-page .timeline-list li.timeline-current{margin:0;padding:clamp(28px,4vw,52px);background:linear-gradient(135deg,rgb(43 24 16/.95),rgb(105 58 35/.9));border-color:rgb(228 167 121/.28);color:#fff8ef}
.journey-page .timeline-current>strong{color:#e4a779}

@media(max-width:720px){
  .music-page>.ambient-scene,.journey-page>.ambient-scene{height:100svh}
  .music-page main>section:not(.page-hero){background:rgb(10 9 10/.8)!important}
  .journey-page main>section:not(.page-hero),.journey-page main>article{background:rgb(244 241 233/.91)!important}
  .journey-page .timeline-list li,.journey-page .timeline-list li.timeline-current{margin:0;padding:26px 22px;gap:18px}
}

/* Full-site detail and mobile-hardening pass. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{max-width:100%;overscroll-behavior-x:none}
:where(.hero,.hero-copy,.hero-index,.page-hero-grid,.section-heading,.record-intro,.paper-header,.paper-layout,.record-item,.experience-row,.music-editorial,.project-heading,.project-card-layout,.project-source,.contact-main,.site-footer)>*{min-width:0}
:where(h1,h2,h3,.email-link,.contact-lines strong,.project-card a){overflow-wrap:anywhere}
:where(.hero h1,.page-hero h1,.section-heading h2,.record-intro h2,.project-heading h2){text-wrap:balance}
.record-intro h2{overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:pretty}
/* The homepage divider now stops before the author badge instead of drawing
   through it, while the membership record remains high contrast. */
.home .hero-index{border-top:0}
.home .hero-index::before{content:"";position:absolute;left:0;right:min(430px,34vw);top:0;height:1px;background:rgb(255 237 244/.24);pointer-events:none}
.home .hero-index p{color:#f1e2e7;text-shadow:0 1px 18px rgb(26 12 20/.46)}
.home .hero-index strong{color:#fff9fa}
.home .portrait-note{isolation:isolate}

/* Hero markers inherit a page-specific accent instead of the global copper. */
.research-page{--hero-accent:#d5a273}
.projects-page{--hero-accent:#9be277}
.conferences-page{--hero-accent:#dc9566}
.experience-page{--hero-accent:#9dcd82}
.music-page{--hero-accent:#eea477}
.certifications-page{--hero-accent:#d8aa74}
.journey-page{--hero-accent:#d58c62}
.contact-page{--hero-accent:#e29a69}
.inner-page .page-hero .page-index,.inner-page .page-hero .eyebrow{color:var(--hero-accent)}
.inner-page .page-hero .eyebrow::before{background:currentColor}
.projects-page .page-hero::after{border-color:rgb(155 226 119/.3)!important}
.experience-page .page-hero::after{border-color:rgb(157 205 130/.28)!important}
.music-page .page-hero::after{border-color:rgb(238 164 119/.28)!important}

@media(max-width:720px){
  .home .hero-index::before{right:0}
  .home .hero-index p{font-size:8px;color:#f5e7ec}
  .home .hero-index strong{display:block;margin-top:2px}
  .page-hero h1{max-width:100%;font-size:clamp(48px,15.2vw,78px);line-height:.88}
  .page-intro{font-size:16px;line-height:1.55}
  .breadcrumbs{flex-wrap:wrap;row-gap:8px}
  .inner-page main>section:not(.page-hero),.inner-page main>article,.home .overview,.home .latest{backdrop-filter:none}
  .feature,.project-card,.credential-card,.education-card,.honors-grid article,.contact-aside,.profile-groups>div,.credits-grid a{backdrop-filter:none}
  .section-shell{padding-top:82px;padding-bottom:82px}
  .paper-copy p,.music-copy>p:not(.eyebrow),.contact-primary>p:not(.eyebrow){font-size:16px}
  .platform-list strong{font-size:clamp(18px,5.7vw,24px);overflow-wrap:anywhere}
  .stat-grid{gap:8px}.stat-grid div{padding-right:4px}.stat-grid dt{font-size:clamp(28px,9vw,42px)}
  .contact-band{padding-left:20px;padding-right:20px}
  .email-link{font-size:clamp(22px,7.4vw,38px)}
  .contact-lines>a,.contact-lines>div{min-height:88px}
  .terminal-window,.project-card,.credential-card,.education-card,.contact-aside{max-width:100%}
  .terminal-command,.terminal-output{font-size:10px}
  :where(.text-link,.card-link,.link-cluster>a,.org-link,.project-links a,.project-source a,.issuer-links a,.social-strip a,.profile-groups a,.press-list a,.civic-list>a){min-height:44px;display:flex;align-items:center}
  .link-cluster,.project-links,.issuer-links,.social-strip{row-gap:4px}
}

@media(hover:none),(pointer:coarse){
  .hero-portrait:hover img{transform:none;filter:saturate(.72) contrast(1.03) brightness(.9)}
  .project-card:hover,.record-item:hover,.experience-row:hover,.timeline-list li:hover,.press-list a:hover,.civic-list>a:hover{transform:none}
  .threeui-scene{transition-duration:.45s}
}

/* Safari performance pass: these panels are already visually opaque, so
   re-sampling a live WebGL layer through large backdrop blurs adds cost with
   no visible benefit. */
.home .overview,.home .latest,.experience-page main>section:not(.page-hero){backdrop-filter:none;-webkit-backdrop-filter:none}

/* Experience: a calmer editorial record with lightweight paper cards. */
.experience-page main>section:not(.page-hero){background:rgb(232 239 225/.97)!important;box-shadow:0 24px 70px rgb(4 18 5/.18)}
.experience-page .experience-list{display:grid;gap:12px;border:0}
.experience-page .experience-row{position:relative;grid-template-columns:minmax(150px,.38fr) minmax(0,1.62fr);padding:clamp(28px,4vw,48px);border:1px solid rgb(71 114 58/.2);border-radius:20px;background:linear-gradient(135deg,rgb(255 255 255/.58),rgb(221 234 212/.62));overflow:hidden;transition:border-color .22s ease,background .22s ease}
.experience-page .experience-row::before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:3px;border-radius:0 3px 3px 0;background:var(--accent);opacity:.58}
.experience-page .experience-row:hover{transform:none;border-color:rgb(71 114 58/.42);background:linear-gradient(135deg,rgb(255 255 255/.72),rgb(221 234 212/.74))}
.experience-page .experience-row>div:first-child{align-content:start}
.experience-page .experience-row>div:first-child span{color:var(--accent);font-size:11px;font-weight:500}

@media(max-width:720px){
  .experience-page .experience-row{grid-template-columns:1fr;padding:26px 22px;gap:22px}
  .experience-page .experience-row::before{top:18px;bottom:18px}
}
