/* ============================================
   PULSE — Unified Discovery
   ============================================ */

:root {
  --bg: #06060e;
  --surface: rgba(255,255,255,0.04);
  --surface-hover: rgba(255,255,255,0.08);
  --border: rgba(255,255,255,0.07);
  --border-bright: rgba(255,255,255,0.15);
  --text: #f0f0f5;
  --text-dim: rgba(255,255,255,0.5);
  --text-muted: rgba(255,255,255,0.28);

  --someone-1: #8b5cf6; --someone-2: #06b6d4;
  --something-1: #f59e0b; --something-2: #ef4444;
  --somewhere-1: #10b981; --somewhere-2: #06b6d4;
  --surprise-1: #ec4899; --surprise-2: #f59e0b;

  --a1: #8b5cf6; --a2: #06b6d4;

  --glass: rgba(14,12,26,0.62);
  --glass-border: rgba(255,255,255,0.08);
  --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-xl: 32px;
  --tr-fast: .2s cubic-bezier(.4,0,.2,1);
  --tr-smooth: .5s cubic-bezier(.4,0,.2,1);
  --tr-dramatic: .8s cubic-bezier(.16,1,.3,1);

}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}

/* ---- Video Background ---- */
.video-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.video-bg video{width:100%;height:100%;object-fit:cover}
.video-overlay{position:absolute;inset:0;background:rgba(6,6,14,.35);pointer-events:none}

/* ============================================
   Scene Background (global cross-fading)
   ============================================ */
.scene-bg{position:fixed;inset:0;z-index:0;pointer-events:none}
.scene-layer{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s cubic-bezier(.4,0,.2,1);will-change:opacity}
.scene-layer.visible{opacity:1}
.scene-overlay{position:absolute;inset:0;background:
  radial-gradient(ellipse at 50% 30%,rgba(6,6,14,.15) 20%,rgba(6,6,14,.45) 65%),
  linear-gradient(180deg,rgba(6,6,14,.2) 0%,rgba(6,6,14,.5) 50%,rgba(6,6,14,.75) 100%);
  transition:background .8s ease}

.scene-bg.deep .scene-overlay{background:
  radial-gradient(ellipse at 50% 20%,rgba(6,6,14,.1) 10%,rgba(6,6,14,.55) 50%),
  linear-gradient(180deg,rgba(6,6,14,.3) 0%,rgba(6,6,14,.65) 45%,rgba(6,6,14,.88) 100%)}

/* ---- Funnel / Journey ---- */
.funnel{position:fixed;right:28px;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding:16px 18px;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--r-lg);width:170px;opacity:0;pointer-events:none;transition:opacity .4s ease,transform .4s ease}
.funnel.visible{opacity:1;pointer-events:auto}
.funnel-count{font-family:'Space Grotesk',monospace;font-size:24px;font-weight:700;background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:var(--tr-smooth);line-height:1;text-align:right}
.funnel-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);text-align:right;margin-bottom:4px}
.funnel-timeline{display:flex;flex-direction:column;gap:0;width:100%;min-height:80px;align-items:flex-end}

.fstep{display:flex;flex-direction:row-reverse;align-items:center;gap:10px;padding:5px 0;cursor:pointer;position:relative;transition:var(--tr-fast);justify-content:flex-start}
.fstep:hover .fstep-label{color:rgba(255,255,255,.8)}
.fstep:hover .fstep-dot{transform:scale(1.3)}

/* Connecting line between dots */
.fstep:not(:last-child)::after{content:'';position:absolute;right:5px;top:calc(50% + 6px);width:2px;height:calc(100% - 2px);background:var(--border);transition:background .4s ease;z-index:0}
.fstep.done:not(:last-child)::after{background:var(--a2)}

