.letter-sheet-backdrop.svelte-1b8qaoi{position:fixed;inset:0;z-index:90;background:#0a080c6b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.letter-sheet.svelte-1b8qaoi{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:100;width:min(92vw,440px);border:1px solid hsl(var(--border) / .84);border-radius:24px;padding:28px;color:hsl(var(--foreground));background:hsl(var(--card) / .96);box-shadow:0 28px 90px #00000047;transform:translate(-50%)}.letter-sheet__close.svelte-1b8qaoi{position:absolute;top:14px;right:14px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid hsl(var(--border));border-radius:999px;color:hsl(var(--foreground));background:hsl(var(--background) / .72);cursor:pointer}.letter-sheet__eyebrow.svelte-1b8qaoi{margin:0 42px 8px 0;color:hsl(var(--primary));font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}h2.svelte-1b8qaoi{margin:0;font-family:var(--font-serif);font-size:clamp(1.8rem,7vw,2.5rem);letter-spacing:0}.letter-sheet__description.svelte-1b8qaoi{margin:12px 0 22px;color:hsl(var(--muted-foreground));line-height:1.6}.letter-sheet__price.svelte-1b8qaoi{display:flex;align-items:center;justify-content:space-between;border:1px solid hsl(var(--border));border-radius:18px;padding:16px;background:hsl(var(--background) / .7)}.letter-sheet__price.svelte-1b8qaoi span:where(.svelte-1b8qaoi){color:hsl(var(--muted-foreground))}.letter-sheet__price.svelte-1b8qaoi strong:where(.svelte-1b8qaoi){color:hsl(var(--foreground));font-size:1.25rem}.letter-sheet__error.svelte-1b8qaoi{margin:14px 0 0;color:#d42160;font-size:.9rem}.letter-sheet__cta.svelte-1b8qaoi{width:100%;min-height:50px;border:0;border-radius:999px;margin-top:18px;color:hsl(var(--primary-foreground));background:hsl(var(--primary));font:inherit;font-weight:900;cursor:pointer}.letter-sheet__cta.svelte-1b8qaoi:disabled{cursor:wait;opacity:.68}.page-typing-reveal.svelte-wwi233{position:relative;width:100%;max-width:100%;min-width:0;overflow:hidden;-webkit-user-select:none;user-select:none}.page-typing-reveal.is-typing.svelte-wwi233{cursor:pointer}.page-typing-reveal.svelte-wwi233:focus{outline:none}.page-typing-reveal.svelte-wwi233:focus-visible{outline:none}.page-typing-reveal__page.svelte-wwi233{min-width:0;max-width:100%;min-height:0;overflow:hidden;overflow-wrap:anywhere;animation:svelte-wwi233-page-typing-page-in .45s ease-out both}.page-typing-reveal.svelte-wwi233 p:where(.svelte-wwi233){margin:0;max-width:100%;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--page-typing-text-color, hsl(var(--foreground) / .78))}.page-typing-reveal__cursor.svelte-wwi233{position:relative;top:2px;display:inline-block;width:10px;height:1em;margin-inline-start:.125rem;border-radius:3px;background:linear-gradient(to bottom,hsl(var(--primary) / .72),hsl(var(--accent) / .72));animation:svelte-wwi233-page-typing-cursor .9s ease-in-out infinite;vertical-align:baseline}.page-typing-reveal__dots.svelte-wwi233{display:flex;gap:4px;margin-top:12px;opacity:.8}.page-typing-reveal__dots.svelte-wwi233 span:where(.svelte-wwi233){width:6px;height:6px;border-radius:999px;background:hsl(var(--primary) / .25)}.page-typing-reveal__dots.svelte-wwi233 span.active:where(.svelte-wwi233){background:hsl(var(--primary))}.page-typing-reveal__hint.svelte-wwi233{margin-top:8px;color:var(--page-typing-hint-color, hsl(var(--foreground) / .44));font-size:10px;font-style:italic}@keyframes svelte-wwi233-page-typing-page-in{0%{opacity:0;filter:blur(6px);transform:translateY(10px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes svelte-wwi233-page-typing-cursor{0%,to{opacity:.45}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.page-typing-reveal__page.svelte-wwi233,.page-typing-reveal__cursor.svelte-wwi233{animation:none}}.letter-content.svelte-1n2apdd{--letter-italic-ink: hsl(var(--foreground) / .66);--letter-italic-ink-strong: hsl(var(--foreground) / .7);--letter-italic-ink-muted: hsl(var(--foreground) / .46);--letter-italic-accent: hsl(var(--primary) / .74);position:fixed;inset:0;min-height:100svh;overflow:hidden;color:hsl(var(--foreground));background:hsl(var(--background));isolation:isolate}.letter-content--embedded.svelte-1n2apdd{position:absolute;inset:0;width:100%;height:100%;min-height:100%;overflow:hidden;border-radius:inherit;container-type:size;contain:layout paint}.letter-content--embedded.svelte-1n2apdd .letter-lightbox:where(.svelte-1n2apdd),.letter-content--embedded.svelte-1n2apdd .letter-fullscreen-text:where(.svelte-1n2apdd),.letter-content--embedded.svelte-1n2apdd .letter-dots:where(.svelte-1n2apdd),.letter-content--embedded.svelte-1n2apdd .letter-mobile-dots:where(.svelte-1n2apdd){position:absolute}.letter-content--preview-mobile.svelte-1n2apdd .letter-stage:where(.svelte-1n2apdd){padding:64px 18px 106px}.letter-content--preview-desktop.svelte-1n2apdd .letter-stage:where(.svelte-1n2apdd){padding:72px clamp(18px,5cqw,72px) 136px}.letter-content--preview.svelte-1n2apdd .letter-hero__copy:where(.svelte-1n2apdd){gap:clamp(8px,1cqw,12px)}.letter-content--preview.svelte-1n2apdd .letter-hero:where(.svelte-1n2apdd) h1:where(.svelte-1n2apdd){max-width:min(92cqw,58rem);font-size:clamp(2rem,4.2cqw,3.75rem)}.letter-content--preview.svelte-1n2apdd .letter-hero__recipient:where(.svelte-1n2apdd),.letter-content--preview.svelte-1n2apdd .letter-hero__nickname:where(.svelte-1n2apdd){font-size:clamp(1rem,2.5cqw,1.5rem)}.letter-content--preview.svelte-1n2apdd .letter-hero__recipient:where(.svelte-1n2apdd){font-size:clamp(2rem,7cqw,3.6rem)}.letter-content--preview.svelte-1n2apdd .letter-hero__meta:where(.svelte-1n2apdd){max-width:min(92cqw,58rem);font-size:clamp(.95rem,1.35cqw,1.15rem)}.letter-content--preview.svelte-1n2apdd .letter-hero__meta:where(.svelte-1n2apdd) bdi:where(.svelte-1n2apdd){max-width:min(74cqw,42rem);font-size:clamp(1.45rem,1.85cqw,2.25rem)}.letter-content--preview.svelte-1n2apdd .letter-message__icon{margin-bottom:clamp(30px,4cqh,40px)}.letter-content--preview.svelte-1n2apdd .letter-message__text-window:where(.svelte-1n2apdd){height:clamp(190px,34cqh,350px)}.letter-content--preview.svelte-1n2apdd .letter-message__signature:where(.svelte-1n2apdd){margin-top:clamp(34px,4.6cqh,44px);font-size:clamp(1rem,2cqw,1.12rem)}.letter-content--preview.svelte-1n2apdd .letter-message__text{font-size:clamp(1.45rem,2cqw,1.95rem)!important}.letter-content--preview.svelte-1n2apdd .letter-emotive-card:where(.svelte-1n2apdd){max-height:calc(100cqh - 232px);padding:clamp(28px,5cqw,56px)}.letter-content--preview.svelte-1n2apdd .letter-emotive-card--lg:where(.svelte-1n2apdd){height:clamp(330px,44cqh,460px)}.letter-content--preview.svelte-1n2apdd .letter-emotive-card:where(.svelte-1n2apdd) h2:where(.svelte-1n2apdd){font-size:clamp(1.6rem,5cqw,2.6rem)}.letter-content--preview.svelte-1n2apdd .letter-emotive-card__text{font-size:clamp(1rem,2cqw,1.25rem)!important}.letter-content--preview.svelte-1n2apdd .letter-photo-header:where(.svelte-1n2apdd) h2:where(.svelte-1n2apdd),.letter-content--preview.svelte-1n2apdd .letter-gallery-caption:where(.svelte-1n2apdd) p:where(.svelte-1n2apdd),.letter-content--preview.svelte-1n2apdd .letter-detail-list:where(.svelte-1n2apdd) dd:where(.svelte-1n2apdd),.letter-content--preview.svelte-1n2apdd .letter-feedback:where(.svelte-1n2apdd) h2:where(.svelte-1n2apdd){font-size:clamp(1.1rem,4cqw,1.8rem)}.letter-content--preview.svelte-1n2apdd .letter-photo-card:where(.svelte-1n2apdd){height:clamp(320px,62cqh,640px)}.letter-content--preview.svelte-1n2apdd .letter-polaroid-stack:where(.svelte-1n2apdd){height:clamp(220px,48cqh,560px)}.letter-content--preview.svelte-1n2apdd .letter-single-photo:where(.svelte-1n2apdd){width:min(78cqw,340px);height:clamp(280px,42cqh,420px)}.letter-content--preview.svelte-1n2apdd .letter-floating-cards:where(.svelte-1n2apdd){min-width:min(320px,calc(100cqw - 48px))}.letter-content--preview-mobile.svelte-1n2apdd .letter-arrows:where(.svelte-1n2apdd),.letter-content--preview-mobile.svelte-1n2apdd .letter-dots:where(.svelte-1n2apdd){display:none}.letter-content--preview-mobile.svelte-1n2apdd .letter-mobile-dots:where(.svelte-1n2apdd){display:flex}.letter-content--preview-mobile.svelte-1n2apdd .letter-lightbox__image{width:min(88%,340px);height:min(70%,520px)}.letter-content--preview-mobile.svelte-1n2apdd .letter-hero__copy:where(.svelte-1n2apdd){width:min(100%,360px);gap:10px}.letter-content--preview-mobile.svelte-1n2apdd .letter-hero:where(.svelte-1n2apdd) h1:where(.svelte-1n2apdd){max-width:min(86cqw,280px);font-size:clamp(2rem,11cqw,3.35rem)}.letter-content--preview-mobile.svelte-1n2apdd .letter-hero__meta:where(.svelte-1n2apdd) bdi:where(.svelte-1n2apdd){max-width:min(88cqw,340px);font-size:clamp(1.85rem,9cqw,3rem);line-height:.88;overflow-wrap:anywhere;white-space:normal;transform:none}.letter-content--preview-mobile.svelte-1n2apdd .letter-photo-grid:where(.svelte-1n2apdd){width:min(78cqw,320px)}.letter-content--preview-mobile.svelte-1n2apdd .letter-photo-card:where(.svelte-1n2apdd){height:clamp(220px,36cqh,420px)}.letter-content--preview-mobile.svelte-1n2apdd .letter-message__tools:where(.svelte-1n2apdd),.letter-content--preview-mobile.svelte-1n2apdd .letter-message__text-window:where(.svelte-1n2apdd){width:min(100%,340px)}.letter-content--preview-mobile.svelte-1n2apdd .letter-message__text-window:where(.svelte-1n2apdd){height:clamp(180px,42cqh,340px)}.letter-content--preview-mobile.svelte-1n2apdd .letter-message__text{font-size:clamp(1.2rem,6.2cqw,1.65rem)!important}.letter-content--preview-mobile.svelte-1n2apdd .letter-emotive-card:where(.svelte-1n2apdd){width:min(100%,360px);max-height:calc(100cqh - 220px)}.letter-content--preview-mobile.svelte-1n2apdd .letter-emotive-card--lg:where(.svelte-1n2apdd){grid-template-rows:auto auto;height:auto;min-height:0;padding:22px}.letter-content--preview-mobile.svelte-1n2apdd .letter-emotive-card__scroll:where(.svelte-1n2apdd){min-height:clamp(132px,23cqh,184px)}.letter-content--preview-mobile.svelte-1n2apdd .letter-floating-cards:where(.svelte-1n2apdd){min-width:min(330px,calc(100cqw - 40px));max-width:calc(100cqw - 40px)}.letter-content.svelte-1n2apdd:before{content:"";position:absolute;inset:0;z-index:-3;pointer-events:none;background:var(--letter-theme-overlay),radial-gradient(circle at 12% 88%,color-mix(in srgb,var(--letter-theme-accent) 16%,transparent),transparent 24rem),hsl(var(--background))}.letter-polaroid-backdrop.svelte-1n2apdd{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden}.letter-polaroid-backdrop__slides.svelte-1n2apdd{position:absolute;inset:0}.letter-polaroid-backdrop__blur{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:blur(2px);transform:scale(1.05);transition:opacity 1.3s ease-in-out;will-change:opacity}.letter-polaroid-backdrop__blur.is-active{opacity:.45}.letter-polaroid-backdrop__wash.svelte-1n2apdd{position:absolute;inset:0;background:linear-gradient(to bottom,hsl(var(--background) / .3),hsl(var(--background) / .72),hsl(var(--background)))}.letter-polaroid-backdrop__scatter.svelte-1n2apdd{position:absolute;inset:0}.letter-scatter-polaroid.svelte-1n2apdd{--x0: 18%;--y0: 16%;--rot0: -7deg;--x1: 78%;--y1: 20%;--rot1: 6deg;--x2: 12%;--y2: 74%;--rot2: 9deg;--x3: 84%;--y3: 70%;--rot3: -10deg;position:absolute;left:var(--x0);top:var(--y0);opacity:.18;filter:blur(.8px);transform:translate(-50%,-50%) rotate(var(--rot0)) scale(.82);transition:opacity .9s ease,filter .9s ease,transform .9s ease;will-change:transform,opacity,filter}.letter-scatter-polaroid.svelte-1n2apdd:nth-child(2){left:var(--x1);top:var(--y1);transform:translate(-50%,-50%) rotate(var(--rot1)) scale(.86)}.letter-scatter-polaroid.svelte-1n2apdd:nth-child(3){left:var(--x2);top:var(--y2);transform:translate(-50%,-50%) rotate(var(--rot2)) scale(.8)}.letter-scatter-polaroid.svelte-1n2apdd:nth-child(4){left:var(--x3);top:var(--y3);transform:translate(-50%,-50%) rotate(var(--rot3)) scale(.84)}.letter-scatter-polaroid.active.svelte-1n2apdd{z-index:5;opacity:1;filter:drop-shadow(0 8px 20px rgba(0,0,0,.28));transform:translate(-50%,-50%) rotate(var(--rot0)) scale(1.02)}.letter-scatter-polaroid:nth-child(2).active.svelte-1n2apdd{transform:translate(-50%,-50%) rotate(var(--rot1)) scale(1.02)}.letter-scatter-polaroid:nth-child(3).active.svelte-1n2apdd{transform:translate(-50%,-50%) rotate(var(--rot2)) scale(1.02)}.letter-scatter-polaroid:nth-child(4).active.svelte-1n2apdd{transform:translate(-50%,-50%) rotate(var(--rot3)) scale(1.02)}.letter-scatter-polaroid.svelte-1n2apdd>div:where(.svelte-1n2apdd){position:relative;width:150px;height:190px;border:1px solid rgba(0,0,0,.1);border-radius:2px;padding:12px 12px 30px;background:#fff;box-shadow:0 20px 44px #0000001a}.letter-scatter-polaroid.svelte-1n2apdd .letter-scatter-polaroid__image{width:100%;height:100%;object-fit:cover;border-radius:2px;-webkit-user-select:none;user-select:none}.letter-scatter-polaroid.svelte-1n2apdd span:where(.svelte-1n2apdd){position:absolute;inset-inline:10px;bottom:7px;overflow:hidden;color:#3f3540;font-size:11px;font-weight:650;letter-spacing:.02em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.letter-scatter-polaroid.svelte-1n2apdd i:where(.svelte-1n2apdd),.letter-photo-card.svelte-1n2apdd i:where(.svelte-1n2apdd){position:absolute;left:50%;top:-8px;width:64px;height:20px;border-radius:3px;background:#fde68ac7;box-shadow:0 3px 12px #0000001f;transform:translate(-50%) rotate(2deg)}.letter-content__theme.svelte-1n2apdd{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden}.letter-content--christmas.svelte-1n2apdd .letter-content__theme:where(.svelte-1n2apdd){background-image:radial-gradient(circle,rgba(255,255,255,.9) 0 2px,transparent 3px),radial-gradient(circle,rgba(255,255,255,.6) 0 1px,transparent 2px);background-size:120px 120px,80px 80px;animation:svelte-1n2apdd-letter-snow 18s linear infinite}.letter-content--birthday.svelte-1n2apdd .letter-content__theme:where(.svelte-1n2apdd){background-image:radial-gradient(circle,#ff3c71 0 2px,transparent 3px),radial-gradient(circle,#ffd166 0 2px,transparent 3px),radial-gradient(circle,#4cc9f0 0 2px,transparent 3px);background-size:110px 110px,90px 90px,140px 140px;animation:svelte-1n2apdd-letter-confetti 16s linear infinite;opacity:.45}.letter-stage-wrap.svelte-1n2apdd,.letter-stage-motion.svelte-1n2apdd,.letter-stage-frame.svelte-1n2apdd{position:absolute;inset:0}.letter-stage-wrap.is-locked.svelte-1n2apdd .letter-stage-frame:where(.svelte-1n2apdd){filter:blur(6px);opacity:.7;transition:filter .3s ease,opacity .3s ease}.letter-stage.svelte-1n2apdd{position:absolute;inset:0;display:grid;align-items:center;justify-items:center;padding:max(env(safe-area-inset-top),72px) clamp(18px,5vw,72px) max(env(safe-area-inset-bottom),136px)}.letter-hero.svelte-1n2apdd{text-align:center}.letter-hero__copy.svelte-1n2apdd{position:relative;display:grid;justify-items:center;gap:clamp(8px,1vw,12px);width:min(100%,58rem)}.letter-hero__copy.svelte-1n2apdd:before{content:"";position:absolute;inset:-16px -20px;z-index:-1;border-radius:999px;background:radial-gradient(ellipse at center,hsl(var(--primary) / .14),hsl(var(--accent) / .08) 42%,transparent 72%);filter:blur(22px);opacity:.36}.letter-hero.svelte-1n2apdd h1:where(.svelte-1n2apdd){max-width:min(92vw,58rem);margin:0;overflow-wrap:anywhere;color:hsl(var(--primary));font-family:var(--font-handwriting),var(--font-serif);font-size:clamp(2rem,4.2vw,3.75rem);font-weight:850;line-height:.95;letter-spacing:0;text-wrap:balance;filter:drop-shadow(0 8px 16px hsl(var(--primary) / .11))}.letter-hero__birthday.svelte-1n2apdd{margin:0 0 10px;color:hsl(var(--primary));font-size:.86rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.letter-hero__recipient.svelte-1n2apdd,.letter-hero__nickname.svelte-1n2apdd{margin:0;color:var(--letter-italic-ink);font-size:clamp(1rem,2.5vw,1.5rem);font-style:italic}.letter-hero__recipient.svelte-1n2apdd{color:var(--letter-italic-accent);font-family:var(--font-handwriting),var(--font-serif);font-size:clamp(2rem,7vw,3.6rem);line-height:1}.letter-hero__meta.svelte-1n2apdd{display:grid;gap:10px;max-width:min(92vw,58rem);color:hsl(var(--foreground) / .68);font-size:clamp(.95rem,1.35vw,1.15rem)}.letter-hero__meta.svelte-1n2apdd p:where(.svelte-1n2apdd),.letter-hero__meta.svelte-1n2apdd time:where(.svelte-1n2apdd){margin:0}.letter-hero__meta.svelte-1n2apdd bdi:where(.svelte-1n2apdd){display:inline-block;max-width:min(74vw,42rem);margin-top:-2px;overflow-wrap:normal;color:hsl(var(--primary));font-family:var(--font-handwriting),var(--font-serif);font-size:clamp(1.45rem,1.85vw,2.25rem);font-weight:650;line-height:.92;white-space:nowrap;filter:drop-shadow(0 7px 14px hsl(var(--primary) / .1));transform:scaleX(.92);transform-origin:center}.letter-hero__actions.svelte-1n2apdd,.letter-feedback__actions.svelte-1n2apdd{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.letter-hero-action.svelte-1n2apdd,.letter-primary-button.svelte-1n2apdd,.letter-secondary-icon-button.svelte-1n2apdd,.letter-floating-cards.svelte-1n2apdd,.letter-open-more.svelte-1n2apdd,.letter-ghost-button.svelte-1n2apdd{font:inherit;cursor:pointer}.letter-hero-action.svelte-1n2apdd{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid hsl(var(--border) / .46);border-radius:999px;padding:0 14px;color:hsl(var(--foreground) / .84);background:hsl(var(--background) / .48);box-shadow:0 12px 30px #00000029;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.letter-hero-action.svelte-1n2apdd span:where(.svelte-1n2apdd){white-space:nowrap}.letter-hero-action.svelte-1n2apdd:hover{color:hsl(var(--foreground));border-color:hsl(var(--primary) / .42);background:hsl(var(--background) / .72);transform:translateY(-1px)}.letter-hero-action--icon.svelte-1n2apdd{width:40px;padding:0}.letter-hero-action--danger.svelte-1n2apdd{color:hsl(var(--foreground) / .72)}.letter-hero-action--danger.svelte-1n2apdd:hover{color:hsl(var(--destructive, 0 84.2% 60.2%) / .92);border-color:hsl(var(--destructive, 0 84.2% 60.2%) / .34)}.letter-primary-button.svelte-1n2apdd,.letter-floating-cards.svelte-1n2apdd,.letter-open-more.svelte-1n2apdd,.letter-ghost-button.svelte-1n2apdd{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:0 18px;font-weight:850}.letter-primary-button.svelte-1n2apdd{border:0;color:#fff;background:linear-gradient(120deg,hsl(var(--primary)),hsl(var(--accent)),hsl(var(--primary)));background-size:220% 100%;box-shadow:0 18px 42px hsl(var(--primary) / .25);animation:svelte-1n2apdd-letter-cta-gradient 2.6s ease-in-out infinite}.letter-secondary-icon-button.svelte-1n2apdd,.letter-icon-button.svelte-1n2apdd{width:48px;height:48px;display:inline-grid;place-items:center;border:1px solid hsl(var(--border) / .54);border-radius:999px;color:hsl(var(--foreground) / .8);background:hsl(var(--background) / .7);box-shadow:0 8px 28px #00000014;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.letter-secondary-icon-button.svelte-1n2apdd:hover,.letter-icon-button.svelte-1n2apdd:hover{color:hsl(var(--foreground));background:hsl(var(--background) / .92);transform:scale(1.05)}.letter-message__inner.svelte-1n2apdd{position:relative;display:grid;justify-items:center;width:min(100%,780px);min-width:0;transform:none;text-align:center}.letter-message__icon{margin:0 auto clamp(30px,4vh,40px);color:#b16f8a;opacity:1;filter:drop-shadow(0 1px 0 rgba(41,25,35,.65)) drop-shadow(0 0 8px rgba(177,111,138,.18));stroke-width:1.85}.letter-message__inner.svelte-1n2apdd time:where(.svelte-1n2apdd){display:block;margin-bottom:24px;color:var(--letter-italic-ink-muted);font-size:.95rem;font-style:italic}.letter-message__tools.svelte-1n2apdd{display:flex;justify-content:flex-end;width:min(100%,720px);margin-bottom:12px}.letter-message__fullscreen.svelte-1n2apdd{position:static;width:36px;height:36px;color:hsl(var(--foreground) / .62);background:hsl(var(--background) / .32);box-shadow:inset 0 0 0 1px hsl(var(--border) / .32)}.letter-message__text-window.svelte-1n2apdd{width:min(100%,720px);height:clamp(190px,34dvh,350px);min-width:0;overflow:hidden}.letter-message__text{--page-typing-text-color: var(--letter-italic-ink-strong);width:100%;min-width:0;max-width:100%;overflow:hidden;text-align:start;overflow-wrap:anywhere}.letter-message__text p{color:var(--letter-italic-ink-strong);text-shadow:0 1px 8px rgba(0,0,0,.12)}.letter-message__text .page-typing-reveal__dots{justify-content:flex-start}.letter-message__signature.svelte-1n2apdd{margin:clamp(34px,4.6vh,44px) 0 0;color:var(--letter-italic-ink-muted);font-family:var(--font-serif);font-size:clamp(1rem,2vw,1.12rem);font-style:italic;opacity:0;transform:translateY(12px);transition:opacity .55s ease,transform .55s ease}.letter-message__signature.is-visible.svelte-1n2apdd{opacity:1;transform:translateY(0)}.letter-emotive-card.svelte-1n2apdd{position:relative;width:min(100%,760px);min-width:0;max-height:calc(100svh - 232px);overflow:hidden;border:1px solid hsl(var(--border) / .4);border-radius:32px;padding:clamp(28px,5vw,56px);background:hsl(var(--card) / .9);box-shadow:0 24px 70px #00000026;-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);isolation:isolate}.letter-emotive-card--lg.svelte-1n2apdd{display:grid;grid-template-rows:auto minmax(0,1fr);height:clamp(330px,44dvh,460px)}.letter-emotive-card.svelte-1n2apdd:before,.letter-emotive-card.svelte-1n2apdd:after{content:"";position:absolute;z-index:-1;width:420px;height:420px;border-radius:999px;opacity:.46;filter:blur(30px)}.letter-emotive-card.svelte-1n2apdd:before{left:-160px;top:-160px;background:radial-gradient(circle,hsl(var(--primary) / .3),transparent 65%)}.letter-emotive-card.svelte-1n2apdd:after{right:-180px;bottom:-180px;background:radial-gradient(circle,hsl(var(--accent) / .3),transparent 70%)}.letter-emotive-card--md.svelte-1n2apdd{width:min(100%,640px)}.letter-emotive-card__fullscreen.svelte-1n2apdd{position:absolute;inset-block-start:12px;inset-inline-end:12px;z-index:2;width:36px;height:36px}.letter-emotive-card__header.svelte-1n2apdd{display:flex;align-items:center;gap:14px;margin-bottom:28px}.letter-emotive-card__icon.svelte-1n2apdd{display:inline-grid;width:56px;height:56px;flex-shrink:0;place-items:center;border-radius:18px;color:hsl(var(--primary));background:linear-gradient(135deg,hsl(var(--primary) / .2),hsl(var(--accent) / .2));box-shadow:inset 0 0 0 1px hsl(var(--border) / .4)}.letter-emotive-card.svelte-1n2apdd h2:where(.svelte-1n2apdd){margin:0;color:hsl(var(--foreground));font-size:clamp(1.6rem,5vw,2.6rem);line-height:1.05;letter-spacing:0}.letter-emotive-card__scroll.svelte-1n2apdd{height:100%;max-height:none;min-width:0;min-height:0;max-width:100%;overflow:hidden;overscroll-behavior:contain}.letter-emotive-card__text{--page-typing-text-color: var(--letter-italic-ink);min-width:0;max-width:100%;overflow:hidden;color:var(--letter-italic-ink);text-align:start;overflow-wrap:anywhere}.letter-emotive-card__text p{color:var(--letter-italic-ink)}.letter-photo-header.svelte-1n2apdd{display:inline-flex;align-items:center;gap:10px;border:1px solid hsl(var(--border) / .5);border-radius:999px;padding:10px 18px;background:hsl(var(--background) / .8);box-shadow:0 14px 28px #0000001a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.letter-photo-header.svelte-1n2apdd span:where(.svelte-1n2apdd){display:inline-grid;width:40px;height:40px;place-items:center;border-radius:14px;color:hsl(var(--primary));background:linear-gradient(135deg,hsl(var(--primary) / .15),hsl(var(--accent) / .2));box-shadow:inset 0 0 0 1px hsl(var(--border) / .4)}.letter-photo-header.svelte-1n2apdd h2:where(.svelte-1n2apdd){margin:0;color:hsl(var(--foreground));font-size:clamp(1.15rem,3vw,1.55rem);line-height:1}.letter-photo-header.svelte-1n2apdd b:where(.svelte-1n2apdd){border:1px solid hsl(var(--primary) / .2);border-radius:999px;padding:3px 9px;color:hsl(var(--primary) / .82);background:hsl(var(--primary) / .1);font-size:.72rem}.letter-photos.svelte-1n2apdd{align-content:center;gap:clamp(18px,4vw,28px)}.letter-single-photo.svelte-1n2apdd,.letter-photo-card.svelte-1n2apdd{position:relative;border:0;padding:0;background:transparent;cursor:pointer}.letter-single-photo.svelte-1n2apdd{width:min(100%,480px);height:clamp(320px,62dvh,640px);overflow:hidden;border:1px solid rgba(0,0,0,.1);border-radius:14px;background:#fff;box-shadow:0 20px 54px #0000002e}.letter-single-photo.svelte-1n2apdd .letter-photo-surface__image,.letter-photo-card.svelte-1n2apdd .letter-photo-surface__image{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.letter-single-photo.svelte-1n2apdd:hover .letter-photo-surface__image,.letter-photo-card.svelte-1n2apdd:hover .letter-photo-surface__image{transform:scale(1.05)}.letter-single-photo.svelte-1n2apdd span:where(.svelte-1n2apdd),.letter-photo-card.svelte-1n2apdd span:where(.svelte-1n2apdd){position:absolute;inset-inline:0;bottom:0;padding:18px 12px 10px;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,.28),transparent);font-size:.8rem;font-weight:650;line-height:1.35;text-align:center}.letter-photo-grid.svelte-1n2apdd{display:grid;width:min(100%,980px);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2.4vw,22px)}.letter-photo-card.svelte-1n2apdd{height:clamp(220px,48dvh,560px);overflow:hidden;border:1px solid rgba(0,0,0,.1);border-radius:14px;background:#fff;box-shadow:0 18px 44px #00000029}.letter-open-more.svelte-1n2apdd{border:1px solid hsl(var(--primary) / .25);color:hsl(var(--foreground));background:hsl(var(--background) / .86);box-shadow:0 14px 28px #0000001a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.letter-open-more.svelte-1n2apdd svg{color:hsl(var(--primary))}.letter-gallery-carousel.svelte-1n2apdd{position:relative;display:grid;justify-items:center;width:min(100%,1000px);-webkit-user-select:none;user-select:none}.letter-gallery-date.svelte-1n2apdd{margin-top:10px;color:hsl(var(--muted-foreground));font-size:.78rem}.letter-gallery-dots.svelte-1n2apdd{display:flex;gap:10px;margin-top:16px}.letter-gallery-dots.svelte-1n2apdd button:where(.svelte-1n2apdd){position:relative;width:16px;height:16px;border:0;border-radius:999px;background:hsl(var(--border) / .7);cursor:pointer}.letter-gallery-dots.svelte-1n2apdd button.active:where(.svelte-1n2apdd){background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--accent)));box-shadow:0 0 0 4px hsl(var(--primary) / .22);transform:scale(1.1)}.letter-polaroid-stack.svelte-1n2apdd{position:relative;width:min(78vw,340px);height:clamp(280px,42dvh,420px);margin-top:18px;border:0;background:transparent;cursor:pointer}.letter-polaroid-stack.svelte-1n2apdd span:where(.svelte-1n2apdd){position:absolute;left:50%;top:50%;width:min(58vw,220px);aspect-ratio:3 / 4;border:1px solid rgba(0,0,0,.1);padding:12px 12px 26px;background:#fff;box-shadow:0 24px 50px #0000003d;transition:transform .55s ease,opacity .55s ease}.letter-polaroid-stack.svelte-1n2apdd .layer-0:where(.svelte-1n2apdd){z-index:10;transform:translate(-80%,-70%) rotate(-7deg) scale(.94)}.letter-polaroid-stack.svelte-1n2apdd .layer-1:where(.svelte-1n2apdd){z-index:20;transform:translate(-66%,-66%) rotate(5deg) scale(.98)}.letter-polaroid-stack.svelte-1n2apdd .layer-2:where(.svelte-1n2apdd),.letter-polaroid-stack.svelte-1n2apdd span:where(.svelte-1n2apdd):first-child:last-child{z-index:30;transform:translate(-50%,-58%) rotate(0) scale(1)}.letter-polaroid-stack.svelte-1n2apdd .letter-polaroid-stack__image{width:100%;height:100%;object-fit:cover;border-radius:2px}.letter-gallery-nav.svelte-1n2apdd{position:absolute;top:50%;display:inline-grid;width:42px;height:42px;place-items:center;border:1px solid hsl(var(--border) / .4);border-radius:999px;color:hsl(var(--foreground));background:hsl(var(--background) / .72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transform:translateY(-50%)}.letter-gallery-nav--prev.svelte-1n2apdd{inset-inline-start:10px}.letter-gallery-nav--next.svelte-1n2apdd{inset-inline-end:10px}.letter-gallery-caption.svelte-1n2apdd{width:min(100%,580px);border:1px solid hsl(var(--border) / .5);border-radius:22px;padding:18px 22px;background:hsl(var(--background) / .85);box-shadow:0 16px 34px #0000001a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center}.letter-gallery-caption.svelte-1n2apdd small:where(.svelte-1n2apdd){display:block;color:hsl(var(--primary) / .82);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.letter-gallery-caption.svelte-1n2apdd i:where(.svelte-1n2apdd){position:relative;display:block;height:1px;margin:16px 0;background:linear-gradient(90deg,transparent,hsl(var(--border) / .65),transparent)}.letter-gallery-caption.svelte-1n2apdd i:where(.svelte-1n2apdd):after{content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;border-radius:999px;background:hsl(var(--primary) / .72);box-shadow:0 0 0 4px hsl(var(--primary) / .2);transform:translate(-50%)}.letter-gallery-caption.svelte-1n2apdd p:where(.svelte-1n2apdd){margin:0;color:hsl(var(--foreground) / .95);font-size:clamp(1rem,2.2vw,1.25rem);font-weight:650;line-height:1.55}.letter-detail-list.svelte-1n2apdd{display:grid;margin:0}.letter-detail-list.svelte-1n2apdd div:where(.svelte-1n2apdd){display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 14px;align-items:center;padding:14px 0}.letter-detail-list.svelte-1n2apdd div:where(.svelte-1n2apdd)+div:where(.svelte-1n2apdd){border-top:1px solid hsl(var(--border) / .4)}.letter-detail-list.svelte-1n2apdd svg{grid-row:span 3;display:inline-grid;width:44px;height:44px;padding:11px;border-radius:14px;color:hsl(var(--primary));background:linear-gradient(135deg,hsl(var(--primary) / .2),hsl(var(--accent) / .2))}.letter-detail-list.svelte-1n2apdd dt:where(.svelte-1n2apdd){color:hsl(var(--muted-foreground));font-size:.76rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.letter-detail-list.svelte-1n2apdd dd:where(.svelte-1n2apdd){min-width:0;margin:0;overflow-wrap:anywhere;color:hsl(var(--foreground));font-size:clamp(1.1rem,4vw,1.8rem);font-weight:750}.letter-detail-list.svelte-1n2apdd small:where(.svelte-1n2apdd){color:hsl(var(--primary));font-weight:650}.letter-music-frame.svelte-1n2apdd{overflow:hidden;border-radius:16px;box-shadow:inset 0 0 0 1px hsl(var(--border) / .4)}.letter-music-frame.svelte-1n2apdd iframe:where(.svelte-1n2apdd){display:block;width:100%;min-height:170px;border:0}.letter-feedback__form.svelte-1n2apdd{position:relative;display:grid;justify-items:center;width:min(100%,448px);text-align:center}.letter-eyebrow.svelte-1n2apdd{margin:0;color:hsl(var(--primary));font-size:.72rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.letter-feedback.svelte-1n2apdd h2:where(.svelte-1n2apdd){margin:12px 0 0;color:hsl(var(--foreground));font-size:clamp(1.7rem,7vw,2.5rem);line-height:1.1}.letter-feedback.svelte-1n2apdd p:where(.svelte-1n2apdd){margin:12px 0 0;max-width:380px;color:hsl(var(--muted-foreground));line-height:1.55}.letter-feedback.svelte-1n2apdd fieldset:where(.svelte-1n2apdd){border:0;margin:24px 0 0;padding:0}.letter-feedback.svelte-1n2apdd legend:where(.svelte-1n2apdd),.letter-rating__label.svelte-1n2apdd span:where(.svelte-1n2apdd){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.letter-rating.svelte-1n2apdd{--letter-rating-yellow: hsl(38 90% 55%);--letter-rating-muted: hsl(var(--muted-foreground) / .32);position:relative;display:flex;justify-content:center;padding-bottom:1.45rem}.letter-rating__input.svelte-1n2apdd{position:absolute;width:1px;height:1px;opacity:0;appearance:none}.letter-rating__label.svelte-1n2apdd{display:block;padding:.14rem;color:var(--letter-rating-yellow);cursor:pointer}.letter-rating__star.svelte-1n2apdd{display:block;width:2.15rem;height:2.15rem;overflow:visible;pointer-events:none}.letter-rating__star-ring.svelte-1n2apdd,.letter-rating__star-fill.svelte-1n2apdd,.letter-rating__star-line.svelte-1n2apdd,.letter-rating__star-stroke.svelte-1n2apdd{animation-duration:1s;animation-fill-mode:forwards;animation-timing-function:ease-in-out}.letter-rating__star-ring.svelte-1n2apdd,.letter-rating__star-fill.svelte-1n2apdd,.letter-rating__star-line.svelte-1n2apdd{stroke:var(--letter-rating-yellow)}.letter-rating__star-fill.svelte-1n2apdd{fill:var(--letter-rating-yellow);transform:scale(0);transition:fill .3s ease,transform .3s ease}.letter-rating__star-line.svelte-1n2apdd{stroke-dasharray:12 13;stroke-dashoffset:-13}.letter-rating__star-stroke.svelte-1n2apdd{stroke:var(--letter-rating-muted);transition:stroke .3s ease}.letter-rating__display.svelte-1n2apdd{position:absolute;left:0;top:calc(100% + .16rem);display:none;width:100%;min-height:1.25em;margin:0;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:650;text-align:center}.letter-rating__input-1.svelte-1n2apdd:checked~[data-rating="1"]:where(.svelte-1n2apdd),.letter-rating__input-2.svelte-1n2apdd:checked~[data-rating="2"]:where(.svelte-1n2apdd),.letter-rating__input-3.svelte-1n2apdd:checked~[data-rating="3"]:where(.svelte-1n2apdd),.letter-rating__input-4.svelte-1n2apdd:checked~[data-rating="4"]:where(.svelte-1n2apdd),.letter-rating__input-5.svelte-1n2apdd:checked~[data-rating="5"]:where(.svelte-1n2apdd){display:block}.letter-rating__input-1.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):first-of-type .letter-rating__star-ring:where(.svelte-1n2apdd),.letter-rating__input-2.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+2) .letter-rating__star-ring:where(.svelte-1n2apdd),.letter-rating__input-3.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+3) .letter-rating__star-ring:where(.svelte-1n2apdd),.letter-rating__input-4.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+4) .letter-rating__star-ring:where(.svelte-1n2apdd),.letter-rating__input-5.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+5) .letter-rating__star-ring:where(.svelte-1n2apdd){animation-name:svelte-1n2apdd-letterRatingStarRing}.letter-rating__input-1.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):first-of-type .letter-rating__star-stroke:where(.svelte-1n2apdd),.letter-rating__input-2.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+2) .letter-rating__star-stroke:where(.svelte-1n2apdd),.letter-rating__input-3.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+3) .letter-rating__star-stroke:where(.svelte-1n2apdd),.letter-rating__input-4.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+4) .letter-rating__star-stroke:where(.svelte-1n2apdd),.letter-rating__input-5.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+5) .letter-rating__star-stroke:where(.svelte-1n2apdd){animation-name:svelte-1n2apdd-letterRatingStarStroke}.letter-rating__input-1.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):first-of-type .letter-rating__star-line:where(.svelte-1n2apdd),.letter-rating__input-2.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+2) .letter-rating__star-line:where(.svelte-1n2apdd),.letter-rating__input-3.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+3) .letter-rating__star-line:where(.svelte-1n2apdd),.letter-rating__input-4.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+4) .letter-rating__star-line:where(.svelte-1n2apdd),.letter-rating__input-5.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+5) .letter-rating__star-line:where(.svelte-1n2apdd){animation-name:svelte-1n2apdd-letterRatingStarLine}.letter-rating__input-1.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):first-of-type .letter-rating__star-fill:where(.svelte-1n2apdd),.letter-rating__input-2.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+2) .letter-rating__star-fill:where(.svelte-1n2apdd),.letter-rating__input-3.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+3) .letter-rating__star-fill:where(.svelte-1n2apdd),.letter-rating__input-4.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+4) .letter-rating__star-fill:where(.svelte-1n2apdd),.letter-rating__input-5.svelte-1n2apdd:checked~.letter-rating__label:where(.svelte-1n2apdd):nth-of-type(-n+5) .letter-rating__star-fill:where(.svelte-1n2apdd){animation-name:svelte-1n2apdd-letterRatingStarFill}.letter-feedback__message.svelte-1n2apdd{display:grid;gap:8px;width:100%;margin-top:20px;color:hsl(var(--foreground));font-size:.88rem;font-weight:750;text-align:start}.letter-feedback.svelte-1n2apdd textarea:where(.svelte-1n2apdd){width:100%;min-height:112px;border:1px solid hsl(var(--border) / .62);border-radius:18px;padding:14px;background:hsl(var(--background) / .76);color:hsl(var(--foreground));font:inherit;line-height:1.5;outline:none;resize:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.letter-feedback.svelte-1n2apdd textarea:where(.svelte-1n2apdd):focus{border-color:hsl(var(--primary) / .62);box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.letter-feedback__meta.svelte-1n2apdd{display:flex;width:100%;justify-content:space-between;gap:16px;margin-top:8px;color:hsl(var(--muted-foreground));font-size:.78rem}.letter-feedback__meta.svelte-1n2apdd .error:where(.svelte-1n2apdd),.letter-inline-error.svelte-1n2apdd{color:#d42160}.letter-ghost-button.svelte-1n2apdd{border:0;min-height:36px;color:hsl(var(--muted-foreground));background:transparent;font-size:.88rem}.spin.svelte-1n2apdd{animation:svelte-1n2apdd-letter-spin .85s linear infinite}.letter-lock.svelte-1n2apdd{position:absolute;inset:0;z-index:30;display:grid;place-content:center;justify-items:center;gap:14px;border:0;padding:24px;color:hsl(var(--foreground));background:hsl(var(--background) / .46);text-align:center;cursor:pointer}.letter-lock.svelte-1n2apdd svg{color:hsl(var(--primary))}.letter-lock.svelte-1n2apdd span:where(.svelte-1n2apdd){max-width:320px;font-weight:700;line-height:1.55}.letter-dots.svelte-1n2apdd{position:fixed;inset-inline:0;top:24px;z-index:40;display:flex;align-items:center;justify-content:center;gap:12px;padding-inline:16px}.letter-dots.svelte-1n2apdd button:where(.svelte-1n2apdd){position:relative;display:grid;width:20px;height:20px;place-items:center;border:0;border-radius:999px;padding:0;background:linear-gradient(135deg,hsl(var(--background) / .7),hsl(var(--background) / .4));cursor:pointer;transition:transform .3s ease,box-shadow .3s ease,background .3s ease}.letter-dots.svelte-1n2apdd button:where(.svelte-1n2apdd):before{content:"";position:absolute;inset:0;border:2px solid hsl(var(--primary) / .35);border-radius:inherit;transition:border-color .3s ease}.letter-dots.svelte-1n2apdd button.active:where(.svelte-1n2apdd){background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--accent)));box-shadow:0 0 0 3px #ec48998c,0 0 10px #ec48998c;transform:scale(1.1)}.letter-dots.svelte-1n2apdd button.active:where(.svelte-1n2apdd):before{border-color:#f9a8d4}.letter-dots.svelte-1n2apdd button.active:where(.svelte-1n2apdd):after{content:"";position:absolute;inset:0;border-radius:inherit;background:hsl(var(--primary) / .25);animation:svelte-1n2apdd-letter-ping 1.2s cubic-bezier(0,0,.2,1) infinite}.letter-dots.svelte-1n2apdd span:where(.svelte-1n2apdd){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.letter-mobile-dots.svelte-1n2apdd{position:fixed;top:50%;inset-inline-start:8px;z-index:40;display:none;flex-direction:column;align-items:center;gap:12px;transform:translateY(-50%);transition:opacity .24s ease,filter .24s ease,transform .28s ease;will-change:opacity,transform}.letter-mobile-dots.is-retracted.svelte-1n2apdd{opacity:.42;filter:saturate(.82);pointer-events:none;transform:translate(-22px,-50%)}[dir=rtl].svelte-1n2apdd .letter-mobile-dots:where(.svelte-1n2apdd){inset-inline-start:auto;inset-inline-end:8px}[dir=rtl].svelte-1n2apdd .letter-mobile-dots.is-retracted:where(.svelte-1n2apdd){transform:translate(22px,-50%)}.letter-mobile-dots.svelte-1n2apdd:before{content:"";position:absolute;top:0;bottom:0;left:50%;z-index:-1;width:1px;background:linear-gradient(to bottom,transparent,hsl(var(--primary) / .35),transparent);transform:translate(-50%)}.letter-mobile-dots.svelte-1n2apdd button:where(.svelte-1n2apdd){width:16px;height:16px;border:2px solid hsl(var(--primary) / .35);border-radius:999px;padding:0;background:hsl(var(--background) / .75);transition:box-shadow .2s ease,opacity .2s ease,transform .2s ease,background .2s ease}.letter-mobile-dots.svelte-1n2apdd button.active:where(.svelte-1n2apdd){background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--accent)));box-shadow:0 0 0 2px #ec48996b,0 0 8px #ec48995c;transform:scale(1.1)}.letter-arrows.svelte-1n2apdd{position:absolute;inset-inline:clamp(16px,3vw,38px);top:50%;z-index:24;display:flex;justify-content:space-between;pointer-events:none;transform:translateY(-50%)}.letter-arrows.svelte-1n2apdd button:where(.svelte-1n2apdd){width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid hsl(var(--border) / .4);border-radius:999px;color:hsl(var(--foreground));background:hsl(var(--background) / .7);box-shadow:0 14px 34px #0000001a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;cursor:pointer;transition:opacity .18s ease,transform .18s ease,background .18s ease}.letter-arrows.svelte-1n2apdd button:where(.svelte-1n2apdd):hover{background:hsl(var(--background) / .9);transform:scale(1.05)}.letter-arrows.svelte-1n2apdd button:where(.svelte-1n2apdd):disabled{opacity:0;pointer-events:none}.letter-floating-cards.svelte-1n2apdd{position:absolute;left:50%;bottom:max(env(safe-area-inset-bottom),40px);z-index:28;min-width:min(320px,calc(100vw - 48px));border:1px solid hsl(var(--primary) / .34);border-radius:16px;min-height:58px;padding:0 32px;color:#fff;font-size:1.05rem;background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--accent)));box-shadow:0 4px 12px -2px hsl(var(--primary) / .55),0 8px 28px -4px hsl(var(--accent) / .45),0 0 0 1px hsl(var(--primary) / .25),inset 0 1px #ffffff40,inset 0 -1px 4px #00000026;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);white-space:nowrap;transform:translate(-50%);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.letter-floating-cards.svelte-1n2apdd:hover{box-shadow:0 8px 18px -4px hsl(var(--primary) / .62),0 14px 34px -6px hsl(var(--accent) / .52),0 0 0 1px hsl(var(--primary) / .3),inset 0 1px #ffffff47,inset 0 -1px 4px #00000029;transform:translate(-50%) translateY(-2px)}.letter-floating-cards.svelte-1n2apdd:disabled{cursor:wait;opacity:.76}.letter-lightbox.svelte-1n2apdd,.letter-fullscreen-text.svelte-1n2apdd{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;color:#fff;background:#08060ae0}.letter-lightbox.svelte-1n2apdd .letter-lightbox__image{width:min(92vw,980px);height:min(78svh,760px);border-radius:14px;object-fit:contain}.letter-lightbox__close.svelte-1n2apdd{position:absolute;top:max(env(safe-area-inset-top),18px);right:max(env(safe-area-inset-right),18px)}.letter-lightbox.svelte-1n2apdd button:where(.svelte-1n2apdd),.letter-fullscreen-text.svelte-1n2apdd button:where(.svelte-1n2apdd){width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:#fff;background:#ffffff1f;cursor:pointer}.letter-lightbox__nav.svelte-1n2apdd{position:absolute;top:50%;transform:translateY(-50%)}.letter-lightbox__nav--prev.svelte-1n2apdd{left:max(env(safe-area-inset-left),18px)}.letter-lightbox__nav--next.svelte-1n2apdd{right:max(env(safe-area-inset-right),18px)}.letter-lightbox.svelte-1n2apdd p:where(.svelte-1n2apdd){margin:14px 0 0;color:#ffffffd1}.letter-fullscreen-text.svelte-1n2apdd{z-index:999;display:flex;flex-direction:column;overflow:hidden;padding:0;color:hsl(var(--foreground));background:hsl(var(--background) / .95);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.letter-fullscreen-text.svelte-1n2apdd header:where(.svelte-1n2apdd){display:flex;width:100%;align-items:center;justify-content:space-between;border-bottom:1px solid hsl(var(--border) / .4);padding:12px clamp(16px,4vw,32px)}.letter-fullscreen-text.svelte-1n2apdd h2:where(.svelte-1n2apdd){margin:0;color:hsl(var(--foreground) / .8);font-size:.95rem;font-weight:600}.letter-fullscreen-text.svelte-1n2apdd button:where(.svelte-1n2apdd){color:hsl(var(--foreground));background:hsl(var(--background) / .4)}.letter-fullscreen-text.svelte-1n2apdd article:where(.svelte-1n2apdd){width:100%;flex:1;overflow-y:auto;padding:clamp(28px,6vw,48px) clamp(18px,6vw,40px)}.letter-fullscreen-text.svelte-1n2apdd article:where(.svelte-1n2apdd) p:where(.svelte-1n2apdd){width:min(100%,760px);margin:0 auto;white-space:pre-wrap;color:var(--letter-italic-ink-strong);font-family:var(--font-serif);font-size:clamp(1.1rem,3vw,1.65rem);line-height:1.7}@keyframes svelte-1n2apdd-letter-snow{0%{background-position:0 -120px,20px -80px}to{background-position:0 100vh,20px 100vh}}@keyframes svelte-1n2apdd-letter-confetti{0%{background-position:0 -110px,40px -90px,20px -140px}to{background-position:0 100vh,40px 100vh,20px 100vh}}@keyframes svelte-1n2apdd-letter-cta-gradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes svelte-1n2apdd-letter-ping{75%,to{opacity:0;transform:scale(2)}}@keyframes svelte-1n2apdd-letter-spin{to{transform:rotate(360deg)}}@keyframes svelte-1n2apdd-letterRatingStarRing{0%,20%{opacity:1;r:8px;stroke-width:16px;transform:scale(0)}35%{opacity:.5;r:8px;stroke-width:16px;transform:scale(1)}50%,to{opacity:0;r:16px;stroke-width:0;transform:scale(1)}}@keyframes svelte-1n2apdd-letterRatingStarFill{0%,40%{transform:scale(0)}60%{transform:scale(1.2)}80%{transform:scale(.9)}to{transform:scale(1)}}@keyframes svelte-1n2apdd-letterRatingStarStroke{0%{transform:scale(1)}20%,to{transform:scale(0)}}@keyframes svelte-1n2apdd-letterRatingStarLine{0%,40%{stroke-dasharray:1 23;stroke-dashoffset:1}60%,to{stroke-dasharray:12 13;stroke-dashoffset:-13}}@media(max-width:760px){.letter-stage.svelte-1n2apdd{padding-inline:18px;padding-top:max(env(safe-area-inset-top),76px);padding-bottom:max(env(safe-area-inset-bottom),128px)}.letter-emotive-card.svelte-1n2apdd{width:min(100%,360px);max-height:calc(100svh - 220px)}.letter-emotive-card--lg.svelte-1n2apdd{grid-template-rows:auto auto;height:auto;min-height:0;padding:22px}.letter-emotive-card__header.svelte-1n2apdd{gap:12px;margin-bottom:20px}.letter-emotive-card__icon.svelte-1n2apdd{width:48px;height:48px;border-radius:16px}.letter-emotive-card.svelte-1n2apdd h2:where(.svelte-1n2apdd){font-size:clamp(1.28rem,6.2vw,1.75rem);line-height:1.02}.letter-emotive-card__scroll.svelte-1n2apdd{height:auto;min-height:clamp(132px,23dvh,184px);max-height:none}.letter-emotive-card__text{font-size:clamp(.98rem,4.4vw,1.08rem)!important;line-height:1.58!important}.letter-hero__copy.svelte-1n2apdd{width:min(100%,360px);gap:10px}.letter-hero.svelte-1n2apdd h1:where(.svelte-1n2apdd){max-width:min(86vw,280px);font-size:clamp(2rem,11vw,3.35rem)}.letter-hero__meta.svelte-1n2apdd bdi:where(.svelte-1n2apdd){max-width:min(88vw,340px);font-size:clamp(1.85rem,9vw,3rem);line-height:.88;overflow-wrap:anywhere;white-space:normal;transform:none}.letter-hero-action.svelte-1n2apdd{min-height:38px;padding-inline:12px}.letter-photo-grid.svelte-1n2apdd{grid-template-columns:1fr;width:min(78vw,320px)}.letter-photo-card.svelte-1n2apdd{height:clamp(220px,36dvh,420px)}.letter-arrows.svelte-1n2apdd,.letter-dots.svelte-1n2apdd{display:none}.letter-mobile-dots.svelte-1n2apdd{display:flex}.letter-floating-cards.svelte-1n2apdd{bottom:max(env(safe-area-inset-bottom),24px);min-width:min(330px,calc(100vw - 40px));max-width:calc(100vw - 40px);min-height:56px;padding-inline:24px}.letter-message__inner.svelte-1n2apdd{transform:none}.letter-stage-wrap[data-stage-id=message].svelte-1n2apdd .letter-message__inner:where(.svelte-1n2apdd){width:min(100%,300px)}.letter-message__icon{margin-bottom:28px}.letter-message__tools.svelte-1n2apdd,.letter-message__text-window.svelte-1n2apdd{width:min(100%,300px)}.letter-message__text-window.svelte-1n2apdd{height:clamp(180px,42dvh,340px)}.letter-message__text{font-size:clamp(1.12rem,5.6vw,1.5rem)!important;line-height:1.28!important}.letter-message__signature.svelte-1n2apdd{margin-top:32px}.letter-lightbox__nav.svelte-1n2apdd{top:auto;bottom:max(env(safe-area-inset-bottom),22px);transform:none}.letter-scatter-polaroid.svelte-1n2apdd>div:where(.svelte-1n2apdd){width:118px;height:154px}}@media(prefers-reduced-motion:reduce){.letter-content--christmas.svelte-1n2apdd .letter-content__theme:where(.svelte-1n2apdd),.letter-content--birthday.svelte-1n2apdd .letter-content__theme:where(.svelte-1n2apdd),.letter-polaroid-backdrop__blur,.letter-primary-button.svelte-1n2apdd,.letter-rating__star-ring.svelte-1n2apdd,.letter-rating__star-fill.svelte-1n2apdd,.letter-rating__star-line.svelte-1n2apdd,.letter-rating__star-stroke.svelte-1n2apdd{animation:none}.letter-scatter-polaroid.svelte-1n2apdd,.letter-photo-card.svelte-1n2apdd .letter-photo-surface__image,.letter-single-photo.svelte-1n2apdd .letter-photo-surface__image{transition:none}}
