/* RSVPix Guest Shell App - Brand Design System with Dark Mode */

:root {
  /* Font Families */
  --font-heading: 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  
  /* Primary Brand Colors */
  --color-primary-main: #2563EB;
  --color-primary-light: #3B82F6;
  --color-primary-dark: #1E4ED8;
  --color-primary-50: #EFF6FF;
  --color-primary-100: #DBEAFE;
  
  /* Accent Colors (Fresh Mint) */
  --color-accent-main: #2DD4BF;
  --color-accent-light: #5EEAD4;
  --color-accent-dark: #14B8A6;
  
  /* Text Colors - Light Mode */
  --color-charcoal: #111827;
  --color-slate-grey: #4B5563;
  --color-cloud-white: #F9FAFB;
  --color-soft-grey: #E5E7EB;
  
  /* Background Colors */
  --color-paper: #FFFFFF;
  
  /* Border Colors */
  --color-border: #E5E7EB;
  
  /* Grey Scale */
  --color-grey-50: #F9FAFB;
  --color-grey-100: #F3F4F6;
  --color-grey-200: #E5E7EB;
  --color-grey-300: #D1D5DB;
  --color-grey-400: #9CA3AF;
  --color-grey-500: #6B7280;
  --color-grey-600: #4B5563;
  --color-grey-700: #374151;
  --color-grey-800: #1F2937;
  --color-grey-900: #111827;
  
  /* Functional Colors */
  --color-success: #10B981;
  --color-warning: #F59E0B;
  --color-error: #EF4444;
  --color-disabled: #9CA3AF;
  
  /* Shadows */
  --shadow-card: 0 10px 30px rgba(0, 0, 0, 0.05);
  --shadow-card-hover: 0 20px 40px rgba(0, 0, 0, 0.1);
  --shadow-button: 0 6px 20px rgba(37, 99, 235, 0.15);
  --shadow-subtle: 0 2px 8px rgba(0, 0, 0, 0.04);
  
  /* Border Radius */
  --radius-button: 10px;
  --radius-card: 16px;
  --radius-input: 10px;
  
  font-family: var(--font-body);
  line-height: 1.6;
}

/* Dark Mode Variables */
[data-theme='dark'], .dark-mode {
  color-scheme: dark;

  /* Text Colors - Dark Mode - Enhanced contrast */
  --color-charcoal: #F9FAFB;
  --color-slate-grey: #E5E7EB;
  --color-cloud-white: #0B1120;
  --color-soft-grey: #374151;

  /* Background Colors - Rich dark background */
  --color-paper: #151E2E;
  --color-surface: #1A2435;

  /* Border Colors */
  --color-border: #2D3A4D;

  /* Grey Scale - Dark Mode - Better contrast */
  --color-grey-50: #0F172A;
  --color-grey-100: #1E293B;
  --color-grey-200: #2D3A4D;
  --color-grey-300: #4B5563;
  --color-grey-400: #6B7280;
  --color-grey-500: #9CA3AF;
  --color-grey-600: #D1D5DB;
  --color-grey-700: #E5E7EB;
  --color-grey-800: #F3F4F6;
  --color-grey-900: #F9FAFB;

  /* Functional Colors - Dark Mode - Vibrant accents */
  --color-success: #34D399;
  --color-warning: #FBBF24;
  --color-error: #F87171;
  --color-disabled: #6B7280;

  /* Shadows - Dark Mode - Enhanced depth */
  --shadow-card: 0 10px 30px rgba(0, 0, 0, 0.5);
  --shadow-card-hover: 0 20px 40px rgba(0, 0, 0, 0.6);
  --shadow-button: 0 6px 20px rgba(37, 99, 235, 0.4);
  --shadow-subtle: 0 2px 8px rgba(0, 0, 0, 0.3);
}

html, body {
  min-width: 100%;
  font-family: var(--font-body);
  transition: background-color 0.3s ease, color 0.3s ease;
}

#root {
  width: 100%;
  font-family: var(--font-body);
  min-height: 100vh;
  background-color: var(--color-cloud-white);
  transition: background-color 0.3s ease;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--color-charcoal);
  transition: color 0.3s ease;
}

