:root{--background:#fbfaf7;--ink:#171312;--muted:#665e58;--line:#ddd5cd;--coral:#d85d4c;--teal:#0e7c7b;--olive:#6c7a3e;--paper:#fffefd;--shadow:0 28px 80px #1713122e}*{box-sizing:border-box}html{background:var(--background);color:var(--ink);scroll-behavior:smooth}body{min-width:320px;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}.home-shell{min-height:100vh;overflow-x:hidden}.auth-shell,.site-shell{background:var(--background);place-items:center;min-height:100vh;padding:clamp(24px,6vw,80px);display:grid}.public-site-shell{background:linear-gradient(120deg, #6c7a3e26 0 36%, transparent 36%), linear-gradient(155deg, transparent 0 58%, #d85d4c24 58%), var(--background);min-height:100vh;padding:clamp(24px,6vw,80px);overflow-x:hidden}.auth-panel,.created-site{width:min(100%,720px)}.public-site-hero{align-content:center;min-height:calc(100vh - clamp(48px,12vw,160px));display:grid}.home-hero{background:linear-gradient(120deg, #d85d4c2e 0 34%, transparent 34%), linear-gradient(155deg, transparent 0 55%, #0e7c7b2b 55%), var(--background);grid-template-columns:minmax(0,1fr) minmax(320px,520px);align-items:center;gap:clamp(28px,6vw,88px);min-height:100vh;padding:clamp(32px,6vw,80px);display:grid;position:relative;overflow:hidden}.home-hero:before{pointer-events:none;content:"";border:1px solid #1713121f;position:absolute;inset:clamp(16px,3vw,40px)}.hero-copy,.product-preview{z-index:1;position:relative}.hero-copy{max-width:760px}.eyebrow{color:#3b332f;letter-spacing:0;text-transform:uppercase;border:1px solid var(--line);background:#fffefdc2;width:fit-content;margin:0 0 20px;padding:8px 12px;font-size:.86rem;font-weight:700}h1{letter-spacing:0;max-width:12ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:7rem;font-weight:500;line-height:.95}.summary{max-width:620px;color:var(--muted);margin:24px 0 0;font-size:1.28rem;line-height:1.55}.creation-form{max-width:620px;margin-top:28px}.returning-login{min-height:44px;color:var(--ink);-webkit-text-decoration-color:var(--teal);text-decoration-color:var(--teal);text-underline-offset:5px;align-items:center;margin-top:24px;padding:12px 0;font-weight:800;text-decoration-thickness:3px;display:inline-flex}.creation-form.compact{margin-top:28px}.creation-form label{color:#3b332f;margin-bottom:10px;font-size:.92rem;font-weight:800;display:block}.creation-controls{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.couple-name-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;display:grid}.couple-name-field{min-width:0}.couple-name-fields input,.schedule-event-fields input,.schedule-event-fields select,.wedding-info-fields input,.creation-controls input{width:100%;min-height:52px;color:var(--ink);font:inherit;border:2px solid var(--ink);background:#fffefde0;padding:12px 14px;font-weight:700}.couple-name-fields input,.schedule-event-fields input,.schedule-event-fields select,.wedding-info-fields input{margin-bottom:12px}.couple-name-fields input:focus-visible,.schedule-event-fields input:focus-visible,.schedule-event-fields select:focus-visible,.wedding-info-fields input:focus-visible,.creation-controls input:focus-visible{outline-offset:3px;outline:4px solid #d85d4c6b}.wedding-info-fields{grid-template-columns:minmax(0,1fr);gap:0 12px;display:grid}.creation-form h2,.wedding-info-summary h2,.public-schedule h2{letter-spacing:0;margin:0 0 16px;font-size:1.3rem;line-height:1.25}.schedule-manager,.site-details-section,.share-section{max-width:720px;margin-top:28px}.site-details-section h2,.share-section h2{letter-spacing:0;margin:0;font-size:1.3rem;line-height:1.25}.schedule-manager-heading{grid-template-columns:minmax(0,1fr) auto;justify-content:space-between;align-items:center;gap:16px;display:grid}.schedule-manager h2{letter-spacing:0;margin:0;font-size:1.3rem;line-height:1.25}.schedule-card-list{gap:12px;margin-top:16px;display:grid}.schedule-card{border:1px solid var(--line);border-left:6px solid var(--olive);background:#f6f0e8;grid-template-columns:minmax(0,1fr) repeat(2,minmax(132px,auto));gap:18px;padding:18px 20px;display:grid}.schedule-card:has(.schedule-card-edit[open]){grid-template-columns:minmax(0,1fr)}.schedule-card-main{gap:4px;min-width:0;display:grid}.schedule-card-main h3{letter-spacing:0;margin:0;font-size:1.25rem;line-height:1.25}.schedule-card-main p{color:#2f2925;margin:0;font-size:1.05rem;line-height:1.4}.schedule-disclosure{position:relative}.schedule-disclosure summary{width:100%;min-width:132px;min-height:50px;color:var(--ink);border:2px solid var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:10px 16px;font-weight:800;list-style:none;display:inline-flex}.schedule-add-disclosure[open]{grid-column:1/-1;gap:12px;display:grid}.schedule-add-disclosure[open] summary{justify-self:end;width:auto}.schedule-card-edit,.schedule-remove-form{align-self:start}:is(.schedule-card-edit[open],.schedule-card:has(.schedule-card-edit[open]) .schedule-remove-form){grid-column:1/-1}.schedule-card-edit[open] summary{width:100%}.schedule-remove-form .secondary-action{width:100%;min-width:132px}.schedule-disclosure summary::-webkit-details-marker{display:none}.schedule-event-form{background:var(--paper);border:1px solid var(--line);gap:12px;width:100%;margin-top:12px;padding:16px;display:grid}.schedule-feedback{color:#2f2925;border:1px solid #0e7c7b47;border-left:6px solid var(--teal);background:#0e7c7b17;margin:16px 0 0;padding:12px 14px;font-weight:800}.schedule-event-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;display:grid}.schedule-event-fields label{color:#3b332f;margin-bottom:10px;font-size:.92rem;font-weight:800;display:block}.full-width-field{grid-column:1/-1}.single-action{grid-template-columns:auto;justify-content:start}.form-error{color:#9f2f20;margin:10px 0 0;font-weight:800}.site-address{color:#2f2925;border-left:6px solid var(--teal);background:#f6f0e8;width:fit-content;margin:28px 0 0;padding:12px 14px;font-weight:800}.partner-invite-card,.public-site-card{border:1px solid #0e7c7b47;border-left:6px solid var(--teal);background:#0e7c7b17;align-items:center;gap:16px;max-width:620px;margin-top:18px;padding:18px 20px;display:grid}.partner-invite-card{border-color:var(--line);border-left-color:var(--olive);background:#f6f0e8}.partner-invite-card h2,.partner-invite-card h3,.public-site-card h2,.public-site-card h3{letter-spacing:0;margin:0;font-size:1.15rem;line-height:1.25}.partner-invite-card p,.public-site-card p{color:#2f2925;margin:8px 0 0;line-height:1.5}.partner-invite-list{gap:12px;display:grid}.partner-invite-item{border:1px solid var(--line);background:#fffefdd1;padding:14px 16px}.partner-invite-link{min-height:44px;-webkit-text-decoration-color:var(--teal);text-decoration-color:var(--teal);text-underline-offset:5px;align-items:center;margin-top:8px;font-weight:800;text-decoration-thickness:3px;display:inline-flex}.partner-invite-link:focus-visible{outline-offset:4px;outline:4px solid #d85d4c6b}.public-site-url{overflow-wrap:anywhere;font-weight:800}.public-site-card .site-link{width:fit-content;margin-top:0}.site-link{color:#fffefd;background:var(--ink);border:2px solid var(--ink);justify-content:center;align-items:center;min-height:48px;margin-top:18px;padding:14px 20px;font-weight:800;text-decoration:none;display:inline-flex}.site-link:focus-visible{outline-offset:4px;outline:4px solid #d85d4c6b}.site-list{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.wedding-info-summary,.public-details{gap:14px;max-width:720px;margin-top:28px;display:grid}.wedding-info-summary{border-left:6px solid var(--olive);background:#f6f0e8;padding:18px 20px}.wedding-info-summary p,.public-detail p,.public-schedule-event p{color:#2f2925;margin:0;font-size:1.1rem;line-height:1.45}.detail-label{letter-spacing:0;text-transform:uppercase;font-weight:800;color:var(--teal)!important;font-size:.78rem!important}.public-details{grid-template-columns:repeat(3,minmax(0,1fr))}.public-detail{border:1px solid var(--line);background:#fffefdd1;padding:clamp(18px,4vw,28px)}.public-schedule{max-width:720px;margin-top:28px}.public-schedule-day{margin-top:18px}.public-schedule-day h3{color:var(--teal);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:.9rem}.public-schedule-events{gap:12px;display:grid}.public-schedule-event{border:1px solid var(--line);border-left:6px solid var(--coral);background:#fffefdd1;padding:clamp(18px,4vw,24px)}.public-schedule-event h4{letter-spacing:0;margin:0 0 10px;font-size:1.2rem;line-height:1.25}.primary-action{color:#fffefd;min-height:48px;font:inherit;background:var(--ink);border:2px solid var(--ink);cursor:pointer;justify-content:center;align-items:center;padding:14px 20px;font-weight:800;text-decoration:none;display:inline-flex}.auth-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.secondary-action{min-height:48px;color:var(--ink);font:inherit;border:2px solid var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:14px 20px;font-weight:800;text-decoration:none;display:inline-flex}.primary-action:focus-visible,.secondary-action:focus-visible{outline-offset:4px;outline:4px solid #d85d4c6b}.admin-shell{background:var(--background);min-height:100vh;padding:clamp(24px,5vw,72px)}.admin-dashboard{width:min(100%,1120px);margin:0 auto}.admin-dashboard h1{max-width:none;font-size:clamp(3rem,7vw,5.6rem)}.admin-section{border-top:1px solid var(--line);margin-top:32px;padding-top:20px}.admin-section-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.admin-section-heading h2{letter-spacing:0;margin:0;font-size:1.3rem;line-height:1.25}.admin-section-heading p{color:var(--muted);margin:0;font-weight:800}.admin-table-wrap{border:1px solid var(--line);margin-top:16px;overflow-x:auto}.admin-table{border-collapse:collapse;background:var(--paper);width:100%;min-width:760px}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px 14px}.admin-table th{color:#3b332f;letter-spacing:0;text-transform:uppercase;font-size:.78rem}.admin-table td{color:#2f2925;font-size:.95rem;line-height:1.4}.admin-user-list{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.admin-user-list li,.empty-state{overflow-wrap:anywhere;color:#2f2925;background:var(--paper);border:1px solid var(--line);padding:12px 14px;font-weight:800}.empty-state{margin:16px 0 0;font-weight:700}.product-preview{justify-self:end;width:min(100%,520px)}.preview-window{background:var(--paper);box-shadow:var(--shadow);border:1px solid #1713122e;overflow:hidden}.preview-toolbar{background:#27211f;align-items:center;gap:8px;height:44px;padding:0 16px;display:flex}.preview-toolbar span{opacity:.82;background:#f6f0e8;border-radius:999px;width:10px;height:10px}.preview-content{padding:clamp(26px,5vw,48px)}.preview-label{color:var(--teal);letter-spacing:0;text-transform:uppercase;margin:0 0 28px;font-size:.78rem;font-weight:800}.preview-content h2{letter-spacing:0;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.6rem,5vw,4.7rem);font-weight:500;line-height:.95}.preview-date{color:var(--muted);margin:18px 0 28px;font-size:1rem}.preview-grid{gap:12px;display:grid}.preview-tile{color:#2f2925;border-left:6px solid var(--coral);background:#f6f0e8;padding:16px;font-weight:800}.preview-tile:nth-child(2){border-left-color:var(--teal)}.preview-tile:nth-child(3){border-left-color:var(--olive)}@media (max-width:980px){.home-hero{grid-template-columns:1fr;align-content:start}.product-preview{justify-self:start}h1{max-width:11ch}}@media (max-width:620px){.home-hero{min-height:auto;padding:24px}.home-hero:before{display:none}.eyebrow{max-width:100%;font-size:.75rem}h1{max-width:10ch;font-size:3.2rem}.summary{font-size:1rem}.primary-action,.secondary-action{width:100%}.creation-controls,.couple-name-fields{grid-template-columns:1fr}.schedule-manager-heading,.schedule-card{grid-template-columns:1fr;align-items:stretch}.schedule-manager-heading{display:grid}.schedule-card-edit,.schedule-remove-form,.schedule-disclosure summary{width:100%}.schedule-event-fields,.wedding-info-fields,.public-details{grid-template-columns:1fr}.single-action{justify-content:stretch}.public-site-card .site-link{width:100%}.admin-section-heading{display:grid}}
