.concept-main{--season-color:#d8b1c2;--season-ink:#2d2a2e;--season-wash:color-mix(in srgb,var(--season-color) 53%,#fbfaf5);--season-title-color:color-mix(in srgb,var(--season-color) 62%,#593344)}
.concept-tabs button[aria-pressed=true]{background:var(--season-color);color:var(--season-ink);border-color:#665c62}.concept-tabs button[aria-pressed=true] span{color:var(--season-ink)}
.library-board{background-color:var(--season-color)}
.library-lead h2 em,.scrap-title-sheet h2 em{color:var(--season-title-color)}
.library-stamp{border-color:var(--season-title-color);color:var(--season-title-color)}
.library-song{background:var(--season-wash)}
.scrap-scene{background-color:var(--season-wash)}
.scrap-folder-back,.scrap-folder-tab{background:var(--season-color)}.scrap-folder-tab{color:var(--season-ink)}
.scrap-seal{border-color:var(--season-title-color);color:var(--season-title-color)}
.scrap-song{background:color-mix(in srgb,var(--season-color) 26%,#fbfaf5)}
.photo-space{background:linear-gradient(145deg,color-mix(in srgb,var(--season-color) 47%,#d7d2d3),#f3ebee 55%,color-mix(in srgb,var(--season-color) 57%,#cbc3c7))}
.cast-photo,.scrap-cast-sheet .cast-photo{background:linear-gradient(155deg,color-mix(in srgb,var(--season-color) 57%,#f4e9ed),#e9e4e6 55%,color-mix(in srgb,var(--season-color) 40%,#d7d8da))}
.song-link{display:inline-block;margin-top:8px;color:#814f66;font:700 10px 'Courier New',monospace;letter-spacing:.04em;text-decoration:underline;text-underline-offset:3px}.song-link[hidden]{display:none}
.photo-space img,.cast-photo img{display:block;width:100%;height:100%;object-fit:cover}.photo-space:has(img),.cast-photo:has(img){display:block}.photo-space:has(img)::after,.photo-space:has(img)::before{display:none}
.winner-portrait .photo-space{height:245px}.scrap-winner .photo-space{height:270px}.cast-photo{position:relative}.cast-photo img{position:absolute;inset:0}
.cast-print figcaption{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:560px){.winner-portrait .photo-space{height:165px}.scrap-winner .photo-space{height:184px}}
.library-awards .library-section-head{margin-top:27px}
.award-ledger{border-top:2px solid #62535c;border-left:1px solid #a99ca2;border-right:1px solid #a99ca2;background:#fffdf9}
.award-ledger-row{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(110px,.8fr);gap:7px;align-items:baseline;padding:11px 12px;border-bottom:1px solid #b9adb3}
.award-number,.award-slip-top{color:#875c70;font:700 9px 'Courier New',monospace;letter-spacing:.08em}
.award-ledger-row strong{color:#332b2f;font:700 14px Georgia,serif}.award-recipient{color:#4e4248;font:13px Georgia,serif}.award-ledger-row small{grid-column:2/-1;color:#6b5c64;font:italic 11px/1.35 Georgia,serif}
.award-empty{margin:0;padding:14px 15px;color:#68545e;font:italic 12px/1.4 Georgia,serif}
.scrap-awards{position:relative;z-index:2;margin:22px 37px 0 50px;padding:18px 20px 21px;border:1px solid #a99da3;background:#fbfaf5;box-shadow:5px 7px 8px #40323b44;transform:rotate(-.8deg)}
.scrap-awards-heading span{color:#814f66;font:700 9px 'Courier New',monospace;letter-spacing:.1em}.scrap-awards-heading h3{margin:4px 0 2px;color:#2d2a2e;font:italic 700 28px/.95 Georgia,serif;letter-spacing:-.04em}.scrap-awards-heading p{margin:0 0 14px;color:#68545e;font:italic 11px Georgia,serif}
.award-slips{display:flex;flex-wrap:wrap;gap:12px}.award-slip{flex:1 1 170px;min-width:0;padding:13px 14px 14px;border:1px solid #a98e9c;background:color-mix(in srgb,var(--season-color) 15%,#fffaf6);box-shadow:3px 4px 0 #684e5c30}.award-slip:nth-child(even){transform:rotate(1deg)}.award-slip:nth-child(odd){transform:rotate(-1deg)}.award-slip h4{margin:12px 0 8px;color:#30272c;font:italic 700 19px/1.05 Georgia,serif}.award-slip strong{display:block;border-top:1px solid #b9a5af;padding-top:7px;color:#40343a;font:700 11px Georgia,serif}.award-slip p{margin:7px 0 0;color:#68545e;font:italic 11px/1.3 Georgia,serif}
.scrap-awards .award-empty{width:100%;padding:12px 13px;border:1px dashed #b9a5af;background:#fff9f5}
@media(max-width:560px){.award-ledger-row{grid-template-columns:25px minmax(0,1fr);gap:5px;padding:10px 8px}.award-recipient{grid-column:2}.award-ledger-row small{grid-column:2}.scrap-awards{margin:18px 17px 0;padding:13px 12px 16px}.scrap-awards-heading h3{font-size:23px}.award-slip{flex-basis:100%}}

@keyframes file-unfold{from{opacity:.35;transform:translateY(22px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.library-board,.scrap-scene{animation:file-unfold 1.15s cubic-bezier(.18,.7,.24,1) .12s both}
.library-song summary{align-items:center;min-height:58px;background:color-mix(in srgb,var(--season-color) 36%,#fffaf5);transition:background .2s ease}
.library-song summary:hover{background:color-mix(in srgb,var(--season-color) 52%,#fffaf5)}
.library-song summary b{display:inline-block;padding:8px 11px;border:1px solid #806b75;background:#fffaf5;color:#3f343a;box-shadow:2px 2px 0 #9a7d8a66;font-size:10px;white-space:nowrap;transition:transform .2s ease,background .2s ease}
.library-song summary:hover b,.library-song summary:focus-visible b{transform:translateY(-2px);background:#fff}
.library-song[open] summary b{background:#f4e7ec}
@media(max-width:560px){.library-song summary b{margin-top:8px;width:max-content}}
@media(prefers-reduced-motion:reduce){.library-board,.scrap-scene{animation:none}.library-song summary,.library-song summary b{transition:none}}

@keyframes file-piece{from{opacity:0}to{opacity:1}}
.concept-intro{animation:file-piece .7s ease-out both}
.concept-tabs{animation:file-piece .7s ease-out .18s both}
.panel-label{animation:file-piece .7s ease-out .3s both}
.library-receipt,.library-masthead,.library-lead,.library-fields,.library-card>.library-section-head,.library-card>.cast-gallery,.library-awards,.library-song,.scrap-title-sheet,.scrap-winner,.scrap-stats,.scrap-cast-sheet,.scrap-awards,.scrap-song{animation:file-piece .7s ease-out both}
.library-receipt,.scrap-title-sheet{animation-delay:.38s}
.library-masthead,.scrap-winner{animation-delay:.55s}
.library-lead,.scrap-stats{animation-delay:.72s}
.library-fields{animation-delay:.88s}
.library-card>.library-section-head,.scrap-cast-sheet{animation-delay:1.02s}
.library-card>.cast-gallery{animation-delay:1.17s}
.library-awards,.scrap-awards{animation-delay:1.34s}
.library-song,.scrap-song{animation-delay:1.5s}
@media(prefers-reduced-motion:reduce){.concept-intro,.concept-tabs,.panel-label,.library-board,.scrap-scene,.library-receipt,.library-masthead,.library-lead,.library-fields,.library-card>.library-section-head,.library-card>.cast-gallery,.library-awards,.library-song,.scrap-title-sheet,.scrap-winner,.scrap-stats,.scrap-cast-sheet,.scrap-awards,.scrap-song{animation:none}}

/* Portraits can be examined without leaving either season-file view. */
[data-zoom-photo]{cursor:zoom-in}
[data-zoom-photo]:focus-visible{outline:3px solid #8d526d;outline-offset:3px}
[data-zoom-photo] img{transition:filter .2s ease}
[data-zoom-photo]:hover img{filter:brightness(.9)}
.photo-lightbox{position:fixed;inset:0;max-width:none;max-height:none;width:100vw;height:100vh;margin:0;padding:clamp(32px,5vh,55px) clamp(16px,6vw,70px) 32px;border:0;background:#211c20ed;color:#fff;overflow:auto;text-align:center}
.photo-lightbox::backdrop{background:#211c20e8}
.photo-lightbox[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px}
.photo-lightbox>img{display:block;max-width:min(100%,900px);max-height:calc(100vh - 145px);width:auto;height:auto;object-fit:contain;border:8px solid #fbfaf5;box-shadow:0 18px 55px #0009;cursor:zoom-out}
.photo-lightbox p{margin:0;font:700 10px 'Courier New',monospace;letter-spacing:.08em;text-transform:uppercase}
.photo-lightbox-close{position:absolute;top:12px;right:17px;display:grid;place-items:center;width:37px;height:37px;border:1px solid #fff;background:#fbfaf5;color:#302b2e;font:28px/1 Arial,sans-serif;cursor:pointer}
@media(max-width:560px){.photo-lightbox{padding:56px 15px 25px}.photo-lightbox>img{max-height:calc(100vh - 128px);border-width:5px}}
@media(prefers-reduced-motion:reduce){[data-zoom-photo] img{transition:none}}

/* Empty photo slots still open, so the gesture is visible before cast images arrive. */
.photo-lightbox>img[hidden],.photo-lightbox-placeholder[hidden]{display:none}
.photo-lightbox-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;width:min(420px,76vw);height:min(560px,72vh);padding:35px;border:9px solid #fbfaf5;background:linear-gradient(145deg,#d8bbc8,#e8e0e3 54%,#d4cbd0);box-shadow:0 18px 55px #0009;color:#725668;cursor:zoom-out}
.photo-lightbox-placeholder span{font:italic 700 clamp(38px,7vw,64px)/1.05 Georgia,serif;text-transform:lowercase}
.photo-lightbox-placeholder small{font:700 10px 'Courier New',monospace;letter-spacing:.14em}
@media(max-width:560px){.photo-lightbox-placeholder{width:min(330px,86vw);height:min(470px,65vh);border-width:5px}}

/* The page stays visible while a print travels out of its slot. */
.photo-lightbox{background:transparent;color:#302b2e}
.photo-lightbox::backdrop{background:transparent}
.photo-lightbox>img{box-shadow:0 18px 42px #30222d85}
.photo-lightbox-placeholder{box-shadow:0 18px 42px #30222d85}
.photo-lightbox p{padding:7px 10px;border:1px solid #a98f9c;background:#fbfaf5e8;color:#5f4954}
.photo-lightbox-close{border-color:#8d717d;background:#fbfaf5f5;box-shadow:2px 3px 8px #30222d4d}
