*{box-sizing:border-box}html{font-size:100%}body{color:var(--color-text);background:var(--color-bg);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:1.125rem;line-height:1.6}a{color:var(--color-primary)}a:focus-visible,button:focus-visible,audio:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}header a:focus-visible{outline-color:#fff}.skip-link{background:var(--color-primary);color:#fff;z-index:10;padding:.75rem 1.25rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}header{background:var(--color-primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.625rem 1.5rem;display:flex}.brand{color:#fff;align-items:center;gap:.75rem;min-height:44px;text-decoration:none;display:flex}.brand-logo{filter:brightness(0)saturate()invert();flex:none}.brand-text{font-family:Spectral,Georgia,serif;font-size:1.15rem;font-weight:500;line-height:1.2}main{max-width:46rem;margin:0 auto;padding:1.5rem}footer{text-align:center;background:var(--color-primary);color:var(--color-bg);padding:clamp(2.5rem,6vw,4rem) 1.5rem;font-size:1rem}footer p{opacity:.85;margin:0}footer a{color:inherit}footer a:focus-visible{outline-color:var(--color-bg)}.lang-switch{border:1px solid #faf7f266;border-radius:999px;gap:0;margin:0;padding:3px;list-style:none;display:flex}.lang-switch a,.lang-switch span[aria-current]{letter-spacing:.04em;min-width:44px;min-height:44px;color:var(--color-bg);border-radius:999px;justify-content:center;align-items:center;padding:0 .85rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:background-color .15s ease-out,color .15s ease-out;display:inline-flex}.lang-switch a:hover{background:#faf7f226}.lang-switch span[aria-current]{background:var(--color-bg);color:var(--color-primary)}h1,h2{font-family:Spectral,Georgia,serif}h1{letter-spacing:-.02em;text-wrap:balance;color:var(--color-primary);font-size:clamp(2.25rem,5vw + 1rem,3.75rem);font-weight:300;line-height:1.1}h2{letter-spacing:-.01em;text-wrap:balance;color:var(--color-primary);font-size:clamp(1.4rem,2.5vw + .5rem,1.9rem);font-weight:500}.hero{background:var(--color-primary);color:var(--color-bg);margin:-1.5rem -1.5rem clamp(2rem,5vw,3.5rem);padding:clamp(3.5rem,10vw,6.5rem) 1.5rem;position:relative;overflow:hidden}.hero-art{background-position:50% 30%;background-size:cover;position:absolute;inset:0;transform:scale(1.02)}.hero-scrim{background:#2e4a3dc7;position:absolute;inset:0}.hero:before{content:"";z-index:1;background-image:radial-gradient(circle,#faf7f229 1.2px,#0000 1.4px),radial-gradient(circle,#8a6d1a80 1.4px,#0000 1.6px);background-position:0 0,12px 12px;background-size:24px 24px;position:absolute;inset:0;mask-image:linear-gradient(#000 30%,#0000 95%)}.hero-inner{z-index:2;max-width:46rem;margin:0 auto;position:relative}.hero h1{color:inherit;margin:0 0 1rem}.hero-intro{opacity:.92;text-wrap:pretty;max-width:60ch;margin:0;font-size:1.25rem}.hero-map-link{color:var(--color-bg);border:1px solid #faf7f280;border-radius:999px;align-items:center;gap:.4rem;margin-top:1.25rem;padding:.6rem 1.4rem;font-size:1.05rem;font-weight:600;text-decoration:none;transition:background .18s;display:inline-flex}.hero-map-link:hover{background:#faf7f21f}.tour-heading{max-width:46rem;margin:0 auto 1rem}.stop-list{gap:.75rem;max-width:46rem;margin:0 auto;padding:0;list-style:none;display:grid}.stop-card a{border:1px solid #00000014;border:1px solid color-mix(in srgb, var(--color-text) 10%, transparent);min-height:44px;color:var(--color-text);background:#fff;border-radius:12px;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;text-decoration:none;transition:background-color .18s ease-out,color .18s ease-out,transform .18s ease-out;display:flex}.stop-card .order{color:var(--color-accent);min-width:3rem;font-family:Spectral,Georgia,serif;font-size:2.25rem;font-weight:300}.stop-card .title{color:var(--color-primary);flex:1;font-family:Spectral,Georgia,serif;font-size:1.3rem;font-weight:500}.stop-card .go{color:var(--color-accent);font-size:1.4rem;transition:transform .18s ease-out}.stop-card a:hover,.stop-card a:focus-visible{background:var(--color-primary)}.stop-card a:hover .order,.stop-card a:hover .go,.stop-card a:hover .title,.stop-card a:focus-visible .order,.stop-card a:focus-visible .go,.stop-card a:focus-visible .title{color:var(--color-bg)}.stop-card a:hover .go,.stop-card a:focus-visible .go{transform:translate(4px)}.stop-card a:focus-visible{outline-color:var(--color-accent);outline-offset:3px}.stop-card .year{color:color-mix(in srgb, var(--color-text) 65%, transparent);white-space:nowrap;font-size:.95rem}.stop-card a:hover .year,.stop-card a:focus-visible .year{color:var(--color-bg)}.stop-card .thumb{object-fit:cover;border-radius:8px;flex:none;width:72px;height:72px;transition:transform .18s ease-out}.stop-card a:hover .thumb,.stop-card a:focus-visible .thumb{transform:scale(1.05)}@media (width<=480px){.stop-card .thumb{width:56px;height:56px}.stop-card a{gap:.85rem;padding:1rem}.stop-card .title{min-width:0}.stop-card .year,.stop-card .go{display:none}}.stage-full{flex-direction:column;min-height:100dvh;margin:-1.5rem -1.5rem 0;display:flex;position:relative;overflow:hidden}.sf-art{background-position:50% 30%;background-size:cover;position:absolute;inset:0}.sf-art:after{content:"";background:linear-gradient(#00000073 0%,#00000026 35%,#000000b8 78%,#000000e0 100%);position:absolute;inset:0}body:has(.stage-full)>header{display:none}.sf-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1.25rem;display:flex;position:relative}.sf-back,.sf-expand{color:var(--color-bg);align-items:center;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.sf-back{opacity:.9;font-size:.95rem}.sf-expand{font-size:1.3rem}.sf-langs{order:1;gap:3px;display:flex}.sf-lang{min-width:36px;min-height:36px;color:var(--color-bg);letter-spacing:.04em;border:1px solid #faf7f280;border-radius:999px;justify-content:center;align-items:center;padding:0 .55rem;font-size:.72rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.sf-lang:hover{background:#faf7f226}.sf-lang.active{background:var(--color-bg);color:var(--color-primary)}.sf-actions{align-items:center;gap:.75rem;display:flex}.sf-actions .sf-back{opacity:1}.sf-notice{margin:0 1.5rem;position:relative}.sf-karaoke{text-align:center;flex:1;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:relative}.sf-karaoke p{color:var(--color-bg);text-wrap:balance;text-shadow:0 2px 12px #0009;max-width:22ch;font-family:Spectral,Georgia,serif;font-size:clamp(1.5rem,4vw,2.4rem);font-weight:500;line-height:1.35}@media (prefers-reduced-motion:no-preference){.sf-karaoke p{transition:opacity .25s ease-out}.sf-karaoke p.fading{opacity:0}}.sf-bottom{gap:1rem;padding:1rem 1.5rem 1.5rem;display:grid;position:relative}.sf-meta{align-items:center;gap:1rem;display:flex}.sf-thumb{object-fit:cover;border-radius:6px;width:64px;height:64px}.sf-title{color:var(--color-bg);margin:0;font-family:Spectral,Georgia,serif;font-size:1.5rem;font-weight:500}.sf-sub{color:var(--color-bg);opacity:.75;margin:.15rem 0 0;font-size:.95rem}.sf-lyrics{min-height:44px;color:var(--color-bg);font:inherit;cursor:pointer;background:0 0;border:1px solid #faf7f266;border-radius:999px;justify-self:start;padding:0 1.25rem;font-weight:600}.sf-lyrics:hover{background:#faf7f21f}.sf-lyrics[hidden]{display:none}.sf-sheet{background:var(--color-bg);padding:1.5rem}html.js .sf-sheet{z-index:105;transition:transform .35s cubic-bezier(.22,1,.36,1);position:fixed;inset:0;overflow-y:auto;transform:translateY(100%)}html.js .sf-sheet.open{transform:translateY(0)}@media (prefers-reduced-motion:reduce){html.js .sf-sheet{transition:none}}.sf-sheet-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.sf-sheet-head h2{margin:0}.sf-sheet-head button{cursor:pointer;background:0 0;border:1px solid #00000026;border-radius:999px;width:48px;height:48px;font-size:1.1rem}html:not(.js) .sf-sheet-head button,html:not(.js) .sf-lyrics{display:none}.sf-sheet-body .transcript-text{max-width:68ch}.back-link{color:var(--color-text);opacity:.8;text-decoration:none}.back-link:hover{text-decoration:underline}.stop-meta{color:color-mix(in srgb, var(--color-text) 70%, transparent);margin-top:-.5rem;font-size:1rem}.notice-dark{color:var(--color-bg);background:#faf7f21f;border:1px solid #faf7f259;margin:0}.player{background:var(--color-primary);color:var(--color-bg);border-radius:16px;align-items:center;gap:1rem;padding:.875rem 1.25rem;display:flex;box-shadow:0 12px 32px #00000059}.player-btn{background:var(--color-bg);width:56px;height:56px;color:var(--color-primary);cursor:pointer;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;transition:transform .15s ease-out;display:inline-flex}.player-btn:hover{transform:scale(1.06)}.player-btn:active{transform:scale(.96)}.player-btn:focus-visible{outline:3px solid var(--color-bg);outline-offset:2px}.player-track{flex:1;gap:.35rem;display:grid}.player-progress{width:100%;accent-color:var(--color-bg);cursor:pointer;background:0 0;min-height:44px}.player-times{font-variant-numeric:tabular-nums;opacity:.85;justify-content:space-between;font-size:.85rem;display:flex}.player audio{width:100%;display:block}.player audio:not([controls]){display:none}.player audio:focus-visible{outline-color:var(--color-bg)}.player-btn[hidden],.player-progress[hidden],.player-times[hidden],.icon-play[hidden],.icon-pause[hidden]{display:none}.player-immersive{box-shadow:none;color:var(--color-bg);background:0 0;border-radius:0;gap:.75rem;padding:0;display:grid}.player-immersive .pi-progress-row{font-variant-numeric:tabular-nums;opacity:.9;align-items:center;gap:1rem;font-size:.85rem;display:flex}.player-immersive .player-progress{min-height:44px;accent-color:var(--color-bg);cursor:pointer;background:0 0;flex:1}.pi-btn{background:var(--color-bg);width:72px;height:72px;color:var(--color-primary);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;margin:0 auto;transition:transform .15s ease-out;display:flex}.pi-btn:hover{transform:scale(1.06)}.pi-btn:active{transform:scale(.96)}.pi-btn:focus-visible{outline:3px solid var(--color-bg);outline-offset:2px}.player-immersive audio,.player-immersive audio[controls]{display:none}.transcript p{text-wrap:pretty;max-width:68ch;font-family:Spectral,Georgia,serif;font-size:1.2rem;line-height:1.75}.kw{border-radius:3px;transition:background-color .18s ease-out,opacity .18s ease-out}.kw-active{background:#8a6d1a52;background:color-mix(in srgb, var(--color-accent) 32%, transparent)}.kw-past{opacity:.85}audio{width:100%;min-height:44px;margin:.5rem 0 1rem}.notice{border:1px solid #8a6d1a73;border:1px solid color-mix(in srgb, var(--color-accent) 45%, transparent);background:#8a6d1a1a;background:color-mix(in srgb, var(--color-accent) 10%, transparent);border-radius:8px;padding:.875rem 1.125rem}.pager{justify-content:space-between;gap:1rem;max-width:46rem;margin:2.5rem auto 0;display:flex}.pager a{min-height:44px;color:var(--color-primary);align-items:center;padding:.5rem .25rem;font-family:Spectral,Georgia,serif;font-size:1.15rem;font-weight:500;text-decoration:none;display:inline-flex}.pager a:hover{text-decoration:underline}@keyframes hero-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes stage-in{0%{opacity:0;transform:scale(.985)}}@media (prefers-reduced-motion:no-preference){.hero-art{animation:36s ease-in-out infinite alternate kenburns}@keyframes kenburns{0%{transform:scale(1.02)translate(0)}to{transform:scale(1.14)translate(-1.5%,1%)}}.hero h1{animation:.7s cubic-bezier(.22,1,.36,1) both hero-rise}.hero-intro{animation:.7s cubic-bezier(.22,1,.36,1) .12s both hero-rise}.stop-card{animation:.7s cubic-bezier(.22,1,.36,1) both hero-rise;animation-delay:calc(.2s + var(--i,0) * 70ms)}.sf-karaoke p,.player{animation:.5s cubic-bezier(.22,1,.36,1) .15s both hero-rise}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.portal{z-index:100;background:var(--color-bg);color:var(--color-text);justify-content:center;align-items:center;display:none;position:fixed;inset:0;overflow:hidden}.show-portal .portal{display:flex}html.show-portal body{overflow:hidden}.portal-standalone{position:fixed}.portal-art{opacity:.28;background-image:url(/images/opere/ave-maria-a-trasbordo-seconda.jpg);background-position:50% 35%;background-size:cover;height:55%;position:absolute;inset:auto 0 0;mask-image:linear-gradient(#0000 5%,#000 70%)}.portal-inner{text-align:center;max-width:40rem;padding:2rem 1.5rem;position:relative}.portal-title{letter-spacing:-.02em;color:var(--color-primary);margin:0 0 .75rem;font-family:Spectral,Georgia,serif;font-size:clamp(2.25rem,6vw,3.5rem);font-weight:300}.portal-sub{opacity:.75;margin-bottom:2.5rem}.portal-langs{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.portal-lang{min-height:56px;font:inherit;color:var(--color-text);cursor:pointer;background:#fff;border:1px solid #0000001a;border-radius:999px;align-items:center;gap:.6rem;padding:0 1.4rem;font-weight:600;transition:background-color .18s ease-out,color .18s ease-out,transform .18s ease-out;display:inline-flex}.portal-lang:hover,.portal-lang:focus-visible{background:var(--color-primary);color:var(--color-bg);transform:translateY(-2px)}.portal-lang:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.flag svg{border-radius:3px;width:28px;height:20px;display:block;box-shadow:0 0 0 1px #0000001f}@media (prefers-reduced-motion:no-preference){.portal-langs li{animation:portal-slide .5s calc(.1s + var(--i,0) * 90ms) cubic-bezier(.22, 1, .36, 1) both}@keyframes portal-slide{0%{opacity:0;transform:translate(40px)}}}.sf-expand{cursor:zoom-in}.lightbox{z-index:110;background:#000000eb;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.lightbox[hidden]{display:none}.lightbox img{object-fit:contain;border-radius:4px;max-width:100%;max-height:100%}.lightbox-close{color:#faf7f2;cursor:pointer;background:0 0;border:1px solid #faf7f266;border-radius:999px;width:48px;height:48px;font-size:1.2rem;position:absolute;top:1rem;right:1rem}.lightbox-close:focus-visible{outline-offset:2px;outline:3px solid #faf7f2}