.fstep-dot{width:12px;height:12px;border-radius:50%;background:#1a1828;border:2px solid var(--border);flex-shrink:0;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative;z-index:1}
.fstep.active .fstep-dot{background:#1a1828;border-color:var(--a1);box-shadow:0 0 14px color-mix(in srgb,var(--a1) 60%,transparent);transform:scale(1.2)}
.fstep.done .fstep-dot{background:var(--a2);border-color:var(--a2)}
.fstep.future .fstep-dot{background:#1a1828}

.fstep-label{font-size:10px;font-weight:600;color:var(--text-muted);white-space:nowrap;transition:color .2s ease;max-width:120px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.8px;text-align:right}
.fstep.active .fstep-label{color:var(--text);font-weight:600}
.fstep.done .fstep-label{color:var(--text-dim)}

/* ---- Logo + Profile Button ---- */
.top-logo{position:fixed;top:24px;left:28px;z-index:110;display:flex;align-items:center;gap:14px}
.top-logo-img{height:44px;width:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}

/* Profile Avatar Button */
.profile-avatar-wrap{display:flex;align-items:center;gap:10px}
.profile-avatar-btn{position:relative;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--a1),var(--a2));border:none;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 16px rgba(0,0,0,.3);padding:0}
.profile-avatar-btn:hover{transform:scale(1.1);box-shadow:0 4px 24px rgba(0,0,0,.4)}
.avatar-hint{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:500;color:rgba(255,255,255,.85);white-space:nowrap;animation:hint-glow 2.5s ease-in-out infinite;display:none}
.avatar-hint.visible{display:inline}
@keyframes hint-glow{0%,100%{opacity:.6;text-shadow:0 0 6px rgba(255,255,255,.15)}50%{opacity:1;text-shadow:0 0 12px rgba(255,255,255,.4),0 0 24px color-mix(in srgb,var(--a1) 30%,transparent)}}
.avatar-progress-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.avatar-progress-bg{fill:none;stroke:rgba(255,255,255,.3);stroke-width:3}
.avatar-progress-fill{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-dasharray:138.23;stroke-dashoffset:138.23;transition:stroke-dashoffset .6s ease}
.profile-avatar-initials{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:700;color:#fff;line-height:1;display:flex;align-items:center;justify-content:center}
.profile-avatar-initials svg{opacity:.8}
.profile-avatar-initials.has-name svg{display:none}

/* Profile Greeting */
.profile-greeting{display:flex;align-items:center;gap:16px;margin-bottom:20px;justify-content:center;min-height:56px}
.greeting-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--a1),var(--a2));display:flex;align-items:center;justify-content:center;font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:700;color:#fff;box-shadow:0 4px 20px color-mix(in srgb,var(--a1) 25%,transparent);flex-shrink:0}
.greeting-avatar svg{opacity:.7}
.greeting-text{font-family:'Space Grotesk',sans-serif;font-size:28px;font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.greeting-name-input{background:transparent;border:none;border-bottom:2px solid rgba(255,255,255,.2);font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:600;color:#fff;padding:6px 2px;outline:none;width:200px;transition:border-color .3s ease;text-shadow:0 1px 6px rgba(0,0,0,.3)}
.greeting-name-input::placeholder{color:rgba(255,255,255,.65);font-weight:400}
.greeting-name-input:focus{border-color:var(--a1)}

/* ---- Nav Buttons ---- */
.nav-btns{position:fixed;bottom:24px;right:28px;z-index:100;display:flex;gap:8px}
.back-btn{display:flex;align-items:center;gap:5px;padding:8px 14px;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--r-md);color:var(--text);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:var(--tr-fast);box-shadow:0 2px 12px rgba(0,0,0,.3)}
.back-btn:hover{background:var(--surface-hover);border-color:var(--border-bright)}

/* ============================================
   Top Metric Chips
   ============================================ */
.top-chips{position:fixed;top:24px;right:28px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:6px;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .5s ease;transform:translateY(-8px)}
body.has-chips .top-chips{opacity:1;pointer-events:auto;transform:translateY(0)}
.top-city-name{font-family:'Space Grotesk',sans-serif;font-size:52px;font-weight:800;letter-spacing:-2px;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,.65) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:right;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}

/* Phonetic */
.top-phonetic{display:inline-flex;align-items:center;gap:8px;align-self:flex-end;background:none;border:none;cursor:pointer;padding:2px 0;color:rgba(255,255,255,.4);transition:color .25s ease}
.top-phonetic:hover{color:rgba(255,255,255,.7)}
.top-phonetic.speaking{color:var(--a1);animation:pulse-speak .9s ease-in-out infinite}
@keyframes pulse-speak{0%,100%{opacity:1}50%{opacity:.45}}
.top-phonetic-text{font-family:'Inter',sans-serif;font-size:14px;font-weight:300;font-style:italic;letter-spacing:1.5px}
.top-phonetic-icon{opacity:.5;transition:opacity .2s ease;flex-shrink:0}
.top-phonetic:hover .top-phonetic-icon{opacity:1}

/* Weather block */
.top-weather{display:flex;align-items:center;gap:10px;justify-content:flex-end}
.top-weather-icon{font-size:36px;line-height:1}
.top-weather-temp{font-family:'Space Grotesk',sans-serif;font-size:38px;font-weight:700;letter-spacing:-1px;background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.top-weather-details{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.top-weather-condition{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;color:rgba(255,255,255,.7)}
.top-weather-sub{font-family:'Inter',sans-serif;font-size:11px;font-weight:500;color:rgba(255,255,255,.35);letter-spacing:.3px}

/* Metric chips row */
.top-chips-row{display:flex;align-items:center;gap:6px;margin-top:2px}
.top-chip{font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:500;color:rgba(255,255,255,.75);padding:6px 14px;background:rgba(255,255,255,.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.07);border-radius:999px;white-space:nowrap;letter-spacing:.3px}
.top-chip:first-child{color:rgba(255,255,255,.9);font-weight:600}

/* ---- Planes ---- */
.planes-viewport{position:fixed;inset:0;perspective:1200px;perspective-origin:50% 50%;z-index:1}

.plane{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 100px;opacity:0;transform:translateZ(-400px) scale(.85);filter:blur(8px);pointer-events:none;transition:opacity var(--tr-dramatic),transform var(--tr-dramatic),filter var(--tr-dramatic)}
.plane.active{opacity:1;transform:translateZ(0) scale(1);filter:blur(0);pointer-events:auto}
.plane.exiting{opacity:0;transform:translateZ(600px) scale(1.4);filter:blur(12px);pointer-events:none}
.plane.behind{opacity:0;transform:translateZ(-800px) scale(.6);filter:blur(16px);pointer-events:none}

/* ---- Headers ---- */
.plane-header{text-align:center;margin-bottom:44px;z-index:2}
.plane-title{font-family:'Space Grotesk',sans-serif;font-size:46px;font-weight:700;letter-spacing:-1px;margin-bottom:10px;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,.7) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 16px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(0,0,0,.3))}
.plane-subtitle{font-size:16px;color:var(--text-dim);font-weight:400;text-shadow:0 2px 10px rgba(0,0,0,.6),0 0 30px rgba(0,0,0,.25)}

