.season-intro{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;color:#fff1cf;overflow:hidden;font-family:var(--serif,serif);cursor:pointer}
.season-intro[open]{display:grid;place-items:center}
.season-intro::backdrop{background:#0d100d66;animation:season-veil 2.6s ease both}
.season-intro-old{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;animation:season-old 1.5s ease both}
.season-intro-mist{position:absolute;inset:-15%;background:radial-gradient(ellipse at center,#15171299,transparent 65%),linear-gradient(110deg,transparent,#e6d7b528,transparent);animation:season-mist 2.6s ease both;pointer-events:none}
.season-intro-copy{position:relative;text-align:center;animation:season-title 2.6s ease both;text-shadow:0 3px 18px #000,0 1px 4px #000}
.season-intro-seal{display:block;color:var(--season-ink,#e9ca83);font-size:clamp(62px,9vw,120px);line-height:1.15;letter-spacing:0}
.season-intro h2{font:700 clamp(34px,6vw,82px)/1.3 var(--serif,serif);letter-spacing:.13em;margin:14px 18px 10px;color:#fff0d2}
.season-intro p{font-size:clamp(15px,2vw,22px);letter-spacing:.18em;margin:0 18px;color:#ecdfc8}
.season-intro-skip{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);min-height:44px;padding:10px 24px;background:#211d16df;color:#f4dfb2;border:1px solid #8a7754;font:inherit;white-space:nowrap;cursor:pointer}
.season-intro-skip:focus-visible{outline:2px solid #f4dfb2;outline-offset:4px}
.season-intro[data-season=spring]{--season-ink:#efc2c5;--mote:#f1c8ce}
.season-intro[data-season=summer]{--season-ink:#e4dc98;--mote:#e2d89b}
.season-intro[data-season=autumn]{--season-ink:#edb574;--mote:#d69a5b}
.season-intro[data-season=winter]{--season-ink:#d9e7ec;--mote:#eef5f7}
.season-intro-motes{position:absolute;inset:0;pointer-events:none}
.season-intro-motes i{position:absolute;left:var(--x);top:-8%;width:7px;height:10px;border-radius:60% 0 60% 0;background:var(--mote);opacity:0;animation:season-mote 3s linear var(--delay) infinite}
.season-intro[data-season=winter] .season-intro-motes i{width:4px;height:4px;border-radius:50%}
.season-intro[data-season=summer] .season-intro-motes i{width:3px;height:3px;border-radius:50%;box-shadow:0 0 8px var(--mote)}
@keyframes season-old{0%{opacity:.9}100%{opacity:0}}
@keyframes season-veil{0%,100%{background:#0d100d00}20%,70%{background:#0d100d66}}
@keyframes season-title{0%{opacity:0;transform:translateY(12px) scale(.96)}20%,72%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-6px) scale(1.02)}}
@keyframes season-mist{from{opacity:0;transform:translateX(-8%)}35%{opacity:1}to{opacity:0;transform:translateX(8%)}}
@keyframes season-mote{0%{opacity:0;transform:translate(0,0) rotate(0)}15%,75%{opacity:.65}100%{opacity:0;transform:translate(65px,90vh) rotate(190deg)}}
@media(prefers-reduced-motion:reduce){.season-intro *,.season-intro::backdrop{animation:none!important}.season-intro-old,.season-intro-motes{display:none}.season-intro::backdrop{background:#0d100d88}.season-intro-copy{opacity:1}}
