:root{--wine: #941936;--cherry: #c52e46;--pink: #f4b4b9;--light-pink: #fce8e4;--cream: #fffaf3;--border: #ef8c9b;--serif: "Cormorant Garamond", Georgia, serif;--sans: "DM Sans", sans-serif;font-family:var(--serif);color:var(--wine);background:#fbeae7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:300px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}button,input,a{touch-action:manipulation}:focus-visible{outline:3px solid #bb4962;outline-offset:5px}.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}.invitation-page{padding:26px 18px 16px;min-height:100svh;background:radial-gradient(ellipse at 50% 32%,#fff8f1,#fcece9 65%,#f7e0e1)}.invitation{position:relative;max-width:700px;margin:0 auto;padding:17px;background-color:#fff0e9;background-image:repeating-linear-gradient(0deg,#eb7c8f33 0 11px,transparent 11px 22px),repeating-linear-gradient(90deg,#eb7c8f33 0 11px,transparent 11px 22px);border:1px solid #efb1b5;border-radius:9px;box-shadow:0 9px 36px #a8405321,0 2px 5px #a8405321}.invitation:after{content:"";position:absolute;inset:0;pointer-events:none;border:5px solid #ffffff38;border-radius:inherit}.scalloped-panel{position:relative;isolation:isolate}.panel-background{position:absolute;width:100%;height:100%;inset:0;z-index:-1;overflow:visible}.panel-background path{fill:var(--cream);stroke:var(--border);stroke-width:1.5}.invitation-paper{padding:28px 29px 23px}.invitation-paper:after{content:"";position:absolute;inset:15px;z-index:-1;opacity:.22;pointer-events:none;background:radial-gradient(ellipse at 20% 20%,#efc6a438,transparent 65%),radial-gradient(ellipse at 70% 80%,#e7c5a938,transparent 50%)}.bow,.cherries{display:block;flex-shrink:0}.top-bow{position:absolute;width:109px;height:85px;top:-34px;left:calc(50% - 54px);z-index:2;transform:rotate(-3deg)}.invitation-header{position:relative;display:flex;justify-content:center;align-items:center;min-height:160px}.birthday-name{text-align:center;position:relative;z-index:1}.birthday-name h1{font-family:Great Vibes,cursive;font-weight:400;font-size:120px;line-height:.97;margin:8px 0 -2px;letter-spacing:-3px;color:#9e102d;text-shadow:0 1px 0 #fff}.birthday-name p{display:flex;align-items:center;justify-content:center;gap:9px;margin:0;transform:rotate(-5deg)}.birthday-name p span{font-family:Great Vibes,cursive;font-size:44px;line-height:1.25}.birthday-name p .flourish{width:29px;height:42px}.header-cherries{width:106px;position:absolute;top:35px}.header-cherries.left{left:6px;transform:rotate(-9deg)}.header-cherries.right{right:6px;transform:rotate(8deg) scaleX(-1)}.portrait-row{position:relative;display:flex;justify-content:center;align-items:center;margin:2px auto 0;z-index:3}.photo-frame{width:218px;aspect-ratio:1;position:relative;padding:8px;filter:drop-shadow(0 3px 2px #a53b4520)}.photo-frame:before,.photo-frame:after{content:"";position:absolute;inset:0;background:var(--cherry);clip-path:polygon(100% 50%,98.6% 55.5%,99% 61.2%,96.4% 66.3%,95.1% 71.7%,91.4% 76.1%,89.1% 81.2%,84.5% 84.5%,81.2% 89.1%,76.1% 91.4%,71.7% 95.1%,66.3% 96.4%,61.2% 99%,55.5% 98.6%,50% 100%,44.5% 98.6%,38.8% 99%,33.7% 96.4%,28.3% 95.1%,23.9% 91.4%,18.8% 89.1%,15.5% 84.5%,10.9% 81.2%,8.6% 76.1%,4.9% 71.7%,3.6% 66.3%,1% 61.2%,1.4% 55.5%,0 50%,1.4% 44.5%,1% 38.8%,3.6% 33.7%,4.9% 28.3%,8.6% 23.9%,10.9% 18.8%,15.5% 15.5%,18.8% 10.9%,23.9% 8.6%,28.3% 4.9%,33.7% 3.6%,38.8% 1%,44.5% 1.4%,50% 0,55.5% 1.4%,61.2% 1%,66.3% 3.6%,71.7% 4.9%,76.1% 8.6%,81.2% 10.9%,84.5% 15.5%,89.1% 18.8%,91.4% 23.9%,95.1% 28.3%,96.4% 33.7%,99% 38.8%,98.6% 44.5%)}.photo-frame:after{inset:2px;background:var(--cream)}.photo-frame img,.photo-placeholder{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 38%;border-radius:50%}.photo-placeholder{background:var(--light-pink);display:grid;place-content:center;text-align:center}.photo-placeholder span{font:70px Great Vibes,cursive}.photo-placeholder small{font-size:13px}.portrait-bow{position:absolute;width:86px;top:63px}.portrait-bow.left{left:51px;transform:rotate(-16deg)}.portrait-bow.right{right:51px;transform:rotate(17deg)}.response-card{margin:-31px -1px 0;padding:47px 36px 12px;text-align:center}.response-card>.panel-background path{stroke-width:1.6}.title-row{display:flex;align-items:center;justify-content:center;gap:6px;position:relative}.title-row h2{font-weight:700;font-size:39px;line-height:1.08;margin:0;letter-spacing:-.9px}.title-row h2:focus{outline:none}.flourish{width:29px;height:46px;flex-shrink:0}.mirror{transform:scaleX(-1)}.heart-divider{display:flex;align-items:center;justify-content:center;gap:9px;margin:12px 0 10px;color:#d64c69}.heart-divider span{width:54px;height:1px;background:#e65d78}.intro{font-size:22px;font-weight:600;line-height:1.1;margin:12px 0 21px}.rsvp-form{max-width:419px;margin:auto}.name-field{display:flex;align-items:center;gap:12px;background:#fffdfb;border:1.5px solid var(--border);border-radius:14px;box-shadow:2px 2px #efb8be88;padding:0 16px;height:51px;text-align:left}.name-field:focus-within{outline:3px solid #e8b2be66;border-color:var(--wine)}.name-field input{width:100%;min-width:0;background:transparent;border:0;outline:none;height:100%;color:var(--wine);font:17px var(--sans)}.name-field input::placeholder{color:#aa8d8d}.name-field.has-error{border-color:var(--wine)}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:47px;padding:10px 24px;border-radius:17px;border:1.5px solid transparent;font-weight:700;font-size:20px;line-height:1.2;transition:background .16s,box-shadow .16s,transform .16s}.button-primary{color:#fffaf3;background:linear-gradient(#bd2548,#a31032);border-color:#a31032;box-shadow:inset 0 1px #ffffff20,0 3px 7px #94193613}.button-primary:hover:not(:disabled){background:linear-gradient(#a91739,#900c2b);box-shadow:0 4px 10px #94193626}.button:active:not(:disabled){transform:translateY(1px)}.button-outline{color:var(--wine);background:transparent;border-color:var(--wine)}.button-outline:hover:not(:disabled){background:#fce8e4}.rsvp-form .button{margin-top:20px;width:91%;min-height:50px;font-size:24px}.rsvp-form .button>svg:last-child{margin-left:auto}.rsvp-form .button>svg:first-child:last-child{margin-left:0}.spinner{animation:spin .9s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.form-error{color:#941936;font:13px/1.5 var(--sans);margin:12px 0 0;text-align:left}.event-details{margin-top:23px;position:relative;z-index:1}.date-ribbon{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #ef8c9b;border-radius:22px 18px 23px 16px;padding:6px 14px;background:#fce3e088;font-size:23px;font-weight:700;white-space:nowrap}.date-ribbon svg{display:none;flex-shrink:0}.date-ribbon b{padding:0 4px;font-size:17px}.event-location{display:flex;align-items:center;justify-content:center;gap:17px;font-size:23px;margin-top:5px}.event-location:before,.event-location:after{content:"";width:28px;height:1px;background:#dc5c70}.bottom-cherries{position:absolute;width:88px;bottom:19px;z-index:3}.bottom-cherries.left{left:28px;transform:rotate(-12deg)}.bottom-cherries.right{right:28px;transform:rotate(10deg) scaleX(-1)}.invitation-footer{display:flex;align-items:center;justify-content:center;gap:6px;font:10px var(--sans);color:#b98189;margin:13px 0 0}.confirmation-seal{position:absolute;width:65px;height:65px;display:grid;place-items:center;color:#ad163b;border:1.5px solid #e4667d;background:#fbd4d5;border-radius:43% 48% 43% 47%;left:calc(50% - 32.5px);top:-20px;z-index:4;box-shadow:0 0 0 5px var(--cream);transform:rotate(-5deg)}.portrait-row .confirmation-seal{top:auto;bottom:-12px}.is-confirmed .response-card{padding-top:52px}.success-content .intro{margin-bottom:11px}.personal-message{display:table;max-width:100%;margin:0 auto 10px;padding:1px 24px 4px;border:1px solid #ef8c9b;background:#fce3e088;border-radius:22px 18px 23px 16px;font-style:italic;font-size:30px;line-height:1.15;overflow-wrap:anywhere}.event-details-complete{background:#fce3e088;border:1px solid #ef8c9b;border-radius:24px 21px 25px 18px;padding:8px 10px 12px;margin:11px auto 13px}.event-details-complete .date-ribbon{border:0;background:transparent;font-size:21px;padding:0}.event-details-complete .date-ribbon svg{display:block}.event-details-complete .event-location{gap:9px;margin-top:4px}.event-details-complete .event-location:before,.event-details-complete .event-location:after{display:none}.event-address{font-size:20px;font-weight:600;line-height:1.05;margin:1px 0 0}.success-content>.button{min-height:41px;padding:7px 25px;font-size:20px}.admin-page{min-height:100svh;padding:28px max(22px,calc((100vw - 1040px)/2));background-color:#fff7f1;background-image:linear-gradient(90deg,#f1b4bb0d 50%,transparent 50%),linear-gradient(#f1b4bb0d 50%,transparent 50%);background-size:28px 28px;font-family:var(--sans)}.back-link{display:inline-flex;gap:8px;align-items:center;text-decoration:none;font-size:13px}.back-link:hover{text-decoration:underline}.admin-card{background:var(--cream);border:1px solid #edbec3;border-radius:22px;box-shadow:0 12px 45px #94193609}.login-card{position:relative;max-width:430px;margin:65px auto 30px;padding:40px}.login-bow{position:absolute;width:85px;top:-36px;left:calc(50% - 42.5px)}.login-cherries{width:65px;margin:0 auto 15px}.eyebrow{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:2px}.login-card .eyebrow{justify-content:center}.login-card h1{font:600 37px/1.05 var(--serif);text-align:center;margin:16px 0;letter-spacing:-.5px}.login-description{text-align:center;color:#967179;font-size:13px;line-height:1.6;margin-bottom:25px}.login-card label{display:block;font-size:12px;font-weight:600;margin:17px 0 7px}.login-card input{width:100%;height:47px;border:1px solid #e5bdc3;border-radius:9px;background:#fff;color:var(--wine);padding:0 12px;font-size:16px}.login-card .button{width:100%;font:600 14px var(--sans);margin-top:25px;border-radius:9px}.private-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;color:#a8868c;margin:23px 0 0}.loading-state{max-width:430px;margin:80px auto;padding:35px;text-align:center}.admin-dashboard{margin-top:40px}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.dashboard-header h1{font:600 48px/1.1 var(--serif);margin:9px 0}.dashboard-header>div>p:last-child{font-size:12px;color:#9c7a80;line-height:1.6}.admin-dashboard .button{font:500 12px var(--sans);min-height:41px;border-radius:9px;padding:9px 15px;gap:7px}.stats-card{display:flex;align-items:center;gap:20px;background:#fce9e5;border:1px solid #edc3c6;border-radius:15px;padding:25px;margin:29px 0}.stats-icon{display:grid;place-items:center;background:#fff6ee;width:58px;height:58px;border-radius:14px}.stats-card strong{font:600 42px/1 var(--serif)}.stats-card p{margin:5px 0 0;font-size:12px}.stats-note{margin-left:auto;font:italic 22px var(--serif);max-width:230px}.guest-list{border:1px solid #edc3c6;background:#fffcf8;border-radius:15px;overflow:hidden}.list-toolbar{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:24px}.list-toolbar h2{font-size:14px;font-weight:600;margin:0 0 8px}.list-toolbar p{font-size:11px;color:#9c7a80;margin:0}.toolbar-actions{display:flex;gap:10px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#967179;font-size:11px;font-weight:500;padding:15px 24px;background:#faf0eb}td{padding:18px 24px;border-bottom:1px solid #f1e3df}td:first-child{overflow-wrap:anywhere;min-width:180px}td:nth-child(2){white-space:nowrap;color:#967179}.row-actions{width:68px;padding:10px 14px;text-align:right}.delete-guest{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--wine)}.delete-guest:hover:not(:disabled){background:var(--light-pink);border-color:#edc3c6}.admin-notice{margin:0 24px 16px;padding:12px;border-radius:8px;background:#fce8e4;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.delete-dialog{width:min(440px,calc(100% - 32px));max-height:calc(100svh - 40px);overflow-y:auto;margin:auto;padding:0;border:1px solid #edbec3;border-radius:20px;color:var(--wine);background:var(--cream);box-shadow:0 20px 80px #49101f33;font-family:var(--sans)}.delete-dialog::backdrop{background:#39121d80}.delete-dialog-content{padding:28px}.delete-dialog-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--light-pink)}.delete-dialog h2{margin:18px 0 12px;font:700 32px/1.1 var(--serif)}.delete-dialog p{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.delete-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:24px}.delete-dialog .button{min-height:44px;padding:10px 16px;border-radius:9px;font:600 13px var(--sans)}.last-update{color:#a7898d;font-size:10px;padding:8px 24px}.empty-state{padding:45px 25px;text-align:center;color:#a08086;font-size:13px;line-height:1.6}.empty-state svg{color:#d28a99}.empty-state h3{color:var(--wine);font:600 26px var(--serif);margin-bottom:0}.admin-error{margin:0 24px 15px;padding:12px;background:#fce8e4;border-radius:8px}@media(max-width:620px){.invitation-page{padding:15px 9px 12px}.invitation{padding:11px}.invitation-paper{padding:24px 15px 22px}.invitation-header{min-height:137px}.birthday-name h1{font-size:99px}.birthday-name p span{font-size:37px}.birthday-name p{gap:2px}.header-cherries{width:73px;top:36px}.header-cherries.left{left:1px}.header-cherries.right{right:1px}.top-bow{width:88px;left:calc(50% - 44px);top:-29px}.photo-frame{width:190px}.portrait-bow{width:66px;top:60px}.portrait-bow.left{left:9px}.portrait-bow.right{right:9px}.response-card{padding:43px 23px 11px;margin:-26px -6px 0}.title-row{gap:0}.title-row h2{font-size:clamp(23px,6.5vw,37px);letter-spacing:-.7px}.title-row>.flourish{position:absolute;width:18px;height:32px;left:-17px}.title-row>.flourish:last-child{left:auto;right:-17px}.heart-divider{margin:9px 0}.intro{font-size:18px;margin:13px 0 20px}.rsvp-form .button{width:100%;font-size:18px;padding:11px 12px;margin-top:17px;gap:5px;white-space:nowrap}.name-field{padding:0 12px;gap:9px}.date-ribbon{font-size:clamp(16px,4.1vw,22px);padding:7px 8px;gap:5px}.date-ribbon b{padding:0 1px;font-size:13px}.event-details{margin-top:24px}.event-location{font-size:22px;gap:12px}.event-location:before,.event-location:after{width:18px}.bottom-cherries{width:65px;bottom:15px}.bottom-cherries.left{left:9px}.bottom-cherries.right{right:9px}.event-details-complete{margin-top:14px;padding:10px 6px 13px}.event-details-complete .date-ribbon{font-size:clamp(15px,3.8vw,20px)}.event-details-complete .date-ribbon svg{width:17px}.event-address{font-size:18px}.personal-message{font-size:27px}.success-content>.button{font-size:18px}.confirmation-seal{width:57px;height:57px;left:calc(50% - 28.5px);top:-16px}.is-confirmed .response-card{padding-top:47px}.admin-page{padding:23px 18px}.login-card{margin-top:60px;padding:35px 27px}.dashboard-header{align-items:flex-start}.dashboard-header h1{font-size:35px}.dashboard-header .eyebrow{font-size:9px;letter-spacing:1px}.stats-card{padding:20px}.stats-note{display:none}.list-toolbar{flex-direction:column;align-items:stretch;padding:20px;gap:20px}.toolbar-actions{flex-wrap:wrap}.toolbar-actions .button{flex:1;padding:9px 10px}th,td{padding-left:20px;padding-right:20px}}@media(max-width:360px){.invitation-page{padding:9px 5px}.invitation{padding:8px}.invitation-paper{padding:23px 10px 20px}.birthday-name h1{font-size:86px}.birthday-name p span{font-size:33px}.header-cherries{width:60px}.header-cherries.left{left:-1px}.header-cherries.right{right:-1px}.photo-frame{width:175px}.portrait-bow{width:55px}.portrait-bow.left{left:4px}.portrait-bow.right{right:4px}.response-card{padding-left:20px;padding-right:20px}.intro{font-size:18px}.rsvp-form .button{font-size:16px}.title-row>.flourish{width:15px}.bottom-cherries{width:53px}.event-location{font-size:20px}.event-details-complete .date-ribbon{gap:3px;font-size:14px}.event-address{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