/* ============================================
   City Grid
   ============================================ */
.city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1000px;width:100%}
.city-card{position:relative;height:230px;border-radius:var(--r-lg);overflow:hidden;cursor:pointer;border:1px solid var(--glass-border);transition:var(--tr-smooth);box-shadow:0 4px 24px rgba(0,0,0,.4)}
.city-card::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(6,6,14,.88) 100%);z-index:1;transition:var(--tr-fast)}
.city-card:hover{transform:translateY(-8px) scale(1.02);border-color:var(--a1);box-shadow:0 20px 60px color-mix(in srgb,var(--a1) 20%,transparent)}
.city-card:hover .city-bg{transform:scale(1.1)}
.city-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.city-info{position:absolute;bottom:0;left:0;right:0;padding:20px;z-index:2}
.city-name{font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:700;margin-bottom:4px;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.city-country{font-size:12px;color:var(--text-dim);font-weight:500;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.city-stat{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:20px;font-size:12px;font-weight:600;color:rgba(255,255,255,.8)}
.city-stat .dot{width:6px;height:6px;border-radius:50%;background:var(--a1);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}

/* ============================================
   Profile Wizard
   ============================================ */
#plane-profile{justify-content:flex-start;padding-top:var(--profile-top,120px);padding-bottom:100px;overflow:hidden}

.profile-wrap{display:flex;flex-direction:column;align-items:center;width:100%;max-width:800px}

.profile-header{text-align:center;margin-bottom:20px;z-index:2;flex-shrink:0}

.profile-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:20px;z-index:2;flex-shrink:0}
.profile-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--r-xl);color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.profile-tab:hover{background:var(--surface-hover);border-color:var(--border-bright);color:var(--text)}
.profile-tab.active{background:color-mix(in srgb,var(--a1) 15%,transparent);border-color:color-mix(in srgb,var(--a1) 40%,transparent);color:#fff}
.profile-tab.done{border-color:color-mix(in srgb,var(--a2) 30%,transparent)}
.profile-tab.done::after{content:'\2713';margin-left:4px;color:var(--a2);font-size:12px}
.profile-tab-icon{font-size:18px;line-height:1}
.profile-tab-label{font-size:13px}

.profile-progress{display:flex;gap:6px;justify-content:center;margin-bottom:24px;flex-shrink:0}
.profile-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .3s ease}
.profile-dot.active{background:var(--a1);transform:scale(1.3);box-shadow:0 0 8px color-mix(in srgb,var(--a1) 40%,transparent)}
.profile-dot.done{background:var(--a2)}

.profile-step-header{min-height:60px;text-align:center;flex-shrink:0;margin-bottom:12px}
.profile-step-title{font-family:'Space Grotesk',sans-serif;font-size:28px;font-weight:700;letter-spacing:-.5px;margin-bottom:6px;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,.7) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 12px rgba(0,0,0,.5))}
.profile-step-sub{font-size:14px;color:var(--text-dim);font-weight:400;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.profile-body{max-width:800px;width:100%;height:360px;display:flex;flex-direction:column;align-items:center;transition:opacity .25s ease,transform .25s ease;flex-shrink:0;overflow:visible}
.profile-body.step-out{opacity:0;transform:translateX(-30px)}
.profile-body.step-in{animation:step-enter .35s cubic-bezier(.16,1,.3,1) forwards}
@keyframes step-enter{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}

.profile-actions{position:fixed;bottom:64px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:60;pointer-events:none}
.profile-actions>*{pointer-events:auto}

.profile-skip-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 22px;background:transparent;border:1px solid var(--border);border-radius:var(--r-xl);color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .3s ease;letter-spacing:.3px}
.profile-skip-btn:hover{color:var(--text);border-color:var(--a1);background:color-mix(in srgb,var(--a1) 8%,transparent)}

