.wishStepPage{min-height:100vh;padding:clamp(0rem,2vw,2rem);background:radial-gradient(circle at 50% 0,rgba(255,255,255,.85),transparent 34rem),var(--color-paper-soft);font-family:var(--font-body)}.wishStepSheet{width:min(42rem,100%);min-height:100vh;margin:0 auto;border:1px solid var(--color-border-soft);border-radius:var(--radius-sheet);box-shadow:0 1.5rem 4rem rgba(68,65,48,.12)}.wishStepHeader,.wishStepSheet{overflow:hidden;background:var(--color-paper)}.wishStepHeader{position:relative;height:15.5rem}.wishStepHeader:after{position:absolute;z-index:1;right:0;bottom:4.75rem;left:0;height:5rem;background:linear-gradient(to bottom,rgba(251,247,238,0),rgba(251,247,238,.18) 28%,rgba(251,247,238,.78) 72%,var(--color-paper) 100%);content:"";pointer-events:none}.wishStepHeader__floral{position:absolute;inset:0 0 auto;width:100%;height:10.5rem;object-fit:cover;object-position:center bottom;filter:saturate(.86) brightness(1.05)}.wishStepBack,.wishStepCount,.wishStepLogo{position:absolute;z-index:2}.wishStepBack{top:1.25rem;left:1.2rem;display:grid;width:3rem;height:3rem;place-items:center;border:1px solid rgba(79,92,63,.55);border-radius:50%;background:rgba(251,247,238,.84);color:var(--color-olive-deep)}.wishStepBack svg{width:1.35rem}.wishStepCount{right:1.5rem;top:12rem;color:var(--color-olive-deep);font-family:var(--font-display);font-size:1rem;letter-spacing:.12em}.wishStepLogo{top:8.85rem;left:50%;width:8rem;height:5.35rem;object-fit:contain;mix-blend-mode:multiply;filter:drop-shadow(0 .18rem .18rem rgba(79,92,63,.12));transform:translateX(-50%)}.wishStepContent{display:grid;gap:1.35rem;padding:.75rem clamp(1rem,5vw,2.5rem) 2.25rem}.wishStepIntro{text-align:center}.wishStepIntro h1{margin:0;font-family:var(--font-body);font-size:clamp(1.65rem,5.8vw,2.25rem);font-weight:600;line-height:1.35}.wishStepIntro img{width:min(8.5rem,42%);height:auto;margin:.45rem auto .25rem;object-fit:contain}.wishStepIntro p{margin:.15rem auto 0;color:var(--color-muted);line-height:1.65}.wishPhotoField{display:grid;min-height:19rem;place-items:center;align-content:center;gap:.8rem;padding:1.2rem;border:1.5px dashed var(--color-border);border-radius:1.15rem;background:rgba(255,255,255,.46);text-align:center}.wishPhotoField.has-photo{overflow:hidden;padding:.7rem;background:#fff}.wishPhotoField>img{width:100%;max-height:24rem;aspect-ratio:3/2;border-radius:.75rem;object-fit:cover}.wishPhotoEmpty{display:grid;justify-items:center;gap:.15rem;color:var(--color-border)}.wishPhotoEmpty .wishPhotoEmpty__art{width:9rem;height:auto;object-fit:contain}.wishPhotoEmpty span{color:var(--color-muted)}.wishPhotoField button{display:flex;min-height:3.35rem;align-items:center;justify-content:center;gap:.55rem;padding:.65rem 1.5rem;border:0;border-radius:999px;background:var(--color-olive);box-shadow:0 .75rem 1.5rem rgba(79,92,63,.2);color:#fff;font-weight:600}.wishPhotoField small{color:var(--color-muted)}.wishSideField{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:0;border:0}.wishSideField button{display:grid;min-height:5.25rem;grid-template-columns:2.8rem minmax(0,1fr) 1.55rem;align-items:center;gap:.45rem;padding:.6rem .65rem;border:1px solid var(--color-border);border-radius:.8rem;background:rgba(255,255,255,.58);text-align:left}.wishSideField button.is-selected{border-color:var(--color-olive-deep);background:rgba(154,161,126,.15);box-shadow:inset 0 0 0 1px var(--color-olive)}.wishSideIcon{width:2.8rem;height:2.8rem;object-fit:contain}.wishSideField button>span{min-width:0;line-height:1.35}.wishSideField i{display:grid;width:1.55rem;height:1.55rem;place-items:center;border:1px solid var(--color-border);border-radius:50%;color:#fff}.wishSideField .is-selected i{border-color:var(--color-olive);background:var(--color-olive)}.wishTextField{display:grid;gap:.55rem}.wishTextField>span{display:flex;align-items:end;justify-content:space-between}.wishTextField strong{font-size:1.13rem}.wishTextField small{color:var(--color-muted)}.wishTextField input,.wishTextField textarea{width:100%;padding:.9rem 1rem;border:1px solid var(--color-border);border-radius:.85rem;background:rgba(255,255,255,.72);line-height:1.65;resize:vertical}.wishTextField input{min-height:3.6rem}.wishTextField textarea{min-height:10rem}.wishTextField input:focus,.wishTextField textarea:focus{border-color:var(--color-olive);outline:0;box-shadow:0 0 0 .22rem rgba(111,118,88,.14)}.wishMessageInput{position:relative}.wishMessageInput textarea{position:relative;z-index:1;padding-right:4.7rem;background:rgba(255,255,255,.64)}.wishMessageInput img{position:absolute;z-index:2;right:.75rem;bottom:1.2rem;width:3.5rem;height:auto;opacity:.44;pointer-events:none}.wishSuggestionLink{display:flex;width:max-content;align-items:center;gap:.45rem;margin-top:-.75rem;padding:.25rem 0;border:0;border-bottom:1px solid;background:none;color:var(--color-olive-deep)}.wishSuggestionLink img{width:1.35rem;height:1.4rem;object-fit:contain}.wishConsent{display:grid;grid-template-columns:1.55rem 1fr;align-items:start;gap:.75rem;color:var(--color-ink-soft);line-height:1.55}.wishConsent input{width:1.55rem;height:1.55rem;margin:.05rem 0 0;accent-color:var(--color-olive)}.wishInlineError{margin:0;color:var(--color-error);font-size:.875rem}.wishSaveStatus{margin:-.65rem 0 0;color:var(--color-muted);font-size:.78rem;text-align:right}.wishContinue{display:flex;min-height:3.8rem;align-items:center;justify-content:center;gap:.65rem;border:0;border-radius:999px;background:var(--color-olive);box-shadow:0 .8rem 1.8rem rgba(79,92,63,.22);color:#fff;font-size:1.1rem;font-weight:600}.wishContinue b{font-weight:400;opacity:.85}.wishContinue:disabled{background:linear-gradient(90deg,#aaa996,#c2c0b1);box-shadow:none;cursor:not-allowed;opacity:.8}.wishOverlay{position:fixed;z-index:var(--z-modal);inset:0;display:grid;place-items:end center;padding:1rem;background:rgba(28,29,22,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.wishBottomSheet,.wishConfirm{width:min(39rem,100%);border:1px solid var(--color-border-soft);background:var(--color-paper);box-shadow:0 -1.5rem 4rem rgba(31,31,22,.2)}.wishBottomSheet{display:grid;gap:.75rem;padding:1.25rem;border-radius:1.4rem 1.4rem .8rem .8rem}.wishBottomSheet header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.wishBottomSheet h2,.wishConfirm h2{margin:0;font-family:var(--font-body);font-weight:600}.wishBottomSheet header button{display:grid;width:2.7rem;height:2.7rem;place-items:center;border:0;border-radius:50%;background:var(--color-paper-soft)}.wishBottomSheet>button:not(.wishSheetClose){display:flex;min-height:3.6rem;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:.8rem;background:#fff}.wishSheetClose{min-height:3rem;border:0;background:none;color:var(--color-muted);text-decoration:underline}.wishOverlay--confirm{place-items:center}.wishConfirm{padding:1.8rem;border-radius:1.2rem;text-align:center}.wishConfirm>svg{margin:0 auto .7rem;color:var(--color-olive)}.wishConfirm p{color:var(--color-muted)}.wishConfirm>div{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.3rem}.wishConfirm button{min-height:3rem;border:1px solid var(--color-olive);border-radius:999px;background:#fff;color:var(--color-olive-deep)}.wishConfirm button:last-child{background:var(--color-olive);color:#fff}.wishStepState{display:grid;min-height:100vh;place-items:center;align-content:center;gap:1rem;padding:2rem;text-align:center}.wishStepState button{min-height:3rem;padding:.5rem 1.5rem;border:0;border-radius:999px;background:var(--color-olive);color:#fff}.wishSpin{animation:wish-spin 1s linear infinite;color:var(--color-olive)}@keyframes wish-spin{to{transform:rotate(1turn)}}@media (max-width:32rem){.wishStepPage{padding:0}.wishStepSheet{border:0;border-radius:0;box-shadow:none}.wishStepHeader{height:15rem}.wishStepHeader:after{bottom:4.65rem;height:4.8rem}.wishStepHeader__floral{height:10rem}.wishStepLogo{top:8.45rem;width:7.7rem;height:5.15rem}.wishStepCount{top:11.65rem}.wishStepContent{padding-inline:1rem}.wishSideField{grid-template-columns:1fr 1fr}.wishSideField button{min-height:5.1rem;grid-template-columns:2rem minmax(0,1fr) 1.25rem;gap:.25rem;padding:.4rem;font-size:.78rem}.wishSideIcon{width:2rem;height:2rem}.wishSideField i{width:1.25rem;height:1.25rem}}@media (min-width:23rem) and (max-width:32rem){.wishSideField button>span{white-space:nowrap}}@media (max-width:22rem){.wishSideField{grid-template-columns:1fr}}.wishStepPage{background:#faf7ef url(/assets/letters/garden-background.webp) bottom/cover fixed no-repeat}.wishStepSheet{min-width:0;background:rgba(253,250,243,.96);border-radius:.6rem;box-shadow:0 1rem 3rem rgb(68 65 48/.07)}.wishStepHeader{height:11rem;background:transparent}.wishStepHeader:after,.wishStepHeader__floral{display:none}.wishStepWordmark{top:3.5rem;width:auto;height:auto;font:400 3.6rem/1.3 var(--font-outlier);white-space:nowrap;color:#34432a;filter:none;mix-blend-mode:normal}.wishStepCount{top:8rem}.wishStepIntro h1{font-family:var(--font-noto-sans-thai),sans-serif;font-weight:400;line-height:1.5}.wishStepContent,.wishStepContent>*{min-width:0}.wishTextField input,.wishTextField textarea{font-size:1rem}.wishSuggestionLink{max-width:100%;text-align:left;white-space:normal}.wishBottomSheet{max-height:90svh;overflow:auto}.wishSideField button{min-width:0}.wishContinue{background:#526440}@media(max-width:36rem){.wishStepHeader{height:10rem}.wishStepWordmark{top:3rem;font-size:3rem}.wishStepCount{top:7.5rem}.wishSideField{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem}.wishSideField button{grid-template-columns:minmax(0,1fr) auto}.wishSideIcon{display:none}.wishStepSheet{border-radius:0}.wishStepPage{background-attachment:scroll}}.wishAvatarGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.wishAvatarGrid button{border:1px solid #d4d3c5;border-radius:1rem;padding:.35rem;background:#fffdf7;color:#405333;cursor:pointer}.wishAvatarGrid img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:#faf7ef;border-radius:.7rem}.wishAvatarGrid span{display:block;font-size:.8rem;padding:.4rem 0}.wishMessageModes{display:flex;gap:.5rem}.wishHandwritingDialog header button,.wishHandwritingSummary button,.wishHandwritingTools button,.wishMessageModes button{min-height:44px;padding:.5rem 1rem;border:1px solid #aab396;border-radius:.7rem;background:#fffdf7;color:#405333;font:inherit;cursor:pointer}.wishMessageModes button[aria-pressed=true]{background:#526440;color:white}.wishHandwritingSummary{border:1px solid #d4d3c5;border-radius:1rem;padding:1rem;background:#fffdf7}.wishHandwritingSummary svg{max-height:240px}.wishHandwritingOverlay{place-items:center}.wishHandwritingDialog{width:min(60rem,100%);max-height:94svh;background:#fffdf7;padding:clamp(.75rem,2vw,1.5rem);border-radius:1rem}.wishHandwritingDialog header{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.wishHandwritingDialog h2{font:400 1.3rem var(--font-body);margin:0}.wishHandwritingDialog p{font-size:.9rem}.wishHandwritingCanvas{display:block;width:100%;background:#fff;border:1px solid #abb799;border-radius:.5rem;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair}.wishHandwritingTools{display:flex;gap:.5rem;margin:.6rem 0}.wishHandwritingDialog button:disabled{opacity:.4;cursor:default}@media(max-width:400px){.wishAvatarGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(orientation:landscape) and (max-height:600px){.wishHandwritingCanvas{width:min(100%,60svh * 1.6667);margin:auto}}.wishHandwritingDialog{max-height:calc(100svh - 2rem);overflow:auto}.wishHandwritingCanvas{width:min(100%,calc((100svh - 15rem) * 1.666667));height:auto;aspect-ratio:5/3;margin-inline:auto}.wishHandwritingTools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin:.75rem 0 0;position:sticky;bottom:0;background:#fffdf7;padding-block:.35rem}.wishHandwritingTools button{min-width:0;min-height:44px;padding:.5rem .25rem;font-size:clamp(.75rem,2.8vw,1rem);white-space:nowrap}.wishHandwritingTools .wishContinue{background:#526440;color:#fff;border-color:#526440;box-shadow:none;border-radius:.7rem}@media(max-height:450px){.wishHandwritingDialog{padding:.65rem}.wishHandwritingDialog p{margin:.3rem 0}.wishHandwritingCanvas{width:min(100%,calc((100svh - 11rem) * 1.666667))}}