@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Italiana&display=swap";.wedding{--ink:#244850;--blue:#315d6c;--sand:#f7f5ee;--muted:#677c7e;background:var(--sand);color:var(--ink);min-height:100vh;font-family:DM Sans,sans-serif}.wedding *{box-sizing:border-box}.wedding a{color:inherit;text-decoration:none}.wedding button,.wedding input,.wedding select,.wedding textarea{font:inherit}.wedding button,.wedding a,.map-table{touch-action:manipulation}.wedding button{cursor:pointer}.wedding button:disabled{opacity:.55;cursor:wait}.wedding :focus-visible{outline-offset:4px;outline:3px solid #ad774b}.wedding h1,.wedding h2,.wedding h3{margin:0;font-family:Italiana,Georgia,serif;font-weight:400;line-height:1.07}.wedding em{font-family:Georgia,serif;font-weight:400}.wedding p{line-height:1.7}.wedding-header{border-bottom:1px solid #24485015;justify-content:space-between;align-items:center;height:94px;padding:0 6%;display:flex}.monogram{letter-spacing:-4px;font-family:Italiana,Georgia,serif;font-size:37px}.monogram span{margin:0 5px;font-family:Georgia,serif;font-size:22px;font-style:italic}.wedding-header nav{gap:40px;font-size:13px;display:flex}.header-date{letter-spacing:3px;font-size:12px}.eyebrow{letter-spacing:2.6px;text-transform:uppercase;margin:0 0 20px;font-weight:600;font-size:10px!important;line-height:1.8!important}.wedding-hero{align-items:center;min-height:680px;display:flex;position:relative;overflow:hidden}.hero-image{background:#b3ccd0 url(https://images.unsplash.com/photo-1500375592092-40eb2168fd21?auto=format&fit=crop&w=2200&q=85) 50%/cover;position:absolute;inset:0}.hero-image:after{content:"";background:linear-gradient(90deg,#f6f3e9 0%,#f6f3e9ee 24%,#f6f3e9a6 44%,#f6f3e910 70%);position:absolute;inset:0}.hero-content{width:530px;margin:65px 0 70px 10%;position:relative}.hero-content h1{letter-spacing:-3px;font-size:clamp(70px,7.8vw,115px)}.hero-content h1 span{color:#6b878a;font-family:Georgia,serif;font-size:.55em;font-style:italic}.hero-rule{background:#6e8586;width:46px;height:1px;margin:30px 0 24px}.hero-date{letter-spacing:2px;font-size:10px}.hero-date span{margin:0 10px}.hero-note{color:#526b70;margin:20px 0 28px;font-size:14px}.button{min-height:49px;color:var(--ink);background:0 0;border:1px solid #315d6c;border-radius:3px;justify-content:center;align-items:center;gap:14px;padding:14px 22px;font-size:13px;font-weight:500;display:inline-flex}.button.primary{background:var(--blue);color:#fff}.button:hover{background:#dbe5e3}.button.primary:hover{background:#244850}.hero-secondary{border-bottom:1px solid #577378;align-items:center;gap:10px;margin-left:24px;padding-bottom:5px;font-size:12px;display:inline-flex}.hero-caption{letter-spacing:2px;color:#fff;text-shadow:0 1px 5px #203b41;font-size:9px;position:absolute;bottom:30px;right:5%}.welcome-section{text-align:center;padding:90px 20px 45px}.welcome-section h2{font-size:48px}.welcome-section>p:last-child{color:var(--muted);margin-top:23px;font-size:14px}.experience-grid{grid-template-columns:1fr 1fr;gap:24px;max-width:1080px;margin:10px auto 80px;padding:0 28px;display:grid}.experience-card{flex-direction:column;justify-content:space-between;min-height:385px;padding:35px 40px;transition:transform .25s;display:flex}.experience-card:hover{transform:translateY(-4px)}.seat-card{background:#e2e9e5}.memory-card{background:#eee5d7}.card-top,.card-link{justify-content:space-between;align-items:center;display:flex}.card-top{letter-spacing:2px;font-size:9px}.experience-card h2{margin-top:32px;font-size:49px}.experience-card p{color:#576f72;margin:15px 0 25px;font-size:13px}.card-link{border-top:1px solid #24485030;padding-top:20px;font-size:12px}.closing{text-align:center;padding:15px 20px 75px}.closing>svg{margin:0 auto 25px}.closing h2{font-size:46px}.closing p{letter-spacing:2px;margin:27px 0;font-size:9px}.closing p span{margin:0 16px}.wedding-footer{border-top:1px solid #24485020;justify-content:space-between;align-items:center;padding:26px 6%;font-size:11px;display:flex}.wedding-footer>span{letter-spacing:2px;align-items:center;gap:12px;font-size:9px;display:flex}.skip-link{z-index:100;background:#fff;padding:15px;position:absolute;top:-80px;left:20px}.skip-link:focus{top:8px}.page-container{max-width:1240px;margin:0 auto;padding:0 40px 70px}.page-intro{text-align:center;padding:64px 0 45px}.page-intro h1{font-size:clamp(42px,5vw,67px)}.page-intro>p:last-child{color:var(--muted);margin-top:22px;font-size:14px}.seating-layout{grid-template-columns:1fr .85fr;align-items:start;gap:65px;display:grid}.search-field{background:#fff;border:1px solid #9cb2b5;border-radius:4px;align-items:center;gap:14px;min-height:58px;padding:0 18px;display:flex}.search-field input{width:100%;min-height:55px;color:var(--ink);background:0 0;border:0;outline:none;font-size:14px}.alphabet{flex-wrap:wrap;gap:3px;margin:20px 0;display:flex}.alphabet button{min-width:30px;min-height:38px;color:var(--ink);background:0 0;border:0;border-radius:3px;font-size:12px}.alphabet button[aria-pressed=true]{background:var(--blue);color:#fff}.list-meta{color:var(--muted);border-bottom:1px solid #d6deda;justify-content:space-between;padding:8px 0 14px;font-size:10px;display:flex}.list-meta>span:last-child{letter-spacing:1px;font-size:8px}.guest-list{max-height:700px;overflow:auto}.guest-row{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #d6deda;justify-content:space-between;align-items:center;padding:19px 12px;display:flex}.guest-row strong{font-size:14px;font-weight:500}.guest-row small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.guest-row:hover,.guest-row.active{background:#e3ebe7}.map-panel{background:#edf1ed;padding:28px;scroll-margin-top:20px}.map-heading{align-items:center;gap:16px;display:flex}.map-heading .eyebrow{margin:0 0 6px;font-size:8px!important}.map-heading h2{font-size:31px}.map-description{color:var(--muted);font-size:12px}.seating-map{width:100%;max-height:590px;display:block}.map-table{cursor:pointer}.map-table rect{fill:#dce5df;stroke:#9aafaa;stroke-width:2px}.map-table .map-halo{fill:#0000;stroke:#0000}.map-table:hover rect:not(.map-halo),.map-table:focus rect:not(.map-halo){fill:#c4d6d3}.map-table.selected rect:not(.map-halo){fill:#315d6c;stroke:#315d6c}.map-table.selected .map-halo{fill:#d6c49d;stroke:#d6c49d}.map-table text{fill:#244850;pointer-events:none;font-family:DM Sans,sans-serif}.map-table.selected text{fill:#fff}.map-center{letter-spacing:5px;fill:#93a6a2;font-size:25px}.map-key{letter-spacing:3px;fill:#718b88;font-size:15px}.table-company{margin-top:20px;font-size:12px;line-height:1.8}.table-company .eyebrow{margin-bottom:6px}.notice{color:#624b32;background:#eee5d7;border-radius:4px;margin:15px 0;padding:16px;font-size:13px;line-height:1.6}.notice.success{color:#285c43;background:#dcebe3}.text-button{color:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:10px;text-decoration:underline;display:inline-flex}.empty-state{text-align:center;color:var(--muted);padding:35px 15px;font-size:14px}.memory-layout{grid-template-columns:.8fr 1fr;gap:70px;max-width:1000px;margin:auto;display:grid}.memory-aside{background:#e2e9e5;align-self:start;padding:45px}.memory-aside h2{margin:26px 0;font-size:43px}.memory-aside p{color:#526b70;font-size:14px}.memory-aside .small-note{border-top:1px solid #bcccca;margin-top:35px;padding-top:20px;font-size:11px}.wedding-form{flex-direction:column;gap:20px;display:flex}.wedding-form label,.field-label{flex-direction:column;gap:9px;font-size:12px;font-weight:500;display:flex}.wedding-form input:not([type=file]),.wedding-form textarea,.wedding-form select,.admin-row input,.admin-row select,.table-editor input{min-height:46px;color:var(--ink);background:#fff;border:1px solid #bacbc7;border-radius:3px;width:100%;padding:12px;font-size:14px}.wedding-form textarea{resize:vertical;min-height:130px}.drop-area{text-align:center;cursor:pointer;background:#eef2ed;border:1px dashed #8aa7aa;border-radius:4px;padding:30px 20px;font-size:13px;position:relative}.drop-area input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.drop-area svg{margin:0 auto 10px}.drop-area small{color:var(--muted);margin-top:8px;font-size:11px;display:block}.upload-row{border-bottom:1px solid #d4dfda;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;font-size:12px;display:flex}.upload-row span{overflow-wrap:anywhere}.upload-row small{color:var(--muted);margin-top:4px;display:block}.upload-row button{color:var(--ink);background:0 0;border:0;padding:8px}.privacy-note{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.form-actions{flex-wrap:wrap;gap:12px;display:flex}.login-panel{max-width:430px;margin:0 auto 80px}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:25px;display:flex}.admin-toolbar .search-field{flex:1;min-width:200px}.admin-tabs{flex-wrap:wrap;gap:10px;margin:25px 0;display:flex}.admin-tabs button{color:var(--ink);background:0 0;border:1px solid #b7c9c5;padding:12px 20px}.admin-tabs button.active{background:var(--ink);color:#fff}.admin-stats{grid-template-columns:repeat(4,1fr);gap:15px;display:grid}.admin-stats>div{background:#e2e9e5;padding:20px}.admin-stats strong{font-family:Georgia,serif;font-size:26px;font-weight:400;display:block}.admin-stats span{color:var(--muted);font-size:11px}.admin-row{border-bottom:1px solid #d4dfda;grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:12px;padding:18px 0;display:grid}.admin-row label{flex-direction:column;gap:5px;font-size:10px;display:flex}.admin-row .guest-extra{grid-column:1/-1;grid-template-columns:1fr 2fr;gap:12px;display:grid}.table-editor{background:#e9efea;margin-bottom:18px;padding:22px}.table-editor h3{margin-bottom:20px;font-size:28px}.table-fields{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.table-fields label{font-size:11px}.memory-admin-card{background:#fff;border:1px solid #d4dfda;margin:15px 0;padding:22px}.memory-admin-card h3{font-size:25px}.memory-admin-card p{white-space:pre-wrap;font-size:14px}.memory-admin-card a{margin:5px 15px 5px 0;font-size:12px;text-decoration:underline;display:inline-flex}.history-row{border-bottom:1px solid #d4dfda;padding:16px 0;font-size:13px}.history-row small{color:var(--muted);margin-top:6px;display:block}.check-row{align-items:center;flex-direction:row!important;display:flex!important}.check-row input{width:auto!important;min-height:0!important}.admin-panel>h2{margin:20px 0;font-size:34px}.qr-grid{flex-wrap:wrap;gap:40px;display:flex}.qr-grid img{width:180px;height:180px}.qr-grid a{font-size:12px;text-decoration:underline;display:block}.wedding .visually-hidden{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=760px){.wedding-header{height:77px;padding:0 6%}.wedding-header nav{gap:20px;font-size:11px}.header-date{display:none}.monogram{font-size:32px}.wedding-hero{align-items:flex-start;min-height:730px}.hero-image{background-position:61%}.hero-image:after{background:linear-gradient(#f6f3e9f5 0%,#f6f3e9e8 37%,#f6f3e966 66%,#f6f3e900 100%)}.hero-content{width:86%;margin:45px 7% 145px}.hero-content h1{letter-spacing:-3px;font-size:79px;line-height:.98}.hero-content .eyebrow{font-size:8px!important}.hero-rule{margin:22px 0 16px}.hero-date{letter-spacing:1.5px;font-size:8px}.hero-date span{margin:0 4px}.hero-note{margin:16px 0 22px;font-size:13px}.hero-secondary{margin-left:15px;font-size:11px}.hero-caption{font-size:7px;bottom:22px;left:7%;right:auto}.welcome-section{padding:57px 25px 22px}.welcome-section h2{font-size:37px}.welcome-section .eyebrow{letter-spacing:1.7px;font-size:8px!important}.welcome-section>p:last-child{font-size:13px}.desktop-break{display:none}.experience-grid{grid-template-columns:1fr;gap:18px;margin-bottom:55px;padding:0 22px}.experience-card{min-height:340px;padding:28px}.experience-card h2{margin-top:25px;font-size:44px}.closing h2{font-size:37px}.closing{padding-bottom:40px}.wedding-footer{flex-wrap:wrap;gap:20px;padding:25px 6%}.wedding-footer>span{letter-spacing:1px;font-size:7px}.wedding-footer>a:last-child{font-size:10px}.page-container{padding:0 22px 50px}.page-intro{padding:45px 0 30px}.page-intro .eyebrow{font-size:8px!important}.page-intro h1{font-size:43px}.page-intro>p:last-child{font-size:13px}.seating-layout,.memory-layout{grid-template-columns:1fr;gap:30px}.guest-list{max-height:400px}.map-panel{padding:22px}.alphabet button{min-width:34px;min-height:40px}.list-meta>span:last-child{font-size:7px}.memory-aside{padding:27px}.memory-aside h2{margin:18px 0;font-size:34px}.memory-aside .small-note{margin-top:20px}.admin-stats,.admin-row{grid-template-columns:1fr 1fr}.admin-row>label:first-child{grid-column:1/-1}.admin-row .guest-extra{grid-template-columns:1fr}.table-fields{grid-template-columns:1fr 1fr}.button{padding:12px 16px;font-size:12px}.seating-map{max-height:none}}@media (prefers-reduced-motion:reduce){.wedding *{scroll-behavior:auto!important;transition:none!important}}@media print{.wedding-header,.wedding-footer,.admin-toolbar,.admin-tabs,.admin-stats,.admin-row button,.guest-extra{display:none!important}.admin-row{break-inside:avoid;grid-template-columns:2fr 1fr 1fr;padding:4px}.admin-row input,.admin-row select{border:0!important;padding:0!important}.page-intro{padding:15px}.wedding{background:#fff}.page-container{padding:0}.notice{display:none}}.upload-summary{background:#e2e9e5;border-radius:4px;padding:18px}.upload-summary>div{justify-content:space-between;gap:12px;font-size:12px;display:flex}.upload-summary progress{accent-color:#315d6c;width:100%;height:10px;margin-top:12px}.upload-summary p{color:#526b70;margin:8px 0 0;font-size:11px}.upload-queue{max-height:330px;padding-right:8px;overflow:auto}.board-intro{justify-content:space-between;align-items:center;gap:25px;margin:25px 0;display:flex}.board-intro h2{font-size:39px}.board-intro p{color:#526b70;max-width:590px;font-size:13px}.board-search{max-width:500px;margin:0 0 25px}.seating-board{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;display:grid}.board-table{background:#e8eeea;border:2px solid #0000;border-radius:7px;min-height:180px;padding:17px;transition:border-color .15s,background .15s}.board-table header{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.board-table h3{font-size:27px}.board-table header>span{background:#fff;border-radius:20px;padding:5px 8px;font-size:11px}.board-table .capacity-full{color:#745125;background:#eee0c5}.board-table.over-capacity{border-color:#c99b69}.board-table.drop-target{background:#cfdfd8;border-color:#315d6c}.capacity-track{background:#cbd9d3;height:3px;margin-bottom:16px;overflow:hidden}.capacity-track>span{background:#668c81;height:100%;display:block}.over-capacity .capacity-track>span{background:#ac7944}.board-guest-list{flex-direction:column;gap:6px;min-height:70px;display:flex}.board-guest{text-align:left;color:#244850;background:#fff;border:1px solid #d8e2dc;border-radius:4px;align-items:center;gap:8px;min-height:45px;padding:12px 8px;display:flex}.board-guest:hover{border-color:#6a9691}.board-guest>svg{color:#a0b5ae;flex-shrink:0}.board-guest>span:nth-child(2){flex:1;min-width:0}.board-guest strong{overflow-wrap:anywhere;font-size:12px;font-weight:500}.board-guest small{color:#6b8580;margin-top:4px;font-size:10px;display:block}.rsvp-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.rsvp-yes{background:#609781}.rsvp-no{background:#b27669}.rsvp-unknown{background:#c2cbc4}.board-empty{color:#7b948c;text-align:center;padding:14px;font-size:11px}.capacity-warning{color:#8d5a31;margin:12px 0 0;font-size:11px}.board-legend{color:#526b70;justify-content:center;align-items:center;gap:9px;margin:22px 0;font-size:10px;display:flex}.board-legend .rsvp-dot:not(:first-child){margin-left:15px}.guest-move-dialog{color:#244850;background:#f7f5ee;border:0;border-radius:9px;width:min(470px,100vw - 32px);max-height:90vh;padding:30px;overflow:auto;box-shadow:0 20px 90px #193b4933}.guest-move-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#153d4b88}.dialog-heading{justify-content:space-between;align-items:start;gap:15px;display:flex}.dialog-heading .eyebrow{margin-bottom:10px;font-size:9px!important}.dialog-heading h2{font-size:35px}.guest-move-dialog p{margin:0;font-size:13px}.login-help{color:#526b70;margin:0;font-size:13px}.password-option{font-size:12px}.password-option label{margin-top:15px}.password-option summary{cursor:pointer}@media (width<=950px){.seating-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.memory-aside{order:2}.board-intro{flex-direction:column;align-items:start;gap:5px}.board-intro h2{font-size:33px}.board-table{padding:12px}.board-table h3{font-size:25px}.seating-board{gap:12px}.board-guest{padding:12px 6px}.board-guest>svg{display:none}.board-guest strong{font-size:11px}.guest-move-dialog{padding:25px}}@media (width<=450px){.seating-board{grid-template-columns:1fr}.board-guest strong{font-size:13px}}@media print{.board-search,.board-intro button,.board-legend{display:none}.seating-board{grid-template-columns:repeat(3,1fr)}.board-table{break-inside:avoid}.board-guest{min-height:0;padding:3px}.board-guest>svg{display:none}}.memory-collection-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.memory-collection-heading p{margin:8px 0}.memory-media-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;margin-top:22px;display:grid}.memory-media-tile{border:1px solid #24485026;border-radius:8px;min-width:0;overflow:hidden}.memory-preview{aspect-ratio:4/3;text-align:center;background:#e9eae3;justify-content:center;align-items:center;display:flex;overflow:hidden}.memory-preview>div{padding:15px;font-size:13px}.memory-preview a{width:100%;height:100%;display:block}.memory-preview img,.memory-preview video{object-fit:contain;width:100%;height:100%}.memory-file-caption{justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.memory-file-caption>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.memory-message{white-space:pre-wrap}@media (width<=600px){.memory-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.memory-collection-heading .button{justify-content:center;width:100%}}
