/* Quiet surfaces, clear focus, and a letter opening in three gentle stages. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.language-picker{display:inline-flex;flex-shrink:0;align-items:center}
.language-picker select{font:12px Arial,sans-serif;min-height:44px;border:1px solid #dcc9cb;border-radius:24px;background:#fffaf6;color:#713448;padding:9px 28px 9px 13px;cursor:pointer;width:auto;max-width:125px}
.gift-language{position:relative;display:flex;justify-content:flex-end;padding:14px 22px;z-index:4}
.gift-language+.envelope-screen{min-height:calc(100svh - 72px)}
.nav{flex-wrap:wrap}.navlinks{flex-wrap:wrap}
.editor-main{box-shadow:0 12px 44px #67334708;border-color:#e9dfe0;background:#fffefd}
.editor-main .subtitle{line-height:1.7;color:#796b70}
.field{position:relative;border-radius:14px;transition:background .2s,box-shadow .2s}
.field>span:first-child{transition:color .2s;font-weight:500}
.field:focus-within{background:#fcf0f3;box-shadow:0 0 0 10px #fcf0f3}
.field:focus-within>span:first-child{color:#982e50}
.field input,.field textarea,.field select{background:#fff;border:1px solid #dfd3d6;transition:border-color .2s,box-shadow .2s,background .2s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:#a94865;background:#fffafb;box-shadow:0 0 0 3px #a948651c,0 5px 18px #7b314410}
.field textarea{line-height:1.75;resize:vertical}
button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #b9768b;outline-offset:4px}
.steps button{transition:background .2s,color .2s}.steps button.active{background:#f6e9ed;color:#842d49}
.step-progress{letter-spacing:.07em}.step-progress progress{height:3px}
.editor-actions{border-top:1px solid #eee4e7;margin-top:26px}
.save-state{color:#786970}.dropzone{background:#fffcfb;border-color:#dac8ce;border-radius:14px}
.envelope{overflow:visible;perspective:900px;isolation:isolate}
.envelope:before{transform-origin:50% 0;transition:transform .65s cubic-bezier(.22,1,.36,1) .12s;z-index:2;backface-visibility:visible}
.envelope:after{z-index:4;transition:transform .3s,opacity .25s}
.envelope-name{z-index:3;transition:opacity .2s}
.envelope-insert{position:absolute;inset:14px 16px 10px;border-radius:3px;background:linear-gradient(#fffaf1,#f5e7db);border:1px solid #e7cec1;box-shadow:0 3px 12px #4c223622;z-index:1;transition:transform .7s cubic-bezier(.22,1,.36,1) .32s}
.envelope-insert:before{content:'';position:absolute;inset:18px;border:1px solid #d7af9c}
.envelope-insert:after{content:'';position:absolute;left:30%;right:30%;top:35%;height:38%;background:repeating-linear-gradient(transparent 0 12px,#cbaaa677 12px 13px)}
.envelope-screen{transition:opacity .3s;perspective:1000px}
.opening .envelope{animation:none;transform:rotate(0);pointer-events:none}
.opening .envelope:after{transform:scale(1.2) rotate(15deg);opacity:0}
.opening .envelope:before{transform:rotateX(180deg)}
.opening .envelope-name{opacity:0}
.opening .envelope-insert{transform:translateY(-65px)}
.opening>p{opacity:0;transition:opacity .3s}
.love-letter{perspective:1200px}
.love-letter summary{position:relative;border-radius:18px;background:linear-gradient(145deg,#ffffff12,#ffffff04);padding:36px 24px;transition:background .3s,box-shadow .3s}
.love-letter summary:hover{background:#ffffff14;box-shadow:0 12px 35px #26112318}
.wax-heart{transition:transform .55s,box-shadow .55s;background:radial-gradient(circle at 30% 25%,#f7dba7,#dba55f);box-shadow:0 6px 12px #3b152c30,inset 0 1px 4px #fff8}
.love-letter[open] .wax-heart{transform:rotate(-12deg) scale(.88);box-shadow:0 3px 10px #3b152c20}
.love-letter[open] summary b{font-size:12px}.love-letter[open] summary b:after{content:none}
.love-letter .letter-paper{animation:none;transform:none;transform-origin:top center;margin-top:32px;background:linear-gradient(110deg,#fffdf8,#fff4e5);box-shadow:0 24px 55px #29111f30,0 2px 4px #29111f12}
.love-letter[open] .letter-kicker{animation:ink-arrive .8s .15s both}
.love-letter[open] .letter{animation:ink-arrive 1s .25s both}
.love-letter[open] .letter-signoff{animation:ink-arrive 1.1s .45s both}
.letter{overflow-wrap:anywhere}.gift-content:not(.hidden){animation:gentle-enter .8s both}
@keyframes ink-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(hover:hover){.card,.polaroid,.coupon,.place-memory{transition:transform .3s,box-shadow .3s}.card:hover,.place-memory:hover{transform:translateY(-4px);box-shadow:0 12px 26px #55263716}.polaroid:hover{transform:rotate(0) translateY(-5px)}.coupon:not(:disabled):hover{transform:translateY(-3px)}}
@media(max-width:700px){.navlinks{width:100%;justify-content:space-between;gap:6px}.navlinks .language-picker{margin-right:auto}.language-picker select{font-size:13px!important}.nav .brand{font-size:24px}.editor-main{padding:24px 18px 12px}.field:focus-within{box-shadow:0 0 0 7px #fcf0f3}.gift-language{padding:10px 16px}.letter-paper{padding:38px 23px 28px}.love-letter summary{padding:28px 18px}.envelope{max-width:calc(100vw - 72px)}.envelope-screen:before,.envelope-screen:after{opacity:.3}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-section{opacity:1;transform:none}}
@media(max-width:700px){.hero-art .sticker{right:0}}