.profile-done-btn{display:inline-flex;align-items:center;gap:6px;padding:12px 28px;background:linear-gradient(135deg,var(--a1),var(--a2));border:none;border-radius:var(--r-xl);color:#fff;font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 32px color-mix(in srgb,var(--a1) 25%,transparent)}
.profile-done-btn:hover{transform:translateY(-2px);box-shadow:0 12px 48px color-mix(in srgb,var(--a1) 35%,transparent)}

/* Profile Complete Celebration */
.profile-complete-celebration{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;animation:celebrate-in .6s cubic-bezier(.16,1,.3,1) forwards}
.profile-complete-icon{font-size:64px;animation:celebrate-bounce 1s ease infinite}
.profile-complete-title{font-family:'Space Grotesk',sans-serif;font-size:32px;font-weight:700;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,.7) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 12px rgba(0,0,0,.5))}
.profile-complete-desc{font-size:15px;color:var(--text-dim);max-width:380px;line-height:1.6;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.profile-complete-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:linear-gradient(135deg,var(--a1),var(--a2));border:none;border-radius:var(--r-xl);color:#fff;font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 32px color-mix(in srgb,var(--a1) 30%,transparent);margin-top:8px}
.profile-complete-btn:hover{transform:translateY(-2px);box-shadow:0 12px 48px color-mix(in srgb,var(--a1) 40%,transparent)}
@keyframes celebrate-in{from{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes celebrate-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.confetti-canvas{position:fixed;inset:0;z-index:9999;pointer-events:none}

/* ============================================
   Vibe Screen
   ============================================ */
#plane-vibe{justify-content:center;padding-bottom:80px;overflow-y:auto}
#plane-vibe::-webkit-scrollbar{display:none}

.vibe-body{display:flex;flex-direction:column;gap:28px;max-width:800px;width:100%;max-height:calc(100vh - 280px);overflow-y:auto;overflow-x:hidden;padding:4px}
.vibe-body::-webkit-scrollbar{display:none}

.vibe-section{display:flex;flex-direction:column;gap:12px}
.vibe-section-label{font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:600;letter-spacing:-.2px;color:rgba(255,255,255,.85);text-shadow:0 2px 10px rgba(0,0,0,.6),0 0 30px rgba(0,0,0,.25)}

.vibe-mood-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.vibe-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--r-lg);cursor:pointer;transition:all .3s ease;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.25)}
.vibe-card:hover{transform:translateY(-3px);border-color:var(--border-bright);background:var(--surface-hover)}
.vibe-card.selected{background:color-mix(in srgb,var(--a1) 15%,transparent);border-color:color-mix(in srgb,var(--a1) 40%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--a1) 15%,transparent)}
.vibe-card-icon{font-size:28px;line-height:1}
.vibe-card-name{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.3)}
.vibe-card-desc{font-size:11px;color:var(--text-dim);text-shadow:0 1px 4px rgba(0,0,0,.2)}

.vibe-chips{display:flex;flex-wrap:nowrap;gap:10px;justify-content:center}
.vibe-chip{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--r-xl);font-size:13px;font-weight:500;cursor:pointer;transition:all .25s ease;user-select:none;box-shadow:0 2px 12px rgba(0,0,0,.2);white-space:nowrap}
.vibe-chip:hover{background:var(--surface-hover);border-color:var(--border-bright)}
.vibe-chip.selected{background:color-mix(in srgb,var(--a1) 20%,transparent);border-color:var(--a1);color:color-mix(in srgb,var(--a1) 80%,#fff);box-shadow:0 0 16px color-mix(in srgb,var(--a1) 12%,transparent)}

.vibe-intent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.vibe-intent-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 14px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:2px solid var(--glass-border);border-radius:var(--r-lg);cursor:pointer;transition:all .3s ease;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.25)}
.vibe-intent-card::before{content:'';position:absolute;top:8px;right:8px;width:18px;height:18px;border-radius:4px;border:2px solid rgba(255,255,255,.2);background:transparent;transition:all .3s ease}
.vibe-intent-card.selected::before{background:var(--a1);border-color:var(--a1);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 8.5L6.5 11.5L12.5 4.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:12px;background-repeat:no-repeat;background-position:center}
.vibe-intent-card:hover{transform:translateY(-3px);border-color:var(--border-bright)}
.vibe-intent-card:hover::before{border-color:rgba(255,255,255,.4)}
.vibe-intent-card.selected{background:color-mix(in srgb,var(--a1) 12%,transparent);border-color:var(--a1);box-shadow:0 4px 24px color-mix(in srgb,var(--a1) 15%,transparent)}
.vibe-intent-icon{font-size:30px;line-height:1}
.vibe-intent-name{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:700;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.3)}
.vibe-intent-desc{font-size:11px;color:var(--text-dim);text-shadow:0 1px 4px rgba(0,0,0,.2)}

.vibe-go-btn{display:flex;align-items:center;gap:8px;padding:14px 32px;margin-top:20px;background:linear-gradient(135deg,var(--a1),var(--a2));border:none;border-radius:var(--r-xl);color:#fff;font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .3s ease,transform .3s ease,box-shadow .3s ease;box-shadow:0 8px 32px color-mix(in srgb,var(--a1) 25%,transparent);z-index:2;opacity:0;pointer-events:none;transform:translateY(8px);align-self:center}
.vibe-go-btn.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.vibe-go-btn:hover{transform:translateY(-2px);box-shadow:0 12px 48px color-mix(in srgb,var(--a1) 35%,transparent)}

/* ============================================
   Filter Plane (reused by profile wizard)
   ============================================ */
.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:800px;width:100%}
.filter-grid.cols-4{grid-template-columns:repeat(4,1fr);gap:10px}
.filter-grid.cols-2{grid-template-columns:repeat(2,1fr)}

.fcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--r-lg);cursor:pointer;transition:var(--tr-smooth);text-align:center;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.4)}
.fcard:hover{transform:translateY(-6px);border-color:var(--a1);box-shadow:0 16px 48px color-mix(in srgb,var(--a1) 12%,transparent)}
.fcard.selected{background:color-mix(in srgb,var(--a1) 15%,transparent);border-color:var(--a1)}
.fcard::after{content:'';position:absolute;top:-100%;left:0;right:0;height:200%;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--a1) 4%,transparent) 45%,color-mix(in srgb,var(--a1) 7%,transparent) 50%,color-mix(in srgb,var(--a1) 4%,transparent) 55%,transparent 100%);pointer-events:none;transition:top .8s ease;z-index:3}
.fcard:hover::after{top:0}
.fcard-icon{font-size:28px}
.fcard-name{font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:600}
.fcard-desc{font-size:12px;color:var(--text-dim);line-height:1.4}
.fcard-count{font-size:11px;color:var(--text-muted)}

.filter-chips{display:flex;flex-wrap:wrap;gap:12px;max-width:700px;justify-content:center}
.fchip{padding:12px 24px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--r-xl);font-size:14px;font-weight:500;cursor:pointer;transition:var(--tr-fast);user-select:none}
.fchip:hover{background:var(--surface-hover);border-color:var(--border-bright)}
.fchip.selected{background:color-mix(in srgb,var(--a1) 20%,transparent);border-color:var(--a1);color:color-mix(in srgb,var(--a1) 80%,#fff);box-shadow:0 0 20px color-mix(in srgb,var(--a1) 12%,transparent)}

.filter-select{display:flex;flex-wrap:wrap;gap:16px;max-width:700px;justify-content:center}
.fselect{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 32px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--r-lg);cursor:pointer;transition:var(--tr-smooth);text-align:center;min-width:140px}
.fselect:hover{transform:translateY(-4px);border-color:var(--a1);box-shadow:0 12px 36px color-mix(in srgb,var(--a1) 12%,transparent)}
.fselect.selected{background:color-mix(in srgb,var(--a1) 15%,transparent);border-color:var(--a1)}
.fselect-value{font-family:'Space Grotesk',monospace;font-size:26px;font-weight:700;background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.fselect-label{font-size:14px;font-weight:600}
.fselect-desc{font-size:11px;color:var(--text-dim)}

.continue-btn{display:flex;align-items:center;gap:8px;padding:14px 32px;margin-top:32px;background:linear-gradient(135deg,var(--a1),var(--a2));border:none;border-radius:var(--r-xl);color:#fff;font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .3s ease,transform .3s ease,box-shadow .3s ease;box-shadow:0 8px 32px color-mix(in srgb,var(--a1) 25%,transparent);z-index:2;opacity:0;pointer-events:none;transform:translateY(8px)}
.continue-btn.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.continue-btn:hover{transform:translateY(-2px);box-shadow:0 12px 48px color-mix(in srgb,var(--a1) 35%,transparent)}

/* ============================================
   Reveal Plane
   ============================================ */

/* Reveal Tabs — fixed bottom bar above footer */
.reveal-tabs{position:fixed;bottom:56px;left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:center;gap:12px;padding:0 24px;opacity:0;pointer-events:none;transition:opacity .4s ease,transform .4s ease;transform:translateY(10px)}
.reveal-tabs.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.reveal-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 26px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--r-xl);color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap;box-shadow:0 2px 12px rgba(0,0,0,.3)}
.reveal-tab:hover{background:var(--surface-hover);border-color:var(--border-bright);color:var(--text);transform:translateY(-2px)}
.reveal-tab.active{background:linear-gradient(135deg,color-mix(in srgb,var(--a1) 25%,transparent),color-mix(in srgb,var(--a2) 15%,transparent));border-color:color-mix(in srgb,var(--a1) 50%,transparent);color:#fff;box-shadow:0 4px 16px color-mix(in srgb,var(--a1) 20%,transparent)}
.reveal-tab-icon{font-size:16px;line-height:1}
.reveal-tab-label{font-size:15px;text-shadow:0 1px 6px rgba(0,0,0,.3)}

/* Override Bar — fixed above reveal tabs */
.override-bar{position:fixed;bottom:112px;left:0;right:0;z-index:91;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:0 24px;opacity:0;pointer-events:none;transition:opacity .4s ease,transform .4s ease;transform:translateY(10px)}
.override-bar.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.override-chip{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:color-mix(in srgb,var(--a1) 10%,rgba(14,12,26,.5));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--a1) 20%,transparent);border-radius:var(--r-xl);font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:500;color:color-mix(in srgb,var(--a1) 80%,#fff);cursor:pointer;transition:all .25s ease;white-space:nowrap;box-shadow:0 2px 16px rgba(0,0,0,.3)}
.override-chip:hover{background:color-mix(in srgb,var(--a1) 15%,transparent);border-color:var(--a1);transform:translateY(-1px)}
.override-chip-icon{font-size:14px;line-height:1}
.override-chip--sub{font-size:13px;opacity:.85;margin-left:-6px;position:relative;overflow:visible;min-width:60px;text-align:center}
.override-chip--sub::before{content:'';position:absolute;right:100%;top:50%;width:6px;height:2px;background:color-mix(in srgb,var(--a1) 50%,transparent);pointer-events:none}
.override-chip--empty{opacity:.4;border-style:dashed;font-style:italic}

/* Override Popover */
.override-popover{position:fixed;z-index:200;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--r-md);min-width:160px;max-height:300px;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.5);animation:pop-in .2s cubic-bezier(.16,1,.3,1)}
@keyframes pop-in{from{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.override-option{padding:8px 14px;background:none;border:none;border-radius:var(--r-sm);color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:400;cursor:pointer;text-align:left;transition:background .15s ease}
.override-option:hover{background:var(--surface-hover)}
.override-option.selected{background:color-mix(in srgb,var(--a1) 15%,transparent);color:color-mix(in srgb,var(--a1) 80%,#fff);font-weight:500}

/* Reveal Container */
.reveal-container{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;max-width:1100px;width:100%}
.reveal-container > *{opacity:0;transform:translateY(20px) scale(.97)}
.reveal-container.revealed > *{animation:rev-in .5s cubic-bezier(.16,1,.3,1) forwards}
.reveal-container.revealed > *:nth-child(1){animation-delay:.1s}
.reveal-container.revealed > *:nth-child(2){animation-delay:.2s}
.reveal-container.revealed > *:nth-child(3){animation-delay:.3s}
.reveal-container.revealed > *:nth-child(4){animation-delay:.4s}
@keyframes rev-in{to{opacity:1;transform:translateY(0) scale(1)}}

#plane-reveal{overflow:hidden;justify-content:center;padding-top:40px;padding-bottom:100px}
#plane-reveal::-webkit-scrollbar{display:none}
#plane-reveal.active::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--a1) 14%,transparent) 0%,color-mix(in srgb,var(--a2) 6%,transparent) 40%,transparent 70%);pointer-events:none;animation:glow 4s ease-in-out infinite}
@keyframes glow{0%,100%{opacity:.8;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}

.reveal-label{font-size:22px;font-weight:800;text-transform:uppercase;letter-spacing:4px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.5),0 4px 24px rgba(0,0,0,.3);margin-bottom:8px}

.reveal-ring{position:relative;width:180px;height:180px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.reveal-ring::before{content:'';position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(from 0deg,var(--a1),var(--a2),var(--a1));animation:ring-spin 3s linear infinite}
.reveal-ring::after{content:'';position:absolute;inset:2px;border-radius:50%;background:var(--bg)}
@keyframes ring-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes logo-spin{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.1)}100%{transform:rotate(360deg) scale(1)}}

.reveal-avatar{position:relative;z-index:1;width:168px;height:168px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:64px;background:var(--surface);box-shadow:0 0 60px color-mix(in srgb,var(--a1) 30%,transparent)}

.reveal-image{position:relative;width:340px;height:200px;border-radius:var(--r-lg);overflow:hidden;border:2px solid color-mix(in srgb,var(--a1) 30%,transparent);box-shadow:0 0 60px color-mix(in srgb,var(--a1) 15%,transparent);display:flex;align-items:center;justify-content:center;font-size:64px;background:var(--surface)}

.reveal-name{font-family:'Space Grotesk',sans-serif;font-size:40px;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,.7) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.reveal-sub{font-size:15px;color:var(--text-dim)}
.reveal-desc{font-size:15px;color:var(--text-dim);line-height:1.7;max-width:480px}

.reveal-meta{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}
.reveal-meta-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-dim)}
.reveal-meta-item .m-icon{font-size:16px}


.reveal-score{display:flex;align-items:center;gap:12px;padding:16px 28px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--r-xl)}
.score-num{font-family:'Space Grotesk',monospace;font-size:32px;font-weight:800;background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.score-label{font-size:13px;color:var(--text-dim)}

.reveal-actions{display:flex;gap:16px;margin-top:4px}
.rbtn{padding:14px 36px;border-radius:var(--r-xl);font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:var(--tr-fast);border:none}
.rbtn.primary{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;box-shadow:0 8px 32px color-mix(in srgb,var(--a1) 25%,transparent)}
.rbtn.primary:hover{transform:translateY(-2px);box-shadow:0 12px 48px color-mix(in srgb,var(--a1) 35%,transparent)}
.rbtn.secondary{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);color:var(--text)}
.rbtn.secondary:hover{background:var(--surface-hover);border-color:var(--border-bright)}

