@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');:root{--ink:#1b2021;--cream:#f7f3eb;--paper:#e9e2d5;--gold:#b58e65;--blue:#24393b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400}p{line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.24em;color:var(--gold)}.invitation{background:#e7e4dd}.opening{position:fixed;inset:0;z-index:20;background:#17171d;color:#f2eee9;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:6vh 20px 9vh;text-align:center;transition:opacity .6s,visibility .6s;overflow:hidden}.opening:before{content:'✶';position:absolute;font:440px Georgia,serif;color:#b9976810;top:-170px;right:-170px}.opening-grain{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#55464565,transparent 45%),repeating-linear-gradient(130deg,#ffffff05 0 1px,transparent 1px 5px);pointer-events:none}.opening.closed{opacity:0;visibility:hidden;pointer-events:none}.opening-top{font-size:10px;letter-spacing:.27em;z-index:1}.opening-center{z-index:1}.opening-symbol{font-size:38px;color:#b8946f}.opening h1{font-size:clamp(70px,14vw,160px);line-height:1.1;letter-spacing:-.06em;margin:15px 0;max-width:850px}.opening-center p{font:italic clamp(21px,3vw,34px) Georgia,serif;color:#cbbfb5}.opening button{z-index:1;background:none;color:#f2eee9;border:1px solid #aaa09b;padding:18px 25px;letter-spacing:.22em;font-size:10px;min-width:230px;display:flex;justify-content:space-between}.opening button:hover{background:#f2eee9;color:#17171d}.invite-wrap{max-width:540px;margin:0 auto;background:var(--cream);box-shadow:0 10px 45px #0002;overflow:hidden}.invitation:not(.opened){overflow:hidden}.cover{min-height:100svh;background:radial-gradient(circle at 80% 20%,#c5b7a1,#504944 68%,#252424);position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;isolation:isolate}.cover.has-photo{background-image:var(--cover);background-size:cover;background-position:center}.cover-shade{position:absolute;inset:0;background:linear-gradient(0deg,#151414b0,#1d1b1844 50%,#18191d61);z-index:-1}.cover:after{content:'';position:absolute;inset:22px;border:1px solid #ffffff7a;pointer-events:none}.cover-content{padding:35px;display:flex;flex-direction:column;align-items:center;min-height:80svh;justify-content:center}.overline{font-size:10px;font-weight:700;letter-spacing:.25em}.cover-asterisk{font:65px Georgia,serif;margin:60px 0 15px;color:#dfcba8}.cover h1{font-size:clamp(64px,13vw,105px);line-height:1.1;letter-spacing:-.06em;overflow-wrap:anywhere}.cover-rule{border-top:1px solid #dfcba8;width:44px;margin:35px auto 20px}.cover-content>p{font:italic 24px Georgia,serif}.cover-scroll{font-size:9px;letter-spacing:.19em;margin-top:auto;padding-top:50px}.intro,.count-section,.place,.details,.gift,.rsvp,.studio-section{padding:90px 40px;text-align:center}.intro{background:#f7f3eb}.intro h2{font-size:60px;line-height:1.1;margin:22px 0}.intro h2 span{display:block;color:#b58e65;font-size:26px;margin-top:14px}.intro>p{max-width:365px;margin:auto;color:#696864}.date-block{border-top:1px solid #cfc6b9;border-bottom:1px solid #cfc6b9;margin:50px auto 30px;padding:30px 0;display:flex;flex-direction:column;gap:5px;max-width:300px}.date-block span{font-size:11px;letter-spacing:.24em}.date-block strong{font:400 100px/1 'Playfair Display',Georgia,serif;color:#947257}.line-button{display:inline-block;padding:14px 0;border-bottom:1px solid currentColor;font-size:11px;letter-spacing:.13em;font-weight:700}.count-section{background:#eae5dc}.count-section h2{font-size:44px;margin:17px auto 35px}.count-section #countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.count-section #countdown>div{background:#f9f6f0;padding:14px 3px}.count-section b{font:400 37px Georgia,serif;display:block}.count-section small{font-size:8px;letter-spacing:.09em}.place{background:#27383b;color:#f8f4e9}.place h2{font-size:clamp(44px,10vw,68px);line-height:1.15;margin:24px 0 30px}.place-info{display:flex;flex-direction:column;gap:11px;font-size:13px;color:#d2d2c7;line-height:1.6}.filled-button{border:0;background:#b69370;color:#181b1a;display:inline-block;padding:17px 27px;font-size:11px;font-weight:700;letter-spacing:.12em;margin-top:30px}.filled-button:hover{background:#d1ac85}.details h2,.gift h2,.rsvp h2,.studio-section h2{font-size:clamp(42px,10vw,62px);line-height:1.15;margin:20px 0 32px}.details{background:#f7f3eb}.timeline{max-width:340px;margin:30px auto 55px}.timeline div{display:flex;text-align:left;gap:30px;padding:17px 0;border-bottom:1px solid #d9d2c5;font-size:14px}.timeline b{min-width:65px;color:#9d7958}.detail-card{padding:30px;background:#ebe3d6}.detail-card span{color:#a77e5c;font-size:26px}.detail-card h3{font-size:31px;margin:8px 0}.small-note{font-size:13px;color:#74706b;margin:28px auto 0;max-width:330px}.gift{background:#dfd0bc}.gift p{max-width:340px;margin:auto;color:#6c635c}.rsvp{background:#f7f3eb}.rsvp>p{color:#696963}.pass-note{margin:0 auto 23px;font-size:14px}.rsvp-form{text-align:left;max-width:360px;margin:25px auto}.rsvp-form label{display:block;font-size:12px;font-weight:700;margin:18px 0}.rsvp-form input:not([type=radio]),.rsvp-form select,.rsvp-form textarea{display:block;width:100%;padding:13px;border:1px solid #c6bfb4;background:#fff;margin-top:8px;color:#222;border-radius:0}.rsvp-form fieldset{border:0;padding:0;margin:25px 0 0}.rsvp-form legend{font-size:12px;font-weight:700}.rsvp-form .radio-card{border:1px solid #c6bfb4;padding:14px;margin:10px 0;background:#fff;cursor:pointer}.radio-card input{margin-right:10px;accent-color:#a77e5c}.is-hidden{display:none!important}.rsvp-form textarea{resize:vertical}.rsvp-form .filled-button{width:100%}.rsvp-form small{display:block;text-align:center;color:#76736d;font-size:11px;margin-top:15px}.response-ok,.success{background:#e4eee7;border-left:3px solid #4a765b;padding:14px;margin:20px 0;font-size:13px}.alert{background:#fbede8;border-left:3px solid #a95c48;padding:14px;margin:20px 0;font-size:13px}.studio-section{background:#233538;color:#fff}.studio-section p{color:#c2cbc6}.invite-footer{padding:60px 20px;background:#15191a;color:#fff;text-align:center}.invite-footer>span{color:#b58e65;font-size:28px}.invite-footer p{font:italic 28px Georgia,serif;margin:15px 0 35px}.invite-footer small{font-size:8px;letter-spacing:.2em;color:#aaa}.admin-body{background:#f5f3ed}.admin-top{display:flex;align-items:center;justify-content:space-between;background:#203235;color:#fff;padding:20px 5vw;gap:20px;font-size:12px}.brand{font:700 22px Georgia,serif}.brand span{color:#c99d78}.brand small{font:600 10px 'DM Sans',sans-serif;letter-spacing:.14em}.text-button{background:none;border:0;color:#fff;text-decoration:underline}.admin-shell{max-width:1200px;margin:auto;padding:45px 24px 90px}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.admin-heading h1,.login-card h1{font-size:clamp(40px,5vw,65px);margin:9px 0}.admin-heading p{font-size:14px;color:#666}.outline-button{display:inline-block;background:transparent;border:1px solid #9eaba4;padding:13px 17px;font-size:12px;font-weight:700;color:#203235}.button{background:#203235;color:white;border:0;padding:15px 20px;font-size:12px;font-weight:700}.button:hover,.outline-button:hover{background:#af8969;color:#fff}.login-card{max-width:430px;margin:9vh auto;background:white;padding:38px}.login-card p{color:#6d706c;font-size:14px}.login-card label,.stack label,.edit-grid label{display:block;font-size:12px;font-weight:700;margin:20px 0}.login-card input,.stack input,.edit-grid input,.edit-grid select,.edit-grid textarea{display:block;width:100%;padding:12px;border:1px solid #c9cdc7;background:#fff;margin-top:8px;border-radius:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0}.metrics div{background:#fff;padding:24px}.metrics strong{display:block;font:42px Georgia,serif;color:#a67f64}.metrics span{font-size:11px;color:#66726c}.admin-panel{background:#fff;padding:25px;margin:18px 0}.admin-panel h2{font-size:28px}.admin-panel>p{font-size:13px;color:#6a706d;margin:10px 0}.admin-panel summary{cursor:pointer;font-size:20px;font-family:Georgia,serif}.admin-panel summary span{float:right;font:12px 'DM Sans',sans-serif}.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px;margin-top:20px}.edit-grid .wide{grid-column:1/-1}.edit-grid button{justify-self:start}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.stack .button{margin-top:10px}.list-title{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:850px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #e3e6df;vertical-align:top;font-size:12px}th{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#6f7873}td small{display:block;margin-top:5px;color:#6f7873}td b{font-size:13px}.status{display:inline-block;padding:6px 9px;background:#eceeea;border-radius:20px;white-space:nowrap}.status.yes{background:#dcefe1;color:#2e6848}.status.no{background:#f4e5e0;color:#8d4f3c}.inline-form{display:flex;align-items:center}.seats-input{width:48px;padding:6px}.inline-form button{border:0;background:none;font-size:18px;color:#24644c}.row-actions{display:flex;flex-direction:column;align-items:start;gap:7px}.row-actions a{color:#23724c;font-weight:700}.row-actions button{border:0;background:none;padding:0;color:#516862;text-decoration:underline;font-size:12px}.row-actions .delete-button{color:#a75648}.admin-help{font-size:12px;color:#68746d;margin:15px 0}@media(max-width:700px){.admin-heading,.list-title{align-items:start;flex-direction:column}.metrics{grid-template-columns:repeat(2,1fr)}.admin-columns,.edit-grid{grid-template-columns:1fr}.admin-shell{padding:30px 15px}.admin-panel{padding:19px}.intro,.count-section,.place,.details,.gift,.rsvp,.studio-section{padding:75px 28px}.cover:after{inset:15px}}@media(max-width:360px){.opening h1{font-size:60px}.count-section #countdown{gap:3px}.count-section b{font-size:29px}}

.theme-rose .opening{background:#69494f}.theme-rose .cover:not(.has-photo){background:radial-gradient(circle at 70% 20%,#efd2cc,#9c6670 68%,#503f4d)}.theme-rose .place,.theme-rose .studio-section{background:#684d59}.theme-rose .date-block strong{color:#a76678}.theme-sage .opening{background:#243d39}.theme-sage .cover:not(.has-photo){background:radial-gradient(circle at 75% 20%,#d6e0ca,#6a846f 60%,#304940)}.theme-sage .place,.theme-sage .studio-section{background:#34544a}.theme-sage .date-block strong{color:#668b73}
