/* Season 1 · Chapter 1 — shared scene / keepsake / tile styles */
.s1-scene{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:rgba(24,34,20,.55);padding:12px}
.s1-card{background:#fffaf0;border:3px solid #fff;border-radius:22px;box-shadow:0 10px 30px rgba(34,48,31,.3);max-width:520px;width:100%;padding:16px 18px;text-align:center;max-height:96vh;overflow:auto}
.s1-cast{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin-bottom:4px}
.s1-pal{width:84px;height:84px;border-radius:50%;border:3px solid #E9A13B;background:#FFF6D9}
.s1-herohost svg{display:block;height:150px;width:auto}
.s1-who{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#5c6b52}
.s1-line{font-size:22px;line-height:1.4;font-weight:700;margin:8px 4px 10px;min-height:3.2em;color:#22301f}
.s1-actions{display:flex;gap:10px;justify-content:center;align-items:center}
.s1-next{background:#3e7d3a;color:#fff;border:0;border-radius:999px;padding:13px 28px;font-weight:800;font-size:18px;min-height:48px;box-shadow:0 4px 0 #2c5a29}
.s1-speak{min-height:48px;border-radius:999px;padding:0 14px;border:2px solid #e3d9c4;background:#fff;font-size:14px;font-weight:700;color:#22301f}
.s1-speak:disabled{opacity:.55}
.s1-keeps{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:8px 0}
.s1-keep{background:#fff;border:2px solid #e3d9c4;border-radius:14px;padding:8px 10px;min-width:104px;max-width:150px;display:flex;flex-direction:column;align-items:center;gap:2px}
.s1-keep.seed{border-color:#E9A13B;background:#FFF6D9}
.s1-keepart{font-size:34px;line-height:1.1}
.s1-keep b{font-size:13px}.s1-keep small{font-size:11px;color:#5c6b52;line-height:1.25}
.s1-tiles{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px}
.s1-tiles.wide{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))}
.s1-tile{min-height:48px;border-radius:12px;border:3px solid #e3d9c4;background:#fff;font-size:20px;font-weight:800;color:#22301f}
.s1-tile:hover{border-color:#69a84f}.s1-tile.right{border-color:#3e7d3a;background:#e7f4e0}.s1-tile.wrong{border-color:#d66;background:#fdecec}
.s1-note{font-size:12px;color:#7a5a00;text-align:center;margin:6px 0;min-height:0}
.s1-note:empty{display:none}
.s1-kit{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:8px 0;font-size:13px}
.s1-kit span{background:#fff;border:2px solid #e3d9c4;border-radius:999px;padding:4px 10px;font-weight:700}
.s1-kit span.have{border-color:#69a84f;background:#eef7e8}
.s1-hero{position:absolute;pointer-events:none;z-index:3;transform-origin:50% 100%}
.s1-hero svg{display:block;height:100%;width:auto}
@media (prefers-reduced-motion:reduce){.s1-hero svg *{animation:none!important}}
@media (max-width:480px){.s1-line{font-size:19px}.s1-herohost svg{height:120px}}
/* full-viewport sheets so 21-tile answer pads fit on a 390px phone (the 16:9 stage is only ~220px tall there) */
.overlay{position:fixed!important;z-index:40}
.cover{position:fixed!important;z-index:45}
.modal{max-height:96vh}
.s1-hero.hidden{display:none}
.s1-tiles.wide .s1-tile{font-size:28px;min-height:56px}
.modal,.modal *:not(button):not(.s1-tile){color:#22301f}.modal .eyebrow{color:#4f7a35}
.s1-card{color:#22301f}.letter,.letter *{color:#193d32}.letter b{color:#7a5a00}
