:root{font-family:Playfair Display,Georgia,serif;line-height:1.5;font-weight:400;color:#2c2c2c;background-color:#fdfcfa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:#2c2c2c;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.15)}a:hover{border-bottom-color:#2c2c2c}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:.95rem;letter-spacing:.08em;text-transform:uppercase;padding:.75rem 1.25rem;min-height:44px;color:#2c2c2c;background:transparent;border:1px solid rgba(0,0,0,.2);cursor:pointer;transition:border-color .2s,background .2s}button:hover{border-color:#2c2c2c;background:#00000008}button:focus-visible{outline:2px solid #2c2c2c;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{border-bottom:1px solid rgba(0,0,0,.08);padding:1rem 1rem 1rem 1.25rem}.app-header nav{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;justify-content:center;align-items:center;max-width:900px;margin:0 auto}.app-header a{color:#666;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;padding:.5rem .25rem;min-height:44px;display:inline-flex;align-items:center;border-bottom:none}.app-header a:hover{color:#2c2c2c}.app-header a.active{color:#2c2c2c;font-weight:400}.app-main{flex:1;max-width:720px;margin:0 auto;padding:2rem 1.25rem 3rem;width:100%;box-sizing:border-box}@media(max-width:430px){.app-main{padding-left:1rem;padding-right:1rem}}.app-footer{border-top:1px solid rgba(0,0,0,.08);padding:1.25rem 1rem;padding-bottom:max(1.25rem,env(safe-area-inset-bottom));text-align:center;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#888}.app-footer p{margin:0}.page-home{text-align:center}.page-home .hero{padding:2.5rem 0;border-bottom:1px solid rgba(0,0,0,.08)}.page-home .hero-names{font-size:clamp(1.85rem,5.5vw,2.75rem);font-weight:400;letter-spacing:.02em;margin:0}.page-home .hero-date{margin-top:1rem;font-size:.9rem;letter-spacing:.15em;text-transform:uppercase;color:#666}.page-home .hero-place{margin-top:.35rem;font-size:.9rem;color:#888}.page-home .content{padding-top:2rem;text-align:left}.page-home .lead{font-size:1.05rem;color:#444;margin-bottom:1.5rem}.page-home .content h2{font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:#666;margin-bottom:.75rem}.page-home .content ul{list-style:none;padding:0;margin:0}.page-home .content li{margin-bottom:.6rem}.page-home .content a{font-size:1rem;letter-spacing:.02em}.page-content{color:#2c2c2c}.page-content h1{font-size:clamp(1.75rem,4vw,2.25rem);margin-bottom:.5rem}.page-content .page-lead{font-size:1rem;color:#666;margin-bottom:2rem}.page-content section{margin-bottom:2rem;padding-bottom:1.75rem;border-bottom:1px solid rgba(0,0,0,.06)}.page-content section:last-child{border-bottom:none}.page-content h2{font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;color:#666;margin:0 0 .6rem}.page-content p{margin:0 0 .5rem;font-size:1rem;line-height:1.6}.page-content p:last-child{margin-bottom:0}.page-content a{border-bottom-color:#0003}.page-content a:hover{border-bottom-color:#2c2c2c}.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(0,0,0,.08);padding:1.25rem;background:#fafaf9}.room-card h3{font-size:1rem;letter-spacing:.08em;margin:0 0 .75rem;color:#2c2c2c}.room-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;font-size:.875rem}.room-card dt{color:#888}.room-card dd{margin:0;color:#2c2c2c}.page-boende .summary{margin-top:1rem;padding-top:1rem}.page-boende .summary p{font-size:.95rem;color:#666}.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:#0003}.room-picker{position:relative;background:#fdfcfa;border:1px solid rgba(0,0,0,.08);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:1rem;letter-spacing:.1em;text-transform:uppercase;margin:0 2rem 0 0}.room-picker-boende{margin:.5rem 0 0;font-size:.85rem}.room-picker-boende a{border-bottom:1px solid rgba(0,0,0,.2)}.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}.room-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.room-picker-card{border:1px solid rgba(0,0,0,.08);padding:.75rem;background:#fafaf9}.room-picker-card-full{opacity:.7}.room-picker-card-current{border-color:#2c2c2c}.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}.room-picker-card-spots{font-size:.75rem;letter-spacing:.05em;color:#666}.room-picker-card-names{font-size:.8rem;color:#666;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:#fafaf9;border:1px solid rgba(0,0,0,.06);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:#666}.osa-picker-btn{font-size:.85rem;padding:.35rem .6rem;min-height:36px}.osa-full-message{margin-top:.5rem;font-size:.85rem;color:#8b3a3a}.osa-section-title{font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;color:#666;margin:1.25rem 0 .5rem}.osa-person-block{margin-bottom:.75rem}.osa-checkbox-label{font-size:1rem;letter-spacing:0;text-transform:none;color:#2c2c2c}.osa-loading{font-size:.85rem;color:#666;margin:.25rem 0 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:.08em;text-transform:uppercase;color:#666}.form-group input[type=text],.form-group input[type=email],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:.65rem .5rem;font-family:inherit;font-size:1rem;color:#2c2c2c;background:#fafaf9;border:1px solid rgba(0,0,0,.12);box-sizing:border-box;min-height:44px}.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:#2c2c2c;cursor:pointer}.form-group input[type=radio],.form-group input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:#2c2c2c;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:.5rem;min-height:48px}.osa-hint{margin-top:1.5rem;font-size:.85rem;color:#888;letter-spacing:0;text-transform:none}.osa-hint code{background:#0000000f;padding:.15rem .35rem;font-size:.8rem}.page-designs-index{max-width:28rem}.page-designs-index h1{margin-bottom:.5rem}.page-designs-index p{color:#666;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}
