.navbar-container{position:sticky;top:0;z-index:50;padding:16px 24px}.navbar{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-pill);box-shadow:var(--glass-shadow);transition:background var(--transition-normal)}.navbar:hover{background:var(--glass-bg-hover)}.navbar__brand{font-weight:700;font-size:1.25rem;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}.navbar__brand-icon{-webkit-text-fill-color:initial;color:initial}.navbar__links{display:flex;gap:8px}.navbar__link{text-decoration:none;color:var(--color-text);font-weight:500;font-size:.95rem;padding:8px 16px;min-height:44px;display:flex;align-items:center;border-radius:var(--radius-pill);transition:all var(--transition-fast);position:relative}.navbar__link:hover{background:#0000000d;color:var(--color-primary)}.navbar__link.active{background:var(--color-primary);color:#fff;box-shadow:0 4px 12px #6366f14d}.navbar__link-icon{display:none;font-size:1.25rem;margin-bottom:2px}@media(max-width:768px){.navbar-container{position:fixed;top:auto;bottom:0;left:0;right:0;padding:12px 16px;padding-bottom:env(safe-area-inset-bottom,12px);background:transparent}.navbar{padding:8px 12px;border-radius:var(--radius-lg)}.navbar__brand{display:none}.navbar__links{width:100%;justify-content:space-between;gap:0}.navbar__link{flex-direction:column;justify-content:center;flex:1;padding:8px 4px;border-radius:var(--radius-md);font-size:.75rem;min-height:auto}.navbar__link-icon{display:block}.navbar__link-text{display:block;margin-top:2px;font-weight:600}.navbar__link.active{background:#6366f126;color:var(--color-primary);box-shadow:none}}@media(max-width:480px){.navbar-container{padding:8px;padding-bottom:env(safe-area-inset-bottom,8px)}}.event-card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:all var(--transition-normal);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.event-card:hover{transform:translateY(-6px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;background:var(--glass-bg-hover);border-color:#fffc}.event-card__image-container{width:100%;height:200px;overflow:hidden}.event-card__image{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}.event-card:hover .event-card__image{transform:scale(1.05)}.event-card__body{padding:20px;display:flex;flex-direction:column;gap:12px;flex:1}.event-card__title{font-size:1.25rem;font-weight:700;margin:0;line-height:1.3;color:var(--color-text)}.event-card__meta{margin:0;font-size:.9rem;color:var(--color-text-muted);display:flex;align-items:center;gap:6px}.event-card__desc{margin:0;font-size:.95rem;color:var(--color-text);line-height:1.5;opacity:.9}.event-card__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px}.event-card__tag{background:#6366f11a;color:var(--color-primary);border-radius:var(--radius-pill);padding:4px 12px;font-size:.8rem;font-weight:500}.event-card__actions{margin-top:16px}.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;min-height:44px;border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:#ffffff80;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--color-text);transition:all var(--transition-fast);width:100%}.btn-icon:hover{background:#ffffffe6;transform:scale(1.02)}.btn-icon--active{background:#fef2f2;border-color:#fca5a5;color:#ef4444}.btn-icon--active:hover{background:#fee2e2}@media(max-width:480px){.event-card__image-container{height:180px}.event-card__body{padding:16px;gap:10px}.event-card__title{font-size:1.15rem}}.recs-page{max-width:1000px;margin:0 auto;padding:24px 0}.recs-page__title{font-size:2rem;font-weight:700;margin-bottom:24px;letter-spacing:-.5px}.recs-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}@media(max-width:480px){.recs-page__grid{grid-template-columns:1fr}}.page-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:50vh;padding:32px;text-align:center;color:var(--color-text-muted);font-size:1.1rem;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.btn-primary-sm{padding:12px 28px;min-height:48px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #6366f14d}.btn-primary-sm:hover{transform:translateY(-2px);box-shadow:0 6px 16px #6366f166}.prefs-page{max-width:800px;margin:0 auto;padding:32px 16px 100px}.prefs-page__title{font-size:2rem;font-weight:700;margin-bottom:12px;letter-spacing:-.5px}.prefs-page__hint{color:var(--color-text-muted);margin-bottom:32px;font-size:1.05rem}.prefs-page__section{margin-bottom:32px;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--glass-shadow)}.prefs-page__section-title{font-size:1.2rem;font-weight:600;margin-bottom:16px;color:var(--color-text);margin-top:0}.prefs-page__tag-list{display:flex;flex-wrap:wrap;gap:12px}.prefs-page__tag{padding:10px 20px;min-height:44px;border-radius:var(--radius-pill);border:1.5px solid rgba(0,0,0,.08);background:#ffffff80;font-size:.95rem;cursor:pointer;transition:all var(--transition-fast);color:var(--color-text);font-weight:500}.prefs-page__tag:hover{border-color:var(--color-primary);background:#fffc;transform:translateY(-2px)}.prefs-page__tag--selected{border-color:var(--color-primary);background:#6366f11a;color:var(--color-primary);font-weight:600}.prefs-page__footer{position:fixed;bottom:0;left:0;right:0;padding:20px;background:#ffffffbf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);display:flex;justify-content:center;z-index:50}.btn-primary{padding:14px 32px;min-height:48px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;border:none;border-radius:var(--radius-pill);font-size:1.05rem;font-weight:600;cursor:pointer;width:100%;max-width:400px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #6366f14d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f166}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:768px){.prefs-page__footer{bottom:calc(64px + env(safe-area-inset-bottom,12px));padding:12px}}@media(max-width:480px){.prefs-page__title{font-size:1.6rem}.prefs-page__section{padding:16px}}.detail-page{max-width:800px;margin:24px auto 48px;padding:32px;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.btn-back{background:#ffffff80;border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--color-primary);font-weight:600;font-size:.95rem;cursor:pointer;padding:8px 16px;min-height:44px;display:inline-flex;align-items:center;gap:8px;margin-bottom:24px;transition:all var(--transition-fast)}.btn-back:hover{background:#fff;box-shadow:0 2px 8px #0000000d}.detail-page__image{width:100%;max-height:400px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:24px;box-shadow:0 4px 12px #0000001a}.detail-page__title{font-size:2.2rem;font-weight:700;margin-bottom:16px;line-height:1.2}.detail-page__meta{display:flex;flex-wrap:wrap;gap:16px;color:var(--color-text-muted);font-size:1rem;margin-bottom:16px;font-weight:500}.detail-page__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.detail-page__tag{background:#6366f11a;color:var(--color-primary);border-radius:var(--radius-pill);padding:6px 16px;font-size:.85rem;font-weight:500}.detail-page__desc{font-size:1.05rem;line-height:1.8;color:var(--color-text);margin-bottom:32px}.detail-page__actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px}.btn-outline{padding:12px 24px;min-height:48px;border:1px solid var(--color-primary);border-radius:var(--radius-pill);background:transparent;color:var(--color-primary);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:8px}.btn-outline:hover{background:var(--color-primary);color:#fff}.btn-outline--active{border-color:#fca5a5;background:#fef2f2;color:#ef4444}.btn-outline--active:hover{background:#fee2e2;color:#dc2626;border-color:#ef4444}.detail-page__similar{border-top:1px solid rgba(0,0,0,.05);padding-top:32px}.detail-page__similar-title{font-size:1.5rem;font-weight:700;margin-bottom:24px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.detail-page__similar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}@media(max-width:768px){.detail-page{padding:20px}}@media(max-width:480px){.detail-page__title{font-size:1.6rem}.detail-page__actions{flex-direction:column}.detail-page__actions>*{width:100%;justify-content:center}.detail-page__similar-grid{grid-template-columns:1fr}}.favorites-page{max-width:1000px;margin:0 auto;padding:24px 0}.favorites-page__title{font-size:2rem;font-weight:700;margin-bottom:24px;letter-spacing:-.5px}.favorites-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}@media(max-width:480px){.favorites-page__grid{grid-template-columns:1fr}}:root{--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-secondary: #ec4899;--color-text: #1f2937;--color-text-muted: #6b7280;--bg-gradient: linear-gradient(135deg, #f3e8ff 0%, #e0e7ff 50%, #fae8ff 100%);--glass-bg: rgba(255, 255, 255, .7);--glass-bg-hover: rgba(255, 255, 255, .85);--glass-border: rgba(255, 255, 255, .5);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .05);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 9999px;--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Outfit,system-ui,-apple-system,sans-serif;background:var(--bg-gradient);background-attachment:fixed;color:var(--color-text);min-height:100dvh;line-height:1.5}#root{display:flex;flex-direction:column;min-height:100dvh;position:relative;z-index:1}img{max-width:100%;display:block}button{font-family:inherit;border:none;background:none;cursor:pointer}#root:before,#root:after{content:"";position:absolute;filter:blur(80px);z-index:-1;opacity:.5;border-radius:50%;animation:float 20s infinite alternate ease-in-out}#root:before{top:-10%;left:-10%;width:50vw;height:50vw;background:#9333ea4d}#root:after{bottom:-10%;right:-10%;width:60vw;height:60vw;background:#3b82f64d;animation-delay:-5s}@keyframes float{0%{transform:translate(0) scale(1)}33%{transform:translate(5%,10%) scale(1.1)}66%{transform:translate(-5%,5%) scale(.9)}to{transform:translateY(-10%) scale(1.05)}}.gradient-text{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;display:inline-block}.page-enter{animation:fadeIn var(--transition-normal) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.layout-wrapper{display:flex;flex-direction:column;min-height:100dvh}.main-content{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px}@media(max-width:768px){.main-content{padding:16px 16px 90px}}@media(max-width:480px){.main-content{padding:12px 12px 90px}}
