/* Load after shared festival styles: retain the four existing Mid-Autumn palettes. */
.theme-moon{--mid-paper:linear-gradient(180deg,#e3f2fd,#bbdefb 50%,#90caf9);--mid-ink:#1a2a4a;--mid-muted:#394e69;--mid-accent:#1769aa;--mid-night:#0a0e2a;--mid-title:#fff;--mid-copy:#e6f0ff;--mid-note:#dce6ff}
.theme-osmanthus{--mid-paper:linear-gradient(180deg,#fff8e1,#ffecb3 50%,#ffe082);--mid-ink:#5d4037;--mid-muted:#704b30;--mid-accent:#a34700;--mid-night:#2a1a0e;--mid-title:#fff3c4;--mid-copy:#ffe6b4;--mid-note:#ffdcA0}
.theme-lantern{--mid-paper:linear-gradient(180deg,#ffebee,#ffcdd2 50%,#ef9a9a);--mid-ink:#701919;--mid-muted:#833737;--mid-accent:#b71c1c;--mid-night:#2a0a0a;--mid-title:#ffe4d0;--mid-copy:#ffe1cd;--mid-note:#ffd2be}
.theme-rabbit{--mid-paper:linear-gradient(180deg,#e0f2f1,#b2dfdb 50%,#80cbc4);--mid-ink:#204b46;--mid-muted:#34625b;--mid-accent:#00695c;--mid-night:#1a2a2a;--mid-title:#2a4a4a;--mid-copy:#285050;--mid-note:#285050}

/* A portrait illustration must not be enlarged to the width of a landscape screen. */
.receiver-gift:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .festival-card-shell{background:var(--mid-night)}
.receiver-gift .receiver-front.festival-sky{
  width:100%;max-width:calc(100vh * 4 / 7);max-width:calc(100dvh * 4 / 7);margin-inline:auto;
  background-size:cover,100% 100%;background-position:center top;
  animation:mid-autumn-arrive 1.2s ease-out both;
}
@keyframes mid-autumn-arrive{from{opacity:0}to{opacity:1}}
.receiver-front.festival-sky .receiver-front-inner{width:100%;padding:24px 18px max(32px,env(safe-area-inset-bottom));justify-content:flex-end}
.receiver-front.festival-sky .festival-text-reveal h1{color:var(--mid-title);font-size:clamp(28px,6vw,42px)}
.receiver-front.festival-sky .receiver-to,.receiver-front.festival-sky .receiver-from{color:var(--mid-note)}
.receiver-front.festival-sky blockquote{color:var(--mid-copy);font-size:clamp(16px,3.6vw,20px);line-height:1.65}
.receiver-front.festival-sky.theme-rabbit .festival-text-reveal{text-shadow:none}
.receiver-front.festival-sky.theme-rabbit .festival-text-reveal h1,.receiver-front.festival-sky.theme-rabbit blockquote{ text-shadow:0 1px 4px #ffffff80}
.receiver-front.festival-sky .receiver-front-actions{flex-wrap:wrap;gap:8px}
.receiver-front.festival-sky .receiver-front-actions button{background:#fffffff0;color:var(--mid-ink);border-color:var(--mid-ink);font-size:13px}
.receiver-gift:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .receiver-back{background:var(--mid-paper);color:var(--mid-ink)}

/* Scope the full form palette together so shared teacher styles cannot split it. */
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit){background:var(--mid-paper);color:var(--mid-ink)}
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit){background:var(--mid-paper);color:var(--mid-ink)}
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) h2,
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) h3,
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) label{color:var(--mid-ink)}
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .sub,
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .gift-help,
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .confirm-row{color:var(--mid-muted)}
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) input,
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) textarea{background:#fffffff0;color:var(--mid-ink);border:1px solid var(--mid-muted)}
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) input::placeholder,
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) textarea::placeholder{color:var(--mid-muted)}
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .relation-btn,
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .upload-btn,
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .quick-msg{background:#ffffffe6;color:var(--mid-ink);border:1px solid var(--mid-muted)}
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .relation-btn.active,
.touch-upload-screen.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .submit-btn,
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .btn-primary{background:var(--mid-accent);color:#fff}
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .back-btn,
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .btn-secondary{background:#fff;color:var(--mid-ink);border-color:var(--mid-muted)}
.gift-flow:is(.theme-moon,.theme-osmanthus,.theme-lantern,.theme-rabbit) .preview-footer{background:transparent}
@media(prefers-reduced-motion:reduce){.receiver-gift .receiver-front.festival-sky{animation:none}}
