.page{min-height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.capture-page{background:linear-gradient(180deg,#1a0a2e,#2d1b69);height:100dvh;max-height:100dvh;overflow:hidden}.capture-main{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.top-bar{display:flex;justify-content:space-between;padding:.5rem 1rem;flex-shrink:0}.icon-btn{width:52px;height:52px;border:2px solid rgba(255,255,255,.25);border-radius:50%;background:#ffffff14;color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.icon-btn.on{background:#ff6b9d59;border-color:#ff6b9d}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn.small{width:40px;height:40px}.banner{margin:0 1rem .5rem;padding:.65rem .85rem;border-radius:10px;font-size:.9rem}.banner.error{background:#dc262640;border:1px solid rgba(248,113,113,.5)}.hero-section{padding:0 1rem .75rem;flex-shrink:0}.hero-banner{width:100%;border-radius:16px;padding:1.1rem 1rem .95rem;text-align:center;background:linear-gradient(135deg,gold,#ff8c42 45%,#ff6b9d);box-shadow:0 8px 24px #00000059}.hero-title{margin:0;font-size:clamp(1.75rem,6vw,2.5rem);font-weight:900;color:#1a0a2e;line-height:1.1;text-shadow:0 4px 12px rgba(26,10,46,.25)}.hero-subtitle{margin:.35rem 0 0;font-size:clamp(1rem,3.5vw,1.35rem);font-weight:700;color:#1a0a2e;opacity:.88}.hero-tagline{margin:.5rem 0 0;font-size:.95rem;color:#1a0a2e;opacity:.72}.camera-stage-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 1rem .5rem}.camera-stage{position:relative;height:100%;width:auto;max-width:100%;max-height:100%;aspect-ratio:9 / 16;border-radius:20px;overflow:hidden;box-shadow:0 12px 40px #0006}.stage-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.camera-viewport{position:absolute;overflow:hidden;border-radius:4%;box-sizing:border-box;border:2px dashed rgba(255,215,0,.55);box-shadow:inset 0 0 0 2px #ffffff59}.stage-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);opacity:0;transition:opacity .25s}.stage-video.visible{opacity:1}.camera-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;text-align:center;padding:1rem;font-size:.95rem;color:#ffffffd9}.capture-dock{flex-shrink:0;padding:.65rem 1rem calc(.85rem + env(safe-area-inset-bottom));display:flex;justify-content:center;background:linear-gradient(180deg,#1a0a2e00,#1a0a2ee0 28%,#2d1b69f5);border-top:1px solid rgba(255,255,255,.08);box-shadow:0 -10px 28px #00000047}.capture-btn{width:min(100%,360px);min-height:58px;border:none;border-radius:999px;background:linear-gradient(135deg,gold,#ff6b9d);color:#1a0a2e;font-size:1.25rem;font-weight:800;letter-spacing:.02em;box-shadow:0 8px 32px #ff6b9d73,0 0 0 4px #ffd70040}.capture-btn:disabled{opacity:.5;cursor:not-allowed}.countdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1a0a2ed1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.countdown-number{font-size:clamp(6rem,30vw,12rem);font-weight:900;line-height:1;color:gold;text-shadow:0 0 40px rgba(255,215,0,.6);animation:pulse .9s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.countdown-cancel{margin-top:2rem;padding:.65rem 1.25rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff}.flash-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#fff;pointer-events:none;animation:camera-flash .45s ease-out forwards}@keyframes camera-flash{0%{opacity:0}12%{opacity:.98}to{opacity:0}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:1rem}.modal{width:min(100%,420px);max-height:90dvh;overflow-y:auto;background:#2d1b69;border-radius:16px;padding:1.25rem;box-shadow:0 20px 60px #00000080}.modal h2{margin:0 0 .35rem}.modal-sub{margin:0 0 1rem;opacity:.75;font-size:.9rem}.pin-input{width:100%;padding:.75rem;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#00000040;color:#fff;font-size:1.25rem;letter-spacing:.3em;text-align:center}.modal-actions{display:flex;gap:.75rem;margin-top:1rem}.btn-primary,.btn-secondary{flex:1;min-height:48px;border-radius:10px;border:none;font-weight:600}.btn-primary{background:linear-gradient(135deg,gold,#ff6b9d);color:#1a0a2e}.btn-secondary{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.2)}.form-error{color:#fca5a5;font-size:.85rem;margin:.5rem 0 0}.form-success{color:#86efac;font-size:.85rem;margin:.5rem 0 0}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.1rem}.field span{font-size:.9rem;font-weight:600}.field input[type=number],.field input[type=text]{padding:.65rem;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#00000040;color:#fff;font-size:1rem}.field-actions{display:flex;gap:.5rem}.settings-preview{width:100%;max-height:100px;object-fit:cover;border-radius:10px}.settings-preview.wide{max-height:160px}.hidden-input{display:none}.results-page{background:linear-gradient(180deg,#1a0a2e,#6b2d8a);padding-bottom:2rem}.results-header{padding:1.25rem 1rem .75rem;text-align:center}.results-header h1{margin:0;font-size:1.75rem}.results-header p{margin:.35rem 0 0;opacity:.8}.strip-preview-section{padding:0 1rem 1rem;display:flex;flex-direction:column;align-items:center}.strip-preview-title{margin:0 0 .65rem;font-size:1rem;font-weight:700;opacity:.9}.strip-preview-image{width:min(72vw,280px);border-radius:8px;box-shadow:0 12px 32px #00000073;border:3px solid rgba(255,215,0,.35)}.photo-grid{display:grid;gap:1rem;padding:1rem}.photo-card{margin:0;border-radius:16px;overflow:hidden;background:#00000040;box-shadow:0 8px 24px #00000059}.photo-stack{position:relative;width:100%;aspect-ratio:9 / 16;overflow:hidden;background:#000}.photo-stack .photo-base,.photo-stack .photo-filtered{display:block;width:100%;height:100%;object-fit:cover}.photo-filter-clip{position:absolute;overflow:hidden;border-radius:10px;pointer-events:none}.photo-filter-clip .photo-filtered{position:absolute;max-width:none;object-fit:cover}.photo-card figcaption{padding:.5rem .75rem;font-size:.85rem;opacity:.85}.filter-carousel{padding:.25rem 0 1rem}.filter-carousel-title{margin:0 0 .65rem;padding:0 1rem;font-size:1rem;font-weight:700;opacity:.9}.filter-track{display:flex;gap:.75rem;overflow-x:auto;padding:.25rem 1rem .5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-track::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:.4rem;border:none;background:transparent;color:#fff;padding:0;scroll-snap-align:start;cursor:pointer}.filter-thumb-wrap{width:72px;height:72px;border-radius:14px;overflow:hidden;border:3px solid rgba(255,255,255,.2);box-shadow:0 4px 12px #0000004d;transition:border-color .2s,transform .2s}.filter-thumb-wrap .photo-stack{width:72px;height:72px;aspect-ratio:auto}.filter-chip.selected .filter-thumb-wrap{border-color:gold;transform:scale(1.05);box-shadow:0 0 0 2px #ffd70059}.filter-label{font-size:.75rem;font-weight:600;opacity:.85}.filter-chip.selected .filter-label{color:gold;opacity:1}.filter-active{margin:.35rem 0 0;padding:0 1rem;font-size:.8rem;opacity:.65;text-align:center}.results-actions{padding:0 1rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.share-btn{width:min(100%,360px);min-height:56px;border:none;border-radius:999px;background:linear-gradient(135deg,gold,#ff6b9d);color:#1a0a2e;font-size:1.1rem;font-weight:800}.share-btn:disabled{opacity:.5}.share-hint,.share-msg{margin:0;font-size:.85rem;text-align:center;opacity:.85}.back-link{margin-top:.5rem;font-weight:600;text-decoration:none}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;pointer-events:none;overflow:hidden}.celebration-confetti{position:absolute;top:-8%;left:var(--left, 50%);background:var(--color, #ffd700);border-radius:2px;opacity:0;animation:celebration-confetti-fall var(--duration, 3s) var(--delay, 0s) ease-in forwards}.celebration-emoji,.celebration-balloon{position:absolute;left:var(--left, 50%);font-size:var(--size, 1.8rem);line-height:1;opacity:0;will-change:transform,opacity}.celebration-emoji{top:-10%;animation:celebration-emoji-fall var(--duration, 3.2s) var(--delay, 0s) ease-in forwards}.celebration-balloon{bottom:-12%;animation:celebration-balloon-rise var(--duration, 3.4s) var(--delay, 0s) ease-out forwards}.celebration-firework{position:absolute;left:var(--origin-x, 50%);top:var(--origin-y, 40%);width:0;height:0}.celebration-firework-spark{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--color, #ffd700);opacity:0;animation:celebration-firework-burst 1.4s var(--delay, 0s) ease-out forwards;transform:rotate(var(--angle, 0deg)) translate(0)}.celebration-sparkle-burst{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.celebration-headline{position:relative;z-index:2;margin:0;font-size:clamp(1.8rem,8vw,2.8rem);font-weight:900;color:gold;text-shadow:0 0 24px rgba(255,215,0,.65),0 4px 18px rgba(0,0,0,.45);animation:celebration-headline-pop .7s ease-out both}.celebration-sparkle{position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle,#fff 0%,#ffd700 55%,transparent 100%);opacity:0;animation:celebration-sparkle-radiate 1.8s var(--delay, 0s) ease-out forwards;transform:rotate(var(--angle, 0deg)) translate(0)}@keyframes celebration-confetti-fall{0%{opacity:1;transform:translateZ(0) rotate(0)}to{opacity:.35;transform:translate3d(var(--drift, 0px),110vh,0) rotate(var(--spin, 720deg))}}@keyframes celebration-emoji-fall{0%{opacity:1;transform:translateZ(0) rotate(0) scale(1)}to{opacity:.2;transform:translate3d(var(--drift, 0px),110vh,0) rotate(180deg) scale(.85)}}@keyframes celebration-balloon-rise{0%{opacity:0;transform:translateZ(0) scale(.7)}15%{opacity:1}to{opacity:0;transform:translate3d(var(--drift, 0px),-115vh,0) scale(1.05)}}@keyframes celebration-firework-burst{0%{opacity:0;transform:rotate(var(--angle, 0deg)) translate(0) scale(.3)}20%{opacity:1}to{opacity:0;transform:rotate(var(--angle, 0deg)) translate(72px) scale(1)}}@keyframes celebration-sparkle-radiate{0%{opacity:0;transform:rotate(var(--angle, 0deg)) translate(0) scale(.4)}25%{opacity:1}to{opacity:0;transform:rotate(var(--angle, 0deg)) translate(var(--distance, 120px)) scale(1)}}@keyframes celebration-headline-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.celebration-overlay{display:none}}@media (min-width: 640px){.photo-grid{grid-template-columns:repeat(3,1fr)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;min-height:100dvh}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#1a0a2e;color:#fff;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;cursor:pointer;touch-action:manipulation}img,video{display:block;max-width:100%}a{color:gold}
