@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_Fallback_a11773;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_a11773{font-family:__Plus_Jakarta_Sans_a11773,__Plus_Jakarta_Sans_Fallback_a11773;font-style:normal}.__variable_a11773{--font-plus-jakarta:"__Plus_Jakarta_Sans_a11773","__Plus_Jakarta_Sans_Fallback_a11773"}@font-face{font-family:__Great_Vibes_a10525;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/dad5af6a451969b9-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Great_Vibes_a10525;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f751862dd005bbab-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Great_Vibes_a10525;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/162bae04ee86dd69-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Great_Vibes_a10525;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/67d172d8d0152ee1-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Great_Vibes_a10525;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/536d9d896eaf4f3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Great_Vibes_a10525;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/87069f06a4f1ee13-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Great_Vibes_Fallback_a10525;src:local("Arial");ascent-override:119.68%;descent-override:56.39%;line-gap-override:0.00%;size-adjust:71.11%}.__className_a10525{font-family:__Great_Vibes_a10525,__Great_Vibes_Fallback_a10525;font-weight:400;font-style:normal}.__variable_a10525{--font-great-vibes:"__Great_Vibes_a10525","__Great_Vibes_Fallback_a10525"}:root{--bg:#3c3d3c;--bg-card:#2a2b2a;--text:#d4dccd;--text-secondary:hsla(92,18%,83%,.78);--border:hsla(92,18%,83%,.18);--lavender:#d6bb5b;--lavender-hover:#e5cf7a;--lavender-deep:#b89a3d;--coral:#e07a7a;--coral-dark:#c53030;--header-bg:#2a2b2a;--header-divider:#d4dccd;--text-on-accent:#1a1a1a;--radius:16px;--radius-sm:12px;--radius-pill:9999px;--shadow:0 2px 12px rgba(0,0,0,.25);--shadow-hover:0 4px 20px rgba(0,0,0,.35);--font:var(--font-plus-jakarta),"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;min-height:100vh;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0);background:var(--header-bg);z-index:9999;pointer-events:none}a{color:inherit;text-decoration:none}button{font-family:var(--font);cursor:pointer}img{max-width:100%;height:auto;display:block}.skip-link{position:absolute;top:-100px;left:16px;padding:12px 20px;background:var(--lavender-deep);color:var(--text-on-accent);font-weight:600;border-radius:var(--radius-sm);z-index:100;transition:top .2s}.skip-link:focus{top:16px;outline:2px solid var(--text);outline-offset:2px}.phone-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.phone-gate__card{width:100%;max-width:400px;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.phone-gate__title{font-size:1.375rem;font-weight:700;color:var(--text);margin:0 0 8px}.phone-gate__subtitle{font-size:.9375rem;color:var(--text-secondary);margin:0 0 24px;line-height:1.5}.phone-gate__form{display:flex;flex-direction:column;gap:12px}.phone-gate__input{width:100%;padding:14px 18px;font-size:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);box-sizing:border-box}.phone-gate__input:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 2px rgba(184,154,61,.4)}.phone-gate__error{margin:0;font-size:.875rem;color:var(--coral);font-weight:500}.phone-gate__btn{padding:14px 24px;background:var(--lavender);color:var(--text-on-accent);border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;cursor:pointer;font-family:var(--font);transition:background .2s,transform .2s}.phone-gate__btn:hover{background:var(--lavender-hover);transform:translateY(-1px)}.phone-gate__back{display:inline-block;margin-top:20px;font-size:.9375rem;color:var(--text-secondary);font-weight:500}.phone-gate__back:hover{color:var(--text)}.loading-spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--lavender-deep);border-radius:50%;animation:loading-spin .8s linear infinite}.loading-spinner--sm{width:18px;height:18px;border-width:2px}@keyframes loading-spin{to{transform:rotate(1turn)}}.page-loading{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px}.page-loading__spinner{flex-shrink:0}.page-loading__text{font-size:.9375rem;color:var(--text-secondary);font-weight:500}.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));background:var(--bg)}.landing__content{text-align:center;width:100%;max-width:420px}.landing__icons-row{gap:0;margin-bottom:16px}.landing__icon-wrap,.landing__icons-row{display:flex;align-items:center;justify-content:center}.landing__icon-wrap{flex-shrink:0}.landing__icon-wrap--left .landing__icon{transform:rotate(-12deg)}.landing__icon-wrap--right .landing__icon{transform:rotate(12deg)}.landing__icon{width:100px;height:100px;object-fit:contain}.landing__title{font-family:var(--font-great-vibes),"Great Vibes",cursive;font-size:clamp(2.25rem,7.5vw,3.25rem);font-weight:400;color:#fff;letter-spacing:.02em;margin-bottom:8px;line-height:1.3;text-shadow:0 0 1px hsla(0,0%,100%,.5)}@media (max-width:600px){.landing__title{font-size:clamp(2.75rem,9vw,3.25rem)}}.landing__subtitle{font-size:1rem;color:var(--text-secondary);line-height:1.5;margin-bottom:32px;font-weight:500}.landing__actions{display:flex;flex-direction:column;gap:12px}.landing__btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:18px 24px;border-radius:var(--radius-pill);font-size:1.0625rem;font-weight:700;border:none;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.landing__btn:hover{transform:scale(1.02);box-shadow:var(--shadow-hover)}.landing__btn--primary{background:var(--lavender);color:var(--text-on-accent)}.landing__btn--primary:hover{background:var(--lavender-hover)}.landing__btn--secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.landing__btn--secondary:hover{background:hsla(92,18%,83%,.12);border-color:var(--lavender-deep)}.landing__arrow{font-size:1.25rem;opacity:.85;transition:transform .2s}.landing__btn:hover .landing__arrow{transform:translateX(4px)}.landing__hint{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;margin-top:28px;font-weight:500}.page{min-height:100vh;background:var(--bg)}.page__header{position:fixed;top:max(20px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));z-index:20}.page__back{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:.9375rem;font-weight:600;border-radius:var(--radius-pill);border:1px solid var(--border);box-shadow:var(--shadow);transition:background .2s,box-shadow .2s,transform .2s}.page__back:hover{background:rgba(42,43,42,.95);box-shadow:var(--shadow-hover);transform:translateY(-1px)}.page__inner{max-width:1100px;margin:0 auto;padding:56px 24px 24px}.gallery-page .page__inner{padding-top:24px;padding-bottom:0}.gallery-page__header{margin-bottom:20px}.gallery-page__title{font-size:clamp(1.5rem,4vw,1.75rem);font-weight:800;color:var(--text);letter-spacing:-.03em;margin-bottom:6px}.gallery-page__subtitle{font-size:.9375rem;color:var(--text-secondary);line-height:1.5;font-weight:500}.gallery-filters-bar{margin-bottom:24px}.gallery-filters-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px;margin-bottom:24px}.gallery-page__count{font-size:.9375rem;color:var(--text-secondary);font-weight:500;margin:0}.gallery-select-all-btn{background:none;border:none;padding:0;font-size:.9375rem;font-weight:600;color:var(--lavender-deep);cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:color .2s}.gallery-select-all-btn:hover{color:var(--text)}.gallery-header{position:-webkit-sticky;position:sticky;top:0;z-index:25;width:100%;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:14px;background:var(--header-bg);border-bottom:1px solid var(--header-divider)}.gallery-header:before{content:"";position:absolute;top:0;left:0;right:0;height:env(safe-area-inset-top,0);background:var(--header-bg);z-index:-1}.gallery-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1100px;margin:0 auto;padding:0 24px}.gallery-header__title{font-family:var(--font-great-vibes),"Great Vibes",cursive;font-size:1.85rem;font-weight:500;color:var(--text);letter-spacing:.02em;margin:0;text-shadow:0 .5px 0 rgba(0,0,0,.15)}.gallery-header__menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;transition:background .2s,color .2s}.gallery-header__menu-btn:hover{background:var(--border);color:var(--text)}.nav-drawer-overlay{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.nav-drawer-overlay--open{opacity:1;visibility:visible}.nav-drawer{position:fixed;top:0;right:0;bottom:0;z-index:41;width:min(280px,85vw);max-width:280px;background:var(--bg-card);box-shadow:-4px 0 24px rgba(0,0,0,.12);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;padding-top:env(safe-area-inset-top)}.nav-drawer--open{transform:translateX(0)}.nav-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.nav-drawer__title{font-size:1rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.nav-drawer__close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background .2s,color .2s}.nav-drawer__close:hover{background:var(--border);color:var(--text)}.nav-drawer__nav{display:flex;flex-direction:column;padding:12px 0;overflow:auto}.nav-drawer__link{display:block;padding:14px 20px;font-size:.9375rem;font-weight:600;color:var(--text);text-decoration:none;transition:background .2s,color .2s}.nav-drawer__link:hover{background:var(--lavender);color:var(--text)}.nav-drawer__link--active{background:var(--lavender);color:var(--text-on-accent);font-weight:700}.nav-drawer__link--active:hover{background:var(--lavender-hover);color:var(--text-on-accent)}.page__title{font-size:1.75rem;font-weight:800;color:var(--text);letter-spacing:-.03em;margin-bottom:6px}.page__subtitle{font-size:.9375rem;color:var(--text-secondary);margin-bottom:24px;font-weight:500}.upload-page{display:flex;flex-direction:column;min-height:100vh}.upload-page .gallery-header,.upload-page .page__header{flex-shrink:0}.upload-page__inner{flex:1 1;width:100%;max-width:720px;margin:0 auto;padding:32px 24px max(32px,env(safe-area-inset-bottom));display:flex;flex-direction:column;box-sizing:border-box;min-height:0}.upload-page__header{margin-bottom:28px}.upload-page__title{font-size:clamp(1.5rem,4vw,1.75rem);font-weight:800;color:var(--text);letter-spacing:-.03em;margin-bottom:6px}.upload-page__subtitle{font-size:.9375rem;color:var(--text-secondary);line-height:1.5;font-weight:500}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius);padding:48px 32px;text-align:center;transition:border-color .2s,background .2s;min-height:180px;box-sizing:border-box}.upload-zone:hover{border-color:var(--lavender-deep);background:rgba(232,208,243,.25)}.upload-zone input{position:absolute;width:0;height:0;opacity:0}.upload-zone__icon{font-size:2rem;font-weight:700;color:var(--lavender-deep);line-height:1}.upload-zone__text{font-size:1rem;font-weight:600;color:var(--text)}.upload-zone__hint{font-size:.8125rem;color:var(--text-secondary);font-weight:500}.upload-actions{margin-top:20px;display:flex;flex-direction:column;gap:12px}.upload-actions__change{background:none;border:none;color:var(--text-secondary);font-size:.9375rem;font-weight:600;padding:0;text-decoration:underline;text-underline-offset:3px;transition:color .2s}.upload-actions__change:hover{color:var(--text)}.upload-actions__submit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:18px 24px;background:var(--lavender);color:var(--text-on-accent);border:none;border-radius:var(--radius-pill);font-size:1.0625rem;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}.upload-actions__submit:hover{background:var(--lavender-hover);transform:scale(1.02);box-shadow:var(--shadow-hover)}.upload-actions__arrow{font-size:1.25rem;opacity:.85;transition:transform .2s}.upload-actions__submit:hover .upload-actions__arrow{transform:translateX(4px)}.upload-progress{margin-top:24px}.upload-progress__bar{height:8px;background:var(--border);border-radius:var(--radius-pill);overflow:hidden;margin-bottom:10px;position:relative}.upload-progress__bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.25) 50%,transparent);background-size:200% 100%;animation:upload-progress-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-pill);pointer-events:none}@keyframes upload-progress-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.upload-progress__fill{height:100%;background:linear-gradient(90deg,var(--lavender-deep) 0,var(--lavender) 50%,var(--lavender-deep) 100%);background-size:200% 100%;border-radius:var(--radius-pill);transition:width .35s ease-out;animation:upload-progress-fill-pulse 2s ease-in-out infinite}@keyframes upload-progress-fill-pulse{0%,to{opacity:1}50%{opacity:.9}}.upload-progress__text{display:flex;align-items:center;gap:10px;font-size:.9375rem;color:var(--text-secondary);font-weight:500}.upload-progress__spinner{display:flex;align-items:center;justify-content:center;flex-shrink:0}.upload-progress__hint{margin-top:10px;font-size:.8125rem;color:var(--text-secondary);opacity:.9;line-height:1.4}.upload-message{margin-top:20px;padding:14px 18px;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:500}.upload-message--error{background:hsla(0,62%,68%,.15);color:var(--coral-dark)}.upload-message__text{margin:0 0 10px}.upload-message__retry{padding:8px 16px;background:var(--lavender);color:var(--text-on-accent);border:none;border-radius:var(--radius-pill);font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .2s}.upload-message__retry:hover{background:var(--lavender-hover)}.upload-actions__change:disabled,.upload-actions__submit:disabled{opacity:.6;cursor:not-allowed}.upload-done{text-align:center;padding:24px 0}.upload-done__icon{width:56px;height:56px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;background:var(--lavender);color:var(--text);font-size:1.5rem;font-weight:700;border-radius:50%}.upload-done__title{font-size:1.25rem;font-weight:700;color:var(--text);margin-bottom:6px}.upload-done__text{font-size:.9375rem;color:var(--text-secondary);line-height:1.5;margin-bottom:28px;font-weight:500}.upload-done__actions{display:flex;flex-direction:column;gap:12px}.upload-done__link{display:flex;align-items:center;justify-content:center;gap:8px;padding:18px 24px;border-radius:var(--radius-pill);font-size:1.0625rem;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}.upload-done__link--primary{background:var(--lavender);color:var(--text-on-accent)}.upload-done__link--primary:hover{background:var(--lavender-hover);transform:scale(1.02);box-shadow:var(--shadow-hover)}.upload-done__link--secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.upload-done__link--secondary:hover{background:#fafafa;border-color:var(--lavender-deep)}.gallery-photos-section{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:var(--bg);padding-top:0;padding-bottom:0;isolation:isolate;border-top-left-radius:18px;border-top-right-radius:18px;overflow:hidden}.gallery-photos-section .gallery-grid{padding:0;width:100%;gap:1.5px}.gallery-photos-section .gallery-grid .gallery-card:first-child{border-top-left-radius:18px}.gallery-photos-section .gallery-grid .gallery-card:nth-child(5){border-top-right-radius:18px}@media (max-width:1200px){.gallery-photos-section .gallery-grid .gallery-card:nth-child(5){border-top-right-radius:0}.gallery-photos-section .gallery-grid .gallery-card:nth-child(4){border-top-right-radius:18px}}.gallery-photos-section .gallery-load-more{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:0;right:0;padding:0 24px;margin:0;display:flex;justify-content:center;pointer-events:none;z-index:2}.gallery-photos-section .gallery-load-more .gallery-load-more-btn{pointer-events:auto;box-shadow:0 4px 20px rgba(0,0,0,.35)}.gallery-photos-section .gallery-load-more-btn{color:var(--text-on-accent);background:var(--lavender)}.gallery-photos-section .gallery-load-more-btn:hover{background:var(--lavender-hover)}.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:1.5px;gap:1.5px}@media (max-width:1200px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:768px){.gallery-grid{grid-template-columns:repeat(4,1fr);gap:1.5px}}@media (max-width:480px){.gallery-grid{grid-template-columns:repeat(4,1fr);gap:1.5px}}.gallery-card{background:var(--bg);border-radius:0;overflow:hidden;border:none;box-shadow:1.5px 0 0 var(--text),0 1.5px 0 var(--text)}.gallery-card__img-inner{position:relative;width:100%;aspect-ratio:1}.gallery-card__processing{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--bg);color:var(--text-secondary)}.gallery-card__processing-text{font-size:.75rem;font-weight:600}.gallery-card--selected .gallery-card__img-wrap{background:#d4dccd;padding:5%;box-sizing:border-box}.gallery-card--selected .gallery-card__img{border-radius:22px}.gallery-card__img-wrap{position:relative;aspect-ratio:1;box-sizing:border-box;background:var(--bg);cursor:pointer;transition:background .2s,padding .2s;touch-action:manipulation}.gallery-card__img,.gallery-card__img-wrap{-webkit-touch-callout:none;touch-callout:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.gallery-card__img{object-fit:cover;image-orientation:none;transition:border-radius .2s;pointer-events:none}.gallery-tabs{display:flex;gap:8px;margin-top:16px;margin-bottom:8px}.gallery-tabs__tab{padding:10px 20px;font-size:.9375rem;font-weight:600;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font);transition:background .2s,color .2s,border-color .2s}.gallery-tabs__tab:hover{color:var(--text);border-color:var(--lavender-deep)}.gallery-tabs__tab--active{background:var(--lavender);color:var(--text-on-accent);border-color:var(--lavender-deep)}.gallery-float-filters{position:fixed;top:calc(72px + env(safe-area-inset-top, 0px) + 12px);left:50%;transform:translateX(-50%) translateY(-8px);z-index:19;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border-radius:28px;box-shadow:var(--shadow-hover);border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;flex-wrap:nowrap;white-space:nowrap}.gallery-float-filters--visible{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}.gallery-float-filters .gallery-tabs__tab,.gallery-float-filters__select-btn{margin:0;padding:8px 14px;font-size:.875rem;white-space:nowrap;flex-shrink:0}.gallery-float-filters__select-btn{font-weight:600;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font);transition:background .2s,color .2s,border-color .2s}.gallery-float-filters__select-btn:hover{color:var(--text);border-color:var(--lavender-deep)}.gallery-float-filters__select-btn--active{border-color:var(--lavender-deep);color:var(--lavender)}.gallery-float-filters__select-btn--active:hover{color:var(--lavender-hover)}@media (max-width:380px){.gallery-float-filters .gallery-tabs__tab,.gallery-float-filters__select-btn{padding:8px 10px;font-size:.8125rem}}.gallery-card__check{position:absolute;top:8px;left:8px;width:25px;height:25px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:2px solid hsla(0,0%,100%,.9);border-radius:50%;color:transparent;font-size:.8125rem;font-weight:700;cursor:pointer;z-index:2;transition:background .2s,border-color .2s,color .2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.gallery-card__check:hover{border-color:#fff;background:hsla(0,0%,100%,.2)}.gallery-card__check--on{background:#1a73e8;border-color:#1a73e8;color:#fff}.gallery-card__check--on:hover{background:#1557b0;border-color:#1557b0}.gallery-card__check--downloaded{background:#1a7f37;border-color:#1a7f37;color:#fff}.gallery-card__check--downloaded:hover{background:#166534;border-color:#166534}@media (max-width:768px){.gallery-card__check{width:17px;height:17px;top:5px;left:5px;font-size:.5625rem;border-width:1px}}.gallery-float-download{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-card);border-radius:28px;box-shadow:var(--shadow-hover);border:1px solid var(--border)}.gallery-float-download__btn{padding:12px 24px;background:var(--lavender);color:var(--text-on-accent);border:none;border-radius:var(--radius-pill);font-size:.9375rem;font-weight:700;cursor:pointer;transition:background .2s,transform .2s;white-space:nowrap;flex-shrink:0}.gallery-float-download__btn:hover:not(:disabled){background:var(--lavender-hover);transform:translateY(-1px)}.gallery-float-download__btn:disabled{opacity:.85;cursor:not-allowed}.gallery-float-download__delete{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#ea4335;color:#fff;border:none;border-radius:50%;font-size:1.125rem;cursor:pointer;flex-shrink:0;transition:background .2s,transform .2s}.gallery-float-download__delete:hover:not(:disabled){background:#c5221f;transform:scale(1.05)}.gallery-float-download__delete:disabled{opacity:.7;cursor:not-allowed}.gallery-float-download__error-wrap{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:8px;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:90vw}.gallery-float-download__error{padding:8px 14px;background:hsla(0,62%,68%,.95);color:#fff;font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-float-download__dismiss{padding:4px 12px;background:hsla(0,0%,100%,.2);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;cursor:pointer}.gallery-float-download__dismiss:hover{background:hsla(0,0%,100%,.3)}.gallery-select-action-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:35;display:flex;align-items:center;justify-content:center;padding:24px;animation:gallery-preview-fade .2s ease}.gallery-select-action-modal{position:relative;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-hover);border:1px solid var(--border);padding:48px 24px 24px;max-width:320px;width:100%}.gallery-select-action-close{position:absolute;top:12px;right:12px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.gallery-select-action-close svg{width:16px;height:16px}.gallery-select-action-close:hover{color:var(--text);border-color:var(--lavender-deep);background:hsla(92,18%,83%,.08)}.gallery-select-action-title{font-size:1.125rem;font-weight:700;color:var(--text);margin:0 0 20px;text-align:center}.gallery-select-action-buttons{display:flex;flex-direction:column;gap:12px}.gallery-select-action-btn{padding:14px 20px;font-size:1rem;font-weight:600;border-radius:var(--radius-pill);border:none;cursor:pointer;font-family:var(--font);transition:background .2s,color .2s}.gallery-select-action-btn--primary{background:var(--lavender);color:var(--text-on-accent)}.gallery-select-action-btn--primary:hover:not(:disabled){background:var(--lavender-hover)}.gallery-select-action-btn--primary:disabled{opacity:.85;cursor:not-allowed}.gallery-select-action-btn--secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.gallery-select-action-btn--secondary:hover{color:var(--text);border-color:var(--lavender-deep)}.gallery-delete-confirm-subtitle{font-size:.9375rem;color:var(--text-secondary);margin:0 0 20px;text-align:center}.gallery-delete-confirm-btn{background:#ea4335;color:#fff}.gallery-delete-confirm-btn:hover:not(:disabled){background:#c5221f}.gallery-delete-confirm-btn:disabled{opacity:.85;cursor:not-allowed}.gallery-preview-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:40;display:flex;align-items:center;justify-content:center;padding:16px;animation:gallery-preview-fade .2s ease}@keyframes gallery-preview-fade{0%{opacity:0}to{opacity:1}}.gallery-preview-content{max-height:100%;flex-direction:column}.gallery-preview-content,.gallery-preview-image-wrap{position:relative;max-width:100%;display:flex;align-items:center;justify-content:center}.gallery-preview-image-wrap{max-height:calc(100vh - 120px);min-height:280px;min-width:280px}.gallery-preview-placeholder{position:absolute;inset:0;background:var(--border);border-radius:8px}.gallery-preview-image-wrap img{position:relative;max-width:100%;max-height:calc(100vh - 120px);width:auto;height:auto;object-fit:contain;border-radius:8px;opacity:0;transition:opacity .2s ease}.gallery-preview-image-wrap img.gallery-preview-img--loaded{opacity:1}.gallery-preview-close{position:absolute;top:12px;right:12px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;background:rgba(0,0,0,.5);color:#fff;border:none;border-radius:50%;cursor:pointer;transition:background .2s;z-index:2}.gallery-preview-close:hover{background:rgba(0,0,0,.7)}.gallery-preview-close svg{display:block}.gallery-preview-actions{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:2;display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-card);border-radius:28px;box-shadow:var(--shadow-hover);border:1px solid var(--border)}.gallery-preview-actions .gallery-preview-btn{padding:12px 24px;background:var(--lavender);color:var(--text-on-accent);border:none;border-radius:var(--radius-pill);font-size:.9375rem;font-weight:700;cursor:pointer;font-family:var(--font);transition:background .2s,transform .2s}.gallery-preview-actions .gallery-preview-btn:hover:not(:disabled){background:var(--lavender-hover);transform:translateY(-1px)}.gallery-preview-actions .gallery-preview-btn--delete{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background:#ea4335;color:#fff;flex-shrink:0}.gallery-preview-actions .gallery-preview-btn--delete:hover:not(:disabled){background:#c5221f;transform:scale(1.05)}.gallery-preview-actions .gallery-preview-btn--delete .loading-spinner{border-color:#fff hsla(0,0%,100%,.3) hsla(0,0%,100%,.3)}.gallery-success-toast{position:fixed;top:max(20px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:30;padding:14px 24px;background:var(--bg-card);color:var(--text);font-size:.9375rem;font-weight:700;border-radius:var(--radius-pill);box-shadow:var(--shadow-hover);border:1px solid var(--border);animation:gallery-toast-in .3s ease;max-width:calc(100vw - 32px);text-align:center}@keyframes gallery-toast-in{0%{opacity:0;transform:translateX(-50%) translateY(-10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.gallery-skeleton{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:4px;gap:4px;margin-top:20px}@media (max-width:1200px){.gallery-skeleton{grid-template-columns:repeat(4,1fr)}}@media (max-width:768px){.gallery-skeleton{grid-template-columns:repeat(4,1fr)}}.gallery-skeleton__card{aspect-ratio:1;background:var(--border);border-radius:2px;animation:gallery-skeleton-pulse 1.2s ease-in-out infinite}@keyframes gallery-skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}.gallery-error-wrap{margin-top:20px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.gallery-retry-btn{padding:10px 20px;background:var(--lavender);color:var(--text);border:none;border-radius:var(--radius-pill);font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.gallery-retry-btn:hover{background:var(--lavender-hover);transform:translateY(-1px)}.gallery-empty,.gallery-error,.gallery-status{margin-top:0;font-size:.9375rem;color:var(--text-secondary);font-weight:500}.gallery-error{color:var(--coral)}.gallery-empty-wrap{margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:16px}.gallery-empty-cta{display:inline-block;padding:14px 28px;background:var(--lavender);color:var(--text);border-radius:var(--radius-pill);font-weight:700;font-size:1rem;text-decoration:none;transition:background .2s,transform .2s}.gallery-empty-cta:hover{background:var(--lavender-hover);transform:translateY(-1px)}.gallery-load-more{margin-top:40px;text-align:center}.gallery-load-more-btn{padding:16px 32px;background:var(--lavender);color:var(--text-on-accent);border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;transition:transform .2s,background .2s}.gallery-load-more-btn:hover{background:var(--lavender-hover);transform:scale(1.02)}