*{box-sizing:border-box}:root{--volcyy-primary:#8b1a1a;--volcyy-primary-hover:#6b1515;--volcyy-primary-light:#8b1a1a14;--volcyy-text-dark:#1d1d1f;--volcyy-text-muted:#6e6e73;--volcyy-border:#e5e5e5;--focus-ring-color:#8b1a1a;--focus-ring-width:3px;--apple-font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--heading-font:"Playfair Display",Georgia,serif}body,html{background-color:#f0eeec;height:100%;margin:0;padding:0;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1d1d1f;color:var(--volcyy-text-dark);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--apple-font);overflow-x:hidden}#root{background-color:#fff;box-shadow:0 0 80px #00000014;margin:0 auto;max-width:2560px;min-height:100vh;padding:0;width:100%}:focus-visible{outline:3px solid #8b1a1a;outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}a:focus-visible,button:focus-visible{box-shadow:0 0 0 4px #8b1a1a1a;outline:3px solid #8b1a1a;outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.auth-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.auth-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:420px;padding:40px 36px 36px;position:relative;width:100%}.auth-modal__close{background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;font-size:1.6rem;line-height:1;padding:4px 8px;position:absolute;right:18px;top:14px}.auth-modal__close:hover{color:var(--volcyy-text-dark)}.auth-modal__logo{display:block;height:36px;margin:0 auto 24px;width:auto}.auth-modal__tabs{border-bottom:2px solid var(--volcyy-border);display:flex;margin-bottom:24px}.auth-modal__tabs button{background:none;border:none;border-bottom:2px solid #0000;color:var(--volcyy-text-muted);cursor:pointer;flex:1 1;font-family:var(--apple-font);font-size:.95rem;font-weight:500;margin-bottom:-2px;padding:10px;transition:color .2s,border-color .2s}.auth-modal__tabs button.active{border-bottom-color:var(--volcyy-primary);color:var(--volcyy-primary)}.auth-modal__google{align-items:center;background:#fff;border:1.5px solid var(--volcyy-border);border-radius:10px;color:var(--volcyy-text-dark);cursor:pointer;display:flex;font-family:var(--apple-font);font-size:.95rem;font-weight:500;gap:10px;justify-content:center;padding:12px;transition:background .2s,border-color .2s;width:100%}.auth-modal__google:hover{background:#f8f8f8;border-color:#bbb}.auth-modal__google:disabled{cursor:not-allowed;opacity:.6}.auth-modal__divider{align-items:center;color:var(--volcyy-text-muted);display:flex;font-size:.85rem;gap:12px;margin:20px 0}.auth-modal__divider:after,.auth-modal__divider:before{background:var(--volcyy-border);content:"";flex:1 1;height:1px}.auth-modal__field{margin-bottom:16px}.auth-modal__field label{color:var(--volcyy-text-dark);display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}.auth-modal__field input{border:1.5px solid var(--volcyy-border);border-radius:10px;box-sizing:border-box;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:11px 14px;transition:border-color .2s;width:100%}.auth-modal__field input:focus{border-color:var(--volcyy-primary)}.auth-modal__error{background:#fff5f5;border:1px solid #fccaca;border-radius:8px;color:#c53030;font-size:.88rem;margin-bottom:14px;padding:10px 14px}.auth-modal__forgot-row{display:flex;justify-content:flex-end;margin-bottom:12px;margin-top:-4px}.auth-modal__forgot-btn{background:none;border:none;color:var(--volcyy-primary);cursor:pointer;font-family:var(--apple-font);font-size:.83rem;padding:0;text-decoration:underline;text-underline-offset:2px}.auth-modal__forgot-btn:hover{opacity:.75}.auth-modal__forgot-title{color:var(--volcyy-text-dark);font-size:1.2rem;font-weight:700;margin:0 0 8px;text-align:center}.auth-modal__forgot-desc{color:var(--volcyy-text-muted);font-size:.9rem;margin:0 0 24px;text-align:center}.auth-modal__success{background:#f0fff4;border:1px solid #9ae6b4;border-radius:8px;color:#276749;font-size:.88rem;margin-bottom:14px;padding:10px 14px}.auth-modal__back-link{background:none;border:none;color:var(--volcyy-text-muted);cursor:pointer;display:block;font-family:var(--apple-font);font-size:.88rem;margin-top:16px;text-align:center;width:100%}.auth-modal__back-link:hover{color:var(--volcyy-text-dark)}.auth-modal__submit{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:600;margin-top:4px;padding:13px;transition:background .2s;width:100%}.auth-modal__submit:hover{background:var(--volcyy-primary-hover)}.auth-modal__submit:disabled{cursor:not-allowed;opacity:.65}.navbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border-bottom:1px solid var(--volcyy-border);position:-webkit-sticky;position:sticky;top:0;z-index:100}.navbar__inner{align-items:center;display:flex;gap:32px;height:64px;margin:0 auto;max-width:1200px;padding:0 24px}.navbar__logo-link{align-items:center;display:flex;flex-shrink:0}.navbar__logo{height:36px;width:auto}.navbar__links{align-items:center;display:flex;flex:1 1;gap:4px}.navbar__links a{border-radius:8px;color:var(--volcyy-text-muted);font-family:var(--apple-font);font-size:.9rem;font-weight:500;padding:6px 12px;text-decoration:none;transition:color .2s,background .2s}.navbar__links a:hover{background:#f5f5f5;color:var(--volcyy-text-dark)}.navbar__links a.active{color:var(--volcyy-primary);font-weight:600}.navbar__links a.admin-link{color:#7c3aed}.navbar__links a.admin-link.active{background:#f5f3ff;color:#7c3aed}.navbar__actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.navbar__settings{position:relative}.navbar__settings-btn{align-items:center;background:none;border:none;border-radius:8px;color:var(--volcyy-text-muted);cursor:pointer;display:flex;font-family:var(--apple-font);font-size:.9rem;font-weight:500;gap:4px;padding:6px 12px;transition:color .2s,background .2s}.navbar__settings-btn:hover{background:#f5f5f5;color:var(--volcyy-text-dark)}.navbar__dropdown{background:#fff;border:1px solid var(--volcyy-border);border-radius:12px;box-shadow:0 8px 32px #0000001f;min-width:180px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px)}.navbar__dropdown a{color:var(--volcyy-text-dark);display:block;font-family:var(--apple-font);font-size:.9rem;padding:11px 16px;text-decoration:none;transition:background .15s}.navbar__dropdown a:hover{background:#f8f8f8}.navbar__greeting{color:var(--volcyy-text-muted);font-size:.875rem;font-weight:500;white-space:nowrap}.navbar__btn{border:none;border-radius:980px;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:8px 18px;transition:background .2s,color .2s}.navbar__btn--primary{background:var(--volcyy-primary);color:#fff}.navbar__btn--primary:hover{background:var(--volcyy-primary-hover)}.navbar__btn--outline{background:#0000;border:1.5px solid var(--volcyy-border);color:var(--volcyy-text-muted)}.navbar__btn--outline:hover{background:#f5f5f5}.navbar__mobile-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:4px;margin-left:auto;padding:8px}.navbar__mobile-toggle span{background:var(--volcyy-text-dark);border-radius:2px;display:block;height:2px;width:22px}.navbar__mobile-menu{border-top:1px solid var(--volcyy-border);display:flex;flex-direction:column;gap:2px;padding:12px 24px 16px}.navbar__mobile-menu a,.navbar__mobile-menu button{background:none;border:none;color:var(--volcyy-text-dark);cursor:pointer;display:block;font-family:var(--apple-font);font-size:.95rem;font-weight:500;padding:10px 0;text-align:left;text-decoration:none;width:100%}.navbar__mobile-menu button.primary{color:var(--volcyy-primary);font-weight:600}.navbar__mobile-divider{background:var(--volcyy-border);height:1px;margin:4px 0}@media (max-width:768px){.navbar__actions,.navbar__links{display:none}.navbar__mobile-toggle{display:flex}.navbar__inner{gap:16px}}.footer{background:#1a0808;color:#ffffffb3;margin-top:auto;padding:56px 24px 24px}.footer__inner{display:flex;flex-wrap:wrap;gap:48px;margin:0 auto 40px;max-width:1200px}.footer__brand{flex:1 1;min-width:220px}.footer__logo{filter:brightness(0) invert(1);height:28px;margin-bottom:14px;width:auto}.footer__tagline{color:#ffffff80;font-size:.88rem;line-height:1.6;margin:0;max-width:240px}.footer__links{display:flex;flex-wrap:wrap;gap:48px}.footer__col{display:flex;flex-direction:column;gap:8px;min-width:120px}.footer__col h4{color:#fff6;font-family:var(--apple-font);font-size:.75rem;font-weight:700;letter-spacing:.12em;margin-bottom:4px;text-transform:uppercase}.footer__col a{color:#ffffffa6;font-size:.88rem;text-decoration:none;transition:color .2s}.footer__col a:hover{color:#fff}.footer__bottom{align-items:center;border-top:1px solid #ffffff14;color:#ffffff59;display:flex;flex-wrap:wrap;font-size:.82rem;gap:8px;justify-content:space-between;margin:0 auto;max-width:1200px;padding-top:20px}.footer__bottom a{color:#ffffff80;text-decoration:none}.footer__bottom a:hover{color:#fff}@media (max-width:600px){.footer__inner,.footer__links{gap:32px}.footer__bottom{align-items:flex-start;flex-direction:column}}.restaurant-card{background:#fff;border:1px solid var(--volcyy-border);border-radius:16px;cursor:pointer;overflow:hidden;padding:0;text-align:left;transition:transform .2s,box-shadow .2s;width:100%}.restaurant-card:hover{box-shadow:0 12px 32px #0000001a;transform:translateY(-3px)}.restaurant-card__img-wrap{background:#f5f5f5;height:180px;overflow:hidden;position:relative}.restaurant-card__img{height:100%;object-fit:cover;width:100%}.restaurant-card__img-placeholder{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.restaurant-card__badge{background:var(--volcyy-primary);border-radius:980px;color:#fff;font-family:var(--apple-font);font-size:.78rem;font-weight:700;letter-spacing:.02em;padding:4px 10px;position:absolute;right:12px;top:12px}.restaurant-card__body{padding:16px}.restaurant-card__name{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.1rem;font-weight:700;margin:0 0 4px}.restaurant-card__meta{color:var(--volcyy-primary);font-size:.85rem;font-weight:500;margin:0 0 4px}.restaurant-card__address{color:var(--volcyy-text-muted);font-size:.82rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-hero{background:linear-gradient(135deg,#8b1a1a,#6b1515);color:#fff;padding:80px 24px 72px;text-align:center}.home-hero__inner{margin:0 auto;max-width:700px}.home-hero__badge{background:#ffffff26;border:1px solid #ffffff4d;border-radius:980px;color:#fff;display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.15em;margin-bottom:24px;padding:6px 16px;text-transform:uppercase}.home-hero__title{font-family:var(--heading-font);font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;line-height:1.15;margin:0 0 20px}.home-hero__accent{color:#ffcece}.home-hero__sub{font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.6;margin:0 auto;max-width:520px;opacity:.88}.home-listings{padding:48px 24px 80px}.home-listings__inner{margin:0 auto;max-width:1200px}.home-listings__controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:32px}.home-listings__search-wrap{flex:1 1;min-width:240px;position:relative}.home-listings__search-icon{left:14px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.home-listings__search{border:1.5px solid var(--volcyy-border);border-radius:980px;box-sizing:border-box;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:12px 16px 12px 42px;transition:border-color .2s;width:100%}.home-listings__search:focus{border-color:var(--volcyy-primary)}.home-listings__view-btns{background:#f5f5f5;border-radius:980px;display:flex;gap:6px;padding:4px}.home-listings__view-btn{align-items:center;background:#0000;border:none;border-radius:980px;color:var(--volcyy-text-muted);cursor:pointer;display:flex;font-family:var(--apple-font);font-size:.88rem;font-weight:500;gap:6px;padding:8px 18px;transition:background .2s,color .2s}.home-listings__view-btn.active{background:#fff;box-shadow:0 1px 4px #0000001a;color:var(--volcyy-primary);font-weight:600}.home-listings__location-error{color:var(--volcyy-text-muted);font-size:.88rem;font-style:italic;margin-bottom:16px}.home-listings__grid,.home-listings__loading{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.restaurant-card--skeleton{pointer-events:none}.skeleton-block,.skeleton-line{animation:shimmer 1.4s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}.skeleton-line{border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.home-listings__empty{color:var(--volcyy-text-muted);font-size:1.05rem;padding:80px 24px;text-align:center}@media (max-width:600px){.home-listings__controls{align-items:stretch;flex-direction:column}.home-listings__view-btns{align-self:flex-start}}.restaurant-page{min-height:100vh}.restaurant-page--loading,.restaurant-page--not-found{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh}.restaurant-page--not-found h1{font-family:var(--heading-font)}.restaurant-page--not-found button{background:var(--volcyy-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;padding:10px 20px}.restaurant-page__hero{background:#1a0a0a;height:340px;overflow:hidden;position:relative}.restaurant-page__hero-img{height:100%;object-fit:cover;opacity:.85;width:100%}.restaurant-page__hero-placeholder{background:linear-gradient(135deg,#8b1a1a,#4a0e0e);height:100%;width:100%}.restaurant-page__back{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:none;border-radius:980px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;left:20px;padding:8px 18px;position:absolute;top:20px;transition:background .2s}.restaurant-page__back:hover{background:#fff}.restaurant-page__body{margin:0 auto;max-width:800px;padding:40px 24px 80px}.restaurant-page__header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.restaurant-page__cuisine{color:var(--volcyy-primary);display:inline-block;font-size:.82rem;font-weight:600;letter-spacing:.1em;margin-bottom:6px;text-transform:uppercase}.restaurant-page__name{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin:0 0 8px}.restaurant-page__address{color:var(--volcyy-text-muted);font-size:.95rem;margin:0}.restaurant-page__discount-badge{align-items:center;background:var(--volcyy-primary);border-radius:16px;color:#fff;display:flex;flex-direction:column;flex-shrink:0;height:80px;justify-content:center;text-align:center;width:80px}.restaurant-page__discount-badge span{font-size:1.8rem;font-weight:800;line-height:1}.restaurant-page__discount-badge small{font-size:.7rem;font-weight:600;letter-spacing:.08em;opacity:.9;text-transform:uppercase}.restaurant-page__description{color:var(--volcyy-text-muted);font-size:1rem;line-height:1.7;margin:0 0 24px}.restaurant-page__info-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px}.restaurant-page__info-pill{align-items:center;background:#f8f8f8;border-radius:8px;color:var(--volcyy-text-dark);display:inline-flex;font-size:.85rem;gap:6px;padding:8px 14px;text-decoration:none}a.restaurant-page__info-pill:hover{background:#f0f0f0}.restaurant-page__actions{display:flex;flex-wrap:wrap;gap:12px}.restaurant-page__btn{border:none;border-radius:12px;cursor:pointer;flex:1 1;font-family:var(--apple-font);font-size:1rem;font-weight:700;min-width:180px;padding:15px 24px;text-align:center;transition:background .2s,transform .1s}.restaurant-page__btn:active{transform:scale(.98)}.restaurant-page__btn--primary{background:var(--volcyy-primary);color:#fff}.restaurant-page__btn--primary:hover{background:var(--volcyy-primary-hover)}.restaurant-page__btn--secondary{background:#f5f5f5;color:var(--volcyy-text-dark)}.restaurant-page__btn--secondary:hover{background:#ebebeb}.restaurant-page__btn--ghost{background:#0000;border:1.5px solid var(--volcyy-border);color:var(--volcyy-text-muted)}.restaurant-page__btn--ghost:hover{background:#f8f8f8}.restaurant-page__sub-prompt{background:#fff9f9;border:1.5px solid #f5c0c0;border-radius:14px;margin-top:24px;padding:24px}.restaurant-page__sub-prompt p{color:var(--volcyy-text-dark);font-weight:500;margin:0 0 16px}.restaurant-page__sub-prompt-actions{display:flex;flex-wrap:wrap;gap:10px}@media (max-width:600px){.restaurant-page__hero{height:220px}.restaurant-page__discount-badge{height:64px;width:64px}.restaurant-page__discount-badge span{font-size:1.4rem}.restaurant-page__btn{min-width:100%}}.card-page{background:#f8f5f5;min-height:100vh;padding:48px 24px 80px}.card-page--locked{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh;text-align:center}.card-page--locked h2{font-family:var(--heading-font)}.card-page--locked button{background:var(--volcyy-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;padding:10px 24px}.card-page__inner{margin:0 auto;max-width:680px}.card-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:800;margin:0 0 8px;text-align:center}.card-page__sub{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0 0 36px;text-align:center}.member-card{border-radius:24px;box-shadow:0 24px 64px #8b1a1a47;margin-bottom:32px;overflow:hidden;position:relative}.member-card--active{background:linear-gradient(140deg,#9b1f1f,#6b1111 55%,#4e0c0c);color:#fff}.member-card--inactive{background:linear-gradient(140deg,#5a5a5a,#3a3a3a 55%,#2a2a2a);box-shadow:0 24px 64px #00000038;color:#bbb}.member-card:after{background-image:var(--watermark);background-position:62% 50%;background-repeat:no-repeat;background-size:260px 260px;content:"";inset:0;opacity:.07;pointer-events:none;position:absolute}.member-card__header{align-items:flex-start;display:flex;justify-content:space-between;padding:28px 32px 12px}.member-card__logo{filter:brightness(0) invert(1);height:40px;width:auto}.member-card__since{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.member-card__since-label{font-size:.75rem;font-weight:500;letter-spacing:.03em;opacity:.7}.member-card__since-value{font-size:1rem;font-weight:700;opacity:.95}.member-card__body{align-items:center;display:flex;gap:24px;justify-content:space-between;padding:20px 32px 32px}.member-card__info{flex:1 1}.member-card__label{font-size:.68rem;font-weight:700;letter-spacing:.14em;margin:20px 0 4px;opacity:.6;text-transform:uppercase}.member-card__label:first-child{margin-top:0}.member-card__value{font-size:1rem;font-weight:600;margin:0;opacity:.95}.member-card__name{font-size:1.35rem;font-weight:700}.member-card__id{font-family:Courier New,monospace;font-size:1rem;letter-spacing:.06em;word-spacing:.3em}.member-card__qr{align-items:center;display:flex;flex-direction:column;flex-shrink:0;gap:10px}.member-card__qr-box{align-items:center;background:#fff;border-radius:16px;display:flex;justify-content:center;padding:14px}.member-card__qr-label{font-size:.72rem;font-weight:500;letter-spacing:.01em;margin:0;opacity:.65;text-align:center}.card-page__inactive-notice{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:16px;padding:28px;text-align:center}.card-page__inactive-notice h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.3rem;margin:0 0 8px}.card-page__inactive-notice p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0 0 20px}.card-page__cta{background:var(--volcyy-primary);border:none;border-radius:980px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:700;padding:13px 28px;transition:background .2s}.card-page__cta:hover{background:var(--volcyy-primary-hover)}@media (max-width:520px){.member-card__header{padding:22px 20px 10px}.member-card__body{align-items:flex-start;flex-direction:column;padding:16px 20px 24px}.member-card__qr{width:100%}.member-card__logo{height:32px}}.benefits-hero{background:linear-gradient(135deg,#8b1a1a,#6b1515);color:#fff;padding:80px 24px;text-align:center}.benefits-hero__inner{margin:0 auto;max-width:680px}.benefits-hero__title{font-family:var(--heading-font);font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800;line-height:1.2;margin:0 0 20px}.benefits-hero__title span{color:#ffcece}.benefits-hero__sub{font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.6;margin:0;opacity:.88}.benefits-pricing{background:#f8f5f5;padding:64px 24px}.benefits-pricing__inner{margin:0 auto;max-width:480px}.benefits-pricing__card{background:#fff;border:2px solid #8b1a1a14;border-radius:24px;box-shadow:0 16px 60px #8b1a1a1f;padding:44px;text-align:center}.benefits-pricing__badge{background:var(--volcyy-primary-light);border-radius:980px;color:var(--volcyy-primary);display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.12em;margin-bottom:20px;padding:6px 16px;text-transform:uppercase}.benefits-pricing__price{align-items:baseline;display:flex;gap:4px;justify-content:center;margin-bottom:8px}.benefits-pricing__amount{color:var(--volcyy-primary);font-family:var(--heading-font);font-size:4rem;font-weight:800;line-height:1}.benefits-pricing__period{color:var(--volcyy-text-muted);font-size:1.2rem;font-weight:500}.benefits-pricing__note{color:var(--volcyy-text-muted);font-size:.9rem;margin:0 0 28px}.benefits-pricing__list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0 0 32px;padding:0;text-align:left}.benefits-pricing__list li{align-items:center;color:var(--volcyy-text-dark);display:flex;font-size:.95rem;gap:8px}.benefits-pricing__cta{background:var(--volcyy-primary);border:none;border-radius:14px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1.05rem;font-weight:700;padding:16px;transition:background .2s;width:100%}.benefits-pricing__cta:hover{background:var(--volcyy-primary-hover)}.benefits-pricing__coming-soon{color:var(--volcyy-text-muted);font-size:.82rem;font-style:italic;margin-top:14px}.benefits-perks{padding:80px 24px}.benefits-perks__inner{margin:0 auto;max-width:1100px}.benefits-perks__heading{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;margin:0 0 48px;text-align:center}.benefits-perks__grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.benefits-perk{background:#fff;border:1px solid var(--volcyy-border);border-radius:16px;padding:28px}.benefits-perk__icon{display:block;font-size:2rem;margin-bottom:14px}.benefits-perk__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.15rem;font-weight:700;margin:0 0 8px}.benefits-perk__desc{color:var(--volcyy-text-muted);font-size:.92rem;line-height:1.6;margin:0}.benefits-cta{background:linear-gradient(135deg,#8b1a1a,#6b1515);color:#fff;padding:80px 24px;text-align:center}.benefits-cta__inner{margin:0 auto;max-width:600px}.benefits-cta h2{font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;margin:0 0 14px}.benefits-cta p{font-size:1.05rem;line-height:1.6;margin:0 0 28px;opacity:.88}.benefits-cta__btn{background:#fff;border:none;border-radius:980px;color:var(--volcyy-primary);cursor:pointer;font-family:var(--apple-font);font-size:1.05rem;font-weight:700;padding:16px 36px;transition:transform .2s,box-shadow .2s}.benefits-cta__btn:hover{box-shadow:0 8px 24px #0003;transform:translateY(-2px)}.contact-page{background:#f8f5f5;min-height:100vh;padding:64px 24px 100px}.contact-page__inner{margin:0 auto;max-width:1000px}.contact-page__header{margin-bottom:56px;text-align:center}.contact-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(2rem,4vw,3rem);font-weight:800;margin:0 0 12px}.contact-page__sub{color:var(--volcyy-text-muted);font-size:1.05rem;line-height:1.6;margin:0}.contact-page__grid{grid-gap:32px;align-items:start;display:grid;gap:32px;grid-template-columns:1fr 2fr}.contact-page__info{display:flex;flex-direction:column;gap:20px}.contact-info-item{align-items:flex-start;background:#fff;border:1px solid var(--volcyy-border);border-radius:14px;display:flex;gap:14px;padding:20px}.contact-info-item__icon{font-size:1.4rem;margin-top:2px}.contact-info-item h3{color:var(--volcyy-text-muted);font-family:var(--apple-font);font-size:.85rem;font-weight:700;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.contact-info-item a,.contact-info-item p{color:var(--volcyy-text-dark);font-size:.95rem;font-weight:500;margin:0;text-decoration:none}.contact-info-item a:hover{color:var(--volcyy-primary)}.contact-page__form-wrap{background:#fff;border:1px solid var(--volcyy-border);border-radius:20px;padding:36px}.contact-form{display:flex;flex-direction:column;gap:20px}.contact-form__field{display:flex;flex-direction:column;gap:6px}.contact-form__field label{color:var(--volcyy-text-dark);font-size:.88rem;font-weight:600}.contact-form__field input,.contact-form__field textarea{border:1.5px solid var(--volcyy-border);border-radius:10px;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:12px 16px;resize:vertical;transition:border-color .2s}.contact-form__field input:focus,.contact-form__field textarea:focus{border-color:var(--volcyy-primary)}.contact-form__error{color:#c53030;font-size:.82rem;font-weight:500}.contact-form__send-error{background:#fff5f5;border:1px solid #fccaca;border-radius:8px;color:#c53030;font-size:.88rem;margin:0;padding:12px 14px}.contact-form__send-error a{color:#c53030}.contact-form__submit{align-self:flex-start;background:var(--volcyy-primary);border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:1rem;font-weight:700;min-width:160px;padding:15px;transition:background .2s}.contact-form__submit:hover{background:var(--volcyy-primary-hover)}.contact-form__submit:disabled{cursor:not-allowed;opacity:.65}.contact-page__success{align-items:center;display:flex;flex-direction:column;gap:10px;padding:20px;text-align:center}.contact-page__success span{font-size:3rem}.contact-page__success h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.6rem;margin:0}.contact-page__success p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0}.contact-page__success button{background:none;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:500;margin-top:8px;padding:10px 20px;transition:background .2s}.contact-page__success button:hover{background:#f8f8f8}@media (max-width:768px){.contact-page__grid{grid-template-columns:1fr}.contact-page__form-wrap{padding:24px}}.legal-page{background:#fff;min-height:100vh;padding:64px 24px 100px}.legal-page__inner{margin:0 auto;max-width:760px}.legal-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(2rem,4vw,2.8rem);font-weight:800;margin:0 0 6px}.legal-page__date{color:var(--volcyy-text-muted);font-size:.88rem;margin:0 0 48px}.legal-section{margin-bottom:36px}.legal-section h2{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.2rem;font-weight:700;margin:0 0 10px}.legal-section p{color:var(--volcyy-text-muted);font-size:.97rem;line-height:1.75;margin:0}.legal-section a{color:var(--volcyy-primary);text-decoration:none}.legal-section a:hover{text-decoration:underline}.sub-page{background:#f8f5f5;min-height:100vh;padding:64px 24px 100px}.sub-page--locked{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh;text-align:center}.sub-page--locked h2{font-family:var(--heading-font)}.sub-page--locked button{background:var(--volcyy-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;padding:10px 24px}.sub-page__inner{margin:0 auto;max-width:580px}.sub-page__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(2rem,4vw,2.8rem);font-weight:800;margin:0 0 36px}.sub-page__status-card{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:16px;display:flex;flex-direction:column;gap:16px;margin-bottom:24px;padding:28px}.sub-page__status-row{align-items:center;display:flex;font-size:.95rem;justify-content:space-between}.sub-page__status-label{color:var(--volcyy-text-muted);font-weight:500}.sub-page__status-value{color:var(--volcyy-text-dark);font-weight:600}.sub-page__status-value.active{color:#166534}.sub-page__status-value.inactive{color:#991b1b}.sub-page__member-id{font-family:Courier New,monospace;font-size:.9rem;letter-spacing:.04em}.sub-page__inactive-cta{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:14px;margin-bottom:24px;padding:24px;text-align:center}.sub-page__inactive-cta p{color:var(--volcyy-text-muted);margin:0 0 16px}.sub-page__join-btn{background:var(--volcyy-primary);border:none;border-radius:980px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:12px 28px;transition:background .2s}.sub-page__join-btn:hover{background:var(--volcyy-primary-hover)}.sub-page__cancel-btn{background:#0000;border:1.5px solid #e5e5e5;border-radius:10px;color:#9b1c1c;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;padding:12px 24px;transition:background .2s}.sub-page__cancel-btn:hover{background:#fff5f5}.sub-page__confirm{background:#fff5f5;border:1.5px solid #fccaca;border-radius:14px;padding:28px}.sub-page__confirm h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.3rem;margin:0 0 8px}.sub-page__confirm p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0 0 20px}.sub-page__confirm-actions{display:flex;flex-wrap:wrap;gap:12px}.sub-page__confirm-yes{background:#9b1c1c;border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:11px 20px;transition:background .2s}.sub-page__confirm-yes:hover{background:#7f1d1d}.sub-page__confirm-yes:disabled{cursor:not-allowed;opacity:.65}.sub-page__confirm-no{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:10px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:11px 20px;transition:background .2s}.sub-page__confirm-no:hover{background:#f8f8f8}.sub-page__confirm-no:disabled{cursor:not-allowed;opacity:.65}.sub-page__done{align-items:center;background:#fff;border:1.5px solid var(--volcyy-border);border-radius:16px;display:flex;flex-direction:column;gap:12px;padding:40px;text-align:center}.sub-page__done span{font-size:2.5rem}.sub-page__done h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.5rem;margin:0}.sub-page__done p{color:var(--volcyy-text-muted);font-size:.95rem;line-height:1.6;margin:0;max-width:360px}.sub-page__done button{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;margin-top:8px;padding:12px 28px;transition:background .2s}.sub-page__done button:hover{background:var(--volcyy-primary-hover)}.sub-page__admin-toggle{background:#faf5ff;border:1.5px dashed #a78bfa;border-radius:14px;margin-top:32px;padding:20px 24px}.sub-page__admin-label{color:#7c3aed;font-size:.78rem;font-weight:700;letter-spacing:.1em;margin:0 0 14px;text-transform:uppercase}.sub-page__admin-row{align-items:center;color:var(--volcyy-text-dark);display:flex;flex-wrap:wrap;font-size:.92rem;gap:16px;justify-content:space-between}.sub-page__toggle-btn{border:none;border-radius:8px;cursor:pointer;font-family:var(--apple-font);font-size:.88rem;font-weight:700;padding:9px 20px;transition:background .2s;white-space:nowrap}.sub-page__toggle-btn--on{background:#166534;color:#fff}.sub-page__toggle-btn--on:hover{background:#14532d}.sub-page__toggle-btn--off{background:#991b1b;color:#fff}.sub-page__toggle-btn--off:hover{background:#7f1d1d}.sub-page__toggle-btn:disabled{cursor:not-allowed;opacity:.6}.admin-page{background:#f8f5f5;min-height:100vh;padding:48px 24px 100px}.admin-page__inner{margin:0 auto;max-width:1000px}.admin-page__empty,.admin-page__loading{color:var(--volcyy-text-muted);font-size:.95rem;padding:60px;text-align:center}.admin-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:36px}.admin-header__title{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;margin:0 0 4px}.admin-header__sub{color:var(--volcyy-text-muted);font-size:.9rem;margin:0}.admin-header__btns{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-seed-btn{background:#f5f5f5;border:1.5px solid var(--volcyy-border);border-radius:10px;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.88rem;font-weight:600;padding:12px 18px;transition:background .2s,color .2s}.admin-seed-btn:hover{background:#ebebeb;color:var(--volcyy-text-dark)}.admin-seed-btn:disabled{cursor:not-allowed;opacity:.55}.admin-add-btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:12px 22px;transition:background .2s}.admin-add-btn:hover{background:var(--volcyy-primary-hover)}.admin-form{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:18px;margin-bottom:36px;padding:32px}.admin-form__heading{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.4rem;font-weight:700;margin:0 0 24px}.admin-form__grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:24px}.admin-form__field{display:flex;flex-direction:column;gap:6px}.admin-form__field--full{grid-column:1/-1}.admin-form__field label{color:var(--volcyy-text-dark);font-size:.85rem;font-weight:600}.admin-form__hint{color:var(--volcyy-text-muted);font-size:.8rem;font-weight:400}.admin-form__field input,.admin-form__field textarea{border:1.5px solid var(--volcyy-border);border-radius:10px;font-family:var(--apple-font);font-size:.95rem;outline:none;padding:11px 14px;resize:vertical;transition:border-color .2s}.admin-form__field input:focus,.admin-form__field textarea:focus{border-color:var(--volcyy-primary)}.admin-form__image-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.admin-form__img-preview{border:1px solid var(--volcyy-border);border-radius:10px;height:80px;object-fit:cover;width:80px}.admin-form__upload-btn{background:#f5f5f5;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-dark);cursor:pointer;display:inline-block;font-family:var(--apple-font);font-size:.88rem;font-weight:600;padding:9px 18px;transition:background .2s}.admin-form__upload-btn:hover{background:#ebebeb}.admin-form__remove-img{background:none;border:none;color:#c53030;cursor:pointer;font-family:var(--apple-font);font-size:.85rem;margin-left:8px;text-decoration:underline}.admin-form__actions{display:flex;gap:12px}.admin-form__save-btn{background:var(--volcyy-primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:700;padding:12px 28px;transition:background .2s}.admin-form__save-btn:hover{background:var(--volcyy-primary-hover)}.admin-form__save-btn:disabled{cursor:not-allowed;opacity:.65}.admin-form__cancel-btn{background:#f5f5f5;border:none;border-radius:10px;color:var(--volcyy-text-muted);cursor:pointer;font-family:var(--apple-font);font-size:.95rem;font-weight:600;padding:12px 24px;transition:background .2s}.admin-form__cancel-btn:hover{background:#ebebeb}.admin-list{display:flex;flex-direction:column;gap:12px}.admin-list__item{align-items:center;background:#fff;border:1px solid var(--volcyy-border);border-radius:14px;display:flex;gap:16px;padding:16px}.admin-list__img{border-radius:10px;flex-shrink:0;height:72px;object-fit:cover;width:72px}.admin-list__img,.admin-list__img--placeholder{background:#f0f0f0}.admin-list__info{flex:1 1;min-width:0}.admin-list__name{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.05rem;font-weight:700;margin:0 0 4px}.admin-list__meta{color:var(--volcyy-text-muted);font-size:.85rem;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-list__discount{background:var(--volcyy-primary-light);border-radius:980px;color:var(--volcyy-primary);display:inline-block;font-size:.78rem;font-weight:700;padding:3px 10px}.admin-list__btns{display:flex;flex-shrink:0;gap:8px}.admin-list__edit-btn{background:#fff;border:1.5px solid var(--volcyy-border);border-radius:8px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s}.admin-list__edit-btn:hover{background:#f5f5f5}.admin-list__delete-btn{background:#fff;border:1.5px solid #fccaca;border-radius:8px;color:#c53030;cursor:pointer;font-family:var(--apple-font);font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s}.admin-list__delete-btn:hover{background:#fff5f5}.admin-delete-modal{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.admin-delete-modal__inner{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:380px;padding:32px;text-align:center;width:100%}.admin-delete-modal__inner h3{color:var(--volcyy-text-dark);font-family:var(--heading-font);font-size:1.3rem;margin:0 0 8px}.admin-delete-modal__inner p{color:var(--volcyy-text-muted);font-size:.9rem;margin:0 0 20px}.admin-delete-modal__actions{display:flex;gap:10px;justify-content:center}.admin-delete-modal__confirm{background:#9b1c1c;border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:700;padding:11px 24px}.admin-delete-modal__confirm:hover{background:#7f1d1d}.admin-delete-modal__cancel{background:#f5f5f5;border:none;border-radius:10px;color:var(--volcyy-text-dark);cursor:pointer;font-family:var(--apple-font);font-size:.9rem;font-weight:600;padding:11px 24px}.admin-delete-modal__cancel:hover{background:#ebebeb}@media (max-width:600px){.admin-form__grid{grid-template-columns:1fr}.admin-list__item{flex-wrap:wrap}.admin-list__btns{justify-content:flex-end;width:100%}}.qr-verify{align-items:center;background:#f8f5f5;display:flex;justify-content:center;min-height:100vh;padding:24px}.qr-verify__card{background:#fff;border-radius:20px;box-shadow:0 12px 40px #0000001f;max-width:380px;padding:48px 36px;text-align:center;width:100%}.qr-verify__logo{height:32px;margin-bottom:36px;width:auto}.qr-verify__loading{align-items:center;color:var(--volcyy-text-muted);display:flex;flex-direction:column;font-size:.95rem;gap:14px}.spinner{animation:spin .8s linear infinite;border:3px solid var(--volcyy-primary-light);border-radius:50%;border-top-color:var(--volcyy-primary);height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.qr-verify__result{align-items:center;display:flex;flex-direction:column;gap:12px}.qr-verify__icon{font-size:3.5rem;line-height:1}.qr-verify__status{font-family:var(--heading-font);font-size:1.8rem;font-weight:800;margin:0}.qr-verify__result--active .qr-verify__status{color:#166534}.qr-verify__result--inactive .qr-verify__status{color:#991b1b}.qr-verify__name{color:var(--volcyy-text-dark);font-size:1.15rem;font-weight:500;margin:0}.qr-verify__footer{color:var(--volcyy-text-muted);font-size:.78rem;margin-top:36px}h1,h2,h3,h4,h5,h6{line-height:1.2;margin:0}p{margin:0}button,input,select,textarea{font-family:inherit}img{display:block;max-width:100%}
/*# sourceMappingURL=main.5982f97c.css.map*/