: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-mark{color:var(--green);font-size:1.4rem;font-weight:900;letter-spacing:-.08em;text-decoration:none}.brand-mark span{color:var(--coral)}.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}.full-button{width:100%}.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{background:var(--mint);border:2px dashed var(--green);border-radius:var(--radius);color:var(--green);display:grid;grid-gap:.25rem;gap:.25rem;padding:1rem 1.1rem}.sponsor-bridge strong{font-size:.95rem}.sponsor-bridge p{font-size:.8rem;margin:0}.sponsor-kicker{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sponsor-link{font-size:.8rem;font-weight:900;margin-top:.35rem}.sponsor-unavailable{color:#4c6354;font-size:.75rem}.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{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{border-color:var(--green)}.form-note,.muted-copy{color:#56635b;font-size:.8rem;line-height:1.45}.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}.page-header{align-items:center;display:flex;justify-content:space-between;padding:.5rem 0 2rem}.page-header .text-link{margin:0}.moments-hero{background:var(--green);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:#d8ecdf}.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)}.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{border-color:#8da899;color:white}.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 (min-width:620px){.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))}