.mfesto .container{z-index:var(--z-content);position:relative}.mfesto{padding-top:clamp(1.5rem,3vw,2.6rem);padding-bottom:clamp(1.75rem,3vw,2.8rem)}.mf-head{grid-template-columns:auto auto;justify-content:center;align-items:center;gap:clamp(1.8rem,4vw,3.2rem);max-width:940px;margin:0 auto clamp(1.6rem,3vw,2.4rem);display:grid}.mf-shot{background:#fff;border-radius:7px;width:clamp(168px,18vw,232px);margin:0;padding:10px 10px 34px;position:relative;transform:rotate(-3deg);box-shadow:0 26px 46px -20px #96542880,0 2px 6px #00000014}.mf-shot img{aspect-ratio:1;object-fit:cover;border-radius:3px;width:100%}.mf-shot figcaption{text-align:center;font-family:var(--font-script);color:var(--coral-500);font-size:1.3rem;line-height:1;position:absolute;bottom:12px;left:0;right:0}.mf-tape{background:linear-gradient(#ffc96b99,#f4a93c66);border:1px solid #ffffff80;width:84px;height:24px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(3deg);box-shadow:0 2px 6px #00000014}.mf-intro .script{margin-bottom:.15rem}.mf-intro h2,.mf-intro h1{margin:0 0 .9rem;font-size:clamp(2.6rem,5.5vw,4.4rem);line-height:.98}.mf-intro h1+.script{margin-top:0}.mf-standfirst{font-family:var(--font-body);color:var(--ink-soft);max-width:48ch;font-size:1.15rem;line-height:1.75}@media (width<=720px){.mf-head{text-align:center;grid-template-columns:1fr;justify-items:center;gap:1.4rem}.mf-standfirst{margin-inline:auto}}.mf-letter p.mf-open{font-family:var(--font-display), Georgia, serif;letter-spacing:-.01em;color:#8f3809;margin-bottom:1.5rem;font-size:clamp(1.45rem,2.1vw,2rem);font-weight:800;line-height:1.2}.mf-letter{max-width:640px;margin:0 auto}.mf-letter+.mf-letter{margin-top:1.3rem}.mf-letter p{font-family:var(--font-body);color:var(--ink-soft);font-size:1.15rem;line-height:1.8}.mf-letter p+p{margin-top:1.3rem}.mf-aside{color:var(--ink-muted);margin-top:1rem;font-style:italic}.mf-pull-line{display:block}.mf-pull{text-align:center;max-width:760px;font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);border:0;margin:clamp(2.6rem,4.5vw,3.6rem) auto;padding:0 1rem;font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:800;line-height:1.25}.mf-stanza{text-align:center;max-width:680px;font-family:var(--font-display);color:var(--coral-700);border:0;margin:clamp(2rem,4vw,3rem) auto;padding:0;font-size:clamp(1.25rem,2.2vw,1.7rem);font-style:italic;font-weight:600;line-height:1.7}.mf-gift{text-align:center;border-radius:var(--r-lg);background:linear-gradient(180deg, #fff, var(--cream-50));border:1px solid #ffffffe6;max-width:460px;margin:clamp(4rem,6vw,5.5rem) auto clamp(2rem,4vw,3rem);padding:clamp(3.6rem,5vw,4.4rem) 2rem 2.2rem;position:relative;box-shadow:inset 0 1px #fffffff2,0 32px 60px -30px #b0601e80}.mf-gift-char{filter:drop-shadow(0 16px 22px #b0601e52);width:148px;height:auto;display:block;position:absolute;top:-92px;left:50%;transform:translate(-50%)}.mf-gift-eyebrow{font-family:var(--font-script);color:var(--coral-500);margin-bottom:.7rem;font-size:1.5rem;line-height:1}.mf-gift-line{font-family:var(--font-display);color:var(--ink);font-size:1.4rem;font-weight:700;line-height:1.45}.mf-sign{text-align:center;gap:.1rem;margin-top:clamp(2.2rem,3.5vw,2.8rem);display:grid}.mf-sign-name{font-family:var(--font-script);color:var(--ink);font-size:2.6rem;line-height:1}.mf-sign-role{color:var(--ink-muted);font-size:.95rem}.mf-more-wrap{text-align:center;margin-top:1.6rem;display:block}.mf-more{border-radius:var(--r-pill);background:var(--surface);color:var(--coral-700);font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur-base) var(--ease-soft), border-color var(--dur-fast);border:1.5px solid #a8420b47;align-items:center;gap:.5rem;padding:.85rem 1.7rem;font-size:1rem;font-weight:700;display:inline-flex}.mf-more:hover{box-shadow:var(--shadow-md);border-color:var(--coral-600);transform:translateY(-2px)}.sparkles{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.sparkles:before,.sparkles:after{content:"";background-image:radial-gradient(2px 2px at 12% 24%, #fff, transparent), radial-gradient(2.5px 2.5px at 78% 14%, var(--gold-400), transparent), radial-gradient(1.5px 1.5px at 44% 60%, #fff, transparent), radial-gradient(2px 2px at 88% 72%, var(--gold-400), transparent), radial-gradient(1.5px 1.5px at 22% 84%, #fff, transparent), radial-gradient(2px 2px at 62% 34%, var(--coral-300), transparent), radial-gradient(1.5px 1.5px at 33% 12%, var(--gold-400), transparent);animation:4.5s ease-in-out infinite twinkle;position:absolute;inset:-10%}.sparkles:after{opacity:.65;animation-delay:2.2s;transform:scale(1.5)rotate(20deg)}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:.95}}@media (prefers-reduced-motion:reduce){.sparkles{animation:none}}
