/* Homepage-only promotion: approved personal letter composition. */
.home-gift { max-width:1240px; margin:48px auto; container-type:inline-size; color:var(--color-brand-brown); }
.home-gift *, .home-gift-dialog * { box-sizing:border-box; }
.home-gift__banner { display:grid; grid-template-columns:1.1fr 1fr; min-height:520px; border-radius:28px; overflow:hidden; background:var(--color-brand-yellow-soft); border:1px solid var(--color-warm-border); }
.home-gift__copy { padding:60px 0 56px 52px; align-self:center; position:relative; z-index:1; min-width:0; }
.home-gift__eyebrow { display:flex; align-items:center; gap:9px; margin:0 0 23px; font-size:10px; font-weight:750; letter-spacing:.16em; line-height:1.6; }
.home-gift__eyebrow span { font-size:17px; letter-spacing:0; color:var(--color-brand-orange); }
.home-gift__copy h2 { margin:0; font-size:clamp(32px,3.7cqw,52px); line-height:1.08; letter-spacing:-.052em; font-weight:650; color:var(--color-brand-brown); text-wrap:balance; }
.home-gift__copy h2 em { font-style:normal; color:var(--color-brand-orange-dark); }
.home-gift__description { margin:24px 0 0; max-width:480px; font-size:16px; line-height:1.7; }
.home-gift__actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:28px; }
.home-gift__button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:25px; padding:16px 23px; border-radius:12px; text-decoration:none; font-size:13px; font-weight:650; line-height:1.4; background:var(--color-brand-yellow); color:var(--color-brand-brown); }
.home-gift__button:hover { background:var(--color-brand-yellow-hover); color:var(--color-brand-brown); text-decoration:none; }
.home-gift__button span { font-size:20px; font-weight:400; line-height:1; }
.home-gift__text-button { display:inline-flex; align-items:center; gap:10px; min-height:44px; border:0; background:none; padding:10px 0; text-decoration:underline; text-underline-offset:5px; font:600 12px var(--font-family-base); color:inherit; cursor:pointer; }
.home-gift__text-button:hover { text-decoration:underline; text-underline-offset:5px; }
.home-gift__delivery { display:flex; align-items:center; gap:8px; margin:23px 0 0; font-size:10px; color:var(--color-text-muted-dark); line-height:1.5; }
.home-gift__delivery svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.4; flex-shrink:0; }
.home-gift__scene { position:relative; display:flex; align-items:center; justify-content:center; padding:38px 30px 58px; min-width:0; }
.home-gift__envelope { position:absolute; bottom:69px; left:14%; width:75%; height:235px; border:1px solid #e9cd89; background:#f4dfa6; transform:rotate(-9deg); border-radius:8px; box-shadow:0 15px 25px #5435160b; overflow:hidden; }
.home-gift__envelope::after { content:''; position:absolute; inset:0; background:linear-gradient(33deg,transparent 49.5%,#e9cd89 50%,#f9e7b8 50.5%); clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%); }
.home-gift__envelope span { position:absolute; bottom:14px; left:20px; font-size:9px; z-index:1; letter-spacing:.08em; }
.home-gift__sample { position:relative; width:310px; max-width:90%; transform:rotate(5deg); box-shadow:0 18px 32px #54351617; border-radius:10px; }
.home-gift__sample:hover { transform:rotate(2deg) translateY(-3px); }
.home-gift__sample-open { position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:10px; background:transparent; cursor:pointer; }
.home-gift__caption { position:absolute; bottom:18px; left:0; right:0; display:flex; justify-content:center; align-items:center; gap:8px; background:none; border:0; min-height:44px; font:400 10px var(--font-family-base); color:inherit; cursor:pointer; }
.home-gift__dot { width:5px; height:5px; border-radius:100%; background:var(--color-brand-orange); }
.home-gift :is(button,a):focus-visible, .home-gift-dialog :is(button,a):focus-visible { outline:3px solid var(--color-brand-orange); outline-offset:4px; }

/* Reuse the real gift letter partial, at miniature scale and in the preview. */
:is(.home-gift,.home-gift-dialog) .gift-letter { background:var(--color-white); color:var(--color-brand-brown); border:1px solid var(--color-warm-border); border-top:4px solid var(--color-brand-yellow); border-radius:10px; padding:20px 22px 22px; overflow-wrap:anywhere; }
:is(.home-gift,.home-gift-dialog) .gift-letter-top { display:flex; justify-content:space-between; align-items:start; gap:20px; }
:is(.home-gift,.home-gift-dialog) .gift-letter-logo { width:85px; height:auto; display:block; }
:is(.home-gift,.home-gift-dialog) .gift-letter-qr { width:62px; height:62px; flex-shrink:0; display:block; text-decoration:none; }
:is(.home-gift,.home-gift-dialog) .gift-letter-qr svg { display:block; width:100%; height:100%; }
:is(.home-gift,.home-gift-dialog) .gift-eyebrow { font-size:5px; line-height:1.65; letter-spacing:.12em; font-weight:750; color:var(--color-brand-orange-dark); margin:2px 0 0; text-transform:uppercase; }
:is(.home-gift,.home-gift-dialog) .gift-letter h2 { font-size:24px; line-height:1.13; letter-spacing:-.055em; font-weight:650; margin:18px 0 0; white-space:pre-line; color:var(--color-brand-brown); }
:is(.home-gift,.home-gift-dialog) .gift-letter h2::after { content:'.'; color:var(--color-brand-orange); }
:is(.home-gift,.home-gift-dialog) .gift-letter-message { font-size:9px; line-height:1.8; margin:16px 0 0; }
:is(.home-gift,.home-gift-dialog) .gift-letter-signature { font-size:8px; line-height:1.6; margin:15px 0 0; }
:is(.home-gift,.home-gift-dialog) .gift-letter-memory { display:grid; grid-template-columns:1.04fr 1fr; gap:16px; align-items:center; border-top:1px solid var(--color-warm-border); margin-top:18px; padding-top:16px; }
:is(.home-gift,.home-gift-dialog) .gift-letter-photo { margin:0; padding:5px 5px 10px; border:1px solid var(--color-warm-border); transform:rotate(-3deg); box-shadow:0 4px 8px #54351609; background:var(--color-white); }
:is(.home-gift,.home-gift-dialog) .gift-letter-photo img { width:100%; height:auto; display:block; }
:is(.home-gift,.home-gift-dialog) .gift-letter-photo figcaption { display:none; }
:is(.home-gift,.home-gift-dialog) .gift-letter-story p { margin:0; font-size:6px; line-height:1.5; color:var(--color-text-muted-dark); }
:is(.home-gift,.home-gift-dialog) .gift-letter-story h3 { font-size:11px; font-weight:600; line-height:1.4; margin:6px 0 0; color:var(--color-brand-brown); }
:is(.home-gift,.home-gift-dialog) .gift-letter-story a { font-size:7px; margin-top:8px; display:block; color:inherit; text-decoration:underline; text-underline-offset:3px; }
:is(.home-gift,.home-gift-dialog) [hidden] { display:none!important; }

.home-gift-dialog { border:1px solid var(--color-warm-border); border-radius:22px; width:650px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 40px); margin:auto; padding:28px; overflow:auto; background:var(--color-warm-surface); color:var(--color-brand-brown); }
.home-gift-dialog::backdrop { background:#2c201cb0; backdrop-filter:blur(4px); }
body:has(.home-gift-dialog[open]) { overflow:hidden; }
.home-gift-dialog__header { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:24px; }
.home-gift-dialog__kicker { font-size:10px; font-weight:700; letter-spacing:.15em; color:var(--color-brand-orange-dark); }
.home-gift-dialog__header h2 { font-size:23px; line-height:1.2; letter-spacing:-.04em; margin:6px 0 0; color:inherit; }
.home-gift-dialog__close { width:44px; height:44px; flex-shrink:0; background:var(--color-white); border:1px solid var(--color-warm-border); border-radius:50%; font:400 26px var(--font-family-base); color:inherit; cursor:pointer; }
.home-gift-dialog__note { font-size:12px; line-height:1.6; margin:20px 0; color:var(--color-text-muted-dark); }
.home-gift-dialog .gift-letter { padding:30px; border-top-width:5px; }
.home-gift-dialog .gift-letter-logo { width:125px; }
.home-gift-dialog .gift-letter-qr { width:115px; height:115px; }
.home-gift-dialog .gift-eyebrow { font-size:8px; margin-top:-5px; }
.home-gift-dialog .gift-letter h2 { font-size:38px; margin-top:28px; }
.home-gift-dialog .gift-letter-message { font-size:14px; }
.home-gift-dialog .gift-letter-signature { font-size:12px; margin:22px 0; }
.home-gift-dialog .gift-letter-memory { gap:27px; padding-top:22px; }
.home-gift-dialog .gift-letter-photo { padding:8px 8px 18px; }
.home-gift-dialog .gift-letter-story p { font-size:10px; }
.home-gift-dialog .gift-letter-story h3 { font-size:18px; }
.home-gift-dialog .gift-letter-story a { font-size:11px; min-height:44px; display:inline-flex; align-items:center; }
.home-gift-dialog--how { width:900px; padding:0; background:var(--color-white); font:400 14px/1.6 var(--font-family-base); }
.home-gift-dialog--how .home-gift-dialog__header { position:sticky; top:0; z-index:1; align-items:flex-start; gap:16px; margin:0; padding:24px 28px; background:var(--color-white); border-bottom:1px solid var(--color-warm-border); }
.home-gift-dialog--how .home-gift-dialog__kicker { font-size:11px; letter-spacing:.12em; }
.home-gift-dialog--how .home-gift-dialog__header h2 { font-size:24px; font-weight:700; line-height:1.3; letter-spacing:-.02em; }
.home-gift-dialog__paths { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding:24px 28px 28px; }
.home-gift-dialog__path { min-width:0; display:flex; flex-direction:column; padding:24px; border:1px solid var(--color-warm-border); border-radius:var(--radius-3xl); background:var(--color-warm-surface); }
.home-gift-dialog__path:only-child { grid-column:1 / -1; }
.home-gift-dialog__path h3 { margin:0; font-size:20px; font-weight:700; line-height:1.3; color:var(--color-brand-brown); }
.home-gift-dialog__summary { margin:10px 0 0; font-size:14px; line-height:1.6; color:var(--color-text-muted-dark); }
.home-gift-dialog__steps { padding:0; list-style:none; display:grid; gap:20px; margin:24px 0; }
.home-gift-dialog__steps li { display:flex; gap:12px; }
.home-gift-dialog__steps li>span { border-radius:50%; width:28px; height:28px; flex-shrink:0; display:grid; place-items:center; background:var(--color-brand-yellow-soft); color:var(--color-brand-brown); font-weight:600; font-size:13px; }
.home-gift-dialog__steps h4 { font-size:14px; font-weight:600; line-height:1.5; margin:2px 0 0; color:var(--color-text-main); }
.home-gift-dialog__steps p { font-size:14px; line-height:1.6; margin:6px 0 0; color:var(--color-text-muted-dark); }
.home-gift-dialog__path > .public-ui-button { width:100%; margin-top:auto; white-space:normal; }
@media(max-width:1276px) { .home-gift { margin:40px 18px; } }
@container(max-width:1000px) {
    .home-gift__copy { padding-left:30px; }
    .home-gift__description { font-size:14px; }
    .home-gift__actions { gap:8px; }
    .home-gift__button { font-size:12px; padding:14px 17px; }
    .home-gift__scene { padding-left:12px; padding-right:12px; }
    .home-gift__sample { width:280px; }
}
@container(max-width:720px) {
    .home-gift__banner { border-radius:22px; grid-template-columns:1fr; }
    .home-gift__copy { padding:32px 26px 0; }
    .home-gift__copy h2 { font-size:38px; }
    .home-gift__eyebrow { font-size:9px; margin-bottom:20px; }
    .home-gift__description { font-size:14px; margin-top:20px; }
    .home-gift__break { display:none; }
    .home-gift__actions { margin-top:23px; }
    .home-gift__button { padding:15px 18px; font-size:12px; min-height:49px; }
    .home-gift__delivery { margin-top:14px; font-size:9px; }
    .home-gift__scene { min-height:490px; padding:28px 20px 52px; }
    .home-gift__sample { width:285px; max-width:88%; }
    .home-gift__envelope { bottom:55px; left:10%; width:77%; height:215px; }
    .home-gift__caption { bottom:4px; font-size:9px; }
}
@media(max-width:700px) {
    .home-gift-dialog { padding:18px; }
    .home-gift-dialog__header h2 { font-size:20px; }
    .home-gift-dialog--how { padding:0; }
    .home-gift-dialog--how .home-gift-dialog__header { padding:20px 16px; }
    .home-gift-dialog--how .home-gift-dialog__header h2 { font-size:20px; }
    .home-gift-dialog__paths { grid-template-columns:1fr; padding:16px; gap:16px; }
    .home-gift-dialog__path { padding:20px 16px; }
    .home-gift-dialog__path h3 { font-size:18px; }
    .home-gift-dialog .gift-letter { padding:20px; }
    .home-gift-dialog .gift-letter-logo { width:105px; }
    .home-gift-dialog .gift-letter-qr { width:100px; height:100px; }
    .home-gift-dialog .gift-letter h2 { font-size:31px; }
    .home-gift-dialog .gift-letter-message { font-size:12px; }
    .home-gift-dialog .gift-letter-memory { grid-template-columns:1fr; gap:22px; }
    .home-gift-dialog .gift-letter-photo { max-width:230px; margin:auto; }
    .home-gift-dialog .gift-letter-story h3 { font-size:17px; }
}
@media(prefers-reduced-motion:no-preference) {
    .home-gift__sample { transition:transform .25s ease; }
    .home-gift__button { transition:background .15s ease; }
}
