/* Reading details: a persistent experience index and a quieter listening control. */
:root{--header-height:78px}
.experience-nav{position:sticky;top:var(--header-height);z-index:25;display:flex;align-items:center;gap:32px;padding:0 var(--gutter);background:var(--experience-paper,var(--paper));color:var(--experience-ink,var(--ink));border-bottom:1px solid currentColor;font:12px/1.4 'Courier New',monospace;transition:background-color .3s,color .3s}
.experience-nav-label{margin-right:auto;opacity:.65;white-space:nowrap}
.experience-nav a{position:relative;display:flex;align-items:center;gap:10px;font:inherit;min-height:52px;white-space:nowrap;text-decoration:none}
.experience-nav a>span{opacity:.5;font-size:10px}
.experience-nav a:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:3px;background:currentColor;transform:scaleX(0);transform-origin:left}
.experience-nav a[aria-current="step"]{font-weight:bold}
.experience-nav a[aria-current="step"]:after{transform:scaleX(var(--experience-progress,0))}
.experience-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.experience-nav a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
#work .project,#astro-coulisses{scroll-margin-top:53px}
.booking-chapter-heading,.papotages-story-aside,.festival-beat>.festival-photo{top:calc(var(--header-height) + 76px)}
.booking-intro h4,.booking-chapter h4,.project-learning-heading h4{text-wrap:balance}
@media(prefers-reduced-motion:no-preference){.reading-arrived{animation:reading-arrive .65s cubic-bezier(.22,1,.36,1) both}@keyframes reading-arrive{from{opacity:.65;transform:translateY(14px)}to{opacity:1;transform:none}}}
@media(max-width:900px){.experience-nav{gap:0;justify-content:space-between}.experience-nav-label{display:none}.experience-nav a{gap:7px}}
@media(max-width:750px){
 :root{--header-height:62px}
 .experience-nav{padding-inline:var(--gutter);font-size:11px;gap:8px}.experience-nav a{min-height:44px;gap:0}.experience-nav a>span{display:none}
 #work .project,#astro-coulisses{scroll-margin-top:45px}
 .radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading){width:50px;border-radius:50%;box-shadow:0 3px 16px #0002}
 .radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading) .radio-summary{display:block;padding:0}
 .radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading) .radio-record,.radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading) .radio-play,.radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading) .radio-expand>*{display:none}
 .radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading) .radio-expand{width:48px;height:48px;min-height:48px;border-radius:50%;background:repeating-radial-gradient(circle,#272324 0 2px,#151515 3px 4px);align-items:center;justify-content:center;padding:0}
 .radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading) .radio-expand:before{content:'♫';display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--pink);color:var(--ink);font:20px/1 Georgia,serif}
 .radio-shell:not(.is-expanded):not(.is-playing):not(.is-loading):focus-within{outline:2px solid var(--ink);outline-offset:3px}
}
@media(prefers-reduced-motion:reduce){.experience-nav{transition:none}.reading-arrived{animation:none}}
@media print{.experience-nav{display:none}}

/* A quiet invitation to examine the festival photographs. */
.festival-photo-link{display:block;position:relative;color:var(--paper);isolation:isolate}
.festival-photo-link:hover{text-decoration:none}
.festival-photo-open{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:16px;padding:9px 13px;background:#17234cea;border:1px solid #ffffff50;font:11px/1.4 'Courier New',monospace;letter-spacing:.035em;transition:background .2s}
.festival-photo-open>span{font:23px/1 Arial,sans-serif}
.festival-photo-link:hover .festival-photo-open{background:#17234c}
.festival-photo-link:focus-visible{outline:3px solid var(--astro-dark);outline-offset:-6px}
.photo-viewer{width:min(1180px,calc(100vw - 48px));max-height:calc(100svh - 48px);padding:22px 28px 16px;border:1px solid #e8ebf740;background:#111b2b;color:#e8ebf7;overflow:auto}
.photo-viewer::backdrop{background:#080d16e8;backdrop-filter:blur(5px)}
.photo-viewer-header,.photo-viewer-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;font:12px/1.5 'Courier New',monospace}
.photo-viewer-header{padding-bottom:14px;border-bottom:1px solid #e8ebf735}
.photo-viewer button{min-width:44px;min-height:44px;cursor:pointer;background:transparent;color:inherit;border:0}
.photo-viewer-close{display:flex;align-items:center;gap:16px;font:12px/1.5 'Courier New',monospace}
.photo-viewer-close>span{font:30px/1 Arial,sans-serif}
.photo-viewer figure{margin:20px 0 6px}
.photo-viewer-image{display:block;width:100%;max-height:calc(100svh - 245px);object-fit:contain;background:#0c1420;aspect-ratio:3/2}
.photo-viewer-caption{padding:14px 0 0;font:16px/1.5 Arial,sans-serif}
.photo-viewer-controls{display:flex;align-items:center;gap:14px}
.photo-viewer-controls>button{font:26px/1 Arial,sans-serif;border:1px solid #e8ebf740}
.photo-viewer-controls>button:hover{background:#e8ebf710}
.photo-viewer-count{min-width:45px;text-align:center}
html.photo-viewing{overflow:hidden}
@media(prefers-reduced-motion:no-preference){.photo-viewer[open]{animation:photo-viewer-enter .24s var(--ease-out) both}@keyframes photo-viewer-enter{from{opacity:.4;transform:translateY(12px)}to{opacity:1;transform:none}}}
@media(max-width:750px){
 .experience-nav{font-size:13px}
 .festival-photo-open{right:10px;bottom:10px;padding:7px 10px;font-size:10px;gap:10px}
 .photo-viewer{width:calc(100vw - 24px);padding:14px 14px 10px;max-height:calc(100svh - 24px)}
 .photo-viewer-header{font-size:10px;gap:12px;padding-bottom:8px}.photo-viewer-close{font-size:10px;gap:8px}
 .photo-viewer-caption{font-size:15px;line-height:1.5}.photo-viewer-footer{gap:8px;font-size:11px}
 .photo-viewer-controls{gap:6px}.photo-viewer-image{max-height:calc(100svh - 270px)}
}
@media print{.festival-photo-open,.photo-viewer{display:none}}
