@import "https://fonts.googleapis.com/css2?family=Great+Vibes&family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&family=Outfit:wght@400;500;600;700&display=swap";:root{--bg:#fff7ed;--surface:#fffaf4;--surface-strong:#fff;--text:#35251d;--muted:#7c6254;--border:#ead8c7;--bride:#f9a8d4;--groom:#93c5fd;--mixed:#86efac;--head:#f8d56b;--shadow:0 24px 80px #5c3a2124;color:var(--text);background:radial-gradient(circle at top left, #f9a8d447, transparent 34rem), radial-gradient(circle at bottom right, #93c5fd47, transparent 32rem), var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-width:320px;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);margin:0}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}.board-gate{place-items:center;min-height:100vh;padding:24px;display:grid}.board-gate__card{border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow);background:#fffaf4eb;border-radius:28px;gap:14px;padding:28px;display:grid}.board-gate__card h1{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,6vw,2.8rem)}.board-gate__card p{color:var(--muted);margin:0}.board-gate__card label{gap:8px;font-weight:800;display:grid}.board-gate__card input{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface-strong);border-radius:14px;padding:12px 14px}.board-gate__card input:focus{border-color:#a45b25;outline:3px solid #a45b2529}.board-gate__card button{color:#fffaf4;background:#5f351c;border:0;border-radius:999px;padding:12px 16px;font-weight:900}.board-gate__error{font-weight:800;color:#8b1e1e!important}.planner{grid-template-columns:minmax(0,1fr) 360px;gap:24px;width:min(1440px,100%);min-height:100vh;margin:0 auto;padding:32px;display:grid}.planner__layout,.editor{border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffaf4db;border-radius:28px}.planner__layout{padding:28px}.planner__header{text-align:left;max-width:760px;margin-bottom:28px}.planner__header h1,.editor h2,.guest-list h3{margin:0}.planner__header h1{letter-spacing:-.06em;font-size:clamp(2rem,5vw,4.5rem);line-height:.95}.planner__header p:not(.eyebrow),.editor p{color:var(--muted)}.planner__meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.sync-status{background:#ffffff9e;border:1px solid #a45b2533;border-radius:999px;margin:0;padding:7px 12px;font-size:.9rem;font-weight:800;display:inline-flex}.sync-status--rsvp{background:#dbeafe8c;border-color:#3b6fa840}.invite-link{color:#fffaf4;font:inherit;cursor:pointer;background:#5f351c;border:0;border-radius:999px;align-items:center;padding:7px 12px;font-size:.9rem;font-weight:800;text-decoration:none;display:inline-flex}.invite-link:hover{background:#472714}.invite-link--secondary{color:#5f351c;background:#f4dfcc}.invite-link--secondary:hover{background:#ebc9a8}.unassigned{border:1px solid var(--border);background:#ffffff8c;border-radius:22px;margin-bottom:22px;padding:18px}.unassigned__heading{gap:4px;margin-bottom:14px;display:grid}.unassigned__title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.unassigned__heading h2{letter-spacing:-.03em;margin:0;font-size:1.15rem}.unassigned__toggle,.unassigned__delete,.unassigned__filter{border:0;border-radius:999px;padding:7px 12px;font-size:.82rem;font-weight:800}.unassigned__toggle{color:#5f351c;background:#f4dfcc}.unassigned__filters{flex-wrap:wrap;gap:8px;display:flex}.unassigned__filter{color:#5f351c;border:1px solid var(--border);cursor:pointer;background:#ffffffb3}.unassigned__filter--active{color:#fffaf4;background:#5f351c;border-color:#5f351c}.unassigned__delete{color:#7f1d1d;background:#fee2e2;flex-shrink:0}.unassigned__item{align-items:stretch;gap:8px;display:flex}.unassigned__item .unassigned__card{flex:1}.unassigned__heading p,.unassigned__empty{color:var(--muted);margin:0;font-weight:700}.unassigned__list{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.unassigned__card{text-align:left;min-width:180px;color:var(--text);cursor:grab;background:#fffaf4f2;border:1px dashed #5f351c47;border-radius:16px;gap:4px;padding:12px 14px;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid;box-shadow:0 8px 20px #5c3a2114}.unassigned__card:hover{border-color:#5f351c80;transform:translateY(-2px);box-shadow:0 14px 28px #5c3a2124}.unassigned__card:active{cursor:grabbing}.unassigned__card--assigned{cursor:default;box-shadow:none;background:#dcfce78c;border-style:solid;border-color:#16653447}.unassigned__card--assigned:hover{box-shadow:none;transform:none}.unassigned__list--assigned{margin-top:10px}.unassigned__name{font-weight:800}.unassigned__meta{color:var(--muted);font-size:.82rem;font-weight:700}.eyebrow{color:#a45b25;letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:800}.venue{background-color:#efe0cf;background-image:linear-gradient(90deg,#ffffff8f 1px,#0000 1px),linear-gradient(#ffffff8f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:2px solid #d8bfa8;border-radius:28px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px;display:grid}.venue__label{color:var(--muted);letter-spacing:.22em;text-align:center;text-transform:uppercase;writing-mode:vertical-rl;font-size:.62rem;font-weight:800}.venue__label--left{transform:rotate(180deg)}.seating-grid{grid-template-columns:max-content 52px 58px 58px;justify-content:center;align-items:stretch;gap:12px;display:grid}.main-block{grid-template-columns:repeat(7,58px);gap:10px 12px;display:grid}.near-front-column,.front-column{grid-template-rows:repeat(3,156px);gap:10px;display:grid}.front-column{margin-left:12px}.front-column__spacer{border-radius:12px}.aisle{color:#7c6254b8;text-align:center;writing-mode:vertical-rl;text-orientation:mixed;border:1px dashed #7c625473;border-radius:16px;justify-content:center;align-self:center;align-items:center;min-height:100%;padding:10px 4px;font-size:.78rem;font-weight:700;display:flex}.table{color:#2f211a;border:1px solid #35251d2e;border-radius:999px/70%;flex-direction:column;justify-content:center;justify-self:center;align-items:center;width:56px;min-height:156px;padding:8px 0;transition:border-color .16s,box-shadow .16s,transform .16s;display:inline-flex;box-shadow:inset 0 -10px 18px #35251d0f,0 8px 20px #35251d1a}.table:hover{transform:translateY(-2px);box-shadow:inset 0 -10px 20px #35251d14,0 18px 34px #35251d2e}.table:focus-visible{outline-offset:4px;outline:4px solid #a45b2552}.table--selected{border-color:#5f351c;box-shadow:0 0 0 5px #5f351c29,0 20px 36px #35251d38}.table--drop-target{border-color:#1d4ed8;box-shadow:0 0 0 5px #3b82f647,0 18px 34px #35251d2e}.table--bride{background:var(--bride)}.table--groom{background:var(--groom)}.table--mixed{background:var(--mixed)}.table--head{background:var(--head);border-color:#a57e2547;width:60px;min-height:130px;transform:rotate(-12deg)}.table--head:hover{transform:rotate(-12deg)translateY(-2px)}.table__number{writing-mode:horizontal-tb;text-orientation:initial;font-size:.74rem;font-weight:900;line-height:1}.table__count{opacity:.72;writing-mode:horizontal-tb;text-orientation:initial;font-size:.58rem;font-weight:800}.table__attending{opacity:.8;writing-mode:horizontal-tb;margin-top:4px;font-size:.52rem;font-weight:900}.table--head .table__number,.table--head .table__count{writing-mode:horizontal-tb;text-orientation:initial}.table--head .table__number{font-size:.5rem}.table--head .table__count{font-size:.65rem}.editor{align-self:start;gap:18px;padding:24px;display:grid;position:sticky;top:32px}.editor--empty{align-content:center;min-height:260px}.editor__heading{gap:6px;display:grid}.editor h2{letter-spacing:-.04em;font-size:2rem}.editor label,.guest-form{color:var(--text);gap:8px;font-weight:800;display:grid}.editor input,.editor select{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface-strong);border-radius:14px;padding:12px 14px}.editor input:focus,.editor select:focus{border-color:#a45b25;outline:3px solid #a45b2529}.guest-form button,.guest-list button{color:#fffaf4;background:#5f351c;border:0;border-radius:999px;padding:11px 16px;font-weight:900}.guest-form button:disabled{cursor:not-allowed;opacity:.5}.editor__notice{background:#f8d56b57;border-radius:14px;margin:0;padding:12px 14px;font-weight:800}.guest-list{gap:12px;display:grid}.guest-list h3{font-size:1rem}.guest-list ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.guest-list li{border:1px solid var(--border);background:#ffffff9e;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 14px;display:flex}.guest-list__item--attending{background:#dcfce78c;border-color:#16653447}.guest-list__info{gap:2px;min-width:0;display:grid}.guest-list__info span{font-weight:800}.guest-list__info small{color:var(--muted);font-weight:700}.guest-list__actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.guest-list button{color:#5f351c;background:#f4dfcc;padding:7px 11px;font-size:.82rem}.guest-list__attend{color:#1e3a5f;background:#dbeafe}.guest-list__attend--on{color:#14532d;background:#bbf7d0}.guest-list__empty{margin:0}@media (width<=1100px){.planner{grid-template-columns:1fr;padding:20px}.editor{position:static}}@media (width<=900px){.venue{grid-template-columns:1fr}.venue__label{writing-mode:horizontal-tb;letter-spacing:.16em;transform:none}.venue__scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;min-width:0;padding-bottom:6px;overflow-x:auto}.seating-grid{justify-content:start;width:max-content;min-width:100%}}@media (width<=760px){.planner{gap:16px;padding:12px}.planner__layout,.editor,.venue,.unassigned,.board-gate__card{border-radius:20px}.planner__layout{padding:16px}.planner__header{margin-bottom:18px}.planner__header h1{font-size:clamp(1.8rem,10vw,2.6rem)}.planner__meta{gap:8px}.sync-status,.invite-link{padding:8px 11px;font-size:.82rem}.unassigned{padding:14px}.unassigned__title-row{align-items:flex-start}.unassigned__filters{width:100%}.unassigned__filter{text-align:center;flex:1}.unassigned__list{grid-template-columns:1fr;display:grid}.unassigned__item{flex-direction:column}.unassigned__card{width:100%;min-width:0}.unassigned__delete{width:100%}.venue{padding:12px}.seating-grid{grid-template-columns:max-content 40px 48px 48px;gap:8px}.main-block{grid-template-columns:repeat(7,48px);gap:8px 10px}.near-front-column,.front-column{grid-template-rows:repeat(3,120px);gap:8px}.front-column{margin-left:6px}.table{width:46px;min-height:120px}.table--head{width:50px;min-height:104px}.aisle{padding:8px 2px;font-size:.68rem}.editor{padding:18px}.editor h2{font-size:1.6rem}.guest-list li{flex-direction:column;align-items:stretch}.guest-list__actions{justify-content:stretch}.guest-list__actions button{flex:1}.board-gate{padding:16px}.board-gate__card{padding:22px 18px}}@media (width<=480px){.planner{padding:10px}.seating-grid{grid-template-columns:max-content 34px 42px 42px;gap:6px}.main-block{grid-template-columns:repeat(7,42px);gap:6px 8px}.near-front-column,.front-column{grid-template-rows:repeat(3,104px)}.table{width:40px;min-height:104px}.table--head{width:44px;min-height:90px}.table__number{font-size:.66rem}.table__count,.table__attending{font-size:.5rem}.invite-link,.sync-status{justify-content:center;width:100%}.planner__meta{grid-template-columns:1fr 1fr;display:grid}.planner__meta .sync-status:first-child{grid-column:1/-1}}@font-face{font-family:Amalfi Coast;src:url(/fonts/AmalfiCoast.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}.invite{--invite-ink:#7a2430;--invite-muted:#7a2430b8;--invite-gold:#b0893d;--invite-gold-deep:#8c6a2a;--invite-ivory:#fffcf7;--invite-paper:#f4efe6;--invite-paper-deep:#ebe4d8;--invite-blush:#e8c4b059;isolation:isolate;min-height:100dvh;color:var(--invite-ink);background:radial-gradient(at 50% 0,#fffcf7f2,#0000 55%),linear-gradient(#f7f1e8 0%,#efe6d8 100%);font-family:Outfit,ui-sans-serif,system-ui,sans-serif;position:relative}.invite--envelope{height:100dvh;overflow:hidden}.invite--scroll{min-height:0;overflow:hidden}.invite--rsvp{overflow:hidden}.invite__atmosphere{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.invite__glow{filter:blur(40px);border-radius:50%;animation:14s ease-in-out infinite alternate invite-float;position:absolute}.invite__glow--one{background:#d6b06e47;width:min(55vw,420px);height:min(55vw,420px);top:-12%;left:-8%}.invite__glow--two{background:#d69a8c38;width:min(60vw,460px);height:min(60vw,460px);animation-delay:-5s;bottom:0;right:-10%}.invite__pattern{opacity:.18;background-image:radial-gradient(circle at 20% 20%,#b0893d2e 0 1px,#0000 1.5px),radial-gradient(circle at 80% 30%,#b0893d24 0 1px,#0000 1.5px),radial-gradient(circle at 40% 70%,#b0893d1f 0 1px,#0000 1.5px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 28%,#0000 78%);mask-image:radial-gradient(circle,#000 28%,#0000 78%)}.invite__envelope-stage{z-index:2;width:100%;height:100%;transition:opacity .45s;position:relative}.invite--opening .invite__envelope-stage{animation:1.85s forwards envelope-stage-exit}.invite__shell{z-index:1;width:min(480px,100%);padding:max(24px, env(safe-area-inset-top,0px)) max(18px, env(safe-area-inset-right,0px)) max(20px, env(safe-area-inset-bottom,0px)) max(18px, env(safe-area-inset-left,0px));margin:0 auto;animation:.9s cubic-bezier(.22,1,.36,1) invite-rise;position:relative}.invite__panel{z-index:1;place-items:center;min-height:100dvh;padding:clamp(20px,4vw,48px);display:grid;position:relative}.envelope{--envelope-paper:#4a1218;--envelope-paper-soft:#5a1a22;--envelope-paper-deep:#3a0e14;--envelope-crease:#ffd2be24;--envelope-seal:#5c1c24;--envelope-seal-ink:#e8c9a0;--envelope-magic:#f0c4a0;--envelope-emboss:#6a242c;background:var(--envelope-paper);perspective:1200px;place-items:center;width:100%;height:100%;display:grid;position:relative}.envelope__paper{background:radial-gradient(ellipse at 50% 48%, #5c1e26 0%, var(--envelope-paper) 48%, #2c0a10 100%);position:absolute;inset:0;overflow:hidden}.envelope__rose-field{z-index:1;opacity:.5;filter:contrast(1.06)brightness(.88)saturate(.92);pointer-events:none;background-image:url(/invite/rose-emboss.png);background-position:50%;background-size:cover;position:absolute;inset:-8%;-webkit-mask-image:radial-gradient(at 50% 48%,#0000 0% 32%,#00000073 52%,#000 78%);mask-image:radial-gradient(at 50% 48%,#0000 0% 32%,#00000073 52%,#000 78%)}.invite--opening .envelope__rose-field{opacity:.15;transition:opacity .9s}.envelope__liner{z-index:0;background:var(--envelope-paper-deep);opacity:1;position:absolute;inset:0}.envelope__ambient{z-index:2;pointer-events:none;background:radial-gradient(at 50% 48%,#4a12188c 0%,#0000 42%),radial-gradient(at 50% 70%,#14040847,#0000 55%);transition:opacity .7s;position:absolute;inset:0}.invite--opening .envelope__ambient{opacity:.2}.envelope__bloom{opacity:0;pointer-events:none;z-index:7;background:radial-gradient(circle,#ffe6c873 0%,#be5a5a26 32%,#0000 70%);border-radius:50%;width:40px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.2)}.invite--opening .envelope__bloom{animation:1.1s cubic-bezier(.22,1,.36,1) forwards envelope-bloom}.envelope__glow{opacity:.85;pointer-events:none;z-index:3;background:radial-gradient(circle,#a03c4659 0%,#5a19231f 45%,#0000 72%);border-radius:50%;width:200px;height:200px;transition:width 1.2s cubic-bezier(.22,1,.36,1),height 1.2s cubic-bezier(.22,1,.36,1),opacity .8s;animation:4s ease-in-out infinite envelope-glow-breathe;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.invite--opening .envelope__glow{opacity:.25;width:min(70vw,420px);height:min(70vw,420px);animation:none}.envelope__flap{will-change:transform, opacity;background:linear-gradient(160deg,#5a1c2438 0%,#3a0e1414 48%,#2a0a0e2e 100%);transition:transform 1.45s cubic-bezier(.4,0,.2,1),opacity .7s;position:absolute;overflow:hidden}.envelope__flap--top{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:4;width:100%;height:52%;top:0;left:0;box-shadow:0 18px 40px #0a000447}.envelope__flap--bottom{clip-path:polygon(50% 0,100% 100%,0 100%);transform-origin:bottom;z-index:1;width:100%;height:52%;bottom:0;left:0;box-shadow:0 -14px 32px #0a000438}.envelope__flap--left{clip-path:polygon(0 0,100% 50%,0 100%);transform-origin:0;z-index:2;width:52%;height:100%;top:0;left:0;box-shadow:14px 0 32px #0a000438}.envelope__flap--right{clip-path:polygon(100% 0,100% 100%,0 50%);transform-origin:100%;z-index:3;width:52%;height:100%;top:0;right:0;box-shadow:-14px 0 32px #0a000438}.invite--opening .envelope__flap--top{opacity:0;transition-delay:.12s;transform:translateY(-108%)}.invite--opening .envelope__flap--right{opacity:0;transition-delay:.2s;transform:translate(108%)}.invite--opening .envelope__flap--bottom{opacity:0;transition-delay:.28s;transform:translateY(108%)}.invite--opening .envelope__flap--left{opacity:0;transition-delay:.2s;transform:translate(-108%)}.envelope__florals,.envelope__ring,.envelope__liner-roses{display:none}.envelope__florals--top{background-position:50% 18%;width:min(130vw,820px);height:min(78vw,520px);top:-10%;left:50%;transform:translate(-50%);-webkit-mask-image:radial-gradient(at 50% 35%,#000 30%,#0000 78%);mask-image:radial-gradient(at 50% 35%,#000 30%,#0000 78%)}.envelope__florals--bottom{background-position:50% 18%;width:min(130vw,820px);height:min(78vw,520px);bottom:-12%;left:50%;transform:translate(-50%)rotate(180deg);-webkit-mask-image:radial-gradient(at 50% 35%,#000 30%,#0000 78%);mask-image:radial-gradient(at 50% 35%,#000 30%,#0000 78%)}.envelope__florals--left{background-position:50%;width:min(88vw,560px);height:min(120vh,860px);top:50%;left:-22%;transform:translateY(-50%)rotate(-90deg);-webkit-mask-image:radial-gradient(at 50% 40%,#000 28%,#0000 76%);mask-image:radial-gradient(at 50% 40%,#000 28%,#0000 76%)}.envelope__florals--right{background-position:50%;width:min(88vw,560px);height:min(120vh,860px);top:50%;right:-22%;transform:translateY(-50%)rotate(90deg);-webkit-mask-image:radial-gradient(at 50% 40%,#000 28%,#0000 76%);mask-image:radial-gradient(at 50% 40%,#000 28%,#0000 76%)}.envelope__creases{z-index:5;pointer-events:none;background:linear-gradient(135deg, transparent calc(50% - .8px), var(--envelope-crease) 50%, transparent calc(50% + .8px)), linear-gradient(45deg, transparent calc(50% - .8px), var(--envelope-crease) 50%, transparent calc(50% + .8px));opacity:.75;transition:opacity .7s .12s;position:absolute;inset:0}.invite--opening .envelope__creases{opacity:0}.envelope__sparks,.envelope__spark{display:none}.envelope__spark{--angle:calc(var(--spark) * 20deg);--distance:calc(42px + (var(--spark) * 7px));--size:calc(3px + (var(--spark) % 3) * 1.5px);--delay:calc(var(--spark) * 35ms);width:var(--size);height:var(--size);background:radial-gradient(circle, #fff0e0 0%, var(--envelope-magic) 55%, transparent 75%);opacity:0;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #f0b48cd9}.invite--opening .envelope__spark{animation:envelope-spark 1.35s cubic-bezier(.16, 1, .3, 1) var(--delay) forwards}.envelope__seal{z-index:9;cursor:pointer;background:0 0;border:0;place-items:center;width:188px;height:188px;padding:0;transition:transform 1.1s cubic-bezier(.22,1,.36,1),opacity .9s,filter .9s;animation:4.5s ease-in-out infinite seal-float;display:grid;position:relative}.envelope__seal:hover .envelope__seal-body,.envelope__seal:focus-visible .envelope__seal-body{transform:scale(1.04);box-shadow:0 18px 34px #0a000473,0 0 0 10px #e8c9a01f,inset 0 3px 6px #ffc8be2e,inset 0 -6px 12px #14020659}.envelope__seal:hover .envelope__seal-aura,.envelope__seal:focus-visible .envelope__seal-aura{opacity:1;transform:scale(1.08)}.invite--opening .envelope__seal{pointer-events:none;animation:.85s cubic-bezier(.4,0,.2,1) forwards seal-release}.envelope__seal-aura{opacity:.7;filter:blur(6px);pointer-events:none;background:radial-gradient(circle,#e8b49659 0%,#8c323c2e 45%,#0000 72%);border-radius:50%;transition:opacity .28s,transform .28s;animation:2.8s ease-in-out infinite seal-aura;position:absolute;inset:8%}.envelope__seal-orbit{pointer-events:none;border-radius:50%;animation:10s linear infinite seal-orbit;position:absolute;inset:0}.envelope__seal-orbit i{opacity:.8;background:#e8c9a0;border-radius:50%;width:5px;height:5px;margin:-2.5px;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #e8c9a0e6}.envelope__seal-orbit i:first-child{transform:rotate(0)translate(88px)}.envelope__seal-orbit i:nth-child(2){width:3px;height:3px;transform:rotate(60deg)translate(88px)}.envelope__seal-orbit i:nth-child(3){transform:rotate(120deg)translate(88px)}.envelope__seal-orbit i:nth-child(4){width:4px;height:4px;transform:rotate(180deg)translate(88px)}.envelope__seal-orbit i:nth-child(5){width:3px;height:3px;transform:rotate(240deg)translate(88px)}.envelope__seal-orbit i:nth-child(6){transform:rotate(300deg)translate(88px)}.invite--opening .envelope__seal-orbit{animation:1.1s ease-out forwards seal-orbit-burst}.envelope__seal-shadow{filter:blur(10px);pointer-events:none;background:radial-gradient(circle at 50% 60%,#00000073,#0000 70%);border-radius:50%;position:absolute;inset:14% 10% 6%}.envelope__seal-body{z-index:1;background:radial-gradient(circle at 32% 28%, #7a3038 0%, var(--envelope-seal) 42%, #3a1016 78%, #2a0a10 100%);border-radius:50%;place-items:center;width:148px;height:148px;transition:transform .28s,box-shadow .28s;display:grid;position:relative;overflow:visible;box-shadow:0 14px 28px #0006,0 2px 4px #00000040,0 0 0 1px #ffbeb41f,inset 0 3px 6px #ffc8be2e,inset 0 -6px 12px #14020666}.envelope__seal-sheen{pointer-events:none;border-radius:50%;position:absolute;inset:0;overflow:hidden}.envelope__seal-sheen:after{content:"";background:linear-gradient(115deg,#0000 35%,#ffdcc838 48%,#0000 62%);animation:4.5s ease-in-out infinite seal-sheen;position:absolute;inset:-40%;transform:translate(-60%)rotate(18deg)}.envelope__monogram{z-index:1;box-sizing:border-box;width:100%;color:var(--envelope-seal-ink);letter-spacing:.04em;text-align:center;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px #ffdcc840,0 -1px 1px #1400048c,0 2px 4px #00000059;justify-content:center;align-items:baseline;gap:.08em;padding:0 16px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2rem,7vw,2.45rem);font-style:italic;font-weight:600;line-height:1;display:flex;position:relative}.envelope__monogram-amp{font-family:Great Vibes,Cormorant Garamond,cursive;font-size:.78em;font-style:normal;font-weight:400;line-height:1;transform:translateY(.06em)}.envelope__hint{color:#e8c9a0;letter-spacing:.28em;text-transform:uppercase;white-space:nowrap;font-size:.7rem;font-weight:600;position:absolute;top:calc(100% + 18px);left:50%;transform:translate(-50%)}.envelope__hint span{animation:2.4s ease-in-out infinite hint-glow;display:inline-block}.invite--opening .envelope__hint{opacity:0;transition:opacity .28s}.invite-scroll{gap:8px;padding-bottom:8px;display:grid}.invite-section{text-align:center;justify-items:center;gap:14px;padding:28px 8px;display:grid}.invite-section:last-child{padding-bottom:12px}.invite-section__kicker{color:var(--invite-gold-deep);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.invite-section__title{color:var(--invite-gold-deep);letter-spacing:-.02em;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.4rem,9vw,3.4rem);font-weight:600;line-height:1}.invite-section__lead{max-width:34ch;color:var(--invite-muted);margin:0;font-size:1rem;line-height:1.6}.invite-section__scroll-hint{color:#8c6a2abf;margin:0 0 8px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.05rem;font-style:italic}.invite-section__scroll-hint:after{content:"⌄";margin-top:2px;font-style:normal;animation:1.6s ease-in-out infinite invite-bob;display:block}.invite-divider{width:min(260px,100%);color:var(--invite-gold);grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.invite-divider span{background:linear-gradient(90deg,#0000,#b0893db3,#0000);height:1px}.invite-divider svg{width:18px;height:18px}.invite-hero{text-align:center;justify-items:center;gap:10px;padding:28px 8px 18px;display:grid}.invite-hero__floral{width:min(340px,88%);margin-bottom:4px;line-height:0}.invite-hero__floral img{opacity:.92;width:100%;height:auto;display:block}.invite-hero__brand{color:var(--invite-gold);-webkit-text-stroke:.6px currentColor;paint-order:stroke fill;text-shadow:0 1px #ffffff80;margin:.1em 0 0;font-family:Amalfi Coast,Great Vibes,cursive;font-size:clamp(1.7rem,6.2vw,2.35rem);font-weight:700;line-height:1.35}.invite-hero__of{color:var(--invite-gold-deep);letter-spacing:.18em;margin:.55em 0 .2em;font-family:Cormorant Garamond,Georgia,serif;font-size:1.05rem;font-style:italic}.invite-hero__couple{color:var(--invite-gold);-webkit-text-stroke:.5px currentColor;paint-order:stroke fill;flex-wrap:wrap;justify-content:center;gap:.35em;margin:0 0 .35em;font-family:Amalfi Coast,Great Vibes,cursive;font-size:clamp(1.2rem,4.4vw,1.65rem);font-weight:700;line-height:1.4;display:flex}.invite-hero__amp{color:var(--invite-gold);font-size:.72em}.invite-hero__lead{max-width:36ch;color:var(--invite-muted);margin:0;font-size:1.02rem;line-height:1.65}.scratch__hint{color:#8c6a2acc;letter-spacing:.04em;margin:0;font-size:.92rem}.scratch__cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin-top:8px;display:grid}.scratch-card{justify-items:center;gap:8px;display:grid}.scratch-card__label{color:var(--invite-gold-deep);letter-spacing:.18em;text-transform:uppercase;font-size:.68rem;font-weight:700}.scratch-card__stage{aspect-ratio:.78;touch-action:none;background:linear-gradient(#fffdf9,#f3ebe0);border-radius:10px;width:100%;position:relative;overflow:hidden;box-shadow:0 0 0 1px #b0893d47,0 12px 24px #5a40201a}.scratch-card__value{color:var(--invite-ink);text-align:center;place-items:center;padding:8px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.05rem,4.2vw,1.45rem);font-weight:600;line-height:1.15;display:grid;position:absolute;inset:0}.scratch-card__canvas{cursor:grab;touch-action:none;width:100%;height:100%;transition:opacity .42s;position:absolute;inset:0}.scratch-card--revealed .scratch-card__value{animation:.5s both invite-rise}.ceremony__arch{width:min(280px,100%);color:var(--invite-gold);margin-bottom:4px}.ceremony__arch svg{width:100%;height:auto}.ceremony__bismillah{color:var(--invite-gold-deep);letter-spacing:.08em;margin:-8px 0 0;font-family:Cormorant Garamond,Georgia,serif;font-size:1.55rem}.ceremony__invite-line{color:var(--invite-muted);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.ceremony__names{color:var(--invite-gold);-webkit-text-stroke:.5px currentColor;paint-order:stroke fill;margin:0;font-family:Amalfi Coast,Great Vibes,cursive;font-size:clamp(1.25rem,4.6vw,1.75rem);font-weight:700;line-height:1.4}.ceremony__names span{color:var(--invite-gold);margin:0 .15em}.timeline__list{gap:28px;width:100%;margin:18px 0 0;padding:0;list-style:none;display:grid;position:relative}.timeline__list:before{content:"";background:linear-gradient(#0000,#b0893d8c,#0000);width:1px;position:absolute;top:8px;bottom:8px;left:50%;transform:translate(-50%)}.timeline__item{grid-template-columns:1fr 18px 1fr;align-items:center;gap:12px;display:grid;position:relative}.timeline__marker{border:1px solid var(--invite-gold);background:#fff9f0;justify-self:center;width:11px;height:11px;transform:rotate(45deg);box-shadow:0 0 0 4px #f7f1e8e6}.timeline__copy{text-align:right;gap:4px;display:grid}.timeline__item--right .timeline__copy{text-align:left;grid-area:1/3}.timeline__item--right .timeline__art{grid-area:1/1;justify-self:end}.timeline__item--left .timeline__copy{grid-column:1}.timeline__item--left .timeline__art{grid-column:3;justify-self:start}.timeline__time{color:var(--invite-gold-deep);font-family:Cormorant Garamond,Georgia,serif;font-size:1.05rem;font-weight:600}.timeline__title{font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;font-weight:600}.timeline__copy p{color:var(--invite-muted);margin:0;font-size:.88rem;line-height:1.45}.timeline__art{width:72px;height:72px;color:var(--invite-gold);opacity:.88}.timeline__art svg{width:100%;height:100%}.timeline__closing{color:var(--invite-gold);margin:18px 0 0;font-family:Great Vibes,Cormorant Garamond,cursive;font-size:clamp(2rem,7vw,2.7rem)}.rsvp-cta{padding-top:20px;padding-bottom:12px}.rsvp-cta .invite__cta{justify-self:center;margin-top:8px}.invite-music{right:max(16px, env(safe-area-inset-right,0px));bottom:max(18px, env(safe-area-inset-bottom,0px));z-index:40;color:#fffaf2;cursor:pointer;background:linear-gradient(145deg,#d4b56a,#a07a34 55%,#7d5c22);border:0;border-radius:50%;place-items:center;width:48px;height:48px;transition:transform .16s,box-shadow .16s;animation:.5s both invite-rise;display:grid;position:fixed;box-shadow:0 10px 24px #7d5c2247,inset 0 1px #ffffff59}.invite-music:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 14px 28px #7d5c2257}.invite-music svg{width:18px;height:18px}.invite-music--playing{box-shadow:0 10px 24px #7d5c2247,0 0 0 6px #b0893d24}.invite__step{background:linear-gradient(#fffcf7fa,#fff8f0f5);border:1px solid #b0893d47;border-radius:8px;gap:18px;width:min(640px,100%);padding:clamp(32px,5vw,52px);animation:.75s cubic-bezier(.22,1,.36,1) invite-rise;display:grid;box-shadow:0 0 0 8px #fffcf78c,0 28px 70px #5a40201f}.invite__step--thanks{text-align:center;justify-items:center}.invite__kicker{color:var(--invite-gold-deep);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:700;animation:.9s both invite-fade}.invite__title{letter-spacing:-.02em;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.2rem,6vw,3.1rem);font-weight:600;line-height:1.05}.invite__lead{max-width:38ch;color:var(--invite-muted);margin:0;font-size:1.05rem;line-height:1.6}.invite__details{border-top:1px solid #b0893d3d;border-bottom:1px solid #b0893d3d;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;margin:8px 0 4px;padding:0;list-style:none;display:grid}.invite__details li{justify-items:center;gap:6px;padding:16px 10px;display:grid}.invite__details li+li{border-left:1px solid #b0893d3d}.invite__detail-label{color:var(--invite-gold-deep);letter-spacing:.18em;text-transform:uppercase;font-size:.68rem;font-weight:700}.invite__detail-value{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.05rem,2.4vw,1.25rem);font-weight:600;line-height:1.25}.invite__ornament{width:min(320px,100%);color:var(--invite-gold);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.invite__ornament span{background:linear-gradient(90deg,#0000,#b0893dbf,#0000);height:1px}.invite__ornament svg{width:48px;height:20px}.invite__cta,.invite__ghost,.invite__choice{font:inherit;cursor:pointer;border:0}.invite__cta{color:#fffaf2;letter-spacing:.02em;background:linear-gradient(135deg,#a07a34,#7d5c22);border-radius:999px;justify-self:start;margin-top:8px;padding:14px 24px;font-weight:700;transition:transform .18s,box-shadow .18s;box-shadow:0 10px 24px #7d5c2238}.invite__step--thanks .invite__cta{justify-self:center}.invite__cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 28px #7d5c2247}.invite__cta:disabled{cursor:not-allowed;opacity:.55}.invite__ghost{color:var(--invite-ink);background:0 0;border-radius:999px;padding:14px 18px;font-weight:600}.invite__choices{grid-template-columns:1fr 1fr;gap:12px;display:grid}.invite__choice{text-align:left;background:#ffffffb3;border:1px solid #b0893d47;border-radius:16px;gap:4px;padding:18px 16px;transition:border-color .16s,transform .16s,background .16s;display:grid}.invite__choice span{font-weight:700}.invite__choice small{color:var(--invite-muted)}.invite__choice:hover,.invite__choice--active{background:#fff;border-color:#8c6a2ab3;transform:translateY(-2px)}.invite__form{gap:14px;width:100%;display:grid}.invite__form label{text-align:left;gap:8px;font-weight:600;display:grid}.invite__form input{width:100%;color:var(--invite-ink);font:inherit;background:#fff;border:1px solid #b0893d47;border-radius:14px;padding:13px 14px}.invite__form input:focus{border-color:var(--invite-gold);outline:3px solid #b0893d29}.invite__actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.invite__error{color:#8b1e1e;text-align:left;margin:0;font-weight:700}@keyframes invite-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes invite-fade{0%{opacity:0}to{opacity:1}}@keyframes invite-float{0%{transform:translate(0,0)scale(1)}to{transform:translate(2%,-3%)scale(1.06)}}@keyframes invite-bob{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}@keyframes seal-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes seal-aura{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}@keyframes seal-orbit{to{transform:rotate(360deg)}}@keyframes seal-orbit-burst{0%{opacity:1;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(1.8)rotate(40deg)}}@keyframes seal-sheen{0%,35%{transform:translate(-70%)rotate(18deg)}55%,to{transform:translate(70%)rotate(18deg)}}@keyframes seal-release{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(0)scale(.92)}}@keyframes envelope-stage-exit{0%,62%{opacity:1}to{opacity:0}}@keyframes hint-glow{0%,to{opacity:.55;letter-spacing:.28em}50%{opacity:1;letter-spacing:.32em}}@keyframes envelope-glow-breathe{0%,to{opacity:.75;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}}@keyframes envelope-bloom{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)}35%{opacity:1;transform:translate(-50%,-50%)scale(1.4)}to{opacity:0;transform:translate(-50%,-50%)scale(3.2)}}@keyframes envelope-ring{0%{opacity:.75;transform:translate(-50%,-50%)scale(.35)}to{opacity:0;transform:translate(-50%,-50%)scale(2.4)}}@keyframes envelope-spark{0%{opacity:0;transform:translate(-50%, -50%) rotate(var(--angle)) translateX(0) scale(.4)}18%{opacity:1}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--angle)) translateX(var(--distance)) scale(1)}}@media (width<=720px){.invite__panel{padding:max(16px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) max(16px, env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));align-items:start}.invite__step{border-radius:6px;gap:14px;width:100%;padding:28px 18px}.invite__details{grid-template-columns:1fr}.invite__details li{padding:12px 8px}.invite__details li+li{border-top:1px solid #b0893d3d;border-left:0}.invite__choices{grid-template-columns:1fr}.invite__actions{width:100%}.invite__actions .invite__cta,.invite__actions .invite__ghost{text-align:center;flex:1;justify-content:center}.invite__cta{width:min(100%,280px)}.timeline__item{text-align:center;grid-template-columns:1fr;justify-items:center;gap:10px}.timeline__list:before{left:18px}.timeline__item--left .timeline__copy,.timeline__item--right .timeline__copy,.timeline__item--left .timeline__art,.timeline__item--right .timeline__art{text-align:center;grid-area:auto/1;justify-self:center}.timeline__marker{position:absolute;top:10px;left:18px;transform:translate(-50%)rotate(45deg)}.timeline__item{padding-left:36px}}@media (prefers-reduced-motion:reduce){.invite__glow,.envelope__seal,.envelope__seal-aura,.envelope__seal-orbit,.envelope__seal-sheen,.envelope__glow,.envelope__hint span,.invite-section__scroll-hint:after,.invite__step,.invite__shell{animation:none!important}.envelope__flap,.envelope__glow,.envelope__seal,.envelope__creases,.envelope__bloom,.envelope__ring,.envelope__spark{transition-duration:1ms!important;animation:none!important}}
