:root{--background:#fff8b8;--foreground:#17243b;--primary:#f43b67;--primary-foreground:#fff;--secondary:#2b97c9;--secondary-foreground:#fff;--card:#fff;--card-foreground:#17243b;--popover:#fff;--popover-foreground:#17243b;--muted:#f5efd0;--muted-foreground:#69665d;--accent:#fff2a9;--accent-foreground:#17243b;--destructive:#b42318;--input:#17243b;--border:#17243b;--ring:#f43b67;--radius:1.25rem;--font-body:"PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;--font-display:"STKaiti", "KaiTi", "FangSong", serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);font-family:var(--font-body);margin:0}button,input,textarea{font:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.invitation-shell{width:100%;overflow:hidden}.hero{background-color:#2b97c9;background-image:linear-gradient(#fff3 1px,#0000 1px),linear-gradient(90deg,#fff3 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:26px 26px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:100svh;padding:20px max(18px,50vw - 260px);position:relative;overflow:hidden}.hero:before{content:"";background:#fff5a1;border-top:3px solid #17243b;position:absolute;inset:42% -18% -20%;transform:rotate(-3deg)}.topbar,.hero-copy,.reveal-stage,.tutu-card,.date-ticket,.hero-share,.scroll-cue{z-index:2;width:min(100%,520px);margin-inline:auto;position:relative}.topbar{justify-content:space-between;align-items:center;gap:14px;display:flex}.postmark{flex-direction:column;min-width:188px;padding:17px 23px 16px;display:flex;position:relative;transform:rotate(-2deg)}.postmark:before,.postmark:after{content:"";clip-path:polygon(50% 0,58% 13%,72% 5%,76% 20%,93% 17%,90% 34%,100% 43%,87% 52%,96% 66%,79% 69%,79% 87%,62% 82%,51% 100%,42% 84%,24% 94%,23% 76%,5% 79%,12% 60%,0 50%,14% 39%,4% 23%,22% 22%,26% 5%,41% 15%);position:absolute}.postmark:before{background:#17243b;inset:-4px}.postmark:after{background:#ffe748;inset:0}.postmark span,.postmark small{z-index:1;position:relative}.postmark span{font:900 22px/1 var(--font-display);letter-spacing:.08em}.postmark small{margin-top:6px;font-size:11px;font-weight:800}.music-pill{color:#17243b;cursor:pointer;background:#fff;border:2px solid #17243b;border-radius:999px;align-items:center;gap:7px;min-height:44px;padding:0 13px;font-size:12px;font-weight:800;display:inline-flex;box-shadow:3px 3px #17243b}.music-pill.is-on{background:#ff7895}.music-pill.is-starting{background:#fff8b8}.music-pill.is-waiting{background:#ffe748}.hero-copy{color:#fff;padding:52px 4px 22px}.kicker{color:#fff7a8;letter-spacing:.08em;margin:0 0 8px;font-size:13px;font-weight:900}.hero h1{max-width:410px;font:900 clamp(48px, 14vw, 78px)/.94 var(--font-display);letter-spacing:-.06em;text-shadow:3px 3px #17243b;margin:0;transform:rotate(-1deg)}.hero h1 span{color:#ffe748;display:block}.lead{margin:18px 0 0;font-size:15px;font-weight:800}.reveal-stage{grid-template-columns:1fr 44px;gap:10px;height:min(58svh,500px);min-height:390px;padding:10px 0 0;display:grid}.photo-frame{background:#fff;border:3px solid #17243b;border-radius:28px 10px 28px 12px;position:relative;overflow:hidden;transform:rotate(.7deg);box-shadow:8px 8px #17243be6}.photo-frame img{object-fit:cover;object-position:50% 37%;transform-origin:50% 36%;width:100%;height:100%;transition:clip-path 80ms linear;transform:translateY(30px)scale(1.26)}.photo-wash{color:#17243b;text-align:center;background:#fff8b8;border-bottom:2px dashed #17243b;place-content:center;min-height:80px;transition:height .12s ease-out;display:grid;position:absolute;inset:0 0 auto}.photo-wash span{font-weight:900}.photo-wash small{margin-top:4px}.couple-label{opacity:0;background:#ffffffeb;border:2px solid #17243b;flex-direction:column;padding:12px 14px;transition:all .4s;display:flex;position:absolute;bottom:15px;left:16px;right:16px;transform:translateY(20px)rotate(-1deg);box-shadow:4px 4px #17243b}.is-revealed .couple-label{opacity:1;transform:translateY(0)rotate(-1deg)}.couple-label strong{font:900 22px/1.2 var(--font-display)}.couple-label span{margin-top:4px;font-size:12px}.balloon-control{touch-action:none;-webkit-user-select:none;user-select:none;height:100%;display:block;position:relative}.balloon-control:before{content:"";border-left:2px dashed #17243bb3;position:absolute;top:16px;bottom:8px;left:50%}.drag-hint{color:#17243bd1;letter-spacing:.08em;text-align:center;transform-origin:bottom;width:76px;font-size:10px;font-weight:900;position:absolute;top:4px;left:50%;transform:translate(-50%,-100%)rotate(90deg)}.balloon-heart{z-index:3;color:#f43b67;filter:drop-shadow(3px 3px #17243b);cursor:grab;touch-action:none;background:0 0;border:0;place-items:center;width:58px;height:58px;padding:0;font-size:54px;line-height:1;transition:filter .16s,transform .16s;display:grid;position:absolute;left:50%;transform:translate(-50%,-50%)}.balloon-heart:active,.balloon-control.is-dragging .balloon-heart{cursor:grabbing;filter:drop-shadow(5px 6px #17243b);transform:translate(-50%,-50%)scale(1.08)rotate(-5deg)}.balloon-heart:focus-visible{outline-offset:5px;border-radius:50%;outline:3px solid #fff}.balloon-string{pointer-events:none;background:#17243b;width:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.confetti{pointer-events:none;position:absolute;inset:-10px 30px -5px 0;overflow:hidden}.confetti i{width:8px;height:18px;animation:1.7s ease-out both confetti-fall;position:absolute;top:-12px}@keyframes confetti-fall{to{opacity:0;transform:translateY(520px)rotate(640deg)}}.tutu-card{pointer-events:none;align-items:center;gap:4px;margin-top:28px;display:flex}.tutu-card img{aspect-ratio:1;object-fit:contain;object-position:center;filter:drop-shadow(6px 7px #17243bbf);width:142px;transform:rotate(-4deg)}.speech-bubble{max-width:280px;font:800 13px/1.55 var(--font-body);background:#fff;border:2px solid #17243b;border-radius:16px 16px 16px 4px;margin:0 0 0 -9px;padding:14px 15px;position:relative;transform:rotate(1deg);box-shadow:4px 4px #17243b}.date-ticket{background:#fff;border:2px solid #17243b;align-items:center;gap:12px;margin-top:20px;padding:15px 18px;display:flex;transform:rotate(-.8deg);box-shadow:5px 5px #17243b}.date-ticket div{flex-direction:column;gap:5px;display:flex}.date-ticket strong{font:900 17px/1.2 var(--font-display)}.date-ticket span{align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex}.hero-share{justify-items:center;gap:9px;margin-top:18px;display:grid}.hero-share button{color:#17243b;cursor:pointer;background:#ffe748;border:2px solid #17243b;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:50px;padding:0 22px;font-size:15px;font-weight:900;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:4px 4px #17243b}.hero-share button:active{transform:translate(2px,2px);box-shadow:2px 2px #17243b}.hero-share button:focus-visible{outline-offset:4px;outline:3px solid #fff}.hero-share p{text-align:center;overflow-wrap:anywhere;max-width:360px;margin:0;font-size:14px;font-weight:800;line-height:1.45}.scroll-cue{color:#17243b;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:18px 0 5px;font-size:12px;font-weight:900;text-decoration:none;display:flex}.scroll-cue b{animation:1.2s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(6px)}}.doodle-star{z-index:1;color:#ffe748;font:900 34px/1 var(--font-display);position:absolute}.star-one{top:100px;left:5%;transform:rotate(-16deg)}.star-two{top:34%;right:4%;transform:rotate(12deg)}.doodle-loop{border:3px solid #ff7895;border-radius:50%;width:120px;height:60px;position:absolute;transform:rotate(-20deg)}.loop-one{top:260px;right:-52px}.journey-teaser{color:#fff;text-align:center;background:#17243b;min-height:48svh;padding:70px max(22px,50vw - 260px)}.journey-teaser p{color:#ffe748;letter-spacing:.28em;margin:0;font-weight:900}.journey-teaser h2{font:900 34px/1.25 var(--font-display);margin:14px auto 30px}.mini-venues{gap:12px;display:grid}.mini-venues span{border:2px solid #fff;border-radius:999px;padding:14px;font-size:13px;font-weight:800}.guide-section,.party-section,.dress-section,.rsvp-section,.family-section{content-visibility:auto;contain-intrinsic-size:1000px;padding:88px max(20px,50vw - 270px);position:relative}.section-inner{z-index:1;width:min(100%,520px);margin-inline:auto;position:relative}.section-eyebrow{color:#ffe748;letter-spacing:.06em;border:2px solid;border-radius:999px;padding:10px 15px;font-size:14px;font-weight:900;display:inline-flex;transform:rotate(-1deg);box-shadow:3px 3px}.section-eyebrow.dark{color:#17243b;background:#fff}.section-inner>h2{font:900 clamp(40px, 11vw, 58px)/1.04 var(--font-display);letter-spacing:-.055em;margin:24px 0 18px}.section-intro{max-width:430px;color:inherit;opacity:.82;margin:0 0 38px;font-size:14px;font-weight:650;line-height:1.8}.ink-section{color:#fff;background:#17243b}.ink-section:before{content:"";opacity:.17;pointer-events:none;background-image:radial-gradient(circle at 20% 18%,#fff 0 1px,#0000 2px),radial-gradient(circle at 82% 48%,#ffe748 0 1px,#0000 2px);background-size:27px 31px,43px 39px;position:absolute;inset:0}.day-stack{gap:24px;display:grid}.day-card{color:#17243b;background:#fff;border:3px solid #17243b;border-radius:14px 34px 14px 28px;grid-template-columns:78px 1fr;gap:16px;padding:18px;display:grid;transform:rotate(-.7deg);box-shadow:8px 8px #ffe748}.day-card:nth-child(2){transform:rotate(.7deg);box-shadow:8px 8px #ff7895}.day-stamp{background:#8fd5df;border:2px solid #17243b;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;height:90px;display:flex;transform:rotate(-6deg)}.day-pink .day-stamp{background:#ffb2c2;transform:rotate(5deg)}.day-stamp b{font:900 38px/.86 var(--font-display)}.day-stamp span{margin-top:7px;font-size:11px;font-weight:900}.day-copy>p{color:#e83c66;margin:2px 0 5px;font-size:11px;font-weight:900}.day-copy h3{font:900 21px/1.25 var(--font-display);margin:0 0 18px}.day-copy .venue-address{color:#45526a;margin:-8px 0 16px;font-size:11px;font-weight:750;line-height:1.65;display:block}.day-copy .venue-address svg{color:#e83c66;margin:0 4px -2px 0}.timeline-list{gap:9px;margin-bottom:18px;display:grid}.timeline-list span{align-items:center;gap:9px;font-size:12px;font-weight:750;line-height:1.45;display:flex}.timeline-list i{white-space:nowrap;background:#fff8b8;border:1.5px solid #17243b;border-radius:999px;place-items:center;min-width:53px;min-height:27px;padding:4px 7px;font-size:9px;font-style:normal;display:grid}.venue-actions{flex-wrap:wrap;gap:8px;display:flex}.venue-actions a,.venue-actions button{min-height:44px;font:inherit;cursor:pointer;border:2px solid #17243b;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 13px;font-size:12px;font-weight:900;display:inline-flex}.venue-actions a{color:#fff;background:#17243b;text-decoration:none}.venue-actions button{color:#17243b;background:#fff8b8}.venue-status{color:#35725b;min-height:16px;margin-top:6px;font-size:10px;font-weight:850;display:block}.pet-roster{grid-template-columns:repeat(2,1fr);gap:15px;margin-top:58px;display:grid}.pet-roster figure{color:#17243b;background:#fff;margin:0;padding:7px 7px 10px;box-shadow:4px 4px #f43b67}.pet-roster img{aspect-ratio:1;object-fit:contain;object-position:center;filter:saturate(.96)contrast(1.02);background:radial-gradient(circle at 50% 65%,#fff2a9 0 25%,#0000 26%);width:100%;display:block}.pet-roster figcaption{text-align:center;flex-direction:column;margin-top:7px;display:flex}.pet-roster strong{font:900 18px/1 var(--font-display)}.pet-roster span{margin-top:5px;font-size:10px;font-weight:800}.party-section{color:#17243b;background:#fff29d}.party-section:before{content:"";background:repeating-conic-gradient(from 8deg at 50% 58%, #f43b671f 0 7deg, transparent 7deg 22deg);pointer-events:none;position:absolute;inset:0}.party-lab{background:#a7e0d7;border:3px solid #17243b;min-height:580px;padding:26px 20px;position:relative;overflow:hidden;box-shadow:10px 10px #17243b}.party-photo{background:#fff;width:47%;padding:8px 8px 30px;position:absolute;top:28px;right:22px;transform:rotate(5deg);box-shadow:5px 5px #f43b67}.party-photo img{aspect-ratio:1;object-fit:contain;object-position:center;background:#fff5a1;width:100%;display:block}.party-photo span{text-align:center;font:900 13px/1 var(--font-display);position:absolute;bottom:8px;left:8px;right:8px}.cocktail-card{background:#fff;border:3px solid #17243b;width:74%;min-height:245px;padding:24px;animation:.35s both card-pop;position:absolute;bottom:112px;left:20px;transform:rotate(-2deg);box-shadow:7px 7px #ff7895}@keyframes card-pop{0%{opacity:.2;transform:translateY(16px)rotate(-4deg)}}.cocktail-icon{background:#ffe748;border:2px solid #17243b;border-radius:50%;place-items:center;width:58px;height:58px;display:grid}.cocktail-card small{color:#e83c66;margin-top:18px;font-weight:900;display:block}.cocktail-card h3{font:900 26px/1.15 var(--font-display);margin:7px 0 10px}.cocktail-card p{margin:0;font-size:13px;font-weight:650;line-height:1.7}.shake-button{z-index:2;color:#fff;cursor:pointer;background:#f43b67;border:2px solid #17243b;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:50px;padding-inline:20px;font-weight:900;display:inline-flex;position:absolute;bottom:24px;right:20px;box-shadow:4px 4px #17243b}.party-dots{justify-content:center;gap:0;margin-top:12px;display:flex}.party-dots button{cursor:pointer;background:0 0;border:0;border-radius:999px;width:44px;height:44px;padding:0;position:relative}.party-dots button:before{content:"";background:#fff;border:2px solid #17243b;border-radius:50%;width:12px;height:12px;transition:width .2s,border-radius .2s,background-color .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.party-dots button.active:before{background:#f43b67;border-radius:999px;width:32px}.party-dots button:focus-visible{outline-offset:-5px;outline:3px solid #17243b}.dress-section{color:#17243b;background:#fffdf3}.dress-section:after{content:"✦  ♥  ✦";color:#f43b67;font:900 28px/1 var(--font-display);position:absolute;top:58px;right:-14px;transform:rotate(15deg)}.dress-section .section-eyebrow{color:#2b97c9}.dress-board{gap:32px;display:grid}.dress-look-column,.dress-control-column{gap:20px;min-width:0;display:grid}.dress-photo{background:#fff9ed;border:3px solid #17243b;border-radius:42px 42px 18px 18px;transition:box-shadow .25s;position:relative;overflow:hidden}.dress-look-image{aspect-ratio:4/5;object-fit:cover;object-position:center;width:100%;animation:.38s cubic-bezier(.22,1,.36,1) both dress-look-in;display:block}@keyframes dress-look-in{0%{opacity:.25;transform:scale(.965)translateY(8px)}}.dress-photo-label{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border:2px solid #17243b;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;display:flex;position:absolute;bottom:14px;left:14px;right:14px;box-shadow:3px 3px #17243b}.dress-photo-label span{font-size:11px;font-weight:900}.dress-photo-label strong{font:900 22px/1 var(--font-display)}.outfit-pieces{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.outfit-pieces span{background:#fff;border:2px solid #17243b;border-radius:999px;place-items:center;min-height:37px;font-size:11px;font-weight:900;display:grid;box-shadow:2px 2px #17243b}.palette-card{background:#fff;border:3px solid #17243b;border-radius:14px 28px;padding:23px;transition:box-shadow .25s}.palette-title{align-items:center;gap:9px;display:flex}.palette-title>span{font-size:12px;font-weight:900;line-height:1.4}.palette-card>p{color:#e83c66;margin:17px 0 4px;font-size:11px;font-weight:900}.palette-card h3{font:900 34px/1 var(--font-display);margin:0 0 9px}.palette-card>span{min-height:62px;font-size:13px;font-weight:650;line-height:1.65;display:block}.swatches{grid-template-columns:repeat(4,1fr);gap:9px;margin-top:22px;display:grid}.swatches button{color:#17243b;cursor:pointer;background:0 0;border:0;justify-items:center;gap:8px;min-width:0;padding:0;font-family:inherit;display:grid}.swatches button i{color:#17243b;border:2px solid #17243b;border-radius:50%;place-items:center;width:52px;height:52px;transition:transform .2s,box-shadow .2s;display:grid;box-shadow:3px 3px #17243b}.swatches button span{font-size:11px;font-weight:900}.swatches button.active i{transform:translateY(-5px)rotate(-7deg)scale(1.04);box-shadow:4px 6px #17243b}.swatches button:focus-visible{outline-offset:5px;border-radius:10px;outline:3px solid #2b97c9}.kele-judge-card{background:#eef2df;border:3px solid #17243b;border-radius:28px 12px;grid-template-columns:132px 1fr;align-items:center;gap:15px;padding:10px 15px 10px 10px;display:grid;transform:rotate(-.7deg);box-shadow:7px 7px #17243b}.kele-judge-card img{aspect-ratio:4/5;object-fit:cover;object-position:center;background:#fff9ed;border:2px solid #17243b;border-radius:20px 8px;width:100%;display:block}.kele-judge-card div{min-width:0}.kele-judge-card span{color:#fff;background:#315d47;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;display:inline-flex}.kele-judge-card strong{font:900 18px/1.15 var(--font-display);margin:9px 0 7px;display:block}.kele-judge-card p{margin:0;font-size:12px;font-weight:750;line-height:1.55}.rsvp-section{color:#17243b;background:#9ddfd4}.rsvp-section:before{content:"";opacity:.22;background-image:linear-gradient(45deg,#0000 46%,#fff 47% 53%,#0000 54%);background-size:31px 31px;position:absolute;inset:0}.rsvp-form{background:#fffdf3;border:3px solid #17243b;border-radius:30px 12px;gap:19px;margin-top:34px;padding:24px;display:grid;box-shadow:9px 9px #17243b}.rsvp-form>label{gap:8px;display:grid}.rsvp-form label>span,.rsvp-form legend{font-size:12px;font-weight:900}.rsvp-form input:not([type=radio]),.rsvp-form textarea{color:#17243b;background:#fff;border:2px solid #17243b;border-radius:12px;outline:none;width:100%;min-height:48px;padding:11px 13px;font-size:16px}.rsvp-form input:focus,.rsvp-form textarea:focus{box-shadow:0 0 0 3px #f43b6740}.rsvp-form textarea{min-height:100px}.rsvp-form fieldset{border:0;margin:0;padding:0}.rsvp-form legend{margin-bottom:10px}.attendance-options{grid-template-columns:1fr 1fr;gap:9px;display:grid}.attendance-options label{text-align:center;cursor:pointer;background:#fff;border:2px solid #17243b;border-radius:12px;place-items:center;min-height:46px;padding:8px;display:grid;position:relative}.attendance-options label.selected{background:#ffe748;transform:translate(-2px,-2px);box-shadow:3px 3px #17243b}.attendance-options input{opacity:0;position:absolute}.paw-submit{color:#fff;cursor:pointer;background:#f43b67;border:2px solid #17243b;border-radius:999px;justify-content:center;align-items:center;gap:9px;min-height:56px;font-size:15px;font-weight:900;display:inline-flex;box-shadow:5px 5px #17243b}.paw-submit:disabled{cursor:wait;opacity:.65}.form-error{color:#b42318;margin:0;font-size:12px;font-weight:800}.rsvp-success{text-align:center;background:#fffdf3;border:3px solid #17243b;border-radius:30px 12px;margin-top:35px;padding:38px 24px;box-shadow:9px 9px #17243b}.paw-stamp{color:#f43b67;border:4px double #f43b67;border-radius:50%;place-items:center;width:108px;height:108px;margin:0 auto 22px;display:grid;transform:rotate(-12deg)}.rsvp-success h3{font:900 30px/1.1 var(--font-display);margin:0}.rsvp-success p{font-size:13px;line-height:1.7}.rsvp-success button{color:#2b6c8e;cursor:pointer;background:0 0;border:0;font-weight:800;text-decoration:underline}.contact-strip{background:#ffffff73;border:2px dashed #17243b;gap:10px;margin-top:34px;padding:18px;display:grid}.contact-strip>span{font-size:11px;font-weight:900}.contact-strip a{color:#17243b;align-items:center;gap:7px;min-height:44px;font-size:13px;font-weight:800;text-decoration:none;display:flex}.family-section{color:#fff;background:#2b97c9;min-height:100svh}.family-section:before{content:"";background:radial-gradient(circle at 12% 13%,#ffe748e6 0 3px,#0000 4px) 0 0/83px 83px,radial-gradient(circle at 84% 26%,#ffffffd9 0 2px,#0000 3px) 0 0/57px 57px;position:absolute;inset:0}.family-inner{text-align:center;width:min(100%,680px)}.family-inner .section-eyebrow{color:#ffe748}.family-copy{color:#ffffffdb;max-width:420px;margin:0 auto 35px;font-size:14px;font-weight:700;line-height:1.8}.family-photo{background:#fff;border:4px solid #fff;border-radius:34px 34px 16px 16px;padding:9px 9px 19px;position:relative;overflow:hidden;box-shadow:10px 10px #17243b}.family-photo img{aspect-ratio:16/9;object-fit:contain;object-position:center;border-radius:23px 23px 8px 8px;width:100%;height:auto;display:block}.family-photo-copy{color:#17243b;flex-direction:column;padding:18px 12px 0;display:flex}.family-photo-copy span{color:#e83c66;font:900 20px/1 var(--font-display)}.family-photo-copy strong{font:900 29px/1 var(--font-display);margin:8px 0}.family-photo-copy small{font-size:11px;font-weight:800}.closing-card{color:#17243b;background:#fff8b8;border:2px solid #17243b;justify-items:center;margin-top:52px;padding:28px 18px;display:grid;transform:rotate(-1deg);box-shadow:7px 7px #17243b}.closing-card p{font:900 18px/1.7 var(--font-display)}.closing-card a{color:#fff;background:#f43b67;border:2px solid #17243b;border-radius:999px;align-items:center;gap:7px;min-height:44px;padding:0 16px;font-size:12px;font-weight:900;text-decoration:none;display:inline-flex}.admin-shell{color:#17243b;background-color:#2b97c9;background-image:radial-gradient(circle at 18% 14%,#ffe748e6 0 3px,#0000 4px),radial-gradient(circle at 84% 28%,#ffffffd9 0 2px,#0000 3px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:83px 83px,57px 57px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:100svh;padding:20px}.admin-paper{background:#fffdf3;border:3px solid #17243b;border-radius:28px 12px;width:min(100%,980px);min-height:calc(100svh - 40px);margin:0 auto;padding:22px;box-shadow:9px 9px #17243b}.admin-kicker{background:#ffe748;border:2px solid #17243b;border-radius:999px;align-items:center;gap:7px;padding:8px 12px;font-size:12px;font-weight:900;display:inline-flex;box-shadow:3px 3px #17243b}.admin-header{gap:18px;margin:32px 0 25px;display:grid}.admin-header p{color:#e83c66;letter-spacing:.08em;margin:0 0 8px;font-size:12px;font-weight:900}.admin-header h1,.admin-gate h1{font:900 clamp(36px, 9vw, 54px)/1.03 var(--font-display);letter-spacing:-.04em;margin:0}.admin-header span{margin-top:12px;font-size:13px;font-weight:650;line-height:1.6;display:block}.admin-refresh,.admin-primary,.admin-secondary{color:#fff;background:#f43b67;border:2px solid #17243b;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:46px;padding:0 16px;font-size:13px;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:4px 4px #17243b}.admin-refresh{justify-self:start}.admin-secondary{color:#17243b;background:#fff}.admin-refresh,.admin-primary,.admin-secondary,.admin-footer button,.admin-record-actions button{cursor:pointer;font-family:inherit}.admin-refresh:disabled,.admin-primary:disabled{cursor:wait;opacity:.62}.admin-login-form{text-align:left;gap:10px;width:min(100%,390px);margin-bottom:18px;display:grid}.admin-login-form label{font-size:12px;font-weight:900}.admin-login-form input{color:#17243b;background:#fff;border:2px solid #17243b;border-radius:14px;outline:none;width:100%;min-height:48px;padding:0 15px;font:750 16px/1 inherit}.admin-login-form input:focus{box-shadow:0 0 0 4px #2b97c938}.admin-error{color:#9e1237;background:#ffd9e2;border:2px solid #17243b;border-radius:12px;width:min(100%,520px);margin:8px auto 18px;padding:11px 13px;font-size:12px;font-weight:850}.admin-stats{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.admin-stats article{background:#fff;border:2px solid #17243b;border-radius:22px 9px;align-content:space-between;min-height:145px;padding:16px;display:grid;position:relative;overflow:hidden;box-shadow:4px 4px #17243b}.admin-stats article:first-child{background:#ffe748}.admin-stats article:nth-child(2){background:#a9dff1}.admin-stats article:nth-child(3){background:#ffc2d0}.admin-stats article:nth-child(4){background:#b9dfd6}.admin-stats svg{opacity:.55;position:absolute;top:14px;right:14px}.admin-stats span{max-width:80px;font-size:12px;font-weight:900}.admin-stats strong{font:900 46px/.85 var(--font-display);margin-top:20px}.admin-stats small{font-size:11px;font-weight:900}.admin-summary-line{background:#fff8b8;border:2px dashed #17243b;flex-wrap:wrap;justify-content:space-between;gap:8px 18px;margin:22px 0 35px;padding:13px 15px;font-size:11px;font-weight:800;display:flex}.admin-section-title{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.admin-section-title h2{font:900 30px/1 var(--font-display);margin:0}.admin-section-title span{color:#fff;background:#17243b;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900}.admin-record-list{gap:14px;display:grid}.admin-record{background:#fff;border:2px solid #17243b;border-radius:20px 8px;padding:17px;box-shadow:4px 4px #8fc9dc}.admin-record:nth-child(2n){box-shadow:4px 4px #f3a9ba}.admin-record-head{border-bottom:1.5px dashed #17243b59;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:13px;display:flex}.admin-record-head>div{gap:5px;display:grid}.admin-record-head strong{font:900 23px/1 var(--font-display)}.admin-record-head span{color:#e83c66;font-size:11px;font-weight:900}.admin-record-head time{color:#17243ba6;white-space:nowrap;font-size:10px;font-weight:800}.admin-record-actions{justify-items:end;gap:8px;display:grid}.admin-record-actions button{color:#9e1237;background:#fff2f5;border:1.5px solid #17243b80;border-radius:999px;align-items:center;gap:4px;padding:5px 8px;font-size:9px;font-weight:900;display:inline-flex}.admin-record dl{grid-template-columns:1fr 1fr;gap:13px;margin:15px 0 0;display:grid}.admin-record dl div{min-width:0}.admin-record dt{color:#17243b9e;margin-bottom:4px;font-size:10px;font-weight:900}.admin-record dd{overflow-wrap:anywhere;margin:0;font-size:12px;font-weight:750;line-height:1.55}.admin-record .admin-message{grid-column:1/-1}.admin-empty,.admin-gate{text-align:center;justify-items:center;padding:50px 22px;display:grid}.admin-empty strong{font:900 22px/1.2 var(--font-display);margin-top:14px}.admin-empty p,.admin-gate p{max-width:430px;margin:14px auto 24px;font-size:13px;font-weight:650;line-height:1.7}.admin-footer{border-top:2px dashed #17243b59;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:32px;padding-top:18px;font-size:10px;font-weight:800;display:flex}.admin-footer a{color:#17243b}.admin-footer button{color:#9e1237;font-size:inherit;font-weight:inherit;background:0 0;border:0;padding:0;text-decoration:underline}@media (max-width:410px){.hero{padding-inline:16px}.topbar{align-items:flex-start;gap:6px}.postmark{min-width:176px;padding-inline:20px}.postmark span{font-size:21px}.music-pill{padding-inline:10px;font-size:11px}.hero-copy{padding-top:42px}.reveal-stage{grid-template-columns:minmax(0,1fr) 48px;gap:7px;height:450px;min-height:450px}.photo-frame img{object-position:50% 35%}.couple-label{padding:10px 11px;bottom:12px;left:10px;right:10px}.couple-label strong{font-size:20px}.tutu-card{margin-top:24px}.tutu-card img{width:126px}.speech-bubble{padding:12px;font-size:12px}.guide-section,.party-section,.dress-section,.rsvp-section,.family-section{padding-inline:18px}.section-eyebrow{font-size:13px}.day-card{grid-template-columns:65px 1fr;gap:12px;padding:14px}.day-stamp{height:76px}.day-stamp b{font-size:32px}.pet-roster{gap:12px}.pet-roster figure{padding:5px 5px 8px}.party-photo{width:45%}.cocktail-card{width:82%;padding:21px}.kele-judge-card{grid-template-columns:112px 1fr;gap:12px;padding:9px 12px 9px 9px}.kele-judge-card strong{font-size:17px}.kele-judge-card p{font-size:11px}.attendance-options{grid-template-columns:1fr}}@media (min-width:720px){.hero{padding-top:28px;padding-bottom:36px}.hero-copy{padding-top:62px}.dress-board{grid-template-columns:1.08fr .92fr;align-items:start}.dress-control-column{padding-top:22px}.pet-roster{grid-template-columns:repeat(4,1fr)}.admin-shell{padding:36px}.admin-paper{min-height:calc(100svh - 72px);padding:34px}.admin-header{grid-template-columns:1fr auto;align-items:end}.admin-refresh{justify-self:end}.admin-stats{grid-template-columns:repeat(4,1fr)}.admin-record-list{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
