/* The same schematic connects card and project page in either direction.
   Only one visible copy gets a name when a Quick look dialog is open. */
@media(prefers-reduced-motion:no-preference) {
  @view-transition { navigation:auto; }
  .header { view-transition-name:site-header; }
  .project-art .project-visual,.standalone .detail-art .project-visual,.project-dialog[open] .project-visual { view-transition-name:var(--art-transition); }
  body:has(.project-dialog[open]) .project-art .project-visual { view-transition-name:none; }
}
::view-transition { pointer-events:none; }
::view-transition-group(*) { animation-duration:var(--comparison); animation-timing-function:var(--ease); }
::view-transition-group(site-header) { animation:none; }
::view-transition-old(*),::view-transition-new(*) { animation-timing-function:var(--ease); }
::view-transition-old(*):only-child,::view-transition-new(*):only-child { animation-duration:var(--transition); }
::view-transition-old(root) { animation:page-leave var(--transition) var(--ease) both; }
::view-transition-new(root) { animation:page-arrive var(--transition) var(--ease) both; }
@keyframes page-leave { to { opacity:0; } }
@keyframes page-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media(min-width:1100px) { .study-controls .range-label { margin-left:auto; } }
@media(max-width:1099px) {
  .header { gap:24px; } .nav { gap:8px 20px; }
  .hero-grid { grid-template-columns:1fr; gap:32px; }
  .hero-copy { display:block; max-width:760px; }
  .hero h1 { max-width:13ch; font-size:clamp(60px,9vw,88px); }
  .hero-intro { max-width:60ch; }
  .study { width:100%; } .stage { aspect-ratio:1.8; }
  .study-controls { gap:8px 16px; }
  .project-card { gap:32px; }
  .section-heading { align-items:start; }
  .section-heading>.text-link { flex:initial; }
  .perspective-inner,.about-grid,.contact { gap:32px; }
  .perspective-inner { padding:32px; }
}
@media(max-width:739px) {
  :root { --gutter:20px; }
  .header { flex-direction:column; align-items:stretch; gap:12px; padding-block:20px 12px; }
  .identity { gap:12px; } .nav { justify-content:space-between; gap:4px 12px; }
  .hero-kicker { flex-wrap:wrap; gap:8px; }
  .hero-grid { padding-block:32px; }
  .profile-name { font-size:1.5rem; }
  .hero h1 { font-size:clamp(48px,12vw,80px); max-width:10ch; margin-block:24px; }
  .hero-intro { font-size:1rem; }
  .hero-actions { gap:12px 20px; }
  .stage { aspect-ratio:1.15; }
  .stage-label.top { left:24px; top:24px; }
  .stage-label.bottom { right:24px; bottom:24px; }
  .study-controls { gap:12px 8px; padding:12px; }
  .range-label { width:100%; justify-content:space-between; }
  input[type=range] { flex:1; max-width:160px; min-width:60px; }
  .research-axes { grid-template-columns:1fr; }
  .axis { padding:12px 0; } .axis+.axis { border-left:0; border-top:1px solid var(--rule); padding-left:0; }
  .section { padding-top:64px; }
  .section-heading { flex-direction:column; gap:20px; margin-bottom:24px; }
  .section-heading::after { bottom:-25px; }
  .heading-note { max-width:42ch; }
  .project { padding:24px 0 32px; }
  .project-card { grid-template-columns:1fr; gap:24px; }
  .project .project-art,.project:nth-of-type(even) .project-art { order:0; }
  .project .project-content { order:1; }
  .detail-art figcaption { padding:12px; }
  .publication { grid-template-columns:1fr; gap:12px; padding:24px 0; }
  .publication-links { justify-self:start; }
  .perspective { margin-top:48px; }
  .perspective-inner { grid-template-columns:1fr; gap:32px; padding:32px 24px; }
  .perspective h2 { max-width:16ch; }
  .about-grid,.contact { grid-template-columns:1fr; gap:24px; }
  .about-location { margin-top:16px; }
  .about-copy>p { font-size:1rem; }
  .education li { grid-template-columns:1fr; gap:8px; }
  .contact { margin-top:48px; }
  .footer { flex-wrap:wrap; gap:16px 24px; } .footer>span:first-child { flex-basis:100%; }
  .project-dialog { width:calc(100% - 24px); max-height:92dvh; }
  .dialog-top { padding:12px; }
  .detail { padding:24px 16px; }
}
@media(prefers-reduced-motion:reduce) {
  @view-transition { navigation:none; }
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .tele-aloha-caller { opacity:1; }
  #play-geometry { display:none; }
  .project-card,.text-link:is(:hover,:focus-visible) span,.button:is(:hover,:focus-visible) span,.project:is(:hover,:focus-within) .project-arrow,.footer>a:is(:hover,:focus-visible) span,.button:active,.small-button:active,.close-button:active { transform:none; }
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none!important; }
}
@media print {
  .nav,.study-controls,.hero-actions,.project-dialog,.back-link { display:none!important; }
  .project-card { transform:none!important; box-shadow:none!important; }
  .wrap { padding:0; } body { border:0; font-size:11pt; }
  .hero-grid { grid-template-columns:1fr 1fr; gap:24px; } .hero h1 { font-size:48px; }
  .section { padding-top:32px; } .project,.publication,.education li { break-inside:avoid; }
  .perspective { print-color-adjust:exact; } .contact { margin-top:32px; }
}
