@font-face{font-family:Google Sans Local;src:local(Google Sans),local(Product Sans),local(Arial)}:root{--bg:#08080b;--panel:#12121a;--panel-2:#1a1a24;--text:#fff5f8;--muted:#bbb1b8;--accent:#ffaec6;--accent-dark:#ff7fa5;--danger:#ff9a9a;--success:#9cffc8;--line:#ffaec633;font-family:Google Sans Local,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--text);background:radial-gradient(circle at 15% 10%, #ffaec62e, transparent 28rem), radial-gradient(circle at 80% 20%, #ffaec614, transparent 26rem), var(--bg);margin:0}h1,h2,h3,.brand{font-family:Noto Serif,Georgia,serif}a{color:var(--accent);text-decoration:none}button,.button{color:#201017;background:var(--accent);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;min-height:42px;padding:.85rem 1.1rem;font-weight:800;display:inline-flex}button:hover,.button:hover{background:var(--accent-dark)}button.secondary,.button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}button.small,.button.small{min-height:34px;padding:.55rem .8rem;font-size:.9rem}.link-button{color:var(--accent);background:0 0;min-height:auto;padding:0}.app-shell{width:min(1100px,100% - 24px);margin:0 auto}.topbar{z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;padding:1rem 0;display:flex;position:sticky;top:0}.brand{color:var(--text);font-size:1.7rem;font-weight:900}nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1rem;display:flex}main{padding:2rem 0 4rem}.hero,.card,.auth-card{border:1px solid var(--line);background:linear-gradient(#ffffff0f,#ffffff06);border-radius:28px;box-shadow:0 24px 80px #00000059}.hero{text-align:center;padding:clamp(2rem,8vw,6rem)}.hero h1{margin:.2rem 0;font-size:clamp(3rem,12vw,7rem)}.hero p{max-width:680px;color:var(--muted);margin:.5rem auto;font-size:1.2rem}.badge{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-weight:900}.actions,.row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.hero .actions{justify-content:center}.card,.auth-card{max-width:760px;margin:0 auto;padding:clamp(1rem,5vw,2rem)}.card.wide{max-width:1100px}.auth-card{max-width:440px}.muted{color:var(--muted)}.event-code{color:var(--accent);letter-spacing:.12em;font-size:3rem;font-weight:900}.qr-box{background:#fff;border-radius:18px;width:max-content;margin:1rem 0;padding:1rem}code{word-break:break-all;color:var(--accent)}form{gap:.9rem;display:grid}input,textarea,select{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--text);font:inherit;border-radius:16px;padding:.9rem 1rem}textarea{resize:vertical;min-height:96px}label{color:var(--muted);gap:.35rem;display:grid}.alert,.success{border-radius:16px;margin:.75rem 0;padding:.85rem 1rem}.alert{color:var(--danger);background:#ff9a9a1f;border:1px solid #ff9a9a38}.success{color:var(--success);background:#9cffc81f;border:1px solid #9cffc838}.frames{color:var(--accent);font-size:1.3rem;font-weight:900}.camera-box{gap:1rem;display:grid}.camera-preview,.photo-preview{object-fit:cover;border:1px solid var(--line);background:#000;border-radius:24px;width:100%;max-height:70vh}.hidden{display:none}.preview-wrap{gap:1rem;margin-top:1rem;display:grid}.filter-bw{filter:grayscale()}.filter-warm{filter:sepia(.25)saturate(1.25)}.filter-vintage{filter:sepia(.45)contrast(1.1)brightness(.95)}.filter-disposable{filter:contrast(1.2)saturate(1.35)brightness(1.05)}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}figure{background:var(--panel);border:1px solid var(--line);border-radius:20px;margin:0;overflow:hidden}figure img{aspect-ratio:1;object-fit:cover;width:100%;display:block}figcaption{color:var(--muted);padding:.7rem}.event-list{gap:1rem;display:grid}.event-item{background:var(--panel);border:1px solid var(--line);border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}@media (width<=700px){.topbar{flex-direction:column;align-items:flex-start;gap:1rem}nav{justify-content:flex-start;gap:.7rem}.event-item{flex-direction:column;align-items:flex-start}button,.button{width:100%}.row button,.row .button,nav button,nav .button{width:auto}}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#000000c7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--line);background:linear-gradient(#1a1a24fa,#12121afa);border-radius:28px;width:min(520px,100%);max-height:calc(100vh - 2rem);padding:clamp(1rem,4vw,1.5rem);overflow:auto;box-shadow:0 24px 90px #0000008c}.preview-modal{gap:1rem;display:grid}.square-preview{aspect-ratio:1;object-fit:cover;max-height:min(62vh,520px)}.modal-actions{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=700px){.modal-actions{grid-template-columns:1fr}}.event-page{gap:1.4rem;display:grid}.event-hero-card{grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:1.2rem;display:grid}.event-main-info,.event-side-panel,.event-section{border:1px solid var(--line);background:#ffffff09;border-radius:24px;padding:clamp(1rem,4vw,1.4rem)}.event-main-info h1{margin:.6rem 0 .4rem;font-size:clamp(2rem,6vw,4rem)}.event-description{color:var(--text);white-space:pre-wrap;font-size:1.05rem;line-height:1.55}.event-side-panel{gap:1rem;display:grid}.status-pill{border:1px solid var(--line);background:var(--panel);border-radius:999px;width:max-content;padding:.5rem .8rem;font-weight:900}.status-upcoming{color:#ffd28a}.status-active{color:var(--success)}.status-ended{color:var(--muted)}.event-meta-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin-top:1rem;display:grid}.info-item{background:var(--panel);border:1px solid var(--line);border-radius:18px;gap:.35rem;padding:.9rem;display:grid}.info-item span{color:var(--muted);font-size:.9rem}.info-item strong{color:var(--text)}.accent-text{letter-spacing:.08em;color:var(--accent)!important}.timer-card,.qr-panel,.film-locked-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:1rem}.timer-card strong{color:var(--accent);margin-top:.35rem;font-family:Noto Serif,Georgia,serif;font-size:clamp(1.8rem,6vw,2.8rem);line-height:1;display:block}.qr-box.compact{margin:.75rem 0}.event-actions,.event-section h2,.film-locked-card h3{margin-top:0}.section-title-row{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.film-locked-card p{color:var(--muted);margin-bottom:0;line-height:1.5}.event-gallery-grid{margin-top:1rem}.camera-square-frame{aspect-ratio:1;border:1px solid var(--line);background:#000;border-radius:24px;width:100%;max-height:min(74vh,720px);position:relative;overflow:hidden}.camera-square-frame .camera-preview{object-fit:cover;border:0;border-radius:0;width:100%;height:100%;max-height:none;display:block}.camera-grid{pointer-events:none;background:linear-gradient(90deg,#0000 calc(33.333% - .5px),#ffffffb8 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px)),linear-gradient(90deg,#0000 calc(66.666% - .5px),#ffffffb8 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px)),linear-gradient(#0000 calc(33.333% - .5px),#ffffffb8 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px)),linear-gradient(#0000 calc(66.666% - .5px),#ffffffb8 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px));position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff2e}@media (width<=900px){.event-hero-card{grid-template-columns:1fr}}.camera-app-shell{width:100%;min-height:100vh;margin:0}.camera-main{min-height:100vh;padding:0}.camera-page-screen{background:radial-gradient(circle at 50% 8%,#ffaec629,#0000 28rem),linear-gradient(#050507,#0b0b10 46%,#050507);min-height:100vh;position:relative;overflow:hidden}.phone-camera-shell{min-height:100vh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));color:#fff;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.75rem,3vh,1.4rem);display:grid;position:relative}.phone-camera-topbar{z-index:5;grid-template-columns:minmax(70px,.8fr) minmax(0,1.4fr) minmax(76px,.8fr);align-items:start;gap:.75rem;display:grid}.phone-camera-frames,.phone-camera-meta{text-shadow:0 2px 16px #000000a6;gap:.2rem;padding-top:.15rem;display:grid}.phone-camera-frames span,.phone-camera-meta span{color:#ffffffad;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}.phone-camera-frames strong,.phone-camera-meta strong{color:#fff;font-size:clamp(.92rem,3vw,1.05rem);line-height:1.05}.phone-camera-meta{text-align:right;justify-items:end}.phone-camera-title-wrap{text-align:center;justify-items:center;gap:.55rem;min-width:0;display:grid}.phone-camera-title-wrap h1{color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 16px #000000b8;width:100%;margin:0;font-size:clamp(1.05rem,5vw,1.6rem);line-height:1.12;overflow:hidden}.phone-open-camera{color:#1c1015;background:var(--accent);border:1px solid #fff3;width:auto;min-height:34px;padding:.5rem .9rem;font-size:.85rem;box-shadow:0 10px 34px #ffaec63d}.phone-open-camera.active{color:#fffc;box-shadow:none;background:#ffffff14}.phone-camera-stage{place-items:center;min-height:0;display:grid}.phone-camera-square{aspect-ratio:1;background:linear-gradient(135deg,#ffffff0f,#0000),#000;border:1px solid #ffffff24;border-radius:clamp(24px,7vw,44px);width:min(94vw,72vh,760px);position:relative;overflow:hidden;box-shadow:0 28px 110px #000000b8,inset 0 0 0 1px #ffffff14}.phone-camera-square .camera-preview{object-fit:cover;background:#000;border:0;border-radius:0;width:100%;height:100%;max-height:none;display:block}.phone-camera-placeholder{color:#ffffff94;text-align:center;pointer-events:none;background:radial-gradient(circle,#ffaec61f,#000000b8);place-items:center;padding:1.5rem;font-size:clamp(.95rem,4vw,1.2rem);display:grid;position:absolute;inset:0}.phone-camera-controls{z-index:5;grid-template-columns:72px 1fr 72px;place-items:center;gap:1rem;padding-bottom:.2rem;display:grid}.phone-shutter-button{background:#fffffff5;border:4px solid #ffffffe6;border-radius:50%;width:clamp(74px,20vw,92px);height:clamp(74px,20vw,92px);min-height:0;padding:0;box-shadow:0 0 0 7px #ffffff1f,0 18px 50px #0000008c}.phone-shutter-button span{background:#fff;border:1px solid #0000001a;border-radius:50%;width:68%;height:68%;box-shadow:inset 0 0 0 2px #00000008}.phone-shutter-button:disabled{opacity:.42;cursor:not-allowed}.phone-shutter-button:active:not(:disabled){transform:scale(.94)}.phone-camera-side-button{color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff1f;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;min-height:0;padding:0;font-size:1.45rem;font-weight:900;display:inline-flex;box-shadow:0 14px 36px #00000052}.phone-camera-side-button img{width:60%}.phone-camera-side-button:hover,.phone-camera-side-button.active{color:#1c1015;background:var(--accent)}.phone-camera-message{left:50%;bottom:calc(104px + env(safe-area-inset-bottom));z-index:20;width:min(520px,100% - 2rem);position:fixed;transform:translate(-50%)}.phone-camera-message .alert,.phone-camera-message .muted,.camera-floating-alert{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.camera-status-banner,.camera-floating-alert{left:50%;top:calc(1rem + env(safe-area-inset-top));z-index:30;text-align:center;width:min(560px,100% - 2rem);margin:0;position:fixed;transform:translate(-50%)}.camera-floating-alert{top:auto;bottom:calc(104px + env(safe-area-inset-bottom))}@media (width<=700px){.phone-open-camera,.phone-shutter-button,.phone-camera-side-button{width:auto}.phone-shutter-button{width:78px;height:78px}.phone-camera-side-button{width:52px;height:52px}.phone-camera-controls .phone-camera-side-button,.phone-camera-controls .phone-shutter-button{width:52px}.phone-camera-controls .phone-shutter-button{width:78px}}@media (width<=420px){.phone-camera-topbar{grid-template-columns:64px minmax(0,1fr) 72px;gap:.55rem}.phone-camera-frames span,.phone-camera-meta span{font-size:.65rem}.phone-open-camera{padding:.46rem .72rem;font-size:.78rem}}.topbar{gap:1rem}.hamburger-button{border:1px solid var(--line);width:46px;height:46px;min-height:46px;color:var(--text);z-index:31;background:#ffffff0e;flex-direction:column;gap:4px;padding:0;display:flex;position:relative}.hamburger-button:hover{background:#ffaec61f}.hamburger-button span{background:var(--text);border-radius:999px;width:19px;height:2px;transition:transform .18s,opacity .18s;display:block}.hamburger-button.active span:first-child{transform:translateY(6px)rotate(45deg)}.hamburger-button.active span:nth-child(2){opacity:0}.hamburger-button.active span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.hamburger-menu{z-index:30;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transform-origin:100% 0;background:#12121af5;border-radius:22px;gap:.35rem;width:min(310px,100vw - 24px);padding:.65rem;transition:opacity .18s,transform .18s;position:absolute;top:calc(100% - .35rem);right:0;transform:translateY(-8px)scale(.98);box-shadow:0 24px 80px #0000007a}.hamburger-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.hamburger-menu a{width:100%;color:var(--text);border-radius:16px;padding:.9rem 1rem;font-weight:800}.hamburger-menu a:hover{color:var(--accent);background:#ffaec61c}.profile-card{gap:1.2rem;display:grid}.profile-avatar{background:linear-gradient(135deg, var(--accent), var(--accent-dark));color:#201017;border-radius:50%;place-items:center;width:92px;height:92px;margin:0 auto;font-size:2rem;font-weight:950;display:grid;box-shadow:0 18px 54px #ffaec62e}.profile-card h1{margin:.2rem 0;font-size:clamp(2rem,8vw,4rem)}.profile-info-list{gap:.75rem;display:grid}.profile-info-item{border:1px solid var(--line);background:#ffffff09;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.profile-info-item span{color:var(--muted)}.profile-info-item strong{text-align:right;word-break:break-word}.profile-logout-button{justify-self:flex-start}.gallery-photo-card{position:relative}.gallery-photo-button{width:100%;min-height:0;color:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:0;padding:0;display:block}.gallery-photo-button:hover{background:0 0}.gallery-photo-button img{transition:transform .2s,filter .2s}.gallery-photo-button:hover img{filter:brightness(1.08);transform:scale(1.035)}.photo-viewer-backdrop{padding:clamp(.75rem,4vw,1.5rem)}.photo-viewer-modal{gap:.85rem;width:min(760px,100%);max-height:calc(100vh - 2rem);display:grid}.photo-viewer-modal>img{aspect-ratio:1;object-fit:contain;border:1px solid var(--line);background:#000;border-radius:24px;width:100%;max-height:calc(100vh - 7.5rem);display:block;box-shadow:0 24px 80px #0000008c}.photo-viewer-topbar{justify-content:space-between;align-items:center;gap:1rem;padding:.2rem .1rem;display:flex}.photo-viewer-topbar div{gap:.18rem;display:grid}.photo-viewer-topbar span{color:var(--muted);font-size:.92rem}.photo-viewer-close{border:1px solid var(--line);width:44px;height:44px;min-height:44px;color:var(--text);background:#ffffff14;flex:none;padding:0;font-size:1.7rem;line-height:1}.photo-viewer-close:hover{background:#ffaec629}@media (width<=700px){.topbar{flex-direction:row;align-items:center}.hamburger-button{width:46px}.hamburger-menu{width:100%;left:0;right:0}.hamburger-menu a{width:100%}.profile-info-item{flex-direction:column;align-items:flex-start}.profile-info-item strong{text-align:left}.profile-logout-button{width:100%}}.archive-download-card{background:linear-gradient(135deg,#ffaec61f,#ffffff09);border:1px solid #ffaec647;border-radius:24px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;margin:1rem 0 1.25rem;padding:1.1rem;display:grid;box-shadow:0 18px 56px #0000002e}.archive-download-card h2{margin:0 0 .35rem}.archive-download-card p{margin:0}.archive-download-alert{grid-column:1/-1;margin:0}@media (width<=760px){.archive-download-card{grid-template-columns:1fr}.archive-download-card .button{width:100%}}.phone-camera-actions{flex-wrap:wrap;justify-content:center;gap:.45rem;display:flex}.phone-switch-camera{color:#ffffffe6;width:auto;min-height:34px;box-shadow:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff17;border:1px solid #fff3;border-radius:999px;padding:.5rem .78rem;font-size:.8rem}.phone-switch-camera:hover:not(:disabled){color:#1c1015;background:var(--accent)}.phone-switch-camera:disabled{opacity:.55;cursor:not-allowed}@media (width<=420px){.phone-camera-actions{gap:.35rem}.phone-switch-camera{padding:.46rem .66rem;font-size:.74rem}}
