.hero-affiliation { margin:18px auto 20px; width:min(248px,64vw); }
.hero-affiliation img { display:block; width:100%; height:auto; mix-blend-mode:multiply; }
.demo-heading { margin:32px auto 20px; text-align:center; text-wrap:balance; }
.demo-summary {max-width:820px;margin:-8px auto 24px;color:var(--mute);text-align:center;font:16px/1.65 var(--sans);text-wrap:pretty;}
.demo-summary strong {color:var(--ink);}
.abstract-section h2 {font:500 34px/1.6 var(--sans);letter-spacing:-.035em;}
.abstract-section p + p {margin-top:18px;}
.demo-heading + .intro-video,.demo-summary + .intro-video { margin-top:0; }
.project-footer {padding:28px 24px;background:transparent;color:var(--mute);text-align:center;font:14px/1.6 var(--sans);}
.project-footer p {margin:0;}
@media(max-width:480px) { .demo-heading {margin-top:28px;margin-bottom:16px;max-width:26ch;} }
.fps-bubble-grid.balanced-gallery { display:grid; grid-template-columns:repeat(var(--gallery-rails),minmax(0,1fr)); width:100%; max-width:var(--gallery-max-width); box-sizing:border-box; margin:0 auto; gap:36px 32px; }
.balanced-gallery > .fps-bubble-float { width:100%; max-width:none; min-width:0; }
@media(max-width:1000px) { .fps-bubble-grid.balanced-gallery {gap:28px 24px;} }
@media(max-width:640px) { .hero-affiliation {width:210px; margin:14px auto 16px;} .fps-bubble-grid.balanced-gallery {gap:24px 16px;} }

/* Compact publication identity; the demo supplies the opening image. */
.publication-hero {padding-top:44px;}
.publication-hero>.container {max-width:980px;}
.publication-hero h1 {font-size:clamp(40px,5vw,64px);letter-spacing:-.045em;}
.hero-credits {display:flex;align-items:center;justify-content:center;gap:16px;margin:14px auto 0;}
.hero-credits .hero-affiliation {width:110px;margin:0;flex:none;}
.hero-credits .authors {margin:0;padding-left:16px;border-left:1px solid #20394730;font:16px/1.5 var(--sans);}
.hero-credits .author-name,.hero-credits .author-name:hover {color:#53616b;font-weight:400;}
.team-toggle {display:inline-block;padding:0;border:0;background:transparent;font:inherit;cursor:pointer;text-decoration:none;}
.team-toggle:focus-visible,.team-members a:focus-visible {outline:2px solid var(--mai-blue-dark);outline-offset:5px;}
.team-members {display:flex;justify-content:center;gap:20px;list-style:none;padding:0;margin:22px auto;}
.team-members[hidden] {display:none;}
.team-members li {margin:0;padding:0;}
.team-members a {display:block;border-radius:50%;}
.team-members img {display:block;width:64px;height:64px;object-fit:cover;border-radius:50%;border:2px solid #ffffffb3;box-shadow:0 3px 12px #26354220;}
.team-members a:hover img {border-color:var(--mai-blue-dark);}
.publication-hero .publication-links {margin-top:14px;gap:10px;}
.publication-hero .publication-links a {min-height:34px;padding:7px 15px;border-color:#293c4938;background:#ffffff35;color:#293c49;font:14px/1.3 var(--sans);}
.publication-hero .publication-links a:hover {background:#ffffff80;border-color:#293c4970;}
.publication-hero .intro-video {border-radius:20px;border-color:#ffffff60;box-shadow:0 16px 48px -22px #26354270;}
.publication-hero .demo-load {top:auto;left:24px;bottom:24px;transform:none;display:flex;align-items:center;gap:9px;padding:12px 20px;border-color:#ffffffa6;background:#f9fcffe0;color:#24333f;backdrop-filter:blur(14px);box-shadow:0 4px 20px #0002;font-weight:500;transition:background .2s,box-shadow .2s;}
.publication-hero .demo-load::before {content:'▶';font-size:11px;}
.publication-hero .demo-load:hover {background:#fff;box-shadow:0 5px 24px #0003;}
.publication-hero .demo-load[hidden] {display:none;}
.publication-hero .demo-status {bottom:84px;pointer-events:none;}
@media(max-width:640px){
 .demo-summary {font-size:14px;margin-bottom:20px;}
 .abstract-section h2 {font-size:29px;}
 .publication-hero {padding-top:30px;}
 .publication-hero>.container {width:calc(100% - 28px);}
 .hero-credits {gap:12px;margin-top:12px;}
 .hero-credits .hero-affiliation {width:94px;}
 .hero-credits .authors {padding-left:12px;font-size:14px;}
 .team-members {gap:12px;margin:18px auto;}
 .team-members img {width:48px;height:48px;}
 .publication-hero .intro-video {border-radius:15px;}
 .publication-hero .demo-load {left:14px;bottom:14px;padding:9px 14px;font-size:14px;}
 .publication-hero .demo-status {bottom:64px;}
}
