:root{--ink:#17151a;--soft:#625b67;--paper:#fbf8f5;--line:rgba(62,49,73,.14);--violet:#6b57dd;--surface:#fffdfb;--ease:cubic-bezier(.22,1,.36,1);font-family:Manrope,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--paper)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid rgba(86,65,221,.5);outline-offset:3px}img,video{display:block;max-width:100%}.wordmark{font-weight:800;font-size:1.15rem;letter-spacing:-.06em}.eyebrow{margin:0;color:var(--violet);font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.gradient-stage{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(145deg,#a9bfff,#9480ef 32%,#e9b1c8 66%,#f4b79c)}.gradient-stage:before{content:"";position:absolute;z-index:-1;inset:-24%;background:radial-gradient(circle at 15% 15%,rgba(240,247,255,.95),transparent 29%),radial-gradient(circle at 76% 20%,rgba(170,123,243,.8),transparent 31%),radial-gradient(circle at 78% 84%,rgba(255,187,154,.9),transparent 38%),radial-gradient(circle at 20% 80%,rgba(133,170,255,.7),transparent 34%);filter:blur(24px);animation:drift 9s ease-in-out infinite alternate}.primary,.secondary{min-height:52px;border:0;border-radius:999px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;font-weight:800}.primary{background:var(--ink);color:#fff;box-shadow:0 15px 32px rgba(20,17,24,.2)}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}
.splash{min-height:100dvh;display:grid;place-content:center;padding:30px;color:#fff;text-align:center}.splash h1{margin:0;font-size:clamp(3.5rem,18vw,7rem);letter-spacing:-.1em;animation:enter .8s var(--ease)}.splash p{max-width:260px;margin:20px auto 0;color:rgba(255,255,255,.78);font-size:.72rem;line-height:1.5}.access{min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:space-between}.access-card{max-width:540px;margin:auto;padding:30px;border:1px solid rgba(255,255,255,.5);border-radius:32px;background:rgba(255,255,255,.78);backdrop-filter:blur(25px);box-shadow:0 25px 70px rgba(55,38,80,.15)}.access-card h1{font-size:clamp(2.2rem,9vw,4rem);line-height:.98;letter-spacing:-.06em;margin:12px 0}.access-card p{color:var(--soft);line-height:1.6}
.join{min-height:100dvh;padding:max(22px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(150px,1fr) auto;color:#fff}.join-head{display:flex;justify-content:space-between;align-items:center}.event-chip{padding:8px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-size:.62rem;font-weight:800;letter-spacing:.1em}.event-title{display:grid;place-content:center;text-align:center}.event-title strong{font-family:Georgia,serif;font-size:clamp(2.8rem,13vw,5rem);font-style:italic;line-height:.9;font-weight:500;letter-spacing:-.06em}.event-title span{margin-top:14px;font-size:.66rem;font-weight:800;letter-spacing:.15em}.join-card{width:min(100%,520px);margin:0 auto;padding:27px 22px 20px;border:1px solid rgba(255,255,255,.6);border-radius:30px;background:rgba(255,252,250,.88);color:var(--ink);box-shadow:0 25px 70px rgba(55,38,80,.16);backdrop-filter:blur(24px)}.join-card h1{font-size:clamp(2.3rem,11vw,4rem);line-height:.96;letter-spacing:-.07em;margin:10px 0}.join-card>p{color:var(--soft);font-size:.82rem;line-height:1.55}.join-card label{display:block;margin:22px 0 8px;font-size:.72rem;font-weight:800}.join-card input{width:100%;min-height:52px;border:1px solid var(--line);border-radius:14px;padding:0 16px;background:#fff}.join-card .primary{width:100%;justify-content:space-between;margin-top:12px}.fine{font-size:.61rem!important;text-align:center;margin:13px 5px 0!important}.form-error{color:#b52b43!important;font-weight:700}
.camera{position:fixed;inset:0;overflow:hidden;background:#08080a;color:#fff}.camera video{width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(5,5,8,.5),transparent 25%,transparent 60%,rgba(5,5,8,.9));pointer-events:none}.camera-top{position:absolute;z-index:3;left:0;right:0;top:0;padding:max(14px,env(safe-area-inset-top)) 16px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;text-align:center}.camera-top div{display:flex;flex-direction:column;font-size:.74rem;font-weight:800}.camera-top small{font-size:.57rem;color:rgba(255,255,255,.6);letter-spacing:.1em}.round,.queue{width:46px;height:46px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(7,7,10,.4);color:#fff;backdrop-filter:blur(15px)}.queue{border-radius:999px;font-size:.7rem}.camera-bottom{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:18px 22px max(18px,env(safe-area-inset-bottom));text-align:center}.mode{font-size:.58rem;font-weight:800;letter-spacing:.18em;color:rgba(255,255,255,.7)}.controls{display:grid;grid-template-columns:62px 1fr 62px;align-items:center;justify-items:center}.peek,.flip{width:48px;height:48px;border:1px solid rgba(255,255,255,.3);border-radius:14px;background:rgba(255,255,255,.1);color:#fff;font-size:1.2rem}.flip{border-radius:50%}.shutter{width:78px;height:78px;padding:5px;border:2px solid #fff;border-radius:50%;background:transparent}.shutter i{display:block;width:100%;height:100%;border-radius:50%;background:#fff}.library{min-height:44px;border:0;background:transparent;color:rgba(255,255,255,.64);font-size:.67rem;font-weight:700}.camera-state{position:absolute;z-index:4;width:min(calc(100% - 36px),390px);left:50%;top:50%;transform:translate(-50%,-50%);padding:26px;border:1px solid rgba(255,255,255,.15);border-radius:26px;background:rgba(14,14,18,.82);text-align:center;backdrop-filter:blur(22px)}.camera-state h2{margin:0}.camera-state p{color:rgba(255,255,255,.65);font-size:.77rem;line-height:1.55}.camera-state .secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}.hidden-input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}
.preview{position:fixed;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#09080b;color:#fff}.preview-top{min-height:68px;padding:max(10px,env(safe-area-inset-top)) 18px 8px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;text-align:center;font-size:.75rem;font-weight:800}.preview-top button{width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:1.4rem}.preview-media{min-height:0;display:grid;place-items:center;overflow:hidden}.preview-media img{width:100%;height:100%;object-fit:contain}.preview-panel{padding:16px 18px max(18px,env(safe-area-inset-bottom));border-radius:28px 28px 0 0;background:#faf6f3;color:var(--ink)}.filters{display:flex;justify-content:center;gap:20px;margin-bottom:16px}.filter{min-width:72px;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.64rem;font-weight:800}.filter i{width:50px;height:50px;border:1px solid var(--line);border-radius:50%;background:linear-gradient(135deg,#b9c7ff,#e7b0c6,#f3b49d)}.filter.active i{border:3px solid var(--ink);box-shadow:0 0 0 3px #faf6f3,0 0 0 4px rgba(0,0,0,.2)}.preview-actions{display:grid;grid-template-columns:.9fr 1.1fr;gap:9px}.preview-panel p{text-align:center;color:#746d78;font-size:.61rem}
.gallery{min-height:100dvh;padding-bottom:110px;background:radial-gradient(circle at 95% 0,rgba(203,190,255,.5),transparent 28%),radial-gradient(circle at 0 18%,rgba(255,202,181,.45),transparent 30%),var(--paper)}.gallery-head{height:74px;padding:max(16px,env(safe-area-inset-top)) 20px 8px;display:flex;align-items:center;justify-content:space-between}.queue-light{border-color:var(--line);background:rgba(255,255,255,.6);color:var(--ink)}.identity{text-align:center;padding:35px 20px 27px}.identity h1{font-family:Georgia,serif;font-size:clamp(2.8rem,12vw,5rem);font-style:italic;font-weight:500;letter-spacing:-.06em;line-height:.9;margin:12px 0}.identity p:last-child{color:#706974;font-size:.7rem}.tabs{width:calc(100% - 32px);max-width:520px;margin:auto;padding:4px;border:1px solid rgba(50,40,60,.1);border-radius:999px;display:grid;grid-template-columns:1fr 1fr;background:rgba(255,255,255,.58)}.tabs button{min-height:44px;border:0;border-radius:999px;background:transparent;color:#6c6571;font-size:.68rem;font-weight:800}.tabs button.active{background:var(--ink);color:#fff}.summary{padding:24px 18px 14px;display:flex;justify-content:space-between;align-items:baseline;font-size:.68rem}.summary strong{text-transform:uppercase;letter-spacing:.08em}.summary span{color:#746d78}.grid{padding:0 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:6px}.photo{position:relative;min-height:190px;border:0;border-radius:5px;padding:0;overflow:hidden;background:#e6dfe6}.photo:nth-child(5n+1){grid-row:span 2;min-height:386px}.photo img{width:100%;height:100%;object-fit:cover}.photo span{position:absolute;left:8px;bottom:8px;padding:5px 8px;border-radius:999px;background:rgba(10,9,12,.5);color:#fff;font-size:.55rem}.empty{min-height:330px;padding:60px 30px;display:grid;place-content:center;text-align:center}.empty h2{max-width:300px;font-family:Georgia,serif;font-style:italic;font-weight:500;line-height:1.08}.empty p{max-width:280px;color:#746d78;font-size:.72rem;line-height:1.5}.floating{position:fixed;z-index:10;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);min-height:54px;border:0;border-radius:999px;padding:0 22px;background:rgba(23,21,26,.94);color:#fff;font-size:.72rem;font-weight:800;box-shadow:0 18px 40px rgba(23,21,26,.25)}
.lightbox{position:fixed;z-index:50;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#080709;color:#fff}.lightbox header{min-height:68px;padding:max(10px,env(safe-area-inset-top)) 16px 8px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;text-align:center}.lightbox header button{width:44px;height:44px;border:1px solid rgba(255,255,255,.15);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:1.4rem}.lightbox>img{width:100%;height:100%;object-fit:contain}.lightbox footer{padding:14px 18px max(18px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between}.lightbox footer div{display:flex;gap:8px}.lightbox footer button{min-height:44px;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:0 14px;background:rgba(255,255,255,.08);color:#fff}.toast{position:fixed;z-index:80;left:50%;bottom:90px;transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 16px;border-radius:999px;background:rgba(24,21,27,.94);color:#fff;font-size:.7rem;font-weight:800;white-space:nowrap}
@keyframes drift{to{transform:translate3d(4%,2%,0) scale(1.08)}}@keyframes enter{from{opacity:0;transform:scale(.95)}}
@media(min-width:760px){.join{grid-template-columns:.85fr 1.15fr;grid-template-rows:auto 1fr;gap:30px;padding:34px}.join-head{grid-column:1/-1}.event-title{text-align:left}.join-card{align-self:center;padding:38px}.gallery{max-width:1100px;margin:auto}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.photo,.photo:nth-child(5n+1){min-height:260px;grid-row:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.preview-media{position:relative}.signature-mark{position:absolute;left:50%;bottom:9%;transform:translateX(-50%);display:none;color:#fff;font-size:clamp(1.8rem,9vw,4rem);font-weight:800;letter-spacing:-.08em;text-shadow:0 2px 18px rgba(0,0,0,.5)}.signature-mark.show{display:flex;flex-direction:column;align-items:center}.signature-mark small{margin-top:3px;font-size:.46rem;font-weight:700;letter-spacing:.06em}
