:root{--cream:#fffaf0;--green:#0D5F3A;--yellow:#F7E600;--charcoal:#202520;--mint:#dff2df;--coral:#ff8066;--space:1rem;--radius:1.25rem}*{box-sizing:border-box}html{background:var(--cream);color:var(--charcoal)}body{margin:0;min-height:100vh;font-family:Montserrat,Avenir Next,Segoe UI,Arial,sans-serif}a{color:inherit}button,input,select{font:inherit}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.site-shell{min-height:100vh;width:min(100%,760px);margin:0 auto;padding:max(1.25rem,env(safe-area-inset-top)) 1.25rem max(2rem,env(safe-area-inset-bottom));position:relative}.welcome-shell{display:flex;flex-direction:column;justify-content:center;gap:1.5rem}.form-card,.status-card,.welcome-card{background:white;border:3px solid var(--green);border-radius:2rem;box-shadow:8px 8px 0 var(--green);padding:clamp(1.5rem,6vw,3rem)}.brand-logo{display:block;height:auto;max-width:11.5rem;width:48%}.eyebrow{color:var(--green);font-size:.75rem;font-weight:800;letter-spacing:.13em;margin:0 0 .75rem;text-transform:uppercase}h1,h2,p{margin-top:0}h1{color:var(--green);font-family:Bebas Neue,Arial Narrow,Montserrat,sans-serif;font-size:clamp(2.7rem,12vw,5.2rem);letter-spacing:.01em;line-height:.94;margin-bottom:1.25rem}h1 span{color:var(--coral)}h2{color:var(--green)}.intro-copy{color:#3b443d;font-size:1rem;line-height:1.6;max-width:48ch}.danger-button,.primary-button,.secondary-button{align-items:center;border:2px solid var(--green);border-radius:999px;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:800;justify-content:center;min-height:3.2rem;padding:.7rem 1.1rem;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.primary-button{background:var(--yellow);box-shadow:4px 4px 0 var(--green);color:var(--charcoal)}.primary-button:focus-visible,.primary-button:hover{box-shadow:2px 2px 0 var(--green);transform:translate(2px,2px)}.secondary-button{background:white;color:var(--green)}.danger-button{background:#ffe0d8;color:#8b2c1e;border-color:#8b2c1e}.back-link,.text-link{color:var(--green);display:block;font-size:.85rem;font-weight:800;margin-top:1rem;text-underline-offset:3px}.back-link{margin:0 0 1.25rem}.doodle{color:var(--yellow);font-size:4rem;position:absolute;right:1rem;top:1rem;transform:rotate(12deg)}.sponsor-bridge{align-items:center;background:var(--yellow);border:2px solid var(--green);border-radius:var(--radius);color:var(--green);display:grid;grid-gap:.9rem;gap:.9rem;padding:1rem 1.1rem;text-align:center}.sponsor-copy,.sponsor-download{display:grid;grid-gap:.3rem;gap:.3rem;justify-items:center}.sponsor-copy{text-align:left}.sponsor-bridge strong{font-size:.95rem}.sponsor-bridge p{font-size:.8rem;font-weight:800;margin:0}.sponsor-kicker{font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.sponsor-logo{height:auto;max-height:4.5rem;max-width:5rem;width:100%}.sponsor-link{display:inline-block}.sponsor-badge{aspect-ratio:960/285;background-image:url(/brand/google-play-badge.webp);background-position:50%;background-repeat:no-repeat;background-size:contain;display:block;width:9.5rem}.form-shell{padding-top:max(2rem,env(safe-area-inset-top))}.form-card form{display:grid;grid-gap:1rem;gap:1rem;margin-top:1.5rem}.category-edit,.form-card label{color:var(--green);display:grid;font-size:.8rem;font-weight:800;grid-gap:.4rem;gap:.4rem}.category-edit select,.form-card input,.form-card textarea{background:#fffdf9;border:2px solid #b4c6b8;border-radius:.75rem;color:var(--charcoal);min-height:3rem;padding:.65rem .8rem}.category-edit select:focus,.form-card input:focus,.form-card textarea:focus{border-color:var(--green)}.form-note,.muted-copy{color:#56635b;font-size:.8rem;line-height:1.45}.registration-note{margin-top:1.25rem}.error-message{background:#fff0eb;border-left:4px solid var(--coral);color:#7c291d;font-size:.85rem;padding:.75rem}.success-message{background:var(--mint);border-radius:.75rem;margin-top:1.5rem;padding:1rem}.success-message p{margin:.4rem 0 0}.caption-field{margin:0 0 .25rem}.caption-field span{color:#56635b;font-weight:600}.caption-field textarea{min-height:5.5rem;resize:vertical;width:100%}.caption-counter{color:#56635b;font-size:.75rem;margin:0 0 1.25rem;text-align:right}.page-header{gap:1rem;justify-content:space-between;padding:.5rem 0 2rem}.event-branding,.page-header{align-items:center;display:flex}.event-branding{gap:15px;min-width:0}.event-header-logo{flex:0 0 19%;width:19%}.brand-mark img{display:block;height:auto;max-width:6rem;width:100%}.event-header-logo img{max-width:none}.event-details{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0}.event-details strong{color:var(--green);font-size:clamp(.72rem,2.4vw,.95rem);line-height:1.2}.event-details span{color:#56635b;font-size:clamp(.66rem,2vw,.8rem);font-weight:700}.header-links{display:flex;flex-shrink:0;gap:.85rem}.header-links a{color:var(--green);font-size:.78rem;font-weight:800;text-decoration:none}.header-links a.active,.header-links a:focus-visible,.header-links a:hover{text-decoration:underline;text-underline-offset:3px}.moments-hero{background:linear-gradient(120deg,rgba(7,59,35,.9),rgba(7,59,35,.62)),url(/bgheader.jpg) 50% /cover;border-radius:2rem;color:white;margin-bottom:2rem;overflow:hidden;padding:1.5rem;position:relative}.moments-hero:after{border:3px solid var(--yellow);border-radius:50%;content:"";height:5rem;position:absolute;right:-1.5rem;top:-1.5rem;width:5rem}.moments-hero .eyebrow,.moments-hero h1{color:white}.moments-hero .intro-copy,.moments-hero .muted-copy{color:#f2fff4}.moments-hero h1{font-size:clamp(2.5rem,12vw,4rem);margin-bottom:.7rem}.quota-badge{align-items:baseline;display:flex;gap:.5rem;margin:1.25rem 0}.quota-badge strong{color:var(--yellow);font-size:1.8rem}.quota-badge span{font-size:.8rem}.capture-cta{border-color:var(--yellow);position:relative;z-index:1}.section-heading{align-items:baseline;display:flex;justify-content:space-between}.section-heading h2{margin-bottom:1rem}.moments-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.moment-tile{background:white;border:2px solid #d5e0d5;border-radius:1rem;overflow:hidden;padding-bottom:.75rem}.moment-image{align-items:center;background:#e7efe7;display:flex;height:9rem;justify-content:center;overflow:hidden;position:relative}.moment-image img{height:100%;object-fit:cover;width:100%}.status-pill{background:white;border-radius:99px;bottom:.5rem;font-size:.65rem;font-weight:800;left:.5rem;padding:.25rem .5rem;position:absolute}.status-published{color:var(--green)}.moment-caption{color:#405047;font-size:.78rem;line-height:1.4;margin:.75rem .7rem 0}.category-edit{color:#56635b;font-size:.7rem;margin:.7rem .7rem 0}.category-edit select{border-width:1px;font-size:.75rem;min-height:2.2rem;padding:.3rem}.delete-link{background:none;border:0;color:#8b2c1e;cursor:pointer;font-size:.75rem;font-weight:800;margin:.65rem .7rem 0;padding:0;text-decoration:underline}.empty-state{border:2px dashed #aac1ad;border-radius:1rem;padding:2rem;text-align:center}.empty-state>span{color:var(--coral);font-size:2rem}.empty-state p{margin-bottom:.3rem}.load-more{margin-top:1rem;width:100%}.slot-message{background:var(--mint);border-radius:.75rem;color:var(--green);font-size:.8rem;font-weight:800;margin:1rem 0;padding:.75rem}.bottom-nav{background:var(--cream);border-top:1px solid #d7e2d8;bottom:0;display:flex;gap:1.5rem;justify-content:center;left:0;padding:1rem;position:-webkit-sticky;position:sticky}.bottom-nav a{color:#68756b;font-size:.8rem;font-weight:800;text-decoration:none}.bottom-nav a.active{color:var(--green);text-decoration:underline;text-underline-offset:4px}.camera-shell{max-width:520px;padding:0}.camera-panel{background:#15221b;color:white;min-height:100vh;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1.5rem,env(safe-area-inset-bottom))}.camera-topbar{align-items:center;display:flex;font-size:.9rem;font-weight:800;justify-content:space-between;padding-bottom:1rem}.camera-quota{color:var(--yellow)}.icon-button{background:none;border:0;color:white;cursor:pointer;font-size:2rem;line-height:1;padding:0}.camera-view{align-items:center;background:#26352c;border-radius:1.25rem;display:flex;height:min(72vh,650px);justify-content:center;overflow:hidden;position:relative}.camera-view video{height:100%;object-fit:cover;width:100%}.camera-message{align-items:center;background:rgba(21,34,27,.9);display:flex;flex-direction:column;inset:0;justify-content:center;padding:2rem;position:absolute;text-align:center}.camera-message h2{color:white}.camera-message p{color:#d8ecdf;font-size:.9rem;line-height:1.5}.camera-symbol{color:var(--yellow);font-size:3rem;margin-bottom:1rem}.camera-controls{align-items:center;display:flex;justify-content:space-between;padding-top:1.2rem}.camera-controls .secondary-button:not(.camera-switch-button){border-color:#8da899;color:white}.camera-switch-button{color:var(--green)}.shutter-button{background:white;border:4px solid var(--yellow);border-radius:50%;cursor:pointer;height:4.5rem;padding:.35rem;width:4.5rem}.shutter-button span{background:var(--yellow);border:2px solid var(--green);border-radius:50%;display:block;height:100%;width:100%}.control-spacer{width:7.5rem}.preview-panel{margin:0 auto;max-width:600px;padding-top:2rem}.preview-frame{background:#e7efe7;border:3px solid var(--green);border-radius:1.5rem;margin:1.5rem 0;max-height:65vh;overflow:hidden}.preview-frame img{display:block;max-height:65vh;object-fit:contain;width:100%}.action-row{display:flex;flex-wrap:wrap;gap:.75rem}.action-row>*{flex:1 1}.category-section{border:0;margin:0 0 1.5rem;padding:0}.section-title{color:var(--green);font-size:1.2rem;font-weight:900;margin-bottom:.25rem}.category-grid{display:grid;grid-gap:.65rem;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.category-card{align-items:center;background:#fffdf9;border:2px solid #b4c6b8;border-radius:1rem;color:var(--green);cursor:pointer;display:flex;flex-direction:column;font-size:.8rem;font-weight:900;gap:.35rem;justify-content:center;min-height:6rem;padding:.75rem;text-align:center}.category-card.is-selected{background:var(--yellow);border-color:var(--green);box-shadow:3px 3px 0 var(--green)}.category-emoji{font-size:1.6rem}.dialog-backdrop{align-items:center;background:rgba(13,95,58,.35);display:flex;inset:0;justify-content:center;padding:1.25rem;position:fixed;z-index:10}.dialog-card{background:white;border:3px solid var(--green);border-radius:1.5rem;box-shadow:6px 6px 0 var(--green);max-width:420px;padding:1.5rem;width:100%}.dialog-card h2{margin-bottom:.6rem}.dialog-card p{color:#465349;font-size:.9rem;line-height:1.5}.loading-shell,.status-shell{align-items:center;display:flex;justify-content:center}.status-card{text-align:center;width:100%}.status-card .action-row{margin-top:1.5rem}.status-orb{align-items:center;background:var(--yellow);border:3px solid var(--green);border-radius:50%;color:var(--green);display:flex;font-size:2rem;height:4rem;justify-content:center;margin:0 auto 1rem;width:4rem}.success-orb{background:var(--mint)}.progress-track{background:#e0ebe1;border-radius:99px;height:.7rem;margin:1.5rem 0;overflow:hidden}.progress-fill{background:var(--yellow);display:block;height:100%;transition:width .3s ease;width:48%}.progress-uploading{width:68%}.progress-retrying{animation:progress-pulse 1s infinite alternate;width:35%}.progress-failed{background:var(--coral);width:100%}@keyframes progress-pulse{0%{opacity:.45}to{opacity:1}}@media (max-width:619px){.sponsor-bridge{gap:.75rem;grid-template-columns:1fr;text-align:center}.sponsor-copy{justify-items:center;min-width:0;text-align:center}.sponsor-logo{justify-self:center;max-width:5rem}.sponsor-download{justify-items:center;min-width:0}.sponsor-badge{width:6rem}.page-header{align-items:stretch;flex-direction:column;gap:.75rem;padding-bottom:1.25rem}.event-branding{width:100%}.event-header-logo{flex-basis:3.5rem;width:3.5rem}.event-details span,.event-details strong{white-space:nowrap}.header-links{justify-content:space-between;width:100%}}@media (min-width:620px){.sponsor-bridge{grid-template-columns:auto minmax(0,1fr) auto;text-align:left}.sponsor-copy{justify-items:start}.sponsor-download{justify-items:end}.moments-shell{padding-left:2rem;padding-right:2rem}.moments-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.moment-image{height:11rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.bottom-nav{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.album-shell{max-width:920px}.album-header{padding:.5rem 0 1.5rem}.album-header h1{margin:.4rem 0 .75rem}.archive-note{background:var(--mint);border:1px dashed var(--green);border-radius:999px;color:var(--green);display:inline-block;font-size:.78rem;font-weight:800;margin:.25rem 0 0;padding:.55rem .8rem}.album-tabs{display:grid;grid-gap:.55rem;gap:.55rem;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 1.75rem;overflow:visible;padding:.3rem 0 .8rem}.album-tabs>button:first-child{grid-column:1/-1}.album-tabs button{background:white;border:2px solid #c3d4c5;border-radius:999px;color:var(--green);cursor:pointer;font-size:.78rem;font-weight:800;min-width:0;padding:.65rem .45rem}.album-tabs button.is-selected{background:var(--yellow);border-color:var(--green);box-shadow:2px 2px 0 var(--green)}.public-album-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.public-moment-card{background:white;border:2px solid #d5e0d5;border-radius:1rem;overflow:hidden;position:relative}.public-moment-link{display:block;text-decoration:none}.public-moment-image{aspect-ratio:1;background:#e7efe7;overflow:hidden;position:relative}.public-moment-image img{display:block;height:100%;object-fit:cover;transition:transform .2s ease;width:100%}.public-moment-link:hover .public-moment-image img{transform:scale(1.03)}.public-moment-category-badge{background:var(--yellow);border:1px solid var(--green);border-radius:999px;color:var(--green);font-size:.68rem;font-weight:900;left:.6rem;padding:.3rem .5rem;position:absolute;top:.6rem}.public-moment-body{padding:.75rem .7rem .2rem}.public-moment-caption{color:#405047;font-size:.78rem;line-height:1.4;margin:0 0 .45rem}.public-moment-body strong{color:var(--charcoal);display:block;font-size:.76rem;line-height:1.35}.public-moment-footer{align-items:center;display:flex;justify-content:space-between;padding:.15rem .25rem .15rem .7rem}.public-moment-footer time{color:#68756b;font-size:.7rem}.like-button{background:none;border:0;color:#7a8a7e;cursor:pointer;font-size:.8rem;font-weight:800;padding:.35rem .45rem .55rem}.detail-actions .is-liked,.like-button.is-liked{color:#c43d35}.album-loading{padding:1rem 0;text-align:center}.detail-shell{max-width:680px}.detail-card{background:white;border:3px solid var(--green);border-radius:1.5rem;overflow:hidden;padding-bottom:1.5rem}.detail-image{background:#e7efe7;display:block;max-height:70vh;object-fit:contain;width:100%}.detail-actions,.detail-card .error-message,.detail-card .eyebrow,.detail-card h1,.detail-card time{margin-left:1.25rem;margin-right:1.25rem}.detail-card .eyebrow{margin-top:1.25rem;margin-bottom:.4rem}.detail-card h1{font-size:clamp(2.5rem,10vw,4rem);margin-bottom:.35rem}.detail-actions{margin-top:1.5rem}@media (min-width:620px){.album-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.album-tabs>button:first-child{grid-column:1;grid-row:span 2}.public-album-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.public-moment-image{aspect-ratio:1.05}}.detail-card .detail-caption,.detail-card .detail-identity{margin-left:1.25rem;margin-right:1.25rem}.detail-card .detail-caption{font-size:1.1rem;line-height:1.5;margin-bottom:.6rem}.detail-card .detail-identity{margin-bottom:.35rem}.admin-shell{max-width:980px}.admin-shell h1{font-size:clamp(2.4rem,8vw,4.5rem)}.admin-hero{padding:1.5rem}.admin-hero h2{color:white;margin-bottom:1.25rem}.admin-metrics{display:grid;grid-gap:.65rem;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-metric{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);border-radius:.8rem;display:grid;padding:.8rem}.admin-metric span{color:#d8ecdf;font-size:.72rem}.admin-metric strong{color:var(--yellow);font-size:1.7rem}.admin-panel{background:white;border:2px solid #d5e0d5;border-radius:1rem;margin:1rem 0;padding:1rem}.admin-panel h2{align-items:center;display:flex;justify-content:space-between;margin-bottom:.8rem}.admin-activity{list-style:none;margin:0;padding:0}.admin-activity li,.admin-list-row,.health-list>div{align-items:center;border-bottom:1px solid #e4ece4;display:flex;gap:.75rem;justify-content:space-between;padding:.65rem 0}.admin-activity li:last-child,.admin-list-row:last-child{border-bottom:0}.admin-activity time{color:var(--green);font-size:.75rem;font-weight:900}.admin-links,.admin-mode-row{display:flex;flex-wrap:wrap;gap:.65rem}.health-badge{border-radius:99px;font-size:.7rem;padding:.3rem .55rem;text-transform:uppercase}.health-ok{background:var(--mint);color:var(--green)}.health-degraded{background:#ffe0d8;color:#8b2c1e}.health-list>div{font-size:.8rem}.admin-moment-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.admin-moment-placeholder{align-items:center;background:#e7efe7;border-radius:.75rem;display:flex;font-size:3rem;height:11rem;justify-content:center;margin-bottom:.8rem}.admin-label{color:var(--green);display:grid;font-size:.8rem;font-weight:800;grid-gap:.4rem;gap:.4rem;margin:.8rem 0}.admin-label input,.admin-label textarea,.admin-search input{background:#fffdf9;border:2px solid #b4c6b8;border-radius:.7rem;padding:.65rem;width:100%}.admin-label textarea{min-height:4rem;resize:vertical}.admin-search{display:flex;gap:.65rem;margin-bottom:1rem}.admin-search input{flex:1 1}.admin-login{margin:10vh auto;max-width:480px}.admin-login form{display:grid;grid-gap:1rem;gap:1rem}.full-button{width:100%}.funnel-list,.sponsor-metric-grid{display:grid;grid-gap:.55rem;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.funnel-list>div,.sponsor-metric-grid>div{align-items:baseline;background:#f6faf5;border-radius:.65rem;display:flex;justify-content:space-between;padding:.65rem}.funnel-list span,.sponsor-metric-grid span{color:#56635b;font-size:.72rem}.funnel-list strong,.sponsor-metric-grid strong{color:var(--green);font-size:1.1rem}.sponsor-metrics{border-color:#b9d9bd}@media (min-width:620px){.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}