:root{font-family:Playfair Display,Georgia,serif;line-height:1.5;font-weight:400;color:#3d3528;background-color:#fdfcfa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:#5a4e3c;text-decoration:none;border-bottom:1px solid rgba(201,185,154,.4)}a:hover{border-bottom-color:#5a4e3c}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}@supports (padding: env(safe-area-inset-bottom)){body{padding-bottom:env(safe-area-inset-bottom)}}h1,h2,h3{font-weight:400;letter-spacing:.02em;line-height:1.2}button{font-family:inherit;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;padding:.75rem 1.25rem;min-height:44px;color:#5a4e3c;background:transparent;border:1px solid rgba(201,185,154,.4);cursor:pointer;transition:border-color .3s,background .3s}button:hover{border-color:#c9b99a;background:#c9b99a14}button:focus-visible{outline:2px solid #c9b99a;outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed}.design-mockup{min-height:100vh;background:#fafaf9;padding:2rem 1.5rem 4rem;box-sizing:border-box}.design-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom));background:#fffffff2;border-top:1px solid #eee;z-index:100}.design-nav-back{color:#555;text-decoration:none;font-size:.9rem}.design-nav-back:hover{text-decoration:underline}.design-nav-prev-next{display:flex;align-items:center;gap:1rem}.design-nav-prev-next a{color:#333;text-decoration:none;font-weight:600}.design-nav-current{font-size:.9rem;color:#666}.design-1{font-family:Playfair Display,serif;background:#fdfcfa;color:#2c2c2c}.design-1 .design-hero{text-align:center;padding:4rem 0 3rem;border-bottom:1px solid rgba(0,0,0,.08)}.design-1 .design-names{font-size:clamp(2rem,6vw,3rem);font-weight:400;letter-spacing:.02em}.design-1 .design-date{margin-top:1rem;font-size:1rem;letter-spacing:.15em;text-transform:uppercase;color:#666}.design-1 .design-place{margin-top:.5rem;font-size:.95rem;color:#888}.design-2{font-family:Plus Jakarta Sans,sans-serif;background:#fff;color:#1a1a1a}.design-2 .design-hero{padding:3rem 0 4rem;max-width:28rem;margin:0 auto}.design-2 .design-names{font-size:clamp(2.5rem,8vw,4rem);font-weight:700;line-height:1.05;letter-spacing:-.02em}.design-2 .design-date{margin-top:1.5rem;font-size:1.25rem;font-weight:500;color:#444}.design-2 .design-place{margin-top:.25rem;font-size:1rem;color:#666}.design-3{font-family:Lora,serif;background:#f8f7f4;color:#2d3a2d}.design-3 .design-hero{text-align:center;padding:4rem 1rem 3rem;position:relative}.design-3 .design-flourish{font-size:2rem;color:#6b8f6b;opacity:.6;margin-bottom:.5rem}.design-3 .design-names{font-size:clamp(1.75rem,5vw,2.5rem);font-weight:600}.design-3 .design-date{margin-top:1rem;font-size:.95rem;color:#5a6b5a}.design-3 .design-place{margin-top:.5rem;font-size:.9rem;color:#6b8f6b}.design-4{font-family:DM Sans,sans-serif;background:#fafafa;color:#333}.design-4 .design-hero{padding:5rem 1rem 4rem;text-align:center}.design-4 .design-names{font-size:clamp(1.8rem,5vw,2.5rem);font-weight:300;letter-spacing:.05em}.design-4 .design-date{margin-top:1.25rem;font-size:.9rem;font-weight:500;color:#666;letter-spacing:.1em}.design-4 .design-place{margin-top:.5rem;font-size:.85rem;color:#999}.design-5{font-family:Outfit,sans-serif;background:linear-gradient(180deg,#fefbf7,#f9f5ef);color:#3d3835}.design-5 .design-hero{text-align:center;padding:4rem 1rem 3rem}.design-5 .design-names{font-family:Great Vibes,cursive;font-size:clamp(3rem,10vw,5rem);font-weight:400;line-height:1.2}.design-5 .design-date{margin-top:1rem;font-size:.95rem;letter-spacing:.2em;text-transform:uppercase;color:#6b5b55}.design-5 .design-place{margin-top:.5rem;font-size:.9rem;color:#8a7f7a}.design-5 .design-flourish{letter-spacing:.5em;color:#a89888}.design-6{font-family:Plus Jakarta Sans,sans-serif;background:#fff;color:#1a1a1a}.design-6 .design-hero{padding:3rem 1.5rem 4rem;border-left:4px solid #c9a86c;max-width:24rem;margin:3rem auto 0}.design-6 .design-names{font-size:clamp(2rem,5vw,2.75rem);font-weight:600;letter-spacing:-.01em}.design-6 .design-date{margin-top:1rem;font-size:1rem;color:#555}.design-6 .design-place{margin-top:.25rem;font-size:.9rem;color:#777}.design-7{font-family:Lora,serif;background:#f5f1eb;color:#3e3832}.design-7 .design-hero{text-align:center;padding:4rem 1rem 3rem}.design-7 .design-names{font-size:clamp(1.9rem,5vw,2.6rem);font-weight:600;font-style:italic}.design-7 .design-date{margin-top:1rem;font-size:1rem;color:#5c534a}.design-7 .design-place{margin-top:.5rem;font-size:.9rem;color:#7a6f65}.design-7 .design-flourish{font-size:1.25rem;letter-spacing:2em;color:#9a8f85}.design-8{font-family:Cormorant Garamond,serif;background:#fcfaf7;color:#2a2520}.design-8 .design-hero{text-align:center;padding:4rem 1rem 3rem}.design-8 .design-names{font-size:clamp(2rem,5vw,3rem);font-weight:600;letter-spacing:.15em}.design-8 .design-date{margin-top:1rem;font-size:.9rem;letter-spacing:.25em;text-transform:uppercase;color:#8b7355}.design-8 .design-place{margin-top:.5rem;font-size:.85rem;color:#6b5b4a}.design-8 .design-flourish{font-size:.9rem;letter-spacing:.5em;color:#8b7355}.design-9{font-family:Quicksand,sans-serif;background:#f7faf6;color:#2d3d2d}.design-9 .design-hero{text-align:center;padding:4rem 1rem 3rem}.design-9 .design-flourish{font-size:1.5rem;color:#7a9b76;margin-bottom:.5rem}.design-9 .design-names{font-size:clamp(1.8rem,5vw,2.5rem);font-weight:600}.design-9 .design-date{margin-top:1rem;font-size:1rem;color:#4a5d4a}.design-9 .design-place{margin-top:.5rem;font-size:.9rem;color:#6b8068}.design-10{font-family:Outfit,sans-serif;background:#fafafa;color:#111}.design-10 .design-hero{padding:4rem 1.5rem;max-width:36rem;margin:0 auto}.design-10 .design-names{font-size:clamp(2.5rem,9vw,4.5rem);font-weight:300;line-height:1.1;letter-spacing:-.03em}.design-10 .design-date{margin-top:1.5rem;font-size:1.1rem;font-weight:500;color:#444}.design-10 .design-place{margin-top:.25rem;font-size:.95rem;color:#666}#root{min-height:100vh;display:flex;flex-direction:column;background:#fdfcfa}.app-header{position:sticky;top:0;z-index:100;background:#fdfcfaeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06);padding:.75rem 1rem}.app-header nav{display:flex;flex-wrap:wrap;gap:.25rem 1rem;justify-content:center;align-items:center;max-width:900px;margin:0 auto}.nav-link{color:#8a7e6b;font-family:Playfair Display,Georgia,serif;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;padding:.5rem .35rem;min-height:44px;display:inline-flex;align-items:center;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;text-decoration:none;transition:color .3s,border-color .3s}.nav-link:hover,.nav-link.active{color:#5a4e3c;border-bottom-color:#c9b99a}.app-main{flex:1;width:100%;box-sizing:border-box}.app-footer{border-top:1px solid rgba(0,0,0,.06);padding:2rem 1rem;padding-bottom:max(2rem,env(safe-area-inset-bottom));text-align:center;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:#b0a690}.app-footer p{margin:0}.page-home{text-align:center}.hero{padding:4rem 1.5rem 3rem;position:relative}.hero-wreath{display:block;width:180px;height:auto;margin:0 auto 1rem;opacity:.85}.hero-prelude{font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:#b0a690;margin:0 0 .75rem}.hero-names{font-size:clamp(2.2rem,7vw,3.5rem);font-weight:400;letter-spacing:.02em;margin:0;color:#3d3528}.hero-date{margin-top:1rem;font-size:.95rem;letter-spacing:.18em;text-transform:uppercase;color:#8a7e6b}.hero-place{margin-top:.35rem;font-size:.9rem;color:#b0a690;letter-spacing:.05em}.hero-cta{margin-top:2rem}.btn-primary{display:inline-block;font-family:Playfair Display,Georgia,serif;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;padding:.85rem 2.5rem;color:#fdfcfa;background:#5a4e3c;border:none;text-decoration:none;cursor:pointer;transition:background .3s,transform .2s}.btn-primary:hover{background:#3d3528;transform:translateY(-1px);border-bottom:none}.section-divider{padding:2rem 0;display:flex;justify-content:center}.monogram{width:130px;height:auto;opacity:.7}.section-ornament{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.5rem 2rem}.ornament-line{display:block;width:60px;height:1px;background:#d4c5a9}.ornament-diamond{display:block;width:8px;height:8px;border:1px solid #c9b99a;transform:rotate(45deg)}.content-section{max-width:780px;margin:0 auto;padding:2.5rem 1.5rem 3rem;scroll-margin-top:80px}.section-title{font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:#b0a690;margin:0 0 .5rem;font-weight:400}.section-lead{font-size:1.15rem;color:#5a4e3c;margin:0 0 2rem;line-height:1.7}.section-text{text-align:left;max-width:600px;margin:0 auto}.section-text p{margin:0 0 1rem;font-size:1.05rem;line-height:1.75;color:#5a4e3c}.section-text p:last-child{margin-bottom:0}.section-text strong{color:#3d3528;font-weight:600}.section-text a{color:#5a4e3c;border-bottom:1px solid rgba(201,185,154,.5);text-decoration:none;transition:border-color .3s}.section-text a:hover{border-bottom-color:#5a4e3c}.info-list{list-style:none;padding:0;margin:1rem 0 0}.info-list li{font-size:1.05rem;line-height:1.75;color:#5a4e3c;padding:.5rem 0;border-bottom:1px solid rgba(201,185,154,.12)}.info-list li:last-child{border-bottom:none}.info-list strong{display:block;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:#3d3528;margin-bottom:.15rem}.info-list a{color:#5a4e3c;border-bottom:1px solid rgba(201,185,154,.5);text-decoration:none;transition:border-color .3s}.info-list a:hover{border-bottom-color:#5a4e3c}.program-day{margin-bottom:1.5rem}.program-day:last-child{margin-bottom:0}.program-day h3{font-size:1.05rem;font-weight:400;letter-spacing:.08em;color:#3d3528;margin:0 0 .5rem}.program-day ul{list-style:none;padding:0;margin:0}.program-day li{font-size:1.05rem;line-height:1.75;color:#5a4e3c;padding:.25rem 0;border-bottom:1px solid rgba(201,185,154,.12)}.program-day li:last-child{border-bottom:none}.program-time{display:inline-block;min-width:7rem;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:#b0a690;font-weight:400}@media(max-width:430px){.program-time{display:block;min-width:0;margin-bottom:.1rem}}.link-button{background:none;border:none;padding:0;font:inherit;font-size:inherit;color:#5a4e3c;border-bottom:1px solid rgba(201,185,154,.5);cursor:pointer;transition:border-color .3s}.link-button:hover{border-bottom-color:#5a4e3c}.bottom-cta{padding:3rem 1.5rem 4rem;text-align:center}.bottom-wreath{width:120px;height:auto;opacity:.5;margin-bottom:1.5rem}.bottom-cta p{font-size:1.1rem;color:#8a7e6b;margin:0 0 1.5rem;font-style:italic}.page-content{max-width:780px;margin:0 auto;padding:2rem 1.5rem 3rem;color:#3d3528}.page-content h1{font-size:clamp(1.75rem,4vw,2.25rem);margin-bottom:.5rem;color:#3d3528;font-weight:400}.page-content .page-lead{font-size:1rem;color:#8a7e6b;margin-bottom:2rem;line-height:1.6}.page-content section{margin-bottom:2rem;padding-bottom:1.75rem;border-bottom:1px solid rgba(201,185,154,.2)}.page-content section:last-child{border-bottom:none}.page-content h2{font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:#b0a690;margin:0 0 .6rem;font-weight:400}.page-content p{margin:0 0 .5rem;font-size:1rem;line-height:1.65;color:#5a4e3c}.page-content p:last-child{margin-bottom:0}.page-content a{color:#5a4e3c;border-bottom-color:#c9b99a80}.page-content a:hover{border-bottom-color:#5a4e3c}.page-boende .page-lead{margin-bottom:1.5rem}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}@media(max-width:430px){.room-grid{grid-template-columns:1fr}}.room-card{border:1px solid rgba(201,185,154,.25);padding:1.25rem;background:#c9b99a0a;transition:border-color .3s}.room-card:hover{border-color:#c9b99a80}.room-card h3{font-size:1rem;letter-spacing:.08em;margin:0 0 .75rem;color:#5a4e3c;font-weight:400}.room-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;font-size:.875rem}.room-card dt{color:#b0a690}.room-card dd{margin:0;color:#5a4e3c}.page-boende .summary{margin-top:1rem;padding-top:1rem}.page-boende .summary p{font-size:.95rem;color:#8a7e6b}.osa-header{text-align:center;padding-bottom:1.5rem;margin-bottom:1rem;border-bottom:1px solid rgba(201,185,154,.2)}.osa-wreath{width:100px;height:auto;opacity:.6;margin-bottom:.75rem}.osa-header h1{margin-bottom:.5rem}.osa-header .page-lead{margin-bottom:0}.page-osa form{max-width:28rem;margin-top:1rem}.form-group{margin-bottom:1.25rem}.form-group label,.form-group legend{display:block;margin-bottom:.35rem;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#8a7e6b}.form-group input[type=text],.form-group input[type=email],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:.7rem .6rem;font-family:inherit;font-size:1rem;color:#3d3528;background:#c9b99a0f;border:1px solid rgba(201,185,154,.3);box-sizing:border-box;min-height:44px;transition:border-color .3s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#c9b99a}.form-group textarea{min-height:100px;resize:vertical}.form-group select{cursor:pointer}.form-group fieldset{border:none;padding:0;margin:0}.form-group fieldset legend{margin-bottom:.5rem}.form-group fieldset label{display:inline-flex;align-items:center;gap:.5rem;margin-right:1rem;margin-bottom:.25rem;text-transform:none;letter-spacing:0;font-size:1rem;color:#5a4e3c;cursor:pointer}.form-group input[type=radio],.form-group input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:#5a4e3c;cursor:pointer}.field-error{display:block;font-size:.8rem;color:#a63d3d;margin-top:.25rem;letter-spacing:0;text-transform:none}.rsvp-message{padding:.85rem 1rem;margin-bottom:1.25rem;font-size:.95rem;border:1px solid transparent}.rsvp-message.success{background:#f0f6ef;color:#2d4a2b;border-color:#2d4a2b33}.rsvp-message.error{background:#faf0f0;color:#8b3a3a;border-color:#8b3a3a33}.page-osa button[type=submit]{margin-top:.75rem;min-height:48px;font-family:Playfair Display,Georgia,serif;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;padding:.85rem 2.5rem;color:#fdfcfa;background:#5a4e3c;border:none;cursor:pointer;transition:background .3s}.page-osa button[type=submit]:hover{background:#3d3528}.page-osa button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.osa-hint{margin-top:1.5rem;font-size:.85rem;color:#b0a690;letter-spacing:0;text-transform:none}.osa-hint code{background:#c9b99a26;padding:.15rem .35rem;font-size:.8rem}.room-picker-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box}.room-picker-backdrop{position:absolute;inset:0;background:#3d352840}.room-picker{position:relative;background:#fdfcfa;border:1px solid rgba(201,185,154,.3);max-width:420px;width:100%;max-height:85vh;overflow:auto;padding:1.25rem}.room-picker-header{margin-bottom:1rem}.room-picker-header h2{font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;margin:0 2rem 0 0;color:#5a4e3c;font-weight:400}.room-picker-boende{margin:.5rem 0 0;font-size:.85rem}.room-picker-boende a{border-bottom:1px solid rgba(201,185,154,.5)}.room-picker-close{position:absolute;top:1rem;right:1rem;width:2rem;height:2rem;padding:0;font-size:1.5rem;line-height:1;min-height:0;border:none;background:transparent;color:#8a7e6b}.room-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.room-picker-card{border:1px solid rgba(201,185,154,.2);padding:.75rem;background:#c9b99a0a}.room-picker-card-full{opacity:.7}.room-picker-card-current{border-color:#5a4e3c}.room-picker-card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.room-picker-card-title{font-size:.9rem;font-weight:400;color:#5a4e3c}.room-picker-card-spots{font-size:.75rem;letter-spacing:.05em;color:#b0a690}.room-picker-card-names{font-size:.8rem;color:#8a7e6b;margin:0 0 .5rem;line-height:1.3}.room-picker-card-select{width:100%;padding:.4rem .5rem;font-size:.8rem;min-height:36px}.osa-allocation{margin-top:.5rem;padding:.75rem;background:#c9b99a0f;border:1px solid rgba(201,185,154,.2);font-size:.9rem}.osa-allocation-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.osa-allocation-row:last-child{margin-bottom:0}.osa-allocation-room{color:#8a7e6b}.osa-picker-btn{font-size:.85rem;padding:.35rem .6rem;min-height:36px}.osa-full-message{margin-top:.5rem;font-size:.85rem;color:#a63d3d}.osa-section-title{font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:#b0a690;margin:1.25rem 0 .5rem;font-weight:400}.osa-person-block{margin-bottom:.75rem}.osa-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:1rem;letter-spacing:0;text-transform:none;color:#5a4e3c;margin-bottom:.4rem;cursor:pointer}.osa-loading{font-size:.85rem;color:#8a7e6b;margin:.25rem 0 0}.rooms-modal-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box}.rooms-modal-backdrop{position:absolute;inset:0;background:#3d352840}.rooms-modal{position:relative;background:#fdfcfa;border:1px solid rgba(201,185,154,.3);max-width:700px;width:100%;max-height:85vh;overflow:auto;padding:1.5rem}.rooms-modal-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.rooms-modal-header h2{font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;color:#5a4e3c;font-weight:400;margin:0}.rooms-modal-close{width:2rem;height:2rem;padding:0;font-size:1.5rem;line-height:1;min-height:0;border:none;background:transparent;color:#8a7e6b;cursor:pointer}.rooms-modal-lead{font-size:.95rem;color:#8a7e6b;margin:0 0 1.25rem;line-height:1.6}.rooms-modal-floor{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:#b0a690;font-weight:400;margin:1.25rem 0 .75rem}.rooms-modal-summary{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(201,185,154,.2);font-size:.9rem;color:#8a7e6b}.success-modal-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box}.success-modal-backdrop{position:absolute;inset:0;background:#3d352859}.success-modal{position:relative;background:#fdfcfa;border:1px solid rgba(201,185,154,.3);max-width:380px;width:100%;max-height:90vh;overflow:auto;padding:2rem 1.5rem;text-align:center}.success-modal-title{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:#5a4e3c;font-weight:400;margin:0 0 1rem}.success-modal-text{font-size:1rem;line-height:1.6;color:#5a4e3c;margin:0 0 1.25rem}.success-modal-qr{display:block;width:240px;height:auto;margin:0 auto 1.5rem;border-radius:12px}.success-modal-ring{display:block;width:140px;height:auto;margin:0 auto 1.5rem;opacity:.85}.success-modal-message{font-size:1.15rem;line-height:1.7;color:#3d3528;margin:0 0 .5rem}.success-modal-signature{font-size:1rem;color:#8a7e6b;font-style:italic;margin:0 0 1.5rem}.success-modal .btn-primary{display:inline-block}.success-modal-cancel{display:block;margin:1rem auto 0;font-size:.9rem;color:#8a7e6b}.page-designs-index{max-width:28rem}.page-designs-index h1{margin-bottom:.5rem}.page-designs-index p{color:#8a7e6b;margin-bottom:1.5rem}.page-designs-index ul{list-style:none;padding:0;margin:0}.page-designs-index li{margin-bottom:.5rem}.page-designs-index a{font-size:1rem}@media(max-width:600px){.hero{padding:3rem 1rem 2.5rem}.hero-wreath{width:140px;height:auto}.content-section{padding:2rem 1rem 2.5rem}.app-header nav{gap:.15rem .5rem}.nav-link{font-size:.7rem;letter-spacing:.08em;padding:.4rem .2rem}.monogram{width:100px;height:auto}.bottom-wreath{width:90px;height:auto}.page-content{padding:1.5rem 1rem 2rem}}@media(max-width:430px){.ornament-line{width:40px}}html{scroll-behavior:smooth}