/* ---- Reveal List & Cards ---- */
.reveal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;width:100%;min-height:var(--reveal-list-h,auto)}

.rcard{display:flex;flex-direction:column;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--r-lg);text-align:left;transition:all .35s cubic-bezier(.16,1,.3,1);cursor:default;position:relative;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.4)}
.rcard::before{content:'';position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(to right,var(--a1),var(--a2));opacity:.6;transition:opacity .3s ease;z-index:1}
.rcard:hover{background:var(--surface-hover);border-color:var(--border-bright);transform:translateY(-5px);box-shadow:0 16px 48px rgba(0,0,0,.35)}
.rcard:hover::before{opacity:1}

/* Top hero section */
.rcard-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 20px 20px;background:color-mix(in srgb,var(--a1) 5%,transparent)}
.rcard-left{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px}
.rcard-emoji{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:34px;background:color-mix(in srgb,var(--a1) 10%,var(--surface));border:2px solid color-mix(in srgb,var(--a1) 25%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--a1) 15%,transparent)}
.rcard-score{display:flex;align-items:baseline;gap:1px}
.rcard-score-num{font-family:'Space Grotesk',monospace;font-size:22px;font-weight:800;background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.rcard-score-pct{font-family:'Space Grotesk',monospace;font-size:13px;font-weight:700;color:var(--a1);opacity:.7}
.rcard-price{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:700;color:var(--a1);padding:4px 12px;background:color-mix(in srgb,var(--a1) 12%,transparent);border:1px solid color-mix(in srgb,var(--a1) 22%,transparent);border-radius:var(--r-xl)}

/* Content column */
.rcard-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding:16px 20px 20px}
.rcard-header{display:flex;flex-direction:column;gap:6px}
.rcard-name{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;color:#fff;margin:0;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rcard-sub{font-size:12px;color:var(--text-dim);font-weight:400}
.rcard-bio{font-size:13px;color:var(--text-dim);line-height:1.6;margin:0;min-height:calc(1.6em * 3);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rcard-address{font-size:12px}

/* Person avatar photo */
.rcard-avatar{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 20px 16px}
.rcard-avatar-img{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid color-mix(in srgb,var(--a1) 35%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--a1) 20%,transparent)}
.rcard-avatar .rcard-score{display:flex;align-items:baseline;gap:1px}
.has-avatar .rcard-hero{display:none}

/* Hero with thumbnail image */
.rcard-hero--thumb{position:relative}
.rcard-hero-img{width:72px;height:72px;border-radius:var(--r-md);object-fit:cover;border:2px solid color-mix(in srgb,var(--a1) 25%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--a1) 15%,transparent)}

