/* One visual language, from the opening scene to the programme. */
:root { --surface:#121212; --surface-raised:#191919; --stroke:#ffffff1c; --secondary:#a3a3a3; }
html.home-scroll { scroll-snap-type:none; scroll-padding:0; }
body { background:#080808; color:#f3f3f3; }
.home-section { position:relative; scroll-snap-align:none; scroll-snap-stop:normal; }
.site-header { transition:color .35s,background .35s; }
.home-page[data-tone=dark] .site-header { background:#080808b8; backdrop-filter:blur(16px); border-radius:18px; }
.inner-page .site-header { background:#080808eb; color:white; border-color:var(--stroke); }
.inner-page .brand img { filter:brightness(0) invert(1); }
.inner-page .header-program { box-shadow:none; }
.home-page[data-tone=light] .site-header { background:#eaeaeaeb; color:#101010; }
.site-footer { background:#080808; border-top:1px solid var(--stroke); }
.button { border-radius:14px; }

/* Native scrolling drives a short architectural camera move, then a soft handoff. */
.hero { height:170svh; min-height:0; padding:0; background:#080808; }
.hero .hero-frame {
  position:sticky; top:0; height:100svh; min-height:600px; isolation:isolate;
  border-radius:calc(var(--hero-progress,0) * 36px);
  transform:scale(calc(1 - var(--hero-progress,0) * .025));
  transform-origin:center 70%; overflow:hidden;
}
.hero .hero-frame::after {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
  animation:none; mix-blend-mode:screen;
}
.hero .hero-shade { z-index:1; background:linear-gradient(0deg,#080808 0%,transparent 23%,transparent 72%,#08080888),radial-gradient(ellipse at 50% 52%,transparent 20%,#08080899 90%); }
.cinema-stage { opacity:clamp(.25,calc(1.95 - var(--hero-progress,0) * 1.5),1); }
.cinema-poster { inset:0; width:100%; height:100%; object-fit:cover; opacity:1; }
.hero .hero-content {
  top:13%; bottom:auto; left:5%; right:5%; text-align:center; z-index:2;
  transform:translateY(calc(var(--hero-progress,0) * -65px));
  opacity:clamp(0,calc(1 - var(--hero-progress,0) * 1.5),1);
}
.hero .hero-content > .eyebrow { margin-bottom:25px; color:#b9b9b9; font-size:8px; letter-spacing:.16em; }
.hero h1 { font-size:clamp(105px,14.2vw,220px); line-height:.9; letter-spacing:-.075em; max-width:none; font-weight:500; }
.hero-identity { text-shadow:0 1px 12px #000,0 1px 3px #000; margin-top:20px; font-size:clamp(13px,1.2vw,19px); letter-spacing:.025em; color:#e0e0e0; }
.hero .hero-foot { z-index:3; bottom:28px; font-size:7px; }
.cinema-explore { bottom:30px; right:50%; translate:50% 0; z-index:3; flex-direction:column; gap:14px; font-size:8px; letter-spacing:.04em; }
.cinema-explore > span:last-child { width:30px; height:30px; font-size:19px; border-color:#ffffff33; }

.soul-stage { z-index:2; height:100svh; min-height:700px; padding:12px; margin-top:-14svh; background:transparent; color:white; }
.soul-frame { background:#111; border-radius:32px; transform:none; border:1px solid var(--stroke); box-shadow:none; }
.soul-column { background:#151515; translate:0 calc((1 - var(--souls-reveal,1)) * var(--soul-lift,32px)); }
.soul-column:nth-child(2) { --soul-lift:48px; }
.soul-column:nth-child(3) { --soul-lift:64px; }
.soul-column:nth-child(4) { --soul-lift:80px; }
.soul-column + .soul-column { border-color:#ffffff26; }
.soul-column::after { background:linear-gradient(#08080899,transparent 50%,#080808b0); }
.soul-background { filter:saturate(.5) brightness(.63); }
.soul-column.is-active .soul-background { filter:saturate(.65) brightness(.62); }
.soul-column.is-active::after { background:linear-gradient(90deg,#080808db,#08080818),linear-gradient(#08080866,transparent 45%,#08080855); }
.soul-column.is-active .soul-vertical,.soul-detail h4>span:last-child { color:white; }
.soul-tags>span { background:#ffffff0b; border-color:#ffffff38; }
.soul-enter>span { color:#3159ff; }

/* The calendar now belongs to the same dark, rounded editorial system. */
.booking-screen { height:auto; min-height:0; padding:110px 5% 100px; gap:45px; background:#080808; }
.home-booking-heading { padding-bottom:32px; border-bottom:1px solid var(--stroke); }
.home-booking-heading h2 { font-size:clamp(42px,5vw,76px); line-height:1.07; }
.home-booking-heading h2 em { color:#f3f3f3; margin-left:.1em; }
.home-booking-heading .eyebrow { color:var(--secondary); }
.booking-home-star { color:#3159ff; font-size:90px; }
.agenda { --calendar-line:var(--stroke); color:#f3f3f3; }
.agenda-layout { grid-template-columns:300px minmax(0,1fr); gap:30px; }
.agenda-month-view { background:var(--surface); border-color:var(--stroke); border-radius:24px; padding:24px; }
.agenda-filters>button,.agenda-month-open { background:var(--surface); border-color:var(--stroke); color:#b7b7b7; }
.agenda-filters>button.active { background:white; border-color:white; color:#111; }
.agenda-filters>button:hover { border-color:#888; color:white; }
.agenda-filters>button.active:hover { color:#111; }
.month-navigation>button { border-color:var(--stroke); color:white; }
.calendar-day { color:#888; }
.calendar-day.has-events { color:#f2f2f2; }
.calendar-day:hover { background:#292929; }
.calendar-day.is-selected { color:white; background:#3159ff; }
.calendar-weekdays,.calendar-key,.agenda-day-heading>span,.day-event-category,.agenda-demo-note { color:var(--secondary); }
.dot-cinema { background:#ddd; }.dot-teatro { background:#929292; }.dot-eventi { background:#777; }
.calendar-motto { margin:24px -24px -24px; padding:22px 24px; background:#1d1d1d; border-top:1px solid var(--stroke); }
.calendar-motto>span:first-child,.calendar-motto>span:last-child { color:#3159ff; }
.day-program { overflow:visible; height:auto; max-height:none; }
.day-event { padding:22px; background:var(--surface); border-color:var(--stroke); border-radius:24px; grid-template-columns:150px minmax(0,1fr); gap:25px; }
.day-event-image,.day-event-image img { min-height:150px; }
.day-event-title { font-size:31px; }
.day-event-copy>p { color:var(--secondary); }
.day-event-title>span { color:#9eafff; }
.category-tag,.tag-cinema,.tag-teatro,.tag-eventi { background:#252525; color:#d6d6d6; }
.time-slot { border-color:#ffffff30; color:white; background:#ffffff04; border-radius:10px; padding:10px 13px; }
.time-slot>span { color:#9aafff; }
.time-slot:hover { background:#3159ff; border-color:#3159ff; }
.agenda-empty { background:#111; border-color:#444; }
.agenda-empty p { color:var(--secondary); }
.agenda-calendar-dialog { background:#141414; color:white; border:1px solid #393939; }
.agenda-calendar-dialog .dialog-close { color:white; border-color:#666; }
.agenda-page-heading .eyebrow { color:var(--secondary); }
.agenda-page-heading h1 em { color:#f2f2f2; }
.agenda-page-heading>div>p { color:var(--secondary); }
.agenda-promo { background:var(--surface); border:1px solid var(--stroke); }
.agenda-promo>span:first-child,.agenda-promo>span:last-child { color:#3159ff; }
.other-souls { border-color:var(--stroke); }
.other-souls .eyebrow { color:var(--secondary); }
.other-souls a { color:white; }

/* Corporate: the conversation starts on the page. */
.corporate-screen { height:auto; padding:12px; background:#080808; }
.blue-feature-card { height:auto; min-height:0; padding:100px 5% 75px; background:#111; border:1px solid var(--stroke); border-radius:32px; transform:none; }
.blue-feature-kicker { color:var(--secondary); margin-bottom:55px; font-size:8px; }
.corporate-layout { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }
.blue-feature-copy { max-width:none; align-self:stretch; display:flex; flex-direction:column; align-items:flex-start; }
.blue-feature-copy h2,.editorial-corporate .blue-feature-copy h2 { font-size:clamp(44px,4.8vw,76px); line-height:1.06; }
.blue-feature-copy p { color:#a7a7a7; max-width:360px; font-size:12px; margin-top:28px; }
.feature-asterisk,.editorial-corporate .feature-asterisk { position:relative; inset:auto; opacity:1; font-size:80px; margin-bottom:35px; color:#3159ff; }
.feature-big-arrow,.editorial-corporate .feature-big-arrow { position:relative; inset:auto; font-size:120px; color:#3159ff; margin-top:auto; padding-top:28px; }
.blue-feature-copy .feature-formats { position:static; color:var(--secondary); margin-top:28px; font-size:7px; }
.enquiry-panel { padding:34px; border:1px solid var(--stroke); border-radius:24px; background:#181818; }
.enquiry-panel > .eyebrow { font-size:8px; letter-spacing:.1em; color:#aaa; }
.enquiry-panel form { margin-top:30px; display:flex; flex-direction:column; gap:21px; }
.enquiry-panel form[hidden],.enquiry-success[hidden] { display:none; }
.enquiry-fields { display:grid; grid-template-columns:1fr 1fr; gap:21px 16px; }
.enquiry-panel label { display:flex; flex-direction:column; gap:10px; font-size:10px; color:#d0d0d0; }
.enquiry-panel input,.enquiry-panel select,.enquiry-panel textarea {
  width:100%; min-width:0; background:#202020; border:1px solid #ffffff20; border-radius:12px;
  color:white; font-size:11px; padding:14px; color-scheme:dark; transition:border-color .3s,background .3s;
}
.enquiry-panel input:focus,.enquiry-panel select:focus,.enquiry-panel textarea:focus { border-color:#637fff; background:#252525; outline:1px solid #637fff; outline-offset:2px; }
.enquiry-panel .optional-label { display:inline; font-size:8px; color:#888; margin-top:-6px; }
.enquiry-panel label:has(.optional-label) { position:relative; }
.enquiry-panel label:has(.optional-label) .optional-label { position:absolute; left:95px; top:8px; }
.enquiry-panel input::placeholder,.enquiry-panel textarea::placeholder { color:#858585; }
.enquiry-submit { width:100%; display:flex; align-items:center; justify-content:space-between; background:#3159ff; color:white; font-size:12px; padding:17px 20px; }
.enquiry-submit:hover { background:#4569ff; }
.enquiry-panel .form-note { color:#929292; font-size:8px; }
.enquiry-success { padding:55px 0; }
.enquiry-success>span { color:#3159ff; font-size:65px; }
.enquiry-success h3 { font-size:43px; margin:25px 0; line-height:1.07; letter-spacing:-.04em; }
.enquiry-success p { color:#b3b3b3; font-size:12px; margin-bottom:25px; }
.enquiry-success .text-link { color:white; font-size:11px; }
.editorial-corporate .blue-feature-card { padding:50px; }
.editorial-corporate .blue-feature-kicker { margin-bottom:40px; }

/* A light final chapter on the same monochrome foundation. */
.project-screen { height:auto; min-height:calc(100svh - 24px); margin:12px; padding:95px 4.5% 0; background:#eaeaea; color:#111; border-radius:32px; }
.project-screen::before { content:none; }
.project-layout { min-height:490px; padding-bottom:75px; }
.project-copy h2 { font-size:clamp(43px,4.8vw,76px); }
.project-copy h2>span { color:#111; }
.project-copy>.eyebrow { color:#6a6a6a; }
.project-copy>p { color:#666; }
.project-visual { box-shadow:none; }
.project-visual>img { filter:saturate(.45); }
.project-visual figcaption { background:#111b; border-color:#ffffff30; }
.project-screen .site-footer { background:transparent; border-color:#0002; }
.project-page .project-page-intro>p,.project-story p,.project-source-note { color:#aaa; }
.project-page .project-story { border-color:var(--stroke); }

/* Event details and utility forms share the same surfaces. The hall stays on paper. */
.booking-event-heading>div>p,.back-link,.booking-step-heading p,.booking-demo-note { color:#aaa; }
.booking-step-heading>span { border-color:#ffffff30; }
.booking-session-controls select { background:#171717; color:white; border-color:#ffffff30; color-scheme:dark; }
.book-time { background:#171717; border-color:#ffffff30; color:white; }
.book-time.active { background:#3159ff; color:white; border-color:#3159ff; }
.booking-summary { background:#151515; border-color:var(--stroke); color:white; }
.booking-summary h2 em,.summary-datetime,.booking-price,.booking-demo-note { color:#aaa; }
.booking-summary h3,.booking-total { color:white; }
.summary-seats,.booking-price,.booking-total { border-color:var(--stroke); }
.seat-map-card { background:#f6f6f6; color:#161616; border-color:#333; }
.seat-alternative select { background:white; color:#111; }
.booking-workspace .seat-map-toolbar,.seat-legend,.map-source-note { color:#555; }
.contact-dialog { color:#171717; }
.not-found { color:white; }

@media (max-width:1100px) {
  .corporate-layout { gap:5%; }
  .enquiry-panel { padding:26px; }
  .enquiry-fields { grid-template-columns:1fr; gap:18px; }
  .blue-feature-copy h2,.editorial-corporate .blue-feature-copy h2 { font-size:48px; }
}
@media (max-width:760px) {
  .hero { height:155svh; }
  .hero .hero-frame { min-height:560px; }
  .hero .hero-content { top:25%; bottom:auto; left:5%; right:5%; }
  .hero h1 { font-size:clamp(75px,21.7vw,155px); }
  .hero .hero-content>.eyebrow { font-size:6px; margin-bottom:18px; }
  .hero-identity { font-size:12px; margin-top:17px; }
  .hero .hero-foot { bottom:22px; left:7%; right:7%; font-size:4px; }
  .cinema-explore { left:50%; right:auto; translate:-50% 0; bottom:65px; width:max-content; gap:12px; flex-direction:column; font-size:8px; }
  .cinema-explore>span:last-child { width:30px; height:30px; font-size:19px; }
  .cinema-poster { inset:0; width:100%; height:100%; object-fit:cover; }
  .soul-stage { padding:8px; margin-top:-10svh; min-height:720px; }
  .soul-frame { border-radius:26px; }
  .booking-screen { padding:75px 7% 65px; gap:30px; }
  .home-booking-heading { align-items:flex-end; padding-bottom:25px; }
  .home-booking-heading h2 { font-size:39px; line-height:1.08; max-width:260px; }
  .home-booking-heading .eyebrow { font-size:6px; }
  .booking-home-star { font-size:45px; margin-bottom:5px; }
  .agenda-layout { grid-template-columns:1fr; }
  .agenda-month-view { display:none; }
  .agenda-toolbar { gap:15px; align-items:flex-start; }
  .agenda-filters { gap:6px; }
  .agenda-filters>button { font-size:8px; padding:8px 10px; }
  .agenda-month-open { display:flex; background:#151515; font-size:9px; padding:10px; }
  .agenda-day-heading h3 { font-size:22px; }
  .strip-day { color:#aaa; border-color:var(--stroke); background:#141414; }
  .strip-day.has-events { color:white; }
  .strip-day.is-selected { color:white; background:#3159ff; }
  .day-event { padding:15px; grid-template-columns:78px minmax(0,1fr); gap:15px; border-radius:20px; }
  .day-event-image,.day-event-image img { min-height:132px; border-radius:12px; }
  .day-event-title { font-size:25px; }
  .time-slot { font-size:10px; padding:8px 10px; gap:10px; }
  .corporate-screen { padding:8px; }
  .blue-feature-card,.editorial-corporate .blue-feature-card { padding:100px 7% 38px; border-radius:26px; }
  .blue-feature-kicker { font-size:5px; margin-bottom:35px; }
  .corporate-layout { grid-template-columns:1fr; gap:35px; }
  .blue-feature-copy h2,.editorial-corporate .blue-feature-copy h2 { font-size:45px; }
  .feature-asterisk,.editorial-corporate .feature-asterisk { font-size:58px; margin-bottom:25px; }
  .blue-feature-copy p { font-size:11px; margin-top:23px; }
  .feature-big-arrow,.editorial-corporate .feature-big-arrow { display:none; }
  .blue-feature-copy .feature-formats { font-size:5px; margin-top:25px; }
  .enquiry-panel { padding:24px 20px; border-radius:20px; }
  .enquiry-fields { grid-template-columns:1fr; }
  .enquiry-panel>.eyebrow { font-size:6px; }
  .enquiry-panel input,.enquiry-panel select,.enquiry-panel textarea { font-size:16px; padding:12px; }
  .enquiry-panel label { font-size:10px; }
  .enquiry-success h3 { font-size:35px; }
  .project-screen { margin:8px; padding:65px 7% 0; border-radius:26px; }
  .project-layout { min-height:0; display:grid; grid-template-columns:1fr; gap:35px; padding-bottom:40px; }
  .project-copy h2 { font-size:42px; }
  .project-copy>p { font-size:12px; }
  .project-copy>.text-link { font-size:11px; }
  .project-visual { height:370px; max-height:none; min-height:0; }
  .project-screen .footer-main>.brand { width:115px; }
  .project-screen .footer-actions,.project-screen .footer-actions button { font-size:8px; }
  .project-screen .footer-base { font-size:5px; }
}
@media (max-width:360px) {
  .home-booking-heading h2 { font-size:34px; }
  .home-booking-heading { gap:10px; }
  .booking-home-star { font-size:35px; }
  .blue-feature-copy h2,.editorial-corporate .blue-feature-copy h2 { font-size:38px; }
  .enquiry-panel { padding:23px 15px; }
  .agenda-toolbar { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  .hero { height:100svh; }
  .hero .hero-frame { transform:none; border-radius:0; }
  .hero .hero-content { opacity:1; transform:none; }
  .cinema-stage { opacity:1; }
  .soul-stage { margin-top:0; }
}

/* A compact floating masthead, with room around the original identity. */
:is(.home-page,.inner-page) .site-header {
  --nav-bg:#111111bd; --nav-ink:#fff; --nav-line:#ffffff24;
  position:fixed; inset:22px auto auto 50%; translate:-50% 0;
  width:min(1160px,calc(100% - 64px)); height:76px; padding:10px 12px 10px 24px;
  display:grid; grid-template-columns:190px minmax(0,1fr) auto; gap:24px;
  color:var(--nav-ink); background:var(--nav-bg); border:1px solid var(--nav-line);
  border-radius:24px; box-shadow:0 10px 35px #00000018; backdrop-filter:blur(24px);
  transition:height .4s var(--ease),background .4s,border-color .4s,box-shadow .4s;
}
:is(.home-page,.inner-page) .site-header.is-scrolled { height:68px; --nav-bg:#111111ed; box-shadow:0 8px 30px #0000002b; }
.home-page[data-tone=light] .site-header { --nav-bg:#eaeaeae8; --nav-ink:#111; --nav-line:#00000020; }
.home-page[data-tone=light] .site-header.is-scrolled { --nav-bg:#eaeaeaf5; }
.site-header>.brand { width:174px; }
.site-header #navigation { justify-content:center; gap:28px; color:inherit; }
.site-header #navigation a { position:relative; font-size:12px; padding:12px 0; text-decoration:none; opacity:.7; transition:opacity .25s; }
.site-header #navigation a:hover,.site-header #navigation a[aria-current] { opacity:1; }
.site-header #navigation a::after { content:''; position:absolute; bottom:5px; left:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.site-header #navigation a:hover::after,.site-header #navigation a[aria-current]::after { transform:scaleX(1); }
:is(.home-page,.inner-page) .site-header .header-program {
  background:white; color:#111; border:0; box-shadow:none; min-height:46px; border-radius:16px;
  font-size:11px; padding:12px 18px; gap:22px; justify-content:space-between;
}
:is(.home-page,.inner-page) .site-header .header-program:hover { background:#e8e8e8; color:#111; }
.home-page[data-tone=light] .site-header .header-program { background:#111; color:white; }
.home-page[data-tone=light] .site-header .header-program:hover { background:#333; color:white; }
.site-header .header-program>span { font-size:20px; }

/* Close the prologue to true black before the next chapter enters. */
.hero,.hero .hero-frame { background:#000; }
.hero-blackout { position:absolute; inset:0; z-index:5; background:#000; opacity:var(--hero-blackout,0); pointer-events:none; }
.soul-stage { margin-top:0; }
.soul-stage-heading { border-bottom:0; padding-bottom:0; }

/* Every event uses the same uncropped portrait artwork, at every viewport. */
.day-event { grid-template-columns:150px minmax(0,1fr); align-items:center; }
.day-event-image {
  width:100%; height:auto; min-height:0; aspect-ratio:4 / 5;
  align-self:start; display:block; overflow:hidden; border-radius:14px;
}
.day-event-image img { display:block; width:100%; height:100%; min-height:0; aspect-ratio:4 / 5; object-fit:contain; }
.day-event:hover .day-event-image img { transform:none; }
.booking-event-heading { grid-template-columns:minmax(0,1fr) 260px; gap:8%; align-items:center; }
.booking-event-heading figure { width:100%; height:auto; min-height:0; aspect-ratio:4 / 5; border-radius:24px; overflow:hidden; }
.booking-event-heading figure img { width:100%; height:100%; min-height:0; aspect-ratio:4 / 5; object-fit:contain; }
@media (max-width:1000px) {
  :is(.home-page,.inner-page) .site-header { width:calc(100% - 48px); grid-template-columns:160px minmax(0,1fr) auto; gap:16px; padding-left:20px; }
  .site-header>.brand { width:150px; }
  .site-header #navigation { gap:20px; }
  .site-header #navigation a { font-size:11px; }
}
@media (max-width:760px) {
  :is(.home-page,.inner-page) .site-header,:is(.home-page,.inner-page) .site-header.is-scrolled {
    inset:14px auto auto 50%; width:calc(100% - 28px); height:66px;
    padding:10px 12px; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; border-radius:20px;
  }
  .site-header>.brand { width:clamp(114px,30vw,138px); }
  :is(.home-page,.inner-page) .site-header .header-program { min-height:42px; font-size:10px; padding:10px 12px; gap:12px; border-radius:12px; margin:0; }
  .site-header .header-program>span { font-size:17px; }
  .site-header .menu-toggle { width:28px; height:38px; }
  .site-header #navigation {
    display:none; position:absolute; top:calc(100% + 10px); left:0; right:0;
    max-height:calc(100dvh - 120px); overflow:auto; gap:0; padding:20px 24px;
    background:#151515f7; border:1px solid #ffffff26; border-radius:20px; color:white;
    backdrop-filter:blur(24px); box-shadow:0 20px 60px #0005;
  }
  .menu-open .site-header #navigation { display:flex; }
  .site-header #navigation a { font:500 24px/1.3 var(--display); letter-spacing:-.035em; padding:14px 0; opacity:1; }
  .site-header #navigation a::after { bottom:9px; }
  .soul-stage { margin-top:0; }
  .day-event { grid-template-columns:90px minmax(0,1fr); align-items:center; gap:16px; }
  .day-event-image,.day-event-image img { min-height:0; height:auto; aspect-ratio:4 / 5; border-radius:12px; }
  .day-event-image img { height:100%; }
  .booking-event-heading { grid-template-columns:1fr; gap:30px; }
  .booking-event-heading figure { width:min(65%,250px); height:auto; aspect-ratio:4 / 5; justify-self:center; border-radius:20px; }
}
@media (max-width:360px) {
  .day-event { grid-template-columns:78px minmax(0,1fr); gap:12px; }
  .day-event-title { font-size:22px; }
  .site-header>.brand { width:114px; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-blackout { opacity:0; }
  :is(.home-page,.inner-page) .site-header,.site-header #navigation a::after { transition:none; }
}
@media (min-width:761px) and (max-width:1000px) {
  .agenda-layout { grid-template-columns:240px minmax(0,1fr); gap:24px; }
  .day-event { grid-template-columns:120px minmax(0,1fr); padding:18px; gap:20px; }
  .day-event-title { font-size:26px; }
}
.day-event-title { display:block; overflow-wrap:anywhere; }
.day-event-title>span { display:inline-block; margin-left:8px; }

.soul-column[data-soul=cinema] .soul-background { object-position:24% 55%; }
.soul-column[data-soul=eventi] .soul-background { object-position:16% 55%; }

/* Readiness and page changes share one uninterrupted branded curtain. */
.loader-message { display:none; }
@media (max-width:760px) {
  html { scroll-padding-top:96px; }
  .hero { height:145svh; }
  .hero .hero-frame { min-height:0; transform:none; border-radius:0; }
  .hero .hero-frame::after { content:none; }
  .hero .hero-content { top:24%; transform:translate3d(0,calc(var(--hero-progress,0) * -28px),0); }
  .soul-column { translate:none; }
  .soul-stage { min-height:660px; }
  :is(.home-page,.inner-page) .site-header { backdrop-filter:none; --nav-bg:#111111f5; }
  .home-page[data-tone=light] .site-header { --nav-bg:#eaeaeaf5; }
  .site-header #navigation { backdrop-filter:none; }
  .cinema-motion { min-height:44px; min-width:44px; }
}
@media (prefers-reduced-motion:reduce) {
  .is-scene-loading .page-curtain { display:block; }
  .is-scene-loading .brand-beam { animation:none; opacity:1; transform:none; }
  .hero { height:100svh; }
  .hero .hero-content { transform:none; }
}

/* A vector mark never falls back to an operating-system emoji font. */
.brand-asterisk { display:block; width:1em; height:1em; max-width:none; object-fit:contain; flex-shrink:0; user-select:none; }

/* Fixed typesetting lets text enter while the faster rails are opening. */
.soul-accordion { container-type:inline-size; }
.soul-column { transition-duration:.38s,.38s; }
.soul-background { transition-duration:.5s,.32s; }
.soul-vertical { transition-duration:.32s; }
.soul-expand-icon { transition-duration:.2s,.3s; }
.soul-detail { right:auto; width:calc(100cqw - 4 * var(--rail) - 1px); }
@media(max-width:760px) {
  .soul-column { transition-duration:.36s,.36s; }
  .soul-detail { width:calc(100cqw - 3 * var(--rail) - 1px); }
}

.agenda-page-heading-programme { grid-template-columns:1fr; gap:0; margin-bottom:40px; }
