@font-face{font-family:NotoSerifHebrew;src:url('assets/NotoSerifHebrew-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/CormorantGaramond-Regular.ttf') format('truetype');font-display:swap}
:root{--ivory:#f8f5ef;--ink:#34312e;--champagne:#b39780;--border:#cfbdac;--surface:#fffdf9;--shadow:0 16px 42px rgb(74 55 39 / 15%)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#eee5db;font-family:NotoSerifHebrew,Georgia,serif}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid #7d604a;outline-offset:4px}[hidden]{display:none!important}
.entry,.invitation{background-color:#e7d9c9;background-image:linear-gradient(rgb(251 247 241 / 12%),rgb(251 247 241 / 12%)),url('assets/linen-background.png');background-size:cover;background-position:center top}.entry{min-height:100svh;display:grid;place-items:center;padding:24px 14px max(30px,env(safe-area-inset-bottom));text-align:center;overflow:hidden}.entry-content{width:min(100%,600px)}.eyebrow{margin:0;color:#88735f;font-size:.87rem;letter-spacing:.12em}.entry h1{font-size:clamp(1.8rem,6vw,2.65rem);font-weight:400;margin:8px 0 3px}.entry-date{font-family:Cormorant,serif;letter-spacing:.19em;font-size:1.2rem;margin:0 0 10px}.envelope-scene{position:relative;width:min(100%,580px);aspect-ratio:1.28;margin:0 auto;overflow:hidden;filter:drop-shadow(0 15px 17px rgb(67 46 27 / 12%))}.envelope-art{position:absolute;width:100%;height:auto;top:-36%;left:0;pointer-events:none;user-select:none}.seal-button{position:absolute;z-index:2;top:56%;left:51%;transform:translate(-50%,-50%);border:0;background:transparent;width:24%;min-width:76px;aspect-ratio:1;padding:0;border-radius:50%;filter:drop-shadow(0 4px 7px rgb(91 60 32 / 25%));transition:transform .35s,filter .35s}.seal-button img{display:block;width:100%;height:100%;object-fit:contain}.seal-button:hover{transform:translate(-50%,-53%) scale(1.04);filter:drop-shadow(0 8px 10px rgb(91 60 32 / 30%))}.seal-button:active{transform:translate(-50%,-50%) scale(.96)}.open-hint{margin:3px 0 0;font-size:clamp(.9rem,3.6vw,1.05rem);color:#67594d}.entry.is-opening .seal-button{animation:seal-release .55s ease-in forwards}.entry.is-opening .envelope-art{animation:envelope-recede .55s ease-in forwards}@keyframes seal-release{to{transform:translate(-50%,-68%) scale(1.13);opacity:0}}@keyframes envelope-recede{to{transform:translateY(24px) scale(.96);opacity:.2}}
.invitation{min-height:100vh;padding:34px 12px 100px;background-attachment:fixed}.invitation-inner{width:min(100%,650px);margin:auto}.page{width:min(100%,550px);margin:0 auto;scroll-margin-top:16px;box-shadow:var(--shadow);background:var(--ivory)}.page img{display:block;width:100%;height:auto}.between-pages{display:flex;align-items:center;justify-content:center;gap:16px;margin:31px auto;color:#a99078;font:italic 1.15rem Cormorant,serif}.between-pages span:not(.between-mark){display:block;width:58px;height:1px;background:#c3ac95}.rsvp{scroll-margin-top:24px;text-align:center;width:min(100%,550px);margin:44px auto 0;padding:0 clamp(18px,5vw,44px) 34px;background:rgb(255 252 247 / 96%);box-shadow:var(--shadow);border:1px solid rgb(189 169 149 / 32%)}.rsvp-rule{width:110px;height:1px;background:var(--border);margin:34px auto 24px}.rsvp h2{font-size:clamp(1.35rem,4.7vw,1.75rem);font-weight:400;margin:12px 0 7px}.rsvp-subtitle{margin:0 0 24px;color:#726459;font-size:.96rem}.response-options{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.response-option{border:1px solid #c6b29e;background:#fffcf7;color:var(--ink);padding:11px 13px;min-height:48px;border-radius:3px;font-size:.9rem;transition:background .2s,border-color .2s,box-shadow .2s}.response-option:hover{background:#f6eee4}.response-option[aria-pressed=true]{background:#e9dac8;border-color:#a58a70;box-shadow:inset 0 0 0 1px #a58a70}.rsvp form{margin-top:24px;animation:reveal .28s ease both}.name-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:right}.name-grid label{font-size:.88rem}.name-grid input{width:100%;height:46px;margin-top:7px;border:1px solid #ccb9a6;border-radius:3px;background:#fffdf9;color:var(--ink);padding:9px 12px;font-size:1rem}.quantity-row{margin-top:20px;display:flex;align-items:center;justify-content:space-between;text-align:right;border-top:1px solid #e8ded2;padding-top:18px}.quantity-title{display:block;font-size:.95rem}.quantity-row small{color:#84766a}.stepper{display:flex;align-items:center;border:1px solid #c7b19b;border-radius:3px;overflow:hidden}.stepper button{border:0;background:#f8f2e9;width:42px;height:42px;font:1.4rem Georgia,serif}.stepper button:hover{background:#ebddce}.stepper output{min-width:36px;text-align:center;font:1.2rem Cormorant,serif}.submit-button{width:100%;border:1px solid #9e8269;background:#a78970;color:white;min-height:48px;margin-top:23px;padding:10px 18px;letter-spacing:.02em}.submit-button:hover{background:#8b6e57}.form-error{color:#9b3d32;text-align:right;font-size:.9rem}.demo-result{margin-top:22px;padding:16px;background:#f5ece1;border:1px solid #d8c6b5;line-height:1.65}.demo-disclosure{color:#786d64;font-size:.8rem;line-height:1.5;margin:20px 0 0}.floating-next{position:fixed;z-index:10;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:12px;align-items:center;border:1px solid #b9a38e;border-radius:100px;background:rgb(255 251 245 / 94%);color:#4f4137;box-shadow:0 6px 20px rgb(44 30 22 / 20%);padding:10px 14px 10px 19px;white-space:nowrap;min-height:48px;backdrop-filter:blur(10px);font-size:.9rem}.floating-next .arrow{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#ad927b;color:white;font:1.2rem Georgia,serif}.floating-next:hover{background:white}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:420px){.entry{padding-top:18px}.entry h1{margin-top:5px}.entry-date{margin-bottom:0}.envelope-scene{width:min(100%,380px)}.open-hint{margin-top:0}.invitation{padding:18px 9px 90px}.between-pages{margin:22px auto}.rsvp{margin-top:28px}.response-options{display:grid;grid-template-columns:1fr 1fr}.response-option:first-child{grid-column:1/3}.name-grid{grid-template-columns:1fr}.floating-next{bottom:max(10px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
