/* Bright editorial direction, 2026-09-27. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Sans:wght@400;500;600;700&display=swap');
:root {
  --bg:#fcfcfa; --bg-2:#f4f6fb; --cyan:#294bc3; --amber:#9a5a35;
  --violet:#626eb1; --ink:#1d2948; --ink-2:#46516b; --ink-3:#69748d;
  --line:#dce1ea; --serif:'Instrument Sans',Arial,sans-serif;
  --mono:'DM Sans',Arial,sans-serif;
}
body { font-family:var(--serif); cursor:auto; font-size:16px; line-height:1.62; }
.cursor,.cursor-ring { display:none!important; }
a,button,select { cursor:pointer; }
a:focus-visible,button:focus-visible,select:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }
::selection { background:#dce5ff; color:var(--ink); }
nav,nav.site { background:rgba(252,252,250,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); padding:1.25rem max(2.5rem,calc((100vw - 1320px)/2)); }
.nav-brand { font-family:var(--serif); font-weight:600; font-size:1.05rem; letter-spacing:-.035em; text-transform:none; }
.nav-links { gap:clamp(.7rem,1.7vw,1.8rem); }
.nav-links a { font-family:var(--mono); font-size:.78rem; letter-spacing:0; text-transform:none; font-weight:500; color:var(--ink-2); }
.nav-links a:hover,.nav-links a.active { color:var(--cyan); }
.nav-toggle { border-color:var(--line); font-family:var(--mono); letter-spacing:0; border-radius:3px; }
section { padding-top:6.5rem; padding-bottom:6.5rem; }
.eyebrow,.hero-eyebrow { font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; color:var(--cyan); opacity:1; }
.section-title,.page-title { font-family:var(--serif); font-weight:500; letter-spacing:-.05em; line-height:1.08; }
.section-title em,.page-title em { font-style:normal; -webkit-text-stroke:0; -webkit-text-fill-color:currentColor; color:var(--cyan); }
.lead,.page-lead,.life-intro { font-family:var(--serif); font-style:normal; letter-spacing:-.015em; }
.page-title { color:var(--cyan); }
.page-lead { color:var(--ink-2); }
.page-head { padding-top:10rem; }
p,.card-text,.life-card .text { color:var(--ink-2); }
.inline-link,.pubs-list a,.awards-list a,.pub a { color:var(--cyan); border-color:var(--cyan); }
.inline-link:hover,.pubs-list a:hover,.pub a:hover { color:var(--ink); border-color:var(--ink); }
.back-home { border-color:var(--line); }
.card,.life-card,.project-card { background:#fff; border-color:var(--line); border-radius:4px; box-shadow:0 7px 34px rgba(36,55,91,.035); }
.card:hover,.life-card:hover { border-color:#adbbed; }
.card-title,.life-card .title,.sub-heading,.awards-list .name,.pubs-list .title,.pub .pub-title,.area-card h3,.kv-list .val,.timeline .ev,.project-card h2 { font-family:var(--serif); font-weight:500; letter-spacing:-.03em; }
.stat .num { font-family:var(--serif); font-weight:500; letter-spacing:-.06em; }
.credentials .value { font-family:var(--serif); }
.blockquote { font-family:var(--serif); font-style:normal; border-color:var(--cyan); }
.btn { font-family:var(--mono); font-weight:600; font-size:.78rem; letter-spacing:0; text-transform:none; border:1px solid var(--cyan); color:var(--cyan); border-radius:3px; }
.btn:hover { background:var(--cyan); color:#fff; }
.life-photo,.marketing-hero img,.music-archive img,.gallery .tile img,.feature-img,.archive .tile img { filter:none; border-color:var(--line); }
.gallery .tile:hover img,.archive .tile:hover img { filter:none; }
.archive .tile img { background:var(--bg-2); }
.marketing-hero .caption,.music-archive .caption,.gallery .tile .caption,.figure .cap { opacity:1; }
.research-bg,.tech-bg,#music-bg-canvas { display:none; }
.contact-section::before { background:radial-gradient(circle,rgba(41,75,195,.07),transparent 70%); }
.contact-section .section-title em { color:var(--cyan)!important; -webkit-text-stroke:0!important; }
.contact-links a { border-color:var(--line); }
footer.site .right,footer .right { opacity:1; color:var(--cyan); }
.hero { height:auto; min-height:min(850px,100svh); max-width:100%; padding:7.5rem 2.5rem 4rem; align-items:center; overflow:hidden; }
#neural-canvas,#waveform-canvas { display:none; }
.hero-stage { width:min(100%,1320px); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.75fr); align-items:center; gap:clamp(2rem,5vw,6.5rem); }
.hero-content { max-width:none; width:100%; text-align:left; padding:0; }
.hero-eyebrow { margin-bottom:2.1rem; letter-spacing:.2em; }
.hero-name { font-family:var(--serif); color:var(--cyan); font-weight:400; font-size:clamp(4.25rem,9vw,8.75rem); line-height:.94; letter-spacing:-.08em; margin-bottom:2.4rem; }
.hero-name .last { font-style:normal; -webkit-text-stroke:0; -webkit-text-fill-color:currentColor; }
.hero-subline { font-family:var(--serif); font-style:normal; font-size:clamp(1.12rem,1.7vw,1.5rem); line-height:1.42; color:var(--ink); margin:0 0 2rem; max-width:34ch; letter-spacing:-.025em; }
.typewriter { font-family:var(--mono); color:var(--cyan); letter-spacing:.06em; text-transform:none; }
.typewriter::after { color:var(--cyan); }
.hero-portrait { margin:0; width:100%; max-width:390px; justify-self:end; }
.hero-portrait img { width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; border-radius:3px; }
.hero-portrait figcaption { color:var(--ink-3); font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; margin:.8rem 0 0; }
.physio-graphic { display:block; width:100%; height:auto; margin-top:2rem; overflow:visible; }
.physio-graphic path { fill:none; stroke:var(--cyan); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.physio-graphic .faint { stroke:#a5b4e7; stroke-width:.9; }
.physio-graphic .guide { stroke:var(--line); stroke-width:.7; }
.scroll-indicator { color:var(--ink-3); bottom:1.5rem; right:.75rem; }
.scroll-indicator .line { background:linear-gradient(180deg,var(--cyan),transparent); }
.about-grid { grid-template-columns:minmax(0,1fr); }
.about-text { max-width:900px; }
#about,#research,#marketing,#music,#signal,#contact { border-top:1px solid var(--line); }
.cursor-trail-canvas { position:fixed; inset:0; z-index:9997; width:100%; height:100%; pointer-events:none; }
@media(max-width:1050px) {
  nav,nav.site { padding-left:1.5rem; padding-right:1.5rem; }
  .hero-stage { grid-template-columns:minmax(0,1fr) minmax(240px,.7fr); gap:2rem; }
  .hero-name { font-size:clamp(4.15rem,8.4vw,7rem); }
}
@media(max-width:768px) {
  nav,nav.site { padding:1rem 1.25rem; }
  .nav-links { background:rgba(252,252,250,.98); border-color:var(--line); }
  .hero { padding:8.5rem 1.25rem 4rem; min-height:auto; }
  .hero-stage { grid-template-columns:1fr; gap:3rem; }
  .hero-name { font-size:clamp(4rem,14vw,6.25rem); }
  .hero-portrait { justify-self:start; max-width:min(100%,390px); }
  .scroll-indicator { display:none; }
  section { padding-top:4.5rem; padding-bottom:4.5rem; }
  .page-head { padding-top:8.5rem; }
}
@media(max-width:480px) {
  .hero-name { font-size:clamp(3.55rem,14vw,4.8rem); }
  .hero-eyebrow { margin-bottom:1.6rem; }
  .hero-subline { font-size:1.12rem; }
  .hero-portrait { max-width:100%; }
  .physio-graphic { margin-top:1.3rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .reveal,.reveal.visible { opacity:1; transform:none; transition:none; }
  .card,.life-card,.nav-links a,.btn { transition:none; }
}

/* Editorial signal, score, and exploration illustrations, 2026-09-27. */
.physio-graphic .eeg-trace { stroke:#6a79b5; stroke-width:1.35; opacity:.94; }
.physio-graphic .audio-trace { stroke:var(--cyan); stroke-width:1.15; opacity:.82; }
.physio-graphic .breath-trace { stroke:#8296c5; stroke-width:1.4; }
.physio-graphic .ecg-trace { stroke:var(--cyan); stroke-width:1.2; }
.music-photo {
  margin:0; width:100%; max-width:440px; aspect-ratio:1; overflow:hidden;
  border:1px solid var(--line); border-radius:4px; background:var(--bg-2);
  box-shadow:0 14px 38px rgba(36,55,91,.04);
}
.music-photo img {
  display:block; width:110%; height:auto; max-width:none;
  margin-left:-5%;
}
.life-card { overflow:hidden; }
.life-card .life-photo {
  width:calc(100% + 4rem); max-width:none; height:auto; aspect-ratio:4 / 3;
  margin:-2rem -2rem 1.5rem; object-fit:contain; object-position:center;
  background:var(--bg-2); filter:none; border-bottom:1px solid var(--line);
}
.life-card .life-photo-motorcycle { object-fit:cover; object-position:center; }
.life-card .title a { color:inherit; text-decoration:none; }
.life-card .title a::after { content:"↗"; color:var(--cyan); font:0.7em var(--mono); margin-left:0.35em; vertical-align:0.2em; }
.life-card .title a:hover { color:var(--cyan); }
.mini-graphic { display:block; width:100%; height:70px; margin-top:auto; overflow:visible; }
.mini-graphic path { fill:none; stroke-linecap:round; stroke-linejoin:round; }
.terrain-guide,.depth-guide { stroke:#d6deee; stroke-width:1; }
.terrain-base { stroke:#c5d1eb; stroke-width:1.5; }
.terrain-route { stroke:var(--cyan); stroke-width:2; stroke-dasharray:420; stroke-dashoffset:420; animation:traceRoute 7s ease-in-out infinite alternate; }
.route-start { fill:#fff; stroke:var(--cyan); stroke-width:2; }
.route-end { fill:var(--cyan); }
@keyframes traceRoute { to { stroke-dashoffset:0; } }
.waterline { stroke:#8aa8d1; stroke-width:1.5; }
.bubble { fill:none; stroke:var(--cyan); stroke-width:1.4; animation:bubbleRise 3.8s ease-in infinite; }
.b2 { animation-delay:.7s; } .b3 { animation-delay:1.4s; } .b4 { animation-delay:2.1s; }
@keyframes bubbleRise { 0% { transform:translateY(8px); opacity:0; } 25% { opacity:.9; } 100% { transform:translateY(-26px); opacity:0; } }
.contour { stroke:#aebddc; stroke-width:1; }
.adventure-route { stroke:var(--cyan); stroke-width:1.8; stroke-dasharray:4 5; animation:mapFlow 12s linear infinite; }
@keyframes mapFlow { to { stroke-dashoffset:-108; } }
.theme-feature { max-width:720px; }
.theme-feature img { filter:none; }
.gallery.tight .tile.show-full img { background:var(--bg-2); }
@media (prefers-reduced-motion:reduce) {
  .terrain-route,.bubble,.adventure-route { animation:none; }
  .terrain-route { stroke-dashoffset:0; }
  .bubble { opacity:.8; }
}
/* Content links should read at the same size as surrounding body copy. */
.pubs-list a, .awards-list a, .pub a, .link-row a {
  font-family: inherit;
  font-size: 1em;
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--cyan);
  border-bottom: 1px dotted var(--cyan);
}
main p a:not(.btn) {
  font-family: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  color: var(--cyan);
  border-bottom: 1px dotted var(--cyan);
}
.pubs-list a:hover, .awards-list a:hover, .pub a:hover,
.link-row a:hover, main p a:not(.btn):hover {
  color: var(--ink);
  border-color: var(--ink);
}
.btn, .back-home, .contact-links a, .file-links a, .social-link {
  font-size: 1em;
  letter-spacing: 0;
  line-height: 1.5;
}
.back-home, .contact-links a {
  color: var(--cyan);
  border-bottom: 1px dotted var(--cyan);
  text-transform: none;
}
.back-home:hover, .contact-links a:hover {
  color: var(--ink);
  border-color: var(--ink);
}
.file-links a, .social-link { color: var(--cyan); }
.social-link { overflow-wrap: anywhere; }