/* Smooth transitions for theme changes */
* {
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

button, a, svg, img {
  transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

/* ============================================
   BRAND GRADIENT UTILITIES & ANIMATIONS
   ============================================ */

/* Brand Gradient Background */
.brand-gradient {
  background: linear-gradient(135deg, #2563EB 0%, #2DD4BF 100%);
}

.brand-gradient-animated {
  background: linear-gradient(135deg, #2563EB 0%, #2DD4BF 50%, #2563EB 100%);
  background-size: 200% 200%;
  animation: gradientShift 3s ease infinite;
}

/* Brand Glow Effects */
.brand-glow {
  box-shadow: 0 0 20px rgba(37, 99, 235, 0.3), 0 0 40px rgba(45, 212, 191, 0.1);
}

.brand-glow-hover:hover {
  box-shadow: 0 0 30px rgba(37, 99, 235, 0.4), 0 0 60px rgba(45, 212, 191, 0.2);
}

/* Shimmer Effect for Buttons */
.btn-shimmer {
  position: relative;
  overflow: hidden;
}

.btn-shimmer::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.2),
    transparent
  );
  transform: translateX(-100%);
}

.btn-shimmer:hover::after {
  animation: shimmer 0.6s ease;
}

/* Floating Animation */
.float-hover:hover {
  animation: float 2s ease-in-out infinite;
}

/* Glassmorphism Enhancement */
.glass {
  background: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

[data-theme='dark'] .glass {
  background: rgba(21, 30, 46, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Text Gradient */
.text-gradient {
  background: linear-gradient(135deg, #2563EB 0%, #2DD4BF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Dark Mode Specific Enhancements */
[data-theme='dark'] .brand-gradient {
  background: linear-gradient(135deg, #3B82F6 0%, #2DD4BF 100%);
  box-shadow: 0 4px 20px rgba(37, 99, 235, 0.4);
}

[data-theme='dark'] .brand-glow {
  box-shadow: 0 0 30px rgba(37, 99, 235, 0.4), 0 0 60px rgba(45, 212, 191, 0.2);
}

/* Keyframes */
@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-4px); }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px rgba(37, 99, 235, 0.3), 0 0 40px rgba(45, 212, 191, 0.1); }
  50% { box-shadow: 0 0 30px rgba(37, 99, 235, 0.5), 0 0 60px rgba(45, 212, 191, 0.2); }
}
.yarl__fullsize{height:100%;width:100%}.yarl__relative{position:relative}.yarl__portal{bottom:0;left:0;opacity:0;overflow:hidden;position:fixed;right:0;top:0;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999)}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));bottom:0;left:0;outline:none;overflow:hidden;overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);position:absolute;right:0;top:0;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;-moz-user-select:none;user-select:none}.yarl__carousel{align-content:center;align-items:stretch;display:flex;flex:0 0 auto;height:100%;justify-content:center;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px, 0)*1px + var(--yarl__carousel_spacing_percent, 0)*1%))}.yarl__carousel_with_slides{-moz-column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%);column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%)}.yarl__flex_center{align-content:center;align-items:center;display:flex;justify-content:center}.yarl__slide{flex:1;overflow:hidden;padding:calc(var(--yarl__carousel_padding_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_padding_percent, 0)*1%);position:relative}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.yarl__slide_image_cover{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);-webkit-transform-style:preserve-3d}}.yarl__slide_placeholder{left:50%;line-height:0;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%)}.yarl__slide_loading{animation:yarl__delayed_fadein 1s linear;color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,hsla(0,0%,100%,.8)))}.yarl__slide_loading line{animation:yarl__stroke_opacity 1s linear infinite}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media (prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{bottom:auto;display:flex;justify-content:flex-end;left:auto;padding:var(--yarl__toolbar_padding,8px);position:absolute;right:0;top:0}[dir=rtl] .yarl__toolbar{bottom:auto;left:0;right:auto;top:0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,hsla(0,0%,100%,.8));cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));line-height:0;margin:var(--yarl__button_margin,0);outline:none;padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,hsla(0,0%,100%,.8))}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media (hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,hsla(0,0%,100%,.4));cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%) rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%) rotate(180deg)}.yarl__no_scroll{height:100%;overflow:hidden;overscroll-behavior:none}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}