/* Badges */
.rcard-badges{display:flex;gap:6px}
.rcard-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:color-mix(in srgb,var(--a1) 10%,transparent);border:1px solid color-mix(in srgb,var(--a1) 18%,transparent);border-radius:var(--r-xl);font-size:12px;font-weight:600;color:var(--text);white-space:nowrap}
.rcard-badge-dim{opacity:.5;font-weight:400}

/* Meta pills row */
.rcard-meta-row{display:flex;gap:8px;flex-wrap:wrap}
.rcard-meta-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);font-size:12px;color:var(--text-dim);white-space:nowrap}

/* Compat bar */
.rcard-compat-bar{height:4px;border-radius:2px;background:var(--surface);overflow:hidden;margin-top:2px}
.rcard-compat-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--a1),var(--a2));transition:width .8s cubic-bezier(.16,1,.3,1)}

/* Place/event photo */
.rcard-photo{width:100%;height:160px;overflow:hidden;border-bottom:1px solid color-mix(in srgb,var(--a1) 20%,transparent);flex-shrink:0}
.rcard-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.rcard:hover .rcard-photo img{transform:scale(1.06)}

/* Maps button */
.rcard-maps-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:var(--r-xl);font-size:12px;font-weight:600;color:var(--a1);background:color-mix(in srgb,var(--a1) 10%,transparent);border:1px solid color-mix(in srgb,var(--a1) 20%,transparent);text-decoration:none;transition:var(--tr-fast);width:fit-content}
.rcard-maps-btn:hover{background:color-mix(in srgb,var(--a1) 18%,transparent);transform:translateY(-1px)}
.rcard-maps-btn svg{flex-shrink:0}

/* Open/closed badge */
.rcard .reveal-open-badge{font-size:11px;padding:3px 10px}

/* ---- Reveal Loading ---- */
.reveal-loading{display:flex;flex-direction:column;align-items:center;gap:24px}
.reveal-loading-logo{width:64px;height:64px;object-fit:contain;animation:logo-spin 2s cubic-bezier(.4,0,.2,1) infinite}
.reveal-loading-text{font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:600;color:var(--text-dim);animation:blink 1.5s ease-in-out infinite}

/* ---- Open/Closed Badge ---- */
.reveal-open-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.5px}
.reveal-open-badge::before{content:'';width:7px;height:7px;border-radius:50%}
.reveal-open-badge.open{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.reveal-open-badge.open::before{background:#10b981;animation:pulse 2s infinite}
.reveal-open-badge.closed{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.25)}
.reveal-open-badge.closed::before{background:#ef4444}

/* ---- Maps Link ---- */
.reveal-maps-link{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-xl);color:var(--a1);font-size:13px;font-weight:500;text-decoration:none;transition:var(--tr-fast)}
.reveal-maps-link:hover{background:rgba(255,255,255,.1);border-color:var(--a1);transform:translateY(-1px)}
.reveal-maps-link svg{flex-shrink:0}

/* ---- Surprise shimmer ---- */
.surprise-loading{display:flex;flex-direction:column;align-items:center;gap:24px}
.surprise-spinner{width:80px;height:80px;border-radius:50%;background:conic-gradient(from 0deg,var(--surprise-1),var(--surprise-2),var(--someone-1),var(--somewhere-1),var(--surprise-1));animation:ring-spin 1.2s linear infinite;display:flex;align-items:center;justify-content:center}
.surprise-spinner::after{content:'';width:64px;height:64px;border-radius:50%;background:var(--bg)}
.surprise-text{font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:600;color:var(--text-dim);animation:blink 1.5s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}

/* ---- Jackpot wheel animation ---- */
.reveal-list.wheel-out > *{animation:wheel-up .4s cubic-bezier(.4,0,1,1) forwards}
.reveal-list.wheel-out > *:nth-child(1){animation-delay:0s}
.reveal-list.wheel-out > *:nth-child(2){animation-delay:.05s}
.reveal-list.wheel-out > *:nth-child(3){animation-delay:.1s}
@keyframes wheel-up{to{opacity:0;transform:translateY(-60px) scale(.95)}}
.reveal-list.wheel-in > *{opacity:0;transform:translateY(60px) scale(.95);animation:wheel-down .45s cubic-bezier(.16,1,.3,1) forwards}
.reveal-list.wheel-in > *:nth-child(1){animation-delay:.05s}
.reveal-list.wheel-in > *:nth-child(2){animation-delay:.1s}
.reveal-list.wheel-in > *:nth-child(3){animation-delay:.15s}
@keyframes wheel-down{to{opacity:1;transform:translateY(0) scale(1)}}

/* Page indicator dots */
.reveal-pager{position:fixed;right:28px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:10}
.reveal-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .3s ease;cursor:pointer}
.reveal-dot.active{background:var(--a1);transform:scale(1.3);box-shadow:0 0 8px color-mix(in srgb,var(--a1) 40%,transparent)}
.reveal-scroll-hint{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:6px}
.reveal-scroll-hint svg{animation:bounce-down 1.5s ease-in-out infinite}
@keyframes bounce-down{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ---- Stagger ---- */
.stagger-in > *{opacity:0;transform:translateY(24px);animation:stag .5s cubic-bezier(.16,1,.3,1) forwards}
.stagger-in > *:nth-child(1){animation-delay:.05s}.stagger-in > *:nth-child(2){animation-delay:.1s}.stagger-in > *:nth-child(3){animation-delay:.15s}.stagger-in > *:nth-child(4){animation-delay:.2s}.stagger-in > *:nth-child(5){animation-delay:.25s}.stagger-in > *:nth-child(6){animation-delay:.3s}.stagger-in > *:nth-child(7){animation-delay:.35s}.stagger-in > *:nth-child(8){animation-delay:.4s}.stagger-in > *:nth-child(9){animation-delay:.45s}.stagger-in > *:nth-child(10){animation-delay:.5s}.stagger-in > *:nth-child(11){animation-delay:.55s}.stagger-in > *:nth-child(12){animation-delay:.6s}
@keyframes stag{to{opacity:1;transform:translateY(0)}}

/* ---- Keyboard focus ---- */
.kb-focus{outline:none;border-color:var(--a1) !important;box-shadow:0 0 0 2px color-mix(in srgb,var(--a1) 40%,transparent),0 0 24px color-mix(in srgb,var(--a1) 20%,transparent) !important;transform:translateY(-4px) scale(1.02)}
.kb-focus.fchip,.kb-focus.vibe-chip{transform:scale(1.05)}

/* ---- Footer ---- */
.site-footer{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:8px;opacity:.35;transition:opacity .3s ease;white-space:nowrap}
.site-footer:hover{opacity:.6}
.footer-link{display:flex;align-items:center;gap:5px;text-decoration:none;transition:opacity .2s ease}
.footer-link:hover{opacity:.8}
.footer-logo{width:16px;height:16px;object-fit:contain}
.footer-brand{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:600;color:rgba(255,255,255,.7);letter-spacing:.3px}
.footer-sep{color:rgba(255,255,255,.25);font-size:10px}
.footer-text{font-size:10px;font-weight:400;color:var(--text-muted);letter-spacing:.3px}

/* ---- Responsive ---- */
@media(max-width:900px){.plane{padding:40px 24px}.city-grid{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:repeat(2,1fr)}.plane-title{font-size:32px}.funnel{right:12px;padding:10px 12px}.funnel-count{font-size:16px}.fstep-label{display:none}.fstep-dot{width:8px;height:8px}.reveal-list{grid-template-columns:repeat(2,1fr)}.rcard-emoji{width:52px;height:52px;font-size:28px}.rcard-name{font-size:15px}.rcard-photo{height:140px}.reveal-actions{flex-wrap:wrap;justify-content:center}.vibe-mood-grid{grid-template-columns:repeat(2,1fr)}.vibe-intent-grid{grid-template-columns:repeat(3,1fr)}.profile-tab-label{display:none}.reveal-tab-label{display:none}}
@media(max-width:600px){.top-chips{right:16px;top:14px;gap:4px}.top-city-name{font-size:30px;letter-spacing:-1px}.top-phonetic-text{font-size:12px}.top-weather-icon{font-size:24px}.top-weather-temp{font-size:26px}.top-weather-condition{font-size:12px}.top-chips-row{flex-wrap:wrap;justify-content:flex-end;gap:5px}.top-chip{font-size:11px;padding:4px 10px}.reveal-list{grid-template-columns:1fr}.reveal-container{max-width:480px}.rcard-photo{height:180px}.vibe-mood-grid{grid-template-columns:repeat(2,1fr)}.vibe-intent-grid{grid-template-columns:1fr}}
