body.summer-active { background: #35271f; overflow: hidden; }
body.summer-active .site-header, body.summer-active .site-footer { display: none; }
.summer-scene { position: fixed; inset: 0; overflow: hidden; background: radial-gradient(ellipse at center, #463328 0, #35271f 65%); }
.summer-stage { position: absolute; inset: 0; display: grid; place-items: center; perspective: 900px; overflow: hidden; }
.summer-word { position: absolute; color: #e1cbb0; font: var(--word-size,80px)/1.1 Georgia,serif; white-space: nowrap; text-align: center; animation: summer-approach 1250ms cubic-bezier(.3,.1,.6,1) both; will-change: transform,opacity,filter; }
@keyframes summer-approach {
  0% { opacity: 0; transform: translateZ(-800px) scale(.35); filter: blur(5px); }
  25% { opacity: .9; filter: blur(0); }
  60% { opacity: 1; filter: blur(0); }
  100% { opacity: 0; transform: translateZ(340px) scale(1.35); filter: blur(18px); }
}
.summer-frame { position: absolute; width: min(72vw,110svh,900px); height: min(68svh,110vw); display: grid; place-items: center; animation: summer-shard 950ms ease-out both; }
.summer-frame img, .summer-frame video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; filter: brightness(.86) saturate(.85); }
.summer-frame.is-out { animation: summer-shard-out 450ms ease-in both; }
@keyframes summer-shard { from { opacity: 0; transform: scale(.7) rotate(var(--tilt)); filter: blur(7px); } 30% { opacity: 1; filter: blur(0); } to { opacity: 1; transform: scale(1.06) rotate(0); } }
@keyframes summer-shard-out {
  from { opacity: var(--exit-opacity,1); transform: var(--exit-transform,scale(1.06)); filter: var(--exit-filter,blur(0)); }
  to { opacity: 0; transform: scale(1.08); filter: blur(12px); }
}
.summer-ending { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 24px; animation: summer-ending-in 1.2s ease both; }
.summer-ending[hidden] { display: none; }
.summer-heart { font: 100px Georgia,serif; color: #d7b28c; }
.summer-ending .text-button { color: #d4bca3; }
.summer-accessible { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.summer-scene.is-paused * { animation-play-state: paused !important; }
@keyframes summer-ending-in { from { opacity: 0; } to { opacity: 1; } }
@media(prefers-reduced-motion:reduce) {
  .summer-word { width: min(85vw,800px); font-size: clamp(26px,5vw,48px) !important; white-space: normal; animation: summer-ending-in 1s both; }
  .summer-frame { animation: summer-ending-in .5s both; }
  .summer-frame.is-out { animation: none; opacity: 0; }
}
