:root{--navy:#0b1b27;--teal:#438f87;--off-white:#f8f7f3;--white:#ffffff;color:var(--navy);background:var(--off-white);font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit}.shell{width:min(72rem,calc(100% - 2rem));margin:0 auto;padding:12vh 0}.eyebrow{color:var(--teal);font-weight:700;letter-spacing:.12em}h1{max-width:18ch;font-size:clamp(2.5rem,8vw,6rem);line-height:.95;margin:.5rem 0 1.5rem}.lead{max-width:48rem;font-size:1.2rem;line-height:1.6}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));grid-gap:1rem;gap:1rem;margin-top:3rem}.cards a{padding:1.25rem;border:1px solid color-mix(in srgb,var(--navy) 20%,transparent);border-radius:1rem;text-decoration:none;background:var(--white)}.live{min-height:100vh;display:grid;place-content:center;padding:3rem;color:var(--white);background:var(--navy);text-align:center}.live h1{margin-inline:auto}.live-view{width:100vw;height:100vh;overflow:hidden;color:var(--white);background:var(--navy);cursor:none}.live-stage{position:relative;width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#173747 0,var(--navy) 68%),var(--navy)}.live-photo{display:block;width:auto;height:auto;max-width:88vw;max-height:78vh;object-fit:contain}.live-overlay{position:absolute;inset:auto 0 0;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;padding:clamp(2rem,5vw,4.5rem);background:linear-gradient(transparent,rgb(5 15 22/82%));text-shadow:0 2px 12px rgb(0 0 0/65%)}.live-overlay>div{display:grid;grid-gap:.55rem;gap:.55rem}.live-overlay p{margin:0;font-size:clamp(1rem,2vw,1.5rem)}.live-brand{color:#88d0c7;font-size:clamp(.9rem,1.5vw,1.15rem);font-weight:900;letter-spacing:.16em}.live-empty{min-height:100%;display:grid;place-content:center;justify-items:center;padding:clamp(2rem,8vw,6rem);background:radial-gradient(circle at 50% 35%,#173747 0,var(--navy) 68%),var(--navy);text-align:center}.live-empty .eyebrow{margin:2.5rem 0 0;color:#88d0c7}.live-empty h1{max-width:17ch;margin:.65rem auto 1.25rem;font-size:clamp(2.8rem,7vw,6.5rem)}.live-empty>p:last-of-type{font-size:clamp(1rem,2vw,1.4rem)}.live-connection-status{margin-top:1.5rem;padding:.6rem .9rem;border-radius:99rem;color:#ffe7ad;background:rgb(129 84 4/38%);font-size:.9rem;font-weight:800}.live-connection-status-overlay{position:absolute;top:1.5rem;right:1.5rem;margin:0;-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem)}@media (orientation:portrait){.live-photo{max-width:88vw;max-height:72vh}}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.event-shell{width:min(58rem,calc(100% - 2rem));min-height:100vh;margin:0 auto;padding:clamp(2rem,8vh,6rem) 0;display:grid;align-content:center}.photo-upload,.share-card,.welcome-card{padding:clamp(1.5rem,5vw,3rem);border:1px solid color-mix(in srgb,var(--navy) 14%,transparent);border-radius:1.5rem;background:var(--white);box-shadow:0 1.5rem 4rem color-mix(in srgb,var(--navy) 8%,transparent)}.welcome-card{max-width:42rem}.event-header h1,.welcome-card h1{font-size:clamp(2.5rem,9vw,5rem)}.guest-form{display:grid;grid-gap:.75rem;gap:.75rem;margin-top:2rem}.guest-form label{font-weight:800}.guest-form input{width:100%;padding:1rem 1.1rem;border:2px solid color-mix(in srgb,var(--navy) 22%,transparent);border-radius:.85rem;color:var(--navy);background:var(--white)}.guest-form input:focus{outline:3px solid color-mix(in srgb,var(--teal) 35%,transparent);border-color:var(--teal)}.guest-form button,.secondary-button{min-height:3.25rem;padding:.8rem 1.25rem;border:0;border-radius:.85rem;font-weight:800}.guest-form button{margin-top:.5rem;color:var(--white);background:var(--navy)}.secondary-button{color:var(--navy);background:color-mix(in srgb,var(--teal) 18%,var(--white))}.form-error,.form-help{margin:0;font-size:.9rem}.form-help{color:color-mix(in srgb,var(--navy) 70%,transparent)}.form-error{color:#a32626;font-weight:700}.event-message{max-width:46rem}.event-message h1{font-size:clamp(2.4rem,8vw,5rem)}.upload-shell{gap:1.25rem;align-content:start}.event-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.status-pill{padding:.55rem .85rem;border-radius:99rem;color:#145c3c;background:#dff5e8;font-weight:800}.photo-upload h2,.share-card h2{margin:.35rem 0 .75rem;font-size:clamp(1.6rem,5vw,2.4rem)}.share-card{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:2rem;gap:2rem}.event-qr{width:min(15rem,100%);height:auto;border-radius:1rem}.photo-upload{display:grid;grid-gap:1rem;gap:1rem}.photo-upload h2{margin-bottom:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.camera-button{min-height:9rem;display:grid;place-items:center;align-content:center;grid-gap:.65rem;gap:.65rem;padding:1.5rem;border:2px dashed color-mix(in srgb,var(--teal) 55%,transparent);border-radius:1rem;color:var(--navy);background:color-mix(in srgb,var(--teal) 8%,var(--white));font-weight:800;text-align:center;cursor:pointer}.camera-button span{font-size:2rem;line-height:1}.photo-preview{width:100%;max-height:28rem;object-fit:contain;border-radius:1rem;background:var(--navy)}.selected-photo{display:grid;grid-gap:1rem;gap:1rem}.selected-photo>div:first-child{display:flex;justify-content:space-between;gap:1rem;overflow-wrap:anywhere}.selected-photo span{white-space:nowrap;color:color-mix(in srgb,var(--navy) 65%,transparent)}.upload-actions{display:flex;justify-content:flex-end;gap:.75rem}.primary-button{min-height:3.25rem;padding:.8rem 1.25rem;border:0;border-radius:.85rem;color:var(--white);background:var(--navy);font-weight:800}.selected-photo progress{width:100%;accent-color:var(--teal)}.upload-success{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border-radius:1rem;color:#145c3c;background:#dff5e8}.upload-success>span{display:grid;place-items:center;flex:0 0 2rem;height:2rem;border-radius:50%;color:var(--white);background:#21875b;font-weight:900}.upload-success p{margin:.3rem 0 0}@media (max-width:42rem){.event-header{display:block}.status-pill{display:inline-block;margin-bottom:1rem}.share-card{grid-template-columns:1fr}.event-qr{justify-self:center}.upload-actions{display:grid}}.admin-login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.admin-login-card{width:min(34rem,100%);padding:clamp(1.5rem,6vw,3rem);border:1px solid color-mix(in srgb,var(--navy) 14%,transparent);border-radius:1.5rem;background:var(--white);box-shadow:0 1.5rem 4rem color-mix(in srgb,var(--navy) 8%,transparent)}.admin-login-card h1{font-size:clamp(2.5rem,10vw,4.5rem)}.admin-login-form{display:grid;grid-gap:.75rem;gap:.75rem;margin-top:2rem}.admin-login-form label{font-weight:800}.admin-login-form input{min-height:3.25rem;padding:.8rem 1rem;border:2px solid color-mix(in srgb,var(--navy) 22%,transparent);border-radius:.85rem}.admin-login-form input:focus{outline:3px solid color-mix(in srgb,var(--teal) 35%,transparent);border-color:var(--teal)}.admin-login-form button{min-height:3.25rem;margin-top:.5rem;border:0;border-radius:.85rem;color:var(--white);background:var(--navy);font-weight:800}.admin-shell{width:min(86rem,calc(100% - 2rem));min-height:100vh;margin:0 auto;padding:clamp(2rem,7vh,5rem) 0}.event-management{display:grid;grid-template-columns:minmax(18rem,28rem) 1fr;align-items:start;grid-gap:clamp(2rem,5vw,5rem);gap:clamp(2rem,5vw,5rem)}.admin-event-create{padding:1.5rem;border:1px solid color-mix(in srgb,var(--navy) 14%,transparent);border-radius:1.2rem;background:var(--white);box-shadow:0 .8rem 2.5rem color-mix(in srgb,var(--navy) 7%,transparent)}.admin-event-create h2{margin-top:0}.admin-event-create form,.admin-event-create label{display:grid;grid-gap:.45rem;gap:.45rem}.admin-event-create form{gap:1rem}.admin-event-create label{font-weight:800}.admin-event-create input,.admin-event-create select{min-width:0;min-height:3rem;padding:.7rem .8rem;border:2px solid color-mix(in srgb,var(--navy) 20%,transparent);border-radius:.75rem;color:var(--navy);background:var(--white)}.admin-event-list{display:grid;grid-gap:1rem;gap:1rem}.admin-event-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem;border:1px solid color-mix(in srgb,var(--navy) 14%,transparent);border-radius:1.2rem;background:var(--white)}.admin-event-card h3{margin:.65rem 0 .25rem;font-size:1.35rem}.admin-event-card p{margin:.25rem 0;color:color-mix(in srgb,var(--navy) 70%,transparent)}.admin-event-card nav{display:grid;grid-template-columns:repeat(2,minmax(6rem,1fr));grid-gap:.55rem;gap:.55rem}.admin-event-card nav a,.admin-event-card nav button{padding:.65rem .8rem;border:0;border-radius:.7rem;color:var(--navy);background:color-mix(in srgb,var(--teal) 14%,var(--white));font:inherit;font-weight:800;text-align:center;text-decoration:none}.admin-event-edit{width:100%;display:grid;grid-gap:1rem;gap:1rem}.admin-event-edit label{display:grid;grid-gap:.45rem;gap:.45rem;font-weight:800}.admin-event-edit input,.admin-event-edit select{min-width:0;min-height:3rem;padding:.7rem .8rem;border:2px solid color-mix(in srgb,var(--navy) 20%,transparent);border-radius:.75rem;color:var(--navy);background:var(--white)}.admin-event-edit-dates,.admin-event-edit-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.8rem;gap:.8rem}.admin-event-edit-actions{display:flex;justify-content:flex-end;gap:.7rem}.event-status{display:inline-block;padding:.3rem .55rem;border-radius:99rem;font-size:.75rem;font-weight:900;letter-spacing:.08em}.event-status-active{color:#145c3c;background:#dff5e8}.event-status-draft{color:#725000;background:#fff0c2}.event-status-closed{color:#6d3333;background:#f7dddd}.admin-header,.review-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.admin-header{margin-bottom:3rem}.admin-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.live-tv-button{min-height:3rem;display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.1rem;border-radius:.8rem;color:#145c3c;background:#dff5e8;font-weight:900;text-decoration:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,#145c3c 18%,transparent)}.live-tv-button:hover{background:#ccefdc}.live-tv-button:focus-visible{outline:3px solid color-mix(in srgb,var(--teal) 45%,transparent);outline-offset:3px}.admin-header h1{font-size:clamp(2.7rem,8vw,5rem)}.review-toolbar{align-items:center;margin-bottom:1.25rem}.review-filters{display:inline-flex;gap:.35rem;margin-bottom:1.25rem;padding:.3rem;border-radius:.9rem;background:color-mix(in srgb,var(--navy) 7%,var(--white))}.review-filters button{min-height:2.75rem;padding:.6rem .9rem;border:0;border-radius:.7rem;color:color-mix(in srgb,var(--navy) 72%,transparent);background:transparent;font-weight:800}.review-filters .review-filter-active{color:var(--navy);background:var(--white);box-shadow:0 .3rem 1rem color-mix(in srgb,var(--navy) 10%,transparent)}.review-toolbar h2,.review-toolbar p{margin:0}.review-toolbar h2{font-size:1.6rem}.review-toolbar p{margin-top:.25rem;color:color-mix(in srgb,var(--navy) 65%,transparent)}.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(18rem,100%),1fr));grid-gap:1.25rem;gap:1.25rem}.review-photo{overflow:hidden;border:1px solid color-mix(in srgb,var(--navy) 14%,transparent);border-radius:1.2rem;background:var(--white);box-shadow:0 .8rem 2.5rem color-mix(in srgb,var(--navy) 7%,transparent)}.review-photo>img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--navy)}.review-photo-meta{display:flex;justify-content:space-between;gap:1rem;padding:1rem}.review-photo-meta time{flex:0 0 auto;color:color-mix(in srgb,var(--navy) 65%,transparent);font-size:.9rem}.review-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:.7rem;gap:.7rem;padding:0 1rem 1rem}.review-actions button{min-height:3rem;display:flex;align-items:center;justify-content:center;gap:.45rem;border:0;border-radius:.8rem;font-weight:900}.review-actions span{font-size:1.4rem;line-height:1}.review-delete{color:#882020;background:#fde2e2}.review-approve{color:#145c3c;background:#dff5e8}.review-unapprove{color:#725000;background:#fff0c2}.review-empty{padding:clamp(3rem,10vw,6rem) 1.5rem;border:2px dashed color-mix(in srgb,var(--teal) 35%,transparent);border-radius:1.5rem;text-align:center}.review-empty>span{display:grid;place-items:center;width:3rem;height:3rem;margin:0 auto 1rem;border-radius:50%;color:var(--white);background:var(--teal);font-size:1.5rem;font-weight:900}.review-empty h2,.review-empty p{margin:0}.review-empty p{margin-top:.4rem}.review-error{padding:1rem;border-radius:.85rem;color:#882020;background:#fde2e2;font-weight:700}@media (max-width:42rem){.admin-header{display:block}.admin-header-actions{justify-content:flex-start;margin-top:1.25rem}.review-photo-meta{display:grid;grid-gap:.25rem;gap:.25rem}.event-management,.review-actions{grid-template-columns:1fr}.admin-event-card{display:grid}.admin-event-edit-dates,.admin-event-edit-options{grid-template-columns:1fr}.admin-event-edit-actions{display:grid}}