:root{--bg: #243028;--bg-soft: #3a4a40;--surface: #f5f0e6;--surface-2: #ebe4d6;--card: #fffcf7;--ink: #243028;--muted: #6a7468;--accent: #bc542a;--accent-hover: #a04624;--danger: #9b2c2c;--line: rgba(36, 48, 40, .12);--radius: 14px;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--shell-bg: radial-gradient(ellipse 80% 55% at 78% 8%, rgba(188, 84, 42, .12), transparent 55%), radial-gradient(ellipse 65% 45% at 8% 88%, rgba(90, 120, 100, .1), transparent 50%), linear-gradient(165deg, #ebe4d6 0%, #f5f0e6 48%, #e5ddd0 100%)}[data-scheme=forest]{--bg: #243028;--bg-soft: #3a4a40;--surface: #f5f0e6;--surface-2: #ebe4d6;--card: #fffcf7;--ink: #243028;--muted: #6a7468;--accent: #bc542a;--accent-hover: #a04624;--line: rgba(36, 48, 40, .12);--shell-bg: radial-gradient(ellipse 80% 55% at 78% 8%, rgba(188, 84, 42, .14), transparent 55%), radial-gradient(ellipse 65% 45% at 8% 88%, rgba(90, 120, 100, .12), transparent 50%), linear-gradient(165deg, #ebe4d6 0%, #f5f0e6 48%, #e5ddd0 100%)}[data-scheme=ocean]{--bg: #0f2a3a;--bg-soft: #184055;--surface: #eef5f8;--surface-2: #dceaf0;--card: #ffffff;--ink: #102530;--muted: #4f6d7a;--accent: #2a8f9e;--accent-hover: #217a87;--line: rgba(16, 37, 48, .12);--shell-bg: radial-gradient(ellipse 75% 50% at 85% 12%, rgba(42, 143, 158, .28), transparent 55%), radial-gradient(ellipse 60% 45% at 5% 90%, rgba(15, 42, 58, .14), transparent 50%), linear-gradient(165deg, #dceaf0 0%, #eef5f8 50%, #d2e4ec 100%)}[data-scheme=blush]{--bg: #3a2428;--bg-soft: #4a3034;--surface: #faf6f4;--surface-2: #f0e6e3;--card: #ffffff;--ink: #2c1b1f;--muted: #7a5c63;--accent: #b85c6a;--accent-hover: #9c4a57;--line: rgba(44, 27, 31, .12);--shell-bg: radial-gradient(ellipse 70% 50% at 90% 10%, rgba(184, 92, 106, .26), transparent 55%), radial-gradient(ellipse 55% 40% at 10% 85%, rgba(58, 36, 40, .1), transparent 50%), linear-gradient(165deg, #f0e6e3 0%, #faf6f4 48%, #ebe0dc 100%)}[data-scheme=midnight]{--bg: #0a0c10;--bg-soft: #161a22;--surface: #12151c;--surface-2: #1c212b;--card: #1c212b;--ink: #e8e4dc;--muted: #9aa0ab;--accent: #d4a35c;--accent-hover: #c08f48;--danger: #e07070;--line: rgba(232, 228, 220, .12);--shell-bg: radial-gradient(ellipse 70% 45% at 80% 5%, rgba(212, 163, 92, .22), transparent 50%), radial-gradient(ellipse 55% 40% at 15% 95%, rgba(90, 110, 160, .12), transparent 55%), linear-gradient(165deg, #0a0c10 0%, #12151c 45%, #1a1f2a 100%)}[data-scheme=sand]{--bg: #3d3428;--bg-soft: #4f4334;--surface: #f7f1e6;--surface-2: #ebe2d2;--card: #ffffff;--ink: #2f281f;--muted: #7a6d5c;--accent: #b8743a;--accent-hover: #9c6130;--line: rgba(47, 40, 31, .12);--shell-bg: radial-gradient(ellipse 75% 50% at 88% 8%, rgba(184, 116, 58, .24), transparent 55%), radial-gradient(ellipse 55% 40% at 8% 90%, rgba(120, 100, 70, .14), transparent 50%), linear-gradient(165deg, #ebe2d2 0%, #f7f1e6 48%, #e4d9c6 100%)}[data-scheme=slate]{--bg: #2a3038;--bg-soft: #3a424c;--surface: #eef1f4;--surface-2: #dde3ea;--card: #ffffff;--ink: #1f252c;--muted: #667180;--accent: #5b7c99;--accent-hover: #4a6780;--line: rgba(31, 37, 44, .12);--shell-bg: radial-gradient(ellipse 70% 48% at 82% 10%, rgba(91, 124, 153, .26), transparent 55%), radial-gradient(ellipse 55% 40% at 10% 88%, rgba(42, 48, 56, .12), transparent 50%), linear-gradient(165deg, #dde3ea 0%, #eef1f4 50%, #d5dde6 100%)}[data-scheme=ember]{--bg: #120e0c;--bg-soft: #1f1815;--surface: #1a1412;--surface-2: #231c19;--card: #231c19;--ink: #f3ebe4;--muted: #b3a399;--accent: #e06b3c;--accent-hover: #c85a32;--danger: #e07070;--line: rgba(243, 235, 228, .12);--shell-bg: radial-gradient(ellipse 70% 45% at 78% 6%, rgba(224, 107, 60, .28), transparent 52%), radial-gradient(ellipse 50% 40% at 12% 92%, rgba(120, 50, 30, .18), transparent 55%), linear-gradient(165deg, #120e0c 0%, #1a1412 45%, #241a16 100%)}[data-scheme=meadow]{--bg: #243028;--bg-soft: #324038;--surface: #f3f6f0;--surface-2: #e4eadc;--card: #ffffff;--ink: #1c261f;--muted: #5f7264;--accent: #6a8f4e;--accent-hover: #587a40;--line: rgba(28, 38, 31, .12);--shell-bg: radial-gradient(ellipse 72% 50% at 86% 10%, rgba(106, 143, 78, .24), transparent 55%), radial-gradient(ellipse 55% 40% at 8% 88%, rgba(70, 100, 80, .14), transparent 50%), linear-gradient(165deg, #e4eadc 0%, #f3f6f0 48%, #dce5d4 100%)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%;width:100%;max-width:100%;overflow-x:hidden}html{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;width:100%;max-width:100%;overflow-x:hidden;font-family:var(--font-body);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}button,input{font:inherit}.shell{width:min(100%,480px);margin:0 auto;padding:calc(1.25rem + var(--safe-top)) 1.25rem calc(2rem + var(--safe-bottom));min-height:100dvh}.landing-page{position:relative;width:100%;max-width:none;margin:0;padding:0;color:#f4f7f5;overflow-x:clip;background:#0f1c18}.landing-atmosphere{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 75% 15%,rgba(196,92,62,.32),transparent 55%),radial-gradient(ellipse 55% 45% at 10% 70%,rgba(90,140,120,.22),transparent 50%),linear-gradient(165deg,#0b1512,#14241f 42%,#1a2e28);animation:landing-drift 20s ease-in-out infinite alternate}@keyframes landing-drift{0%{transform:scale(1) translate(0)}to{transform:scale(1.05) translate(-1.2%,.8%)}}.landing-hero,.landing-section,.landing-finale,.landing-footer{position:relative;z-index:1}.landing-hero{display:grid;grid-template-columns:1fr;align-items:center;gap:1.5rem;min-height:100dvh;width:min(100%,1080px);margin:0 auto;padding:calc(1.5rem + var(--safe-top)) 1.5rem 2rem;animation:landing-rise .95s ease-out both}@keyframes landing-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.landing-hero-copy .brand{color:#f4f7f5}.landing-hero-copy h1{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.12;margin:0 0 .85rem;font-size:clamp(1.7rem,5.5vw,2.55rem);max-width:14ch}.landing-hero-copy .lede{margin:0 0 1.6rem;color:#f4f7f5c7;font-size:1.08rem;line-height:1.45;max-width:34ch}.landing-hero-visual{display:flex;justify-content:center;animation:landing-float 7s ease-in-out infinite alternate}@keyframes landing-float{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.phone-frame{width:min(100%,280px)}.phone-hero{width:min(58vw,240px)}@media(max-width:859px){.landing-hero{align-content:center}.landing-hero-copy .brand{font-size:clamp(2.1rem,10vw,2.8rem);margin-bottom:1rem}.landing-hero-copy h1{font-size:clamp(1.45rem,6vw,1.85rem)}.landing-hero-copy .lede{margin-bottom:1.2rem;font-size:1rem}}.phone-bezel{position:relative;border-radius:1.65rem;padding:.55rem;background:linear-gradient(160deg,#2a3d36,#121c18 55%,#0c1411);box-shadow:0 30px 60px #00000073,0 0 0 1px #f4f7f514;overflow:hidden}.phone-notch{position:absolute;top:.7rem;left:50%;transform:translate(-50%);width:28%;height:.55rem;border-radius:999px;background:#00000073;z-index:2}.phone-bezel img{display:block;width:100%;border-radius:1.2rem;aspect-ratio:9 / 16;object-fit:cover;background:#1a2e28}.landing-section{display:grid;grid-template-columns:1fr;align-items:center;gap:1.75rem;width:min(100%,980px);margin:0 auto;padding:4.5rem 1.5rem;animation:landing-rise 1s ease-out both;animation-timeline:view();animation-range:entry 10% cover 35%}.landing-section-flip{direction:ltr}.landing-section-copy h2,.landing-finale h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0 0 .75rem;font-size:clamp(1.55rem,4vw,2.1rem);max-width:16ch}.landing-section-copy p,.landing-finale p{margin:0;color:#f4f7f5c2;font-size:1.05rem;line-height:1.5;max-width:36ch}.landing-section-copy-wide{max-width:none}.landing-section-copy-wide p{max-width:42ch}.landing-section-features{gap:2rem}.landing-feature-list{list-style:none;margin:0;padding:0;display:grid;gap:1.35rem}.landing-feature-list li{display:grid;gap:.3rem;padding-top:1.1rem;border-top:1px solid rgba(244,247,245,.14)}.landing-feature-list strong{font-family:var(--font-display);font-size:1.2rem;font-weight:600}.landing-feature-list span{color:#f4f7f5b8;line-height:1.45}.landing-finale{width:min(100%,720px);margin:0 auto;padding:4rem 1.5rem 3rem;text-align:left}.landing-finale .cta-row{margin-top:1.5rem}.landing-footer{width:min(100%,980px);margin:0 auto;padding:0 1.5rem calc(2rem + var(--safe-bottom));color:#f4f7f573;font-size:.9rem}@media(min-width:860px){.landing-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:3rem;padding-top:calc(2.5rem + var(--safe-top));padding-bottom:3rem}.landing-hero-visual{justify-content:end}.phone-hero{width:min(100%,340px)}.landing-section{grid-template-columns:1fr 1fr;gap:3.5rem;padding:5.5rem 2rem}.landing-section-flip .landing-section-copy{order:2}.landing-section-flip .phone-frame{order:1;justify-self:start}.landing-section:not(.landing-section-flip) .phone-frame{justify-self:end}.landing-section-features{grid-template-columns:1fr}.landing-feature-list{grid-template-columns:1fr 1fr;gap:1.5rem 2.5rem}}@supports not (animation-timeline: view()){.landing-section{animation:landing-rise .9s ease-out both}}.landing{position:relative;width:100%;max-width:none;padding:0;color:var(--surface);overflow:hidden}.landing-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 70% 20%,rgba(196,92,62,.35),transparent 55%),radial-gradient(ellipse 70% 50% at 15% 80%,rgba(120,160,140,.25),transparent 50%),linear-gradient(165deg,#0f1c18,#1a2e28 45%,#243a33);animation:drift 18s ease-in-out infinite alternate}@keyframes drift{0%{transform:scale(1) translate(0)}to{transform:scale(1.06) translate(-1%,1%)}}.landing-hero-legacy{position:relative;z-index:1;width:min(100%,480px);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:calc(2rem + var(--safe-top)) 1.5rem calc(2.5rem + var(--safe-bottom));animation:rise .9s ease-out both}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.brand{font-family:var(--font-display);font-weight:600;font-size:clamp(2.4rem,9vw,3.2rem);letter-spacing:-.02em;margin:0 0 1.5rem;line-height:1}.brand-sm{font-size:1.35rem;margin:0 0 .35rem;color:var(--ink)}.brand-link{display:inline-block;color:inherit;margin-bottom:2rem}.landing h1,.auth-form h1,.panel h1,.guest-header h1{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0 0 .75rem}.landing h1{font-size:clamp(1.65rem,6vw,2.1rem);max-width:16ch}.lede,.section-lede{margin:0 0 1.5rem;color:#f4f7f5c7;font-size:1.05rem;line-height:1.45}.section-lede{color:var(--muted);font-size:.98rem}.cta-row{display:flex;flex-wrap:wrap;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.7rem 1.2rem;border-radius:14px;border:1px solid transparent;cursor:pointer;font-weight:600;transition:transform .15s ease,background .15s ease,border-color .15s ease;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:transparent;color:inherit;border-color:#f4f7f559}.landing .btn-ghost:hover,.landing-page .btn-ghost:hover{border-color:#f4f7f5b3}.landing-page .btn-ghost{color:#f4f7f5;border-color:#f4f7f559}.app-shell .btn-ghost,.auth-shell .btn-ghost{color:var(--ink);border-color:var(--line)}.btn-sm{min-height:40px;padding:.4rem .9rem;font-size:.9rem}.btn-lg{min-height:56px;font-size:1.05rem}.btn-block{width:100%}.btn-danger{background:transparent;color:var(--danger);border-color:#9b2c2c59;margin-top:1.5rem}.auth-shell,.app-shell,.guest-shell{color:var(--ink)}.app-shell,.guest-shell{position:relative;width:100%;max-width:none;display:flex;flex-direction:column;align-items:stretch;background:var(--shell-bg)}.app-shell>*,.guest-shell>*{width:min(100%,480px);margin-left:auto;margin-right:auto}.auth-shell{background:var(--surface)}.auth-form{display:flex;flex-direction:column;gap:.9rem;animation:rise .5s ease-out both}.auth-form label,.upload-panel label,.create-event label{display:flex;flex-direction:column;gap:.4rem;font-size:.88rem;font-weight:500;color:var(--muted)}input[type=text],input[type=email],input[type=password]{width:100%;min-height:48px;padding:.7rem .95rem;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);outline:none}input:focus{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.hint{margin:-.25rem 0 .25rem;color:var(--muted);font-size:.92rem}.hint.center{text-align:center}.form-error{margin:0;color:var(--danger);font-size:.92rem}.form-success{margin:0;color:var(--bg-soft);font-size:.92rem;line-height:1.4}.auth-switch{text-align:center;color:var(--muted);font-size:.95rem}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.welcome{margin:0;color:var(--muted)}.back-link{color:var(--muted);font-weight:500}.panel{margin-bottom:1.5rem}.panel h2{font-family:var(--font-display);font-size:1.25rem;margin:0 0 .85rem}.create-row{display:flex;gap:.6rem}.create-row input{flex:1}.create-event{display:flex;flex-direction:column;gap:1rem}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink)}.toggle-row strong{display:block;font-size:.95rem}.toggle-hint{display:block;margin-top:.2rem;font-size:.82rem;font-weight:400;color:var(--muted)}.toggle-row input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex-shrink:0}.scheme-picker{margin:0;padding:0;border:none}.scheme-picker legend{padding:0;margin-bottom:.55rem;font-size:.88rem;font-weight:500;color:var(--muted)}.scheme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem}.scheme-option{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);cursor:pointer;text-align:left;transition:border-color .15s ease,box-shadow .15s ease}.scheme-option.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.scheme-swatches{display:flex;width:100%;height:1.1rem;border-radius:999px;overflow:hidden}.scheme-swatches span{flex:1}.scheme-label{font-size:.88rem;font-weight:600}.event-label{margin:0 0 .35rem;color:var(--muted);font-size:.92rem;font-weight:500}.table-list{display:flex;flex-direction:column;gap:.55rem}.table-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:inherit;transition:border-color .15s ease,transform .15s ease}.table-row:active{transform:scale(.99)}.table-row strong{display:block;margin-bottom:.15rem}.table-row .muted,.muted{color:var(--muted);font-size:.9rem}.chevron{font-size:1.4rem;color:var(--muted);line-height:1}.qr-block{display:flex;flex-direction:column;align-items:stretch;gap:1rem;padding:0;background:transparent;border:none;border-radius:0}.qr-invite-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.6rem 1.25rem 1.4rem;background:radial-gradient(ellipse 80% 40% at 50% 0%,rgba(188,84,42,.06),transparent 60%),var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 40px #24302814;text-align:center}.qr-invite-kicker{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.qr-invite-title{margin:0;font-family:var(--font-display);font-size:clamp(1.55rem,5vw,1.9rem);font-weight:600;letter-spacing:-.02em;color:var(--ink)}.qr-caption{margin:.25rem 0 0;max-width:26ch;font-size:.88rem;line-height:1.4;color:var(--muted)}.qr-frame{padding:.95rem;margin-top:.25rem;background:#fff;border-radius:14px;border:1px solid var(--line);animation:rise .6s ease-out both}.url-text{margin:0;font-size:.82rem;color:var(--muted);word-break:break-all;text-align:center}.ornament{display:flex;align-items:center;justify-content:center;gap:.45rem;margin:.35rem 0 .85rem;color:var(--ink)}.ornament-accent{color:var(--accent)}.ornament-leaf{width:2.4rem;height:auto;opacity:.85}.ornament-leaf-flip{transform:scaleX(-1)}.ornament-heart{font-size:.7rem;line-height:1;color:var(--accent)}.qr-download{width:100%;display:flex;flex-direction:column;gap:.55rem;padding-top:.35rem;border-top:1px solid var(--line)}.qr-download-label{margin:0;text-align:center;font-size:.88rem;font-weight:600;color:var(--ink)}.qr-download-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.qr-download-row .btn,.qr-jpg-menu{width:100%}.qr-jpg-menu{position:relative}.qr-jpg-menu>summary{list-style:none;width:100%;cursor:pointer}.qr-jpg-menu>summary::-webkit-details-marker{display:none}.qr-jpg-dropdown{position:absolute;left:0;right:0;top:calc(100% + .35rem);z-index:5;display:flex;flex-direction:column;gap:.15rem;padding:.4rem;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px #14201c1f}.qr-jpg-dropdown button{width:100%;padding:.65rem .75rem;border:none;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:.88rem;font-weight:500;text-align:left;cursor:pointer}.qr-jpg-dropdown button:hover:not(:disabled){background:var(--surface-2)}.qr-jpg-dropdown button:disabled{opacity:.6;cursor:not-allowed}.qr-download-hint{margin:0;font-size:.82rem}.guest-header{margin-bottom:1.5rem;text-align:center}.guest-header .brand-sm{color:var(--ink)}.guest-header h1{color:var(--ink);font-size:clamp(2rem,8vw,2.5rem);margin-bottom:.15rem}.guest-header .section-lede{margin:0 auto;max-width:28ch;text-align:center}.guest-header .event-label{text-align:center}.guest-gallery-block{margin-bottom:1.5rem}.upload-panel{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.75rem;padding:1.1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.upload-panel-guest{padding:1.25rem 1.1rem 1.35rem;border-radius:18px;box-shadow:0 14px 34px #24302812}.field-with-icon span:first-child{margin-bottom:.15rem}.field-icon-wrap{display:flex;align-items:center;gap:.55rem;padding:0 .85rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted)}.field-icon-wrap input{border:none;padding-left:0;background:transparent;box-shadow:none}.field-icon-wrap:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.field-hint{margin:-.35rem 0 .15rem;font-size:.82rem}.btn-icon svg{flex-shrink:0}.upload-progress-block{display:flex;flex-direction:column;gap:.75rem;margin-top:.35rem}.upload-progress-head{display:flex;justify-content:space-between;gap:.75rem;font-size:.88rem;font-weight:600;color:var(--ink)}.upload-progress-note{color:var(--accent);font-weight:600}.upload-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.upload-item{padding:.85rem .95rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 70%,#fff)}.upload-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}.upload-item-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;color:var(--ink)}.upload-item-pct{flex-shrink:0;font-size:.82rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted)}.upload-item.is-done .upload-item-pct{color:var(--ink)}.upload-item.is-error .upload-item-pct{color:var(--danger)}.upload-bar{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.upload-bar>span{display:block;height:100%;border-radius:inherit;background:var(--ink);transition:width .15s ease}.upload-item.is-done .upload-bar>span{background:var(--ink)}.upload-item.is-error .upload-bar>span{width:100%!important;background:var(--danger)}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.gallery-item{position:relative;aspect-ratio:1;padding:0;border:none;border-radius:14px;overflow:hidden;background:var(--surface-2);cursor:pointer;box-shadow:0 8px 20px #2430280f}.gallery-item img,.gallery-item video{width:100%;height:100%;object-fit:cover;display:block}.badge-video{position:absolute;left:.45rem;bottom:.45rem;padding:.2rem .45rem;border-radius:6px;background:#14201cbf;color:#fff;font-size:.7rem;font-weight:600}.badge-duration{position:absolute;right:.45rem;bottom:.45rem;padding:.2rem .45rem;border-radius:6px;background:#0a0c10c7;color:#fff;font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em}[data-scheme=midnight] .qr-frame,[data-scheme=ember] .qr-frame,[data-scheme=midnight] .field-icon-wrap,[data-scheme=ember] .field-icon-wrap{background:var(--surface-2);border-color:var(--line)}[data-scheme=midnight] .upload-item,[data-scheme=ember] .upload-item{background:var(--surface-2)}[data-scheme=midnight] .gallery-item,[data-scheme=ember] .gallery-item{box-shadow:none}.empty-state{margin:0;padding:1.5rem .5rem;text-align:center;color:var(--muted)}.page-center{min-height:100dvh;display:grid;place-items:center}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a100eeb;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade .2s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.lightbox-body{width:min(100%,720px);max-height:90dvh;display:flex;flex-direction:column;gap:.75rem}.lightbox-body img,.lightbox-body video{width:100%;max-height:80dvh;object-fit:contain;border-radius:8px;background:#000}.lightbox-meta{margin:0;color:#f4f7f5b3;text-align:center;font-size:.9rem}.lightbox-download{align-self:center;min-width:10rem}.gallery-actions{margin-bottom:1.25rem}.lightbox-close{position:absolute;top:calc(.75rem + var(--safe-top));right:1rem;width:44px;height:44px;border:none;border-radius:50%;background:#ffffff1f;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:640px){.gallery{grid-template-columns:repeat(3,1fr)}}
