:root{--black:#090607;--panel:#170d10;--red:#cf2d3d;--bright:#f04b5e;--wine:#40131b;--cream:#f5e8d9;--muted:#b79e9d;--gold:#d4a86a;--line:rgba(245,232,217,.18);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--cream);background:var(--black);font-family:var(--sans);overflow-x:hidden}button,input,textarea{font:inherit}button{cursor:pointer}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:radial-gradient(circle at 50% 0%,rgba(130,22,36,.22),transparent 37%),radial-gradient(circle at 15% 60%,rgba(74,13,23,.28),transparent 33%),#090607}.ambient{position:fixed;border-radius:50%;pointer-events:none;z-index:-1;filter:blur(75px);opacity:.32}.ambient-left{width:380px;height:380px;top:28%;left:-250px;background:#8d1d33}.ambient-right{width:430px;height:430px;right:-270px;bottom:5%;background:#401735}.petals{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}.petals span{position:absolute;color:var(--bright);opacity:0;animation:petalFloat 14s linear infinite}.petals span:nth-child(1){left:12%;animation-delay:-4s}.petals span:nth-child(2){left:31%;animation-delay:-10s}.petals span:nth-child(3){left:67%;animation-delay:-7s}.petals span:nth-child(4){left:82%;animation-delay:-2s}.petals span:nth-child(5){left:53%;animation-delay:-12s}@keyframes petalFloat{0%{top:-5%;opacity:0;transform:translateX(0) rotate(0)}12%{opacity:.5}72%{opacity:.23}100%{top:110%;opacity:0;transform:translateX(80px) rotate(280deg)}}
.site-header{width:min(1060px,calc(100% - 42px));margin:auto;display:flex;justify-content:space-between;align-items:center;padding:25px 0;border-bottom:1px solid rgba(255,255,255,.1)}.monogram{color:var(--cream);text-decoration:none;font:600 25px var(--serif);letter-spacing:-.1em}.monogram span:first-child{color:var(--bright)}.monogram i{color:var(--gold);font-style:normal;font-size:17px}.header-caption{color:#957b7d;font-size:9px;font-weight:800;letter-spacing:.25em}.header-caption span{color:var(--bright);padding:0 9px}main{width:min(1060px,calc(100% - 42px));margin:auto}.screen.hidden,.hidden{display:none!important}.welcome-screen{position:relative;min-height:calc(100vh - 126px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 0 70px;overflow:hidden}.welcome-screen:before{content:"";position:absolute;inset:11% 15%;border:1px solid rgba(212,168,106,.14);border-radius:50%;transform:rotate(-15deg);pointer-events:none}.welcome-orbit{position:absolute;top:50%;left:50%;width:min(70vw,520px);height:min(70vw,520px);border:1px solid rgba(240,75,94,.18);border-radius:50%;transform:translate(-50%,-50%) rotate(14deg);pointer-events:none}.welcome-orbit:before,.welcome-orbit:after{content:"";position:absolute;inset:11%;border:1px solid rgba(212,168,106,.13);border-radius:50%}.welcome-orbit:after{inset:24%;border-color:rgba(240,75,94,.18)}.welcome-orbit span{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--bright);box-shadow:0 0 16px var(--bright)}.welcome-orbit span:nth-child(1){top:10%;left:45%}.welcome-orbit span:nth-child(2){right:17%;bottom:24%;background:var(--gold);box-shadow:0 0 16px var(--gold)}.welcome-orbit span:nth-child(3){left:18%;bottom:30%}.eyebrow{position:relative;margin:0 0 23px;color:var(--bright);font-size:10px;font-weight:800;letter-spacing:.3em}.welcome-screen h1{position:relative;margin:0;font:600 clamp(66px,10vw,125px)/.76 var(--serif);letter-spacing:-.09em}.welcome-screen h1 em{color:var(--bright);font-style:italic;font-weight:400;text-shadow:0 0 40px rgba(240,75,94,.3)}.welcome-description{position:relative;max-width:500px;margin:31px auto 0;color:var(--muted);font-size:14px;line-height:1.85}.mini-couple{position:relative;display:flex;align-items:center;justify-content:center;gap:23px;margin:42px 0 30px}.mini-couple>b{color:var(--gold);font:400 30px var(--serif)}.mini-person{position:relative;width:78px;height:96px;border-radius:50% 50% 25px 25px;background:#28171a;box-shadow:0 0 0 1px rgba(240,75,94,.38),0 0 30px rgba(240,75,94,.1)}.mini-person:before{content:"";position:absolute;top:12px;left:20px;width:38px;height:41px;border-radius:50%;background:#e8ae8b;box-shadow:inset -7px -2px rgba(169,74,68,.15)}.mini-person:after{content:"";position:absolute;top:8px;left:16px;width:46px;height:25px;border-radius:50% 50% 15px 15px;background:#28151b}.mini-person.bride{background:linear-gradient(135deg,#eed9d0,#994e5b);clip-path:polygon(28% 0,72% 0,100% 100%,0 100%)}.mini-person.bride:after{background:#3e1c23;height:52px;border-radius:50%}.start-button{position:relative;min-width:220px}.welcome-note{position:relative;color:#796165;font-size:10px;letter-spacing:.08em}
.setup-screen{max-width:740px;margin:auto;padding:70px 0 90px}.setup-heading{text-align:center}.setup-heading h2{margin:0;font:600 66px/.8 var(--serif);letter-spacing:-.07em}.setup-heading h2 em{color:var(--bright);font-style:italic;font-weight:400}.setup-heading p:last-child{margin:25px auto 37px;max-width:450px;color:var(--muted);font-size:13px;line-height:1.7}.setup-card{padding:28px;border:1px solid var(--line);border-radius:14px;background:rgba(28,12,16,.75);box-shadow:0 25px 80px rgba(0,0,0,.25)}.form-section-title{display:flex;gap:13px;align-items:center;margin:24px 0 16px;color:#edc8b9;font:600 26px var(--serif)}.form-section-title:first-child{margin-top:0}.form-section-title span{color:var(--bright);font:800 9px var(--sans);letter-spacing:.15em}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.setup-card label{display:block;color:#a27e81;font-size:9px;font-weight:800;letter-spacing:.12em}.setup-card input,.setup-card textarea{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid rgba(255,255,255,.13);border-radius:6px;outline:0;color:var(--cream);background:rgba(0,0,0,.22);font-size:13px}.setup-card textarea{min-height:85px;resize:vertical;line-height:1.5}.setup-card input:focus,.setup-card textarea:focus{border-color:var(--red)}.mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-card{position:relative;padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:9px;cursor:pointer;background:rgba(0,0,0,.16);transition:.2s}.mode-card.active,.mode-card:has(input:checked){border-color:rgba(240,75,94,.55);background:rgba(120,22,37,.23)}.mode-card input{position:absolute;opacity:0}.mode-icon{display:block;color:var(--gold);font-size:20px}.mode-card strong{display:block;margin-top:7px;color:var(--cream);font-size:12px}.mode-card small{display:block;margin-top:5px;color:#987c7d;font-size:10px;line-height:1.4}.officiant-field{margin-top:14px}.continue-button{display:block;margin:31px auto 0;min-width:235px}
.event-screen{padding:35px 0 90px}.event-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;color:#9d7f81;font-size:9px;font-weight:800;letter-spacing:.2em}.participant-count{color:var(--bright)}.waiting-panel{position:relative;max-width:760px;margin:0 auto;padding:55px 30px 35px;overflow:hidden;text-align:center;border:1px solid rgba(212,168,106,.25);border-radius:18px;background:linear-gradient(145deg,rgba(49,14,21,.82),rgba(15,8,10,.85));box-shadow:0 30px 80px rgba(0,0,0,.3)}.waiting-orbit{position:absolute;right:25px;top:22px;color:var(--bright);font-size:25px;animation:pulseHeart 2s infinite}@keyframes pulseHeart{50%{transform:scale(1.25);opacity:.6}}.waiting-panel h2{font-size:65px;line-height:.78;letter-spacing:-.07em}.waiting-panel h2 em{color:var(--bright);font-style:italic;font-weight:400}.waiting-copy{max-width:450px;margin:24px auto;color:var(--muted);font-size:13px;line-height:1.7}.participants-list{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;min-height:43px;margin:26px auto}.participant-placeholder{color:#765f62;font-size:11px}.participant-chip{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(240,75,94,.3);border-radius:99px;color:#ebc3b7;background:rgba(100,19,31,.35);font-size:11px}.participant-chip i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:#fff;background:var(--red);font-style:normal;font-size:10px}.participant-chip small{color:#b18484;font-size:8px}.invite-panel{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;margin:26px auto 0;padding:16px;border:1px solid rgba(212,168,106,.25);border-radius:10px;background:rgba(9,5,6,.35);text-align:left}.invite-lock{font-size:23px}.invite-copy strong,.invite-copy span{display:block}.invite-copy strong{font:600 22px var(--serif)}.invite-copy span{margin-top:3px;color:#a9898b;font-size:10px}.link-row{grid-column:1/-1;display:flex;gap:8px}.link-row input{min-width:0;flex:1;padding:10px;border:1px solid rgba(240,75,94,.32);border-radius:6px;color:#e8c8c0;background:#10090b;font-size:10px}.security-note{grid-column:1/-1;color:#94787a;font-size:8px}.start-event-button{margin-top:24px;min-width:220px}.auto-note{min-height:17px;margin:13px 0 0;color:#bb8e91;font-size:10px}
.story-panel{max-width:850px;margin:0 auto}.story-progress{display:flex;justify-content:space-between;align-items:center;margin:18px 0 15px;color:#b78487;font-size:9px;font-weight:800;letter-spacing:.2em}.story-progress div{display:flex;gap:6px}.progress-dot{display:block;width:7px;height:7px;border-radius:50%;background:#543238}.progress-dot.active{background:var(--bright);box-shadow:0 0 10px var(--bright)}.story-card{min-height:370px;padding:40px 30px;border:1px solid rgba(240,75,94,.24);border-radius:15px;background:linear-gradient(145deg,rgba(48,13,20,.85),rgba(15,8,10,.8));box-shadow:0 25px 75px rgba(0,0,0,.26);text-align:center}.story-symbol{color:var(--bright);font-size:35px;text-shadow:0 0 22px rgba(240,75,94,.5)}.story-card h2{margin:16px 0 13px;font-size:61px;line-height:.8}.story-card h2 em{color:var(--bright);font-style:italic;font-weight:400}.story-card>p{max-width:570px;margin:0 auto;color:var(--muted);font:500 18px/1.4 var(--serif)}.story-quote{max-width:610px!important;margin-top:30px!important;color:#ebc0b2!important;font-size:27px!important}.officiant-line{margin-top:28px!important;color:var(--gold)!important;font-size:13px!important;letter-spacing:.08em}.story-nav{display:flex;justify-content:space-between;margin-top:16px}.story-nav .button:only-child{margin-left:auto}.story-answer{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px}.story-answer button{padding:13px 17px;border:1px solid rgba(240,75,94,.35);border-radius:7px;color:var(--cream);background:rgba(100,20,32,.4);font-size:10px;font-weight:800}.story-answer button:hover,.story-answer button.selected{background:var(--bright)}.answer-status{min-height:18px;margin-top:14px;color:#e69a91;font-size:11px}.story-signature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:24px auto 0;max-width:700px}.story-sign-box{padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(0,0,0,.18)}.story-sign-box h4{margin:0 0 8px;color:#e3beb2;font:600 21px var(--serif)}.story-sign-box.officiant-sign{grid-column:1/-1}.sign-canvas{display:block;width:100%;height:120px;border-radius:5px;background:repeating-linear-gradient(0deg,transparent 0 29px,rgba(255,255,255,.06) 30px 31px),rgba(0,0,0,.3);touch-action:none;cursor:crosshair}.sign-hint{color:#735e61;font:italic 16px var(--serif);pointer-events:none}.canvas-wrap{position:relative}.canvas-wrap .sign-hint{position:absolute;left:0;right:0;top:45px}.canvas-wrap .sign-hint.hidden{display:none}.tiny-clear{margin-top:7px;padding:7px 10px;font-size:8px}.story-sign-help{margin-top:12px!important;font-size:11px!important}.certificate-card{position:relative;width:min(100%,740px);min-height:600px;margin:auto;padding:54px 45px 40px;overflow:hidden;color:#2c1216;background:radial-gradient(circle at 50% 40%,#fff5e8,#e7cbb5);box-shadow:0 25px 80px rgba(0,0,0,.4),inset 0 0 0 5px rgba(116,51,43,.11);text-align:center}.certificate-border{position:absolute;inset:15px;border:1px solid rgba(125,62,52,.6)}.certificate-border:before{content:"";position:absolute;inset:7px;border:1px solid rgba(125,62,52,.24)}.certificate-top,.certificate-bottom{color:#8d473f;font-size:8px;font-weight:800;letter-spacing:.22em}.certificate-top span{float:right}.certificate-card h3{margin:24px 0 12px;font:600 57px/.72 var(--serif);letter-spacing:-.06em}.certificate-card h3 em{color:#a42938;font-style:italic;font-weight:400}.certificate-kicker{margin:25px 0 0;color:#a42938;font-size:9px;font-weight:800;letter-spacing:.27em}.certificate-text{margin:19px 0 11px;color:#8e625b;font:500 17px var(--serif)}.certificate-names{display:flex;justify-content:center;gap:14px;align-items:center;color:#7d1b2a}.certificate-names strong{font:600 35px var(--serif)}.certificate-names span{color:#c58a59;font:400 27px var(--serif)}.certificate-seal{position:absolute;top:91px;right:55px;width:62px;height:62px;padding-top:8px;border:1px solid #ae6658;border-radius:50%;color:#ae6658;font-size:18px;transform:rotate(14deg)}.certificate-seal small{display:block;margin-top:-3px;font-size:5px;line-height:1.05;letter-spacing:.1em}.certificate-meta{display:flex;justify-content:center;gap:50px;margin-top:22px}.certificate-meta span{display:flex;flex-direction:column;gap:4px}.certificate-meta small{color:#ae7967;font-size:7px;font-weight:800;letter-spacing:.2em}.certificate-meta b{color:#572129;font:600 15px var(--serif)}.certificate-signatures{position:absolute;bottom:61px;left:10%;right:10%;display:flex;gap:17px}.certificate-sign{width:50%;border-bottom:1px solid #8e5b50}.certificate-sign span{display:block;color:#a37970;font-size:7px}.certificate-signature-image{height:38px;background-position:center;background-repeat:no-repeat;background-size:contain}.certificate-bottom{position:absolute;bottom:26px;left:0;right:0;font-size:7px}.certificate-actions{display:flex;justify-content:center;gap:10px;margin-top:19px}.reaction-zone{margin-top:34px;padding:20px;border:1px solid rgba(240,75,94,.2);border-radius:10px;background:rgba(24,9,12,.5)}.reaction-zone h4{margin:0;font:600 27px var(--serif)}.reaction-zone p{color:var(--muted);font-size:11px}.reaction-list{display:flex;justify-content:center;flex-wrap:wrap;gap:7px}.reaction-list button{width:42px;height:42px;border:1px solid rgba(240,75,94,.24);border-radius:50%;background:rgba(53,13,19,.56);font-size:19px;transition:.2s}.reaction-list button:hover{transform:translateY(-3px) scale(1.07);border-color:var(--bright)}.activity-feed{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;min-height:28px;margin-top:12px}.activity-chip{padding:6px 9px;border:1px solid rgba(240,75,94,.18);border-radius:99px;color:#cb9da0;background:rgba(62,15,23,.45);font-size:10px}.wish-box{display:flex;gap:8px;margin-top:14px}.wish-box textarea{min-height:43px;flex:1;resize:vertical;padding:10px;border:1px solid rgba(255,255,255,.14);border-radius:6px;outline:0;color:var(--cream);background:rgba(0,0,0,.2);font-size:11px}.floating-reaction{position:fixed;z-index:9;pointer-events:none;font-size:31px;filter:drop-shadow(0 0 12px rgba(240,75,94,.7))}.button{border:0;border-radius:7px;padding:13px 19px;color:var(--cream);font-size:10px;font-weight:800;letter-spacing:.11em;transition:.22s ease}.button:hover{transform:translateY(-2px)}.button-ghost{background:transparent;color:#aa8b8d;border:1px solid rgba(255,255,255,.15)}.button-red{background:linear-gradient(135deg,#b51f34,#e04451);box-shadow:0 7px 18px rgba(178,30,52,.23)}.button-red:hover{box-shadow:0 10px 25px rgba(225,47,74,.35)}.button span{color:#ffc3ac;padding-left:8px}.site-footer{width:min(1060px,calc(100% - 42px));margin:auto;display:flex;justify-content:center;gap:15px;padding:26px 0 32px;border-top:1px solid rgba(255,255,255,.1);color:#756062;font-size:8px;font-weight:800;letter-spacing:.2em}.site-footer span:first-child{color:var(--bright);font:600 20px var(--serif);letter-spacing:0}.site-footer i{color:var(--gold);font-style:normal}.toast{position:fixed;left:50%;bottom:22px;z-index:10;padding:12px 17px;border:1px solid rgba(227,79,94,.45);border-radius:99px;color:#ffd6ce;background:rgba(43,12,17,.94);box-shadow:0 10px 35px rgba(0,0,0,.35);font-size:11px;opacity:0;pointer-events:none;transform:translate(-50%,18px);transition:.25s ease}.toast.show{opacity:1;transform:translate(-50%,0)}
@media print{body.print-certificate{background:#fff}.print-certificate>*:not(main){display:none!important}.print-certificate main>*:not(.event-screen){display:none!important}.print-certificate .waiting-panel,.print-certificate .story-progress,.print-certificate .story-nav,.print-certificate .reaction-zone,.print-certificate .certificate-actions{display:none!important}.print-certificate .event-screen,.print-certificate .story-panel{display:block!important}.print-certificate .story-card{border:0;box-shadow:none}.print-certificate .certificate-card{box-shadow:none}}
@media(max-width:720px){.site-header,main,.site-footer{width:min(100% - 28px,1060px)}.header-caption{display:none}.welcome-screen{min-height:calc(100vh - 93px);padding-top:25px}.welcome-screen:before{inset:15% 3%}.welcome-screen h1{font-size:70px}.welcome-description{font-size:13px;padding:0 12px}.setup-screen{padding:45px 0 60px}.setup-heading h2{font-size:57px}.setup-card{padding:20px 16px}.form-grid,.mode-choice{grid-template-columns:1fr}.event-screen{padding-top:20px}.event-topline{font-size:8px}.waiting-panel{padding:45px 15px 28px}.waiting-panel h2{font-size:56px}.invite-panel{grid-template-columns:auto 1fr}.invite-panel>.button{grid-column:1/-1;width:100%}.link-row{flex-direction:column}.story-card{padding:30px 15px}.story-card h2{font-size:52px}.story-quote{font-size:23px!important}.story-signature-grid{grid-template-columns:1fr}.story-sign-box.officiant-sign{grid-column:auto}.certificate-card{min-height:630px;padding:44px 20px 34px}.certificate-card h3{font-size:47px}.certificate-names{gap:6px}.certificate-names strong{font-size:27px}.certificate-text{font-size:15px}.certificate-seal{top:75px;right:25px;transform:scale(.74) rotate(14deg)}.certificate-meta{gap:27px}.certificate-signatures{left:6%;right:6%;gap:8px}.certificate-sign span{font-size:6px}.certificate-actions{flex-direction:column;align-items:stretch}.wish-box{flex-direction:column}.story-nav{gap:8px}.story-nav .button{flex:1}.site-footer{flex-wrap:wrap;gap:8px}}
