
/* Boot recovery is deliberately outside the JS app tree: a module/startup failure can never become a white screen. */
.boot-fallback{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#342338 0,#171529 42%,#0d0d17 100%);color:#fff8f4;transition:opacity .22s ease,visibility .22s ease}
.boot-fallback.boot-ready{opacity:0;visibility:hidden;pointer-events:none}
.boot-card{max-width:440px;width:100%;padding:28px}.boot-card strong{display:block;font-size:30px;line-height:1.05;margin:26px 0 8px}.boot-card p{color:#c9bdc6;line-height:1.55}.boot-retry{display:none;width:100%;margin-top:18px}.boot-error .boot-retry{display:block}
:root{--bg:#0f0f1b;--surface:rgba(28,25,43,.78);--surface2:rgba(255,255,255,.08);--text:#fff8f4;--muted:#cabec7;--rose:#f9a58f;--gold:#f7c77a;--lav:#be99ff;--danger:#ff7f8e;--ok:#7ee0bd;--border:rgba(255,255,255,.12);--shadow:0 22px 60px rgba(0,0,0,.34);--r:26px;--navh:82px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0b0b15;color:var(--text)}body{overflow-x:hidden}.ambient{position:fixed;inset:0;background:radial-gradient(circle at 20% 10%,rgba(190,153,255,.18),transparent 30%),radial-gradient(circle at 80% 35%,rgba(249,165,143,.16),transparent 30%),#0b0b15;z-index:-2}.app-shell{width:min(100%,560px);min-height:100vh;margin:0 auto;position:relative;background:linear-gradient(180deg,rgba(16,15,28,.92),rgba(9,9,17,.98));box-shadow:0 0 80px rgba(0,0,0,.5)}.hidden{display:none!important}.glass{background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.055));border:1px solid var(--border);box-shadow:var(--shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.premium-bg{background-size:cover;background-position:center;position:relative;overflow:hidden}.city-bg{background-image:url('/assets/backgrounds/romantic-city.svg')}.jazz-bg{background-image:url('/assets/backgrounds/jazz-night.svg')}.wardrobe-bg{background-image:url('/assets/backgrounds/wardrobe-editorial.svg')}.scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,9,18,.15),rgba(9,9,18,.9))}.gate-screen{min-height:100vh;display:grid;align-items:end;padding:28px}.gate-card{position:relative;border-radius:32px;padding:28px;margin-bottom:max(24px,env(safe-area-inset-bottom))}.brand-lockup{display:flex;align-items:center;gap:9px;font-size:22px;font-weight:800;letter-spacing:-.04em}.brand-lockup b{color:var(--gold)}.brand-mark{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--lav),var(--rose));box-shadow:0 8px 25px rgba(190,153,255,.26)}.brand-lockup.compact{font-size:18px}.brand-lockup.compact .brand-mark{width:30px;height:30px;border-radius:10px}.eyebrow,.kicker{font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--gold);text-transform:uppercase}.gate-card .eyebrow{margin-top:24px}.gate-card h1{font-size:42px;line-height:.98;margin:10px 0 14px;letter-spacing:-.055em}.gate-card p{color:var(--muted);font-size:16px;line-height:1.55}.gate-card label{display:block;margin:24px 0 8px;font-size:13px;color:var(--muted)}input{width:100%;border:1px solid var(--border);background:rgba(5,5,12,.48);color:var(--text);border-radius:16px;padding:15px 16px;font:inherit;outline:none}.gate-card small,.wardrobe-modal small{display:block;margin-top:14px;color:#a99da6;line-height:1.4}.form-error{min-height:22px;color:#ffabb4;font-size:13px;margin-top:8px}.primary-btn,.secondary-btn,.share-date,.send-btn,.icon-btn,.avatar-btn,.setting button,.safety-grid button,.danger{border:0;font:inherit;cursor:pointer}.primary-btn{background:linear-gradient(135deg,#f7b08e,#c995ff);color:#17101c;font-weight:800;padding:14px 18px;border-radius:16px;box-shadow:0 10px 24px rgba(216,150,220,.2)}.primary-btn:disabled{opacity:.45;cursor:not-allowed}.gate-card .primary-btn{width:100%;margin-top:12px}.secondary-btn{padding:13px 16px;border-radius:16px;color:var(--text);background:rgba(255,255,255,.07);border:1px solid var(--border)}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:20;background:rgba(10,10,19,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.05)}.top-actions{display:flex;gap:9px}.icon-btn,.avatar-btn{width:38px;height:38px;border-radius:13px;background:rgba(255,255,255,.08);color:var(--text);border:1px solid var(--border)}.avatar-btn{background:linear-gradient(135deg,#8f6ad2,#d37d7c);font-size:12px;font-weight:900}.screen-stack{padding-bottom:calc(var(--navh) + 20px)}.screen{display:none;min-height:calc(100vh - 150px);padding:0 16px 24px}.screen.active{display:block;animation:fadeUp .34s ease}.hero,.date-hero,.concierge-hero{height:230px;border-radius:0 0 34px 34px;margin:0 -16px 22px;display:flex;align-items:flex-end;padding:22px}.hero-copy,.date-hero>div:last-child,.concierge-hero>div:last-child{position:relative;z-index:1}.hero h2,.date-hero h2,.concierge-hero h2{font-size:30px;line-height:1.02;margin:7px 0 8px;letter-spacing:-.04em}.hero p,.date-hero p,.concierge-hero p{margin:0;color:#e6dbe2;line-height:1.45}.hero-scrim{background:linear-gradient(180deg,rgba(6,6,14,.12),rgba(8,8,17,.92))}.section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:18px 0 12px}.section-head.top-space{padding-top:18px}.section-head h2,.section-head h3{margin:5px 0 0;letter-spacing:-.04em}.pill{font-size:11px;font-weight:800;padding:7px 10px;border-radius:999px;background:rgba(247,199,122,.12);color:var(--gold);border:1px solid rgba(247,199,122,.18)}.match-card{border-radius:28px;overflow:hidden}.profile-art{height:245px;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 25%,rgba(255,230,210,.55),transparent 20%),linear-gradient(155deg,#673f69,#d28276)}.profile-art:before{content:"";position:absolute;width:170px;height:190px;border-radius:50% 50% 42% 42%;background:linear-gradient(180deg,#2e2132,#10101b);top:55px;box-shadow:0 0 0 28px rgba(255,225,205,.13)}.profile-art:after{content:"";position:absolute;width:300px;height:150px;border-radius:50% 50% 0 0;background:rgba(10,10,19,.72);bottom:-50px}.profile-art>span{z-index:2;font-size:56px;font-weight:900;color:rgba(255,255,255,.22)}.profile-art.tasha{background:radial-gradient(circle at 45% 28%,rgba(255,225,192,.48),transparent 20%),linear-gradient(155deg,#8a4f5b,#c99971)}.profile-art.elena{background:radial-gradient(circle at 45% 28%,rgba(244,216,255,.5),transparent 20%),linear-gradient(155deg,#4b426e,#b87690)}.profile-art.large{height:220px;border-radius:24px}.profile-content{padding:18px}.name-row{display:flex;align-items:center;justify-content:space-between}.name-row h3{font-size:25px;margin:0}.verified{font-size:11px;color:var(--ok);font-weight:800}.verified.big{font-size:18px}.meta{color:var(--muted);margin:4px 0 13px}.why{padding:13px;border-radius:16px;background:rgba(190,153,255,.09);border:1px solid rgba(190,153,255,.17);line-height:1.45;font-size:14px}.why b{color:#d7baff}.prompt{margin-top:14px;padding:14px;border-radius:17px;background:rgba(255,255,255,.055)}.prompt span{font-size:11px;letter-spacing:.08em;color:var(--gold);font-weight:800;text-transform:uppercase}.prompt p{margin:6px 0 0;line-height:1.45}.card-actions{display:flex;gap:10px;margin-top:15px}.card-actions>*{flex:1}.mini-match-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.mini-profile{border-radius:22px;padding:10px}.mini-profile .profile-art{height:115px;border-radius:16px}.mini-profile .profile-art:before{width:78px;height:90px;top:20px;box-shadow:none}.mini-profile .profile-art:after{width:160px;height:65px;bottom:-28px}.mini-profile .profile-art>span{font-size:28px}.mini-profile h4{margin:10px 4px 2px}.mini-profile p{font-size:12px;color:var(--muted);margin:0 4px 9px}.discover-grid{display:grid;gap:14px}.discover-card{border-radius:26px;padding:12px}.discover-card h3{font-size:22px;margin:12px 6px 4px}.discover-card>p{color:var(--muted);margin:0 6px}.discover-card .primary-btn{width:100%;margin-top:10px}.limit-note{color:#958a94;text-align:center;font-size:12px;line-height:1.5;padding:8px 20px}.concierge-hero{height:250px;align-items:center;gap:14px}.concierge-orb{position:relative;z-index:1;min-width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--lav),var(--rose));font-size:26px;box-shadow:0 0 0 11px rgba(255,255,255,.06),0 0 60px rgba(210,150,225,.35)}.thread{padding:6px 0 80px}.bubble{max-width:88%;padding:14px 15px;border-radius:19px;margin:10px 0;line-height:1.45}.bubble.ai{background:rgba(255,255,255,.085);border:1px solid var(--border);border-bottom-left-radius:6px}.bubble.user{margin-left:auto;background:linear-gradient(135deg,rgba(247,176,142,.92),rgba(201,149,255,.88));color:#19111e;border-bottom-right-radius:6px}.bubble p{margin:4px 0}.suggestion-row{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--border);background:rgba(255,255,255,.06);color:var(--text);border-radius:999px;padding:9px 12px;cursor:pointer}.composer{position:sticky;bottom:calc(var(--navh) + 5px);display:flex;gap:8px;background:rgba(10,10,18,.9);padding:10px;border-radius:20px;border:1px solid var(--border);backdrop-filter:blur(16px)}.composer input{border:0;background:transparent;padding:8px}.send-btn{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--rose),var(--lav));color:#17101c;font-weight:900}.approval-strip{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;color:var(--muted);margin:-8px 0 12px}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.yours{background:var(--ok)}.status-dot.waiting{background:var(--gold)}.divider{opacity:.45}.date-option{padding:18px;border-radius:24px;margin:12px 0}.date-option.selected{outline:1px solid rgba(247,199,122,.25)}.option-top{display:flex;justify-content:space-between;align-items:center}.rank{font-size:10px;letter-spacing:.13em;font-weight:900;color:var(--gold)}.rank.alt{color:var(--lav)}.price{font-weight:800}.date-option h3{font-size:22px;margin:8px 0 8px}.date-option>p{color:var(--muted);line-height:1.45}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;margin:14px 0}.detail-grid span{background:rgba(255,255,255,.055);padding:10px;border-radius:13px}.plan-b{font-size:12px;color:#d7cbd3;border-top:1px solid var(--border);padding-top:12px}.share-date{width:100%;padding:13px;border-radius:17px;background:rgba(126,224,189,.08);color:var(--ok);border:1px solid rgba(126,224,189,.18)}.profile-header{display:flex;align-items:center;gap:14px;padding:28px 6px 18px}.profile-header h2{margin:0;font-size:30px}.profile-header p{margin:4px 0;color:var(--muted)}.profile-header .verified{margin-left:auto}.avatar-xl{width:72px;height:72px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(135deg,#8f6ad2,#d37d7c);font-weight:900;font-size:20px}.settings-card{border-radius:24px;margin:12px 0;overflow:hidden}.setting{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.07)}.setting:last-child{border-bottom:0}.setting span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.setting button,.danger-zone button{background:rgba(255,255,255,.07);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:9px 11px}.danger-zone{padding:16px;display:grid;gap:9px}.danger-zone h3{margin:0 0 4px}.danger{background:rgba(255,127,142,.12)!important;color:#ffb1ba!important;border:1px solid rgba(255,127,142,.22)!important;border-radius:13px;padding:11px}.danger.full{width:100%}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,560px);height:calc(var(--navh) + env(safe-area-inset-bottom));padding:10px 10px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(10,10,18,.92);backdrop-filter:blur(22px);border-top:1px solid rgba(255,255,255,.08);z-index:30}.nav-item{background:transparent;border:0;color:#8e848d;display:grid;place-items:center;gap:3px;cursor:pointer}.nav-item span{font-size:21px}.nav-item em{font-size:10px;font-style:normal;font-weight:700}.nav-item.active{color:var(--text)}.nav-item.center span{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--rose),var(--lav));color:#17101c;margin-top:-19px;box-shadow:0 10px 25px rgba(202,147,223,.27)}.toast{position:fixed;left:50%;bottom:105px;transform:translate(-50%,20px);z-index:100;background:#f8eee8;color:#251a25;padding:12px 16px;border-radius:999px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;white-space:nowrap;max-width:90%;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}dialog.modal{width:min(92vw,500px);border-radius:28px;color:var(--text);padding:24px;border:1px solid var(--border);background:linear-gradient(145deg,rgba(38,33,52,.98),rgba(18,17,30,.98))}dialog::backdrop{background:rgba(4,4,10,.76);backdrop-filter:blur(8px)}.modal-x{position:absolute;right:14px;top:12px;width:34px;height:34px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.07);color:var(--text);font-size:22px}.modal h2{font-size:28px;letter-spacing:-.04em;margin:8px 0}.modal>p{color:var(--muted);line-height:1.5}.receipt{background:rgba(255,255,255,.055);border-radius:18px;padding:12px;margin:16px 0}.receipt>div{display:flex;justify-content:space-between;padding:8px 4px}.receipt span{color:var(--muted)}.consent-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#ddd0d8;margin:12px 0 15px}.consent-check input{width:20px;height:20px}.booking-result{min-height:24px;margin-top:10px;font-size:13px;color:var(--ok)}.safety-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0}.safety-grid button{padding:13px;background:rgba(255,255,255,.06);color:var(--text);border:1px solid var(--border);border-radius:14px;text-align:left}.safety-actions{display:flex;gap:9px}.safety-actions button{flex:1}.insights{display:flex;gap:8px;flex-wrap:wrap}.insights span{padding:9px 10px 9px 13px;background:rgba(190,153,255,.1);border:1px solid rgba(190,153,255,.17);border-radius:999px}.insights button{border:0;background:transparent;color:#d8c7dc}.privacy-note{margin-top:16px;padding:13px;border-radius:15px;background:rgba(126,224,189,.07);color:#bcebdc;font-size:13px}.wardrobe-banner{height:180px;margin:-24px -24px 18px;border-radius:28px 28px 20px 20px;padding:22px;display:flex;align-items:flex-end}.wardrobe-banner>div:last-child{position:relative;z-index:1}.wardrobe-banner h2{margin:5px 0}.outfit-list{display:grid;gap:8px}.outfit-list>div{display:flex;gap:12px;align-items:center;padding:11px;border-radius:14px;background:rgba(255,255,255,.055)}.outfit-list span{color:var(--gold);font-size:11px}.outfit-list+ p{line-height:1.5}.main-app{min-height:100vh}@keyframes fadeUp{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:780px){body{padding:24px 0}.app-shell{min-height:calc(100vh - 48px);border-radius:34px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.bottom-nav{bottom:24px;border-radius:0 0 34px 34px}.gate-screen{min-height:calc(100vh - 48px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* PairPilot Premium Glass v2 — Material 3 Expressive motion + restrained optical glass hierarchy. */
:root{
  --bg:#080914;--surface:rgba(25,24,39,.66);--surface-strong:rgba(23,21,35,.86);--surface-clear:rgba(255,255,255,.055);
  --text:#fffaf7;--muted:#cfc4cc;--rose:#ffab9c;--gold:#ffd28c;--lav:#c8a9ff;--violet:#9d7eff;--border:rgba(255,255,255,.14);
  --edge:rgba(255,255,255,.28);--shadow:0 28px 80px rgba(0,0,0,.46);--glass-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.035),0 24px 58px rgba(3,3,12,.34)
}
html,body{background:#070811}.ambient{background:
 radial-gradient(circle at 14% 6%,rgba(155,111,255,.18),transparent 30%),
 radial-gradient(circle at 86% 22%,rgba(255,143,126,.15),transparent 32%),
 radial-gradient(circle at 50% 82%,rgba(117,89,188,.10),transparent 38%),#070811}
.app-shell{background:linear-gradient(180deg,rgba(10,11,23,.88),rgba(7,8,16,.98));box-shadow:0 0 110px rgba(0,0,0,.64)}
.glass{position:relative;background:
 linear-gradient(135deg,rgba(255,255,255,.145),rgba(255,255,255,.055) 42%,rgba(255,255,255,.032) 70%),
 rgba(20,19,34,.42);border:1px solid rgba(255,255,255,.145);box-shadow:var(--glass-shadow);backdrop-filter:blur(28px) saturate(148%) contrast(104%);-webkit-backdrop-filter:blur(28px) saturate(148%) contrast(104%)}
.glass:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,rgba(255,255,255,.16),transparent 24%,transparent 70%,rgba(255,182,158,.035));mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);padding:1px;opacity:.6}
.premium-bg:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.05),transparent 22%,transparent 68%,rgba(200,169,255,.04));mix-blend-mode:screen}
.city-bg{background-image:url('/assets/backgrounds/romantic-city.svg')}.jazz-bg,.restaurant-bg{background-image:url('/assets/backgrounds/jazz-night.svg')}.rooftop-bg{background-image:url('/assets/backgrounds/rooftop-lounge.svg')}.wardrobe-bg{background-image:url('/assets/backgrounds/wardrobe-editorial.svg')}
.scrim{background:linear-gradient(180deg,rgba(6,7,15,.06) 0%,rgba(7,8,17,.28) 42%,rgba(6,7,15,.94) 100%)}
.hero-scrim{background:linear-gradient(180deg,rgba(4,5,12,.03),rgba(8,8,18,.18) 43%,rgba(6,7,16,.94))}
.gate-screen{padding:22px}.gate-card{border-radius:34px;padding:29px;background:linear-gradient(145deg,rgba(36,30,48,.66),rgba(15,16,29,.48));box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 34px 90px rgba(0,0,0,.48)}
.brand-mark{background:linear-gradient(135deg,#d2b8ff 0%,#ad8dff 42%,#ffad9d 100%);border:1px solid rgba(255,255,255,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 11px 30px rgba(174,134,255,.3)}
.primary-btn{background:linear-gradient(135deg,#ffd09d 0%,#ffab9b 43%,#c5a7ff 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 11px 26px rgba(192,137,212,.24);transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.primary-btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 15px 32px rgba(192,137,212,.3)}.primary-btn:active{transform:scale(.985)}
.secondary-btn,.chip,.setting button,.danger-zone button,.icon-btn{box-shadow:inset 0 1px 0 rgba(255,255,255,.09);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.topbar{height:68px;margin:10px 12px 0;border-radius:23px;padding:0 13px;top:10px;background:linear-gradient(145deg,rgba(35,32,48,.66),rgba(14,15,27,.48));border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 14px 40px rgba(0,0,0,.24);backdrop-filter:blur(28px) saturate(145%);-webkit-backdrop-filter:blur(28px) saturate(145%)}
.screen-stack{margin-top:10px;padding-bottom:calc(var(--navh) + 34px)}
.hero,.date-hero,.concierge-hero{height:258px;border-radius:32px;margin:10px 0 22px;padding:24px;box-shadow:0 25px 65px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08);background-position:center 48%}
.concierge-hero{height:272px;align-items:flex-end}.concierge-hero .concierge-orb{align-self:center;margin-bottom:16px}
.hero h2,.date-hero h2,.concierge-hero h2{font-size:31px;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.section-head{padding:0 3px}.pill{background:linear-gradient(135deg,rgba(255,210,140,.15),rgba(255,255,255,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.11)}
.match-card,.discover-card,.date-option,.settings-card{background:linear-gradient(145deg,rgba(34,31,47,.76),rgba(15,16,27,.62));border-color:rgba(255,255,255,.12)}
.match-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 28px 72px rgba(0,0,0,.38)}
.why{background:linear-gradient(135deg,rgba(176,143,255,.13),rgba(255,166,149,.055));border-color:rgba(200,169,255,.18)}
.prompt,.detail-grid span,.receipt,.outfit-list>div{background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.055)}
.concierge-orb{background:radial-gradient(circle at 30% 22%,#fff 0 2%,#d7bdff 10%,#b08cff 44%,#ffad9b 100%);border:1px solid rgba(255,255,255,.42);box-shadow:inset 0 2px 2px rgba(255,255,255,.62),0 0 0 10px rgba(255,255,255,.045),0 0 65px rgba(196,154,255,.38)}
.bubble.ai{background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045));box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}
.composer{bottom:calc(var(--navh) + 22px);background:linear-gradient(145deg,rgba(34,31,47,.78),rgba(13,14,25,.7));border-color:rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 18px 42px rgba(0,0,0,.3);backdrop-filter:blur(26px) saturate(145%)}
.date-option.selected{outline:1px solid rgba(255,210,140,.36);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 22px 60px rgba(0,0,0,.34),0 0 0 4px rgba(255,204,130,.035)}
.bottom-nav{bottom:12px;width:min(calc(100% - 24px),536px);height:calc(74px + env(safe-area-inset-bottom));border-radius:27px;padding:8px 9px max(8px,env(safe-area-inset-bottom));background:linear-gradient(145deg,rgba(35,32,48,.68),rgba(12,13,24,.62));border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 24px 55px rgba(0,0,0,.46);backdrop-filter:blur(30px) saturate(155%);-webkit-backdrop-filter:blur(30px) saturate(155%)}
.nav-item{border-radius:18px;transition:background .18s ease,color .18s ease,transform .18s ease}.nav-item.active:not(.center){background:rgba(255,255,255,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.nav-item:active{transform:scale(.96)}
.nav-item.center span{width:46px;height:46px;border-radius:17px;background:linear-gradient(145deg,#ffd09d,#ffad9d 44%,#bea1ff);border:1px solid rgba(255,255,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 13px 30px rgba(201,151,230,.33)}
dialog.modal{background:linear-gradient(145deg,rgba(40,35,54,.9),rgba(15,16,28,.82));backdrop-filter:blur(36px) saturate(150%);-webkit-backdrop-filter:blur(36px) saturate(150%);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 35px 90px rgba(0,0,0,.58)}
dialog::backdrop{background:rgba(5,5,12,.62);backdrop-filter:blur(14px) saturate(120%)}
.wardrobe-banner{height:205px}
@media(min-width:780px){.bottom-nav{bottom:36px;border-radius:27px}.app-shell{border:1px solid rgba(255,255,255,.1)}}
@media(prefers-reduced-transparency:reduce){.glass,.topbar,.bottom-nav,.composer,dialog.modal{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(22,21,34,.97)!important}}
@media(max-width:460px){.hero h2,.date-hero h2,.concierge-hero h2{font-size:28px;line-height:1.02}.hero,.date-hero,.concierge-hero{height:250px}.gate-card h1{font-size:39px}.screen{padding-left:13px;padding-right:13px}.topbar{margin-left:10px;margin-right:10px}.bottom-nav{width:calc(100% - 20px);bottom:10px}}
/* Date venue hero intentionally reveals more restaurant interior than skyline. */
.date-hero{background-position:center 62%}
/* Premium auth + onboarding glass layer */
.auth-status{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#cdbfd5;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);padding:7px 10px;border-radius:999px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-modal{overflow:hidden}.auth-modal:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-90px;top:-100px;background:radial-gradient(circle,rgba(194,151,255,.2),transparent 68%);pointer-events:none}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);border-radius:16px;margin:17px 0}.auth-tabs button{padding:10px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-weight:800}.auth-tabs button.active{background:linear-gradient(145deg,rgba(255,255,255,.19),rgba(255,255,255,.08));color:var(--text);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.stack-form{display:grid;gap:12px}.stack-form label{display:grid;gap:6px;color:#d9ccd7;font-size:12px;font-weight:750}.stack-form input,.stack-form select{width:100%;padding:13px 14px;border-radius:15px;border:1px solid rgba(255,255,255,.12);background:rgba(8,8,18,.46);color:var(--text);outline:none;backdrop-filter:blur(12px)}.stack-form input:focus,.stack-form select:focus{border-color:rgba(218,180,255,.55);box-shadow:0 0 0 3px rgba(189,148,247,.1)}.stack-form select option{background:#171522;color:white}.auth-divider{display:flex;align-items:center;gap:10px;color:#887d8c;font-size:11px;margin:15px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:rgba(255,255,255,.08);flex:1}.google-btn{width:100%;padding:13px;border-radius:15px;background:rgba(255,255,255,.92);color:#221c26;font-weight:850;border:0;box-shadow:0 13px 32px rgba(0,0,0,.22)}.google-g{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;font-weight:950;background:conic-gradient(#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0);color:white}.secure-note{display:block;color:#958b9b;line-height:1.45;margin-top:13px}.auth-modal .form-error{margin-top:10px;min-height:18px}.date-hero{background-position:center 62%}

/* PairPilot Premium V2 — original synthesis of modern photo-first dating patterns. */
:root{
  --ivory:#fff8f1;
  --champagne:#f6d59a;
  --graphite:#17151d;
  --coral:#ff776f;
  --velvet-violet:#7d56d9;
  --safety-amber:#ffbf47;
  --content-surface:rgba(255,248,241,.955);
  --ink:#211d25;
}
html,body{background:#121118}
.ambient{background:radial-gradient(circle at 10% 5%,rgba(125,86,217,.26),transparent 30%),radial-gradient(circle at 90% 18%,rgba(255,119,111,.18),transparent 28%),radial-gradient(circle at 50% 86%,rgba(246,213,154,.10),transparent 35%),#121118}
.app-shell{background:linear-gradient(180deg,#17151d 0%,#121118 78%);box-shadow:0 0 120px rgba(0,0,0,.55)}
.specular-edge{position:relative}
.specular-edge:after{content:"";position:absolute;pointer-events:none;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.34),transparent 20%,transparent 72%,rgba(246,213,154,.12));mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);padding:1px;opacity:.72}
.content-surface{background:linear-gradient(180deg,rgba(255,250,246,.98),rgba(248,238,232,.97));color:var(--ink);border-radius:0 0 31px 31px;padding:18px}
.content-surface .why{color:#413945;background:linear-gradient(135deg,rgba(125,86,217,.09),rgba(255,119,111,.07));border-color:rgba(125,86,217,.13)}
.content-surface .why b{color:#6d4ec0}
.profile-stage{border-radius:34px;overflow:hidden;background:#211c29;border:1px solid rgba(255,255,255,.12);box-shadow:0 34px 95px rgba(0,0,0,.46)}
.profile-stage-art{height:510px;border-radius:0;background:radial-gradient(circle at 50% 18%,rgba(255,225,202,.72),transparent 18%),radial-gradient(circle at 20% 20%,rgba(255,119,111,.35),transparent 36%),linear-gradient(155deg,#6e4268,#d18476 54%,#4a314e)}
.profile-stage-art:before{width:220px;height:265px;top:88px;box-shadow:0 0 0 46px rgba(255,225,205,.11);background:linear-gradient(180deg,#322536,#11121c)}
.profile-stage-art:after{width:520px;height:250px;bottom:-82px;background:linear-gradient(180deg,rgba(14,11,18,.1),rgba(12,10,16,.88))}
.profile-stage-art>span{font-size:82px;color:rgba(255,255,255,.18)}
.profile-stage-glow{position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(12,10,17,.2) 55%,rgba(12,10,17,.92) 100%);z-index:2}
.profile-stage-overlay{position:absolute;left:18px;right:18px;bottom:92px;z-index:4}
.profile-chip-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.compatibility-chip,.trust-chip,.reliability-chip{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900;letter-spacing:.02em;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.compatibility-chip{background:rgba(125,86,217,.78);color:white;border:1px solid rgba(255,255,255,.2)}
.trust-chip{background:rgba(255,191,71,.9);color:#34240d;border:1px solid rgba(255,255,255,.32)}
.reliability-chip{background:rgba(255,248,241,.15);color:#fff7f1;border:1px solid rgba(255,255,255,.22);max-width:190px;justify-content:center}
.profile-stage-name{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.profile-stage-name h3{font-size:34px;line-height:1;margin:0;letter-spacing:-.045em}.profile-stage-name p{margin:6px 0 0;color:#eadfe7;font-size:13px}
.reaction-dock{position:absolute;left:50%;bottom:19px;z-index:5;transform:translateX(-50%);display:flex;gap:13px;padding:9px 12px;border-radius:999px;background:linear-gradient(145deg,rgba(255,255,255,.20),rgba(255,255,255,.075)),rgba(29,24,34,.48);backdrop-filter:blur(34px) saturate(176%);-webkit-backdrop-filter:blur(34px) saturate(176%);border:1px solid rgba(255,255,255,.2);box-shadow:0 20px 55px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.28)}
.reaction-dock button{width:52px;height:52px;border-radius:50%;border:0;font-size:22px;font-weight:900;box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 8px 24px rgba(0,0,0,.22)}
.reaction-pass{background:rgba(255,248,241,.94);color:#544b55}.reaction-comment{background:linear-gradient(135deg,#f5dba8,#ff9d8c);color:#34202b}.reaction-like{background:linear-gradient(135deg,var(--coral),#c871e7);color:white}
.editorial-prompt-card{margin-top:14px;background:var(--ivory);border:1px solid rgba(45,34,46,.08);box-shadow:0 14px 30px rgba(61,41,56,.08);padding:17px;border-radius:19px;color:var(--ink)}
.editorial-prompt-card>span{font-size:10px;letter-spacing:.13em;color:#8d6d2e;font-weight:900}.editorial-prompt-card p{font-size:17px;line-height:1.43;margin:8px 0 13px;letter-spacing:-.01em}.editorial-prompt-card button{border:0;border-radius:999px;background:#211d25;color:white;padding:9px 12px;font-weight:850}
.compatibility-band{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.compatibility-band span{padding:11px 6px;border-radius:14px;background:#f0e8e4;text-align:center;font-size:11px;color:#675d66}.compatibility-band b{display:block;color:#2b2630;font-size:12px;margin-bottom:2px}
.concierge-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:-2px 0 18px}.concierge-action{min-height:126px;text-align:left;border-radius:23px;color:var(--text);padding:15px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.055)),rgba(27,23,37,.50);backdrop-filter:blur(32px) saturate(170%);-webkit-backdrop-filter:blur(32px) saturate(170%)}.concierge-action>span{display:grid;place-items:center;width:36px;height:36px;border-radius:13px;background:linear-gradient(135deg,var(--champagne),var(--coral),#bd9dff);color:#241b27;font-weight:900;margin-bottom:13px}.concierge-action b{display:block;font-size:14px}.concierge-action small{display:block;color:#bfb2bd;line-height:1.35;margin-top:5px}
.itinerary-timeline{position:relative;margin:17px 0 14px;padding:5px 0}.timeline-stop{display:grid;grid-template-columns:42px 16px 1fr;gap:8px;align-items:flex-start;min-height:60px}.timeline-stop i{width:11px;height:11px;margin-top:4px;border-radius:50%;background:linear-gradient(135deg,var(--champagne),var(--coral));box-shadow:0 0 0 5px rgba(246,213,154,.1);position:relative}.timeline-stop:not(:last-child) i:after{content:"";position:absolute;left:5px;top:14px;height:46px;width:1px;background:linear-gradient(var(--champagne),rgba(255,255,255,.1))}.timeline-time{color:var(--champagne);font-weight:900;font-size:12px}.timeline-stop b{font-size:14px}.timeline-stop small{display:block;color:#afa4ad;line-height:1.4;margin-top:3px}
.date-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dress-code-card,.reservation-state{padding:13px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035))}.dress-code-card span,.reservation-state span{font-size:9px;letter-spacing:.14em;color:var(--champagne);font-weight:900}.dress-code-card b,.reservation-state b{display:block;margin:5px 0;font-size:13px}.dress-code-card small,.reservation-state small{display:block;color:#a99faa;line-height:1.35}.reservation-state{border-color:rgba(126,224,189,.16);background:linear-gradient(145deg,rgba(126,224,189,.08),rgba(255,255,255,.03))}
.liquid-dock{background:linear-gradient(145deg,rgba(255,255,255,.19),rgba(255,255,255,.055)),rgba(25,22,32,.62)!important;backdrop-filter:blur(36px) saturate(180%) contrast(106%)!important;-webkit-backdrop-filter:blur(36px) saturate(180%) contrast(106%)!important;border:1px solid rgba(255,255,255,.21)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.31),0 24px 62px rgba(0,0,0,.48)!important}
.trust-center-card{display:flex;gap:13px;align-items:center;padding:16px;border-radius:20px;background:linear-gradient(135deg,rgba(255,191,71,.14),rgba(255,255,255,.045));border:1px solid rgba(255,191,71,.22);margin:12px 0 15px}.trust-shield{display:grid;place-items:center;min-width:48px;height:48px;border-radius:16px;background:var(--safety-amber);color:#2d210f;font-size:22px}.trust-center-card b{display:block}.trust-center-card small{display:block;color:#b9adb8;line-height:1.4;margin-top:4px}
@media(max-width:420px){.profile-stage-art{height:475px}.profile-stage-name{display:block}.reliability-chip{margin-top:9px}.date-meta-grid{grid-template-columns:1fr}.concierge-action-grid{gap:8px}.concierge-action{min-height:118px;padding:13px}}
.discover-hero,.you-hero{height:238px;border-radius:31px;margin:10px 0 20px;padding:22px;display:flex;align-items:flex-end;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.09);box-shadow:0 24px 64px rgba(0,0,0,.34)}
.discover-hero>div:last-child,.you-hero>div:last-child{position:relative;z-index:2}.discover-hero h2,.you-hero h2{font-size:30px;line-height:1.03;letter-spacing:-.04em;margin:7px 0 8px}.discover-hero p,.you-hero p{margin:0;color:#eadfe6;line-height:1.45}
.trust-summary{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;padding:14px;border-radius:19px;margin:0 0 13px;background:linear-gradient(135deg,rgba(255,191,71,.13),rgba(255,255,255,.04));border:1px solid rgba(255,191,71,.18)}.trust-summary>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--safety-amber);color:#34250f;font-weight:950}.trust-summary b{display:block}.trust-summary small{display:block;color:#afa4ad;line-height:1.35;margin-top:3px}.trust-summary button{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:var(--text);border-radius:12px;padding:9px 11px;font-weight:850}

/* Production data states: sample profiles never render unless explicit demo mode is enabled. */
.demo-only{display:none!important}.demo-mode .demo-only{display:block!important}.production-data-list{display:grid;gap:16px}.data-state{padding:28px 22px;text-align:center;color:var(--graphite);background:linear-gradient(145deg,rgba(255,250,244,.96),rgba(250,239,232,.9));border-color:rgba(92,69,83,.12)}.data-state .data-orb{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 13px;border-radius:19px;background:linear-gradient(135deg,var(--coral),var(--velvet-violet));color:white;font-size:24px;box-shadow:0 14px 34px rgba(106,74,137,.22)}.data-state b{display:block;font-size:18px}.data-state p{margin:7px auto 0;max-width:390px;color:#746873}.data-state.error{border-color:rgba(180,61,83,.2)}.production-profile-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.production-profile-actions button{flex:1;min-width:110px}.safety-link{border:1px solid rgba(137,102,115,.18);background:transparent;color:#6d5b68;border-radius:14px;padding:11px 13px;font-weight:800}.real-profile-initial{display:grid;place-items:center;height:315px;background:radial-gradient(circle at 50% 22%,rgba(255,220,199,.75),transparent 19%),linear-gradient(155deg,#78516f,#cf876e);font-size:72px;font-weight:900;color:rgba(255,255,255,.28)}.real-profile-card .profile-content{border-radius:0 0 28px 28px}.discover-grid.production-data-list{grid-template-columns:repeat(2,minmax(0,1fr))}.discover-grid.production-data-list>.data-state{grid-column:1/-1}.date-status-chip{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(126,87,170,.12);color:#6e4f8d;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}@media(max-width:520px){.discover-grid.production-data-list{grid-template-columns:1fr}}

.messages-hub{margin:18px 0 20px;padding:16px;border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.045)),rgba(26,23,35,.62)}
.compact-head{margin:2px 0 12px}.conversation-list{display:grid;gap:9px}.conversation-card{width:100%;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:11px;text-align:left;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.055);color:var(--text);border-radius:18px;padding:11px;cursor:pointer}.conversation-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,var(--coral),var(--velvet-violet));font-weight:900}.conversation-copy b,.conversation-copy small{display:block}.conversation-copy small{color:#b7abb5;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:330px}.conversation-verified{color:var(--ok);font-weight:900}.message-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:end;margin:14px 0 10px}.message-panel-head h3{margin:4px 0 0}.message-thread{display:grid;gap:8px;max-height:360px;overflow:auto;padding:4px 1px 12px}.chat-line{max-width:84%;padding:11px 12px;border-radius:16px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.08)}.chat-line.mine{justify-self:end;background:linear-gradient(135deg,rgba(255,143,130,.94),rgba(198,166,255,.9));color:#1e1620}.chat-line small{display:block;opacity:.68;font-size:9px;margin-top:4px}.message-composer{display:flex;gap:8px;padding:8px;border-radius:18px;background:rgba(8,8,16,.68);border:1px solid var(--border)}.message-composer input{border:0;background:transparent}.message-safety{min-height:18px;color:var(--gold);font-size:11px;margin-top:7px}


/* ==========================================================================
   PairPilot Premium Glass v3 — luxury concierge visual system
   UI-only layer. Do not move authentication/session behavior into CSS/markup.
   ========================================================================== */

:root{
  --pp-bg-0:#060814;
  --pp-bg-1:#0a0d1a;
  --pp-bg-2:#11172a;
  --pp-glass:rgba(255,255,255,.075);
  --pp-glass-strong:rgba(255,255,255,.115);
  --pp-glass-soft:rgba(255,255,255,.045);
  --pp-edge:rgba(255,255,255,.18);
  --pp-edge-hot:rgba(255,255,255,.32);
  --pp-text:rgba(255,250,247,.97);
  --pp-text-2:rgba(240,232,239,.76);
  --pp-text-3:rgba(226,215,225,.54);
  --pp-blue:#76a9ff;
  --pp-violet:#a78bfa;
  --pp-pink:#ff8fa8;
  --pp-gold:#ffd08a;
  --pp-green:#80e7c3;
  --pp-grad:linear-gradient(135deg,#78a9ff 0%,#a78bfa 52%,#ff8fa8 100%);
  --pp-grad-warm:linear-gradient(135deg,#ffd08a,#ff9e98);
  --pp-shadow:0 28px 80px rgba(0,0,0,.46),0 8px 24px rgba(0,0,0,.22);
  --pp-shadow-float:0 32px 90px rgba(0,0,0,.52),0 0 38px rgba(129,99,255,.10);
  --pp-inset:inset 0 1px 0 rgba(255,255,255,.20),inset 0 -1px 0 rgba(255,255,255,.035);
  --pp-blur:26px;
  --pp-radius:28px;
  --pp-ease:cubic-bezier(.22,1,.36,1);
}

html{background:#050610}
body{
  background:
    radial-gradient(circle at 12% 4%,rgba(118,169,255,.13),transparent 29%),
    radial-gradient(circle at 88% 15%,rgba(255,143,168,.12),transparent 31%),
    radial-gradient(circle at 50% 86%,rgba(167,139,250,.11),transparent 38%),
    #050610;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 20%),
    radial-gradient(circle at 50% -10%,rgba(255,255,255,.06),transparent 34%);
}
.ambient{
  background:
    radial-gradient(circle at 14% 8%,rgba(118,169,255,.20),transparent 28%),
    radial-gradient(circle at 86% 24%,rgba(255,143,168,.17),transparent 31%),
    radial-gradient(circle at 50% 78%,rgba(167,139,250,.13),transparent 40%),
    #050610;
}
.app-shell{
  background:linear-gradient(180deg,rgba(10,13,27,.84),rgba(6,8,17,.975));
  box-shadow:0 0 120px rgba(0,0,0,.68);
}

/* Optical glass */
.glass,
.messages-hub,
.settings-card,
.trust-summary,
.composer,
.message-composer{
  position:relative;
  background:
    linear-gradient(145deg,rgba(255,255,255,.125),rgba(255,255,255,.045) 48%,rgba(255,255,255,.025)),
    rgba(14,16,29,.56);
  border:1px solid var(--pp-edge);
  box-shadow:var(--pp-shadow),var(--pp-inset);
  backdrop-filter:blur(var(--pp-blur)) saturate(145%);
  -webkit-backdrop-filter:blur(var(--pp-blur)) saturate(145%);
}
.glass::before,
.messages-hub::before,
.settings-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.13),transparent 24%,transparent 72%,rgba(118,169,255,.045));
  mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);
  -webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);
  padding:1px;
  opacity:.7;
}
.specular-edge{
  box-shadow:var(--pp-shadow-float),var(--pp-inset);
  border-color:rgba(255,255,255,.22);
}

/* Typography hierarchy */
.brand-lockup{letter-spacing:-.045em}
.brand-lockup b{
  color:var(--pp-gold);
  text-shadow:0 0 22px rgba(255,208,138,.18);
}
.brand-mark{
  background:var(--pp-grad);
  box-shadow:0 12px 34px rgba(167,139,250,.30),inset 0 1px 0 rgba(255,255,255,.42);
}
.eyebrow,.kicker{
  color:var(--pp-gold);
  letter-spacing:.19em;
  text-shadow:0 0 20px rgba(255,208,138,.12);
}
.section-head h2,.section-head h3,
.profile-header h2,.hero h2,.date-hero h2,.concierge-hero h2{
  color:var(--pp-text);
  text-wrap:balance;
}
.hero p,.date-hero p,.concierge-hero p,.meta,.setting span,.modal>p,
.conversation-copy small,.data-state p{color:var(--pp-text-2)}

/* Hero depth */
.hero,.date-hero,.concierge-hero{
  min-height:248px;
  border-radius:0 0 38px 38px;
  box-shadow:0 28px 62px rgba(0,0,0,.30);
}
.hero::after,.date-hero::after,.concierge-hero::after,.gate-screen::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),transparent 28%),
    radial-gradient(circle at 72% 16%,rgba(255,255,255,.10),transparent 16%);
}
.scrim,.hero-scrim{
  background:
    linear-gradient(180deg,rgba(5,6,14,.08) 0%,rgba(7,8,17,.36) 48%,rgba(6,7,15,.94) 100%);
}

/* Auth / age gate */
.gate-screen{
  padding:32px 24px max(32px,env(safe-area-inset-bottom));
  background-position:center;
}
.gate-card{
  border-radius:34px;
  padding:30px;
  overflow:hidden;
  box-shadow:0 36px 96px rgba(0,0,0,.58),0 0 44px rgba(167,139,250,.10),var(--pp-inset);
}
.gate-card::after{
  content:"";
  position:absolute;
  width:150px;
  height:150px;
  right:-52px;
  top:-58px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(118,169,255,.24),transparent 66%);
  pointer-events:none;
}
.gate-card h1{
  font-size:clamp(42px,9vw,54px);
  letter-spacing:-.065em;
  max-width:9ch;
  text-wrap:balance;
}
.gate-card p{max-width:38ch}
.gate-card input,.auth-modal input,.modal input{
  background:rgba(6,8,17,.48);
  border-color:rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
.gate-card input:focus,.auth-modal input:focus,.modal input:focus{
  border-color:rgba(118,169,255,.60);
  box-shadow:0 0 0 4px rgba(118,169,255,.11),inset 0 1px 0 rgba(255,255,255,.06);
}
.gate-trust-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:18px;
}
.gate-trust-row span{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 10px;
  min-height:38px;
  border-radius:14px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.085);
  color:var(--pp-text-2);
  font-size:11px;
  font-weight:700;
}
.gate-trust-row i{font-style:normal;color:var(--pp-green)}
.auth-modal{
  box-shadow:0 42px 110px rgba(0,0,0,.68),0 0 42px rgba(118,169,255,.08),var(--pp-inset);
}

/* Buttons */
.primary-btn{
  position:relative;
  overflow:hidden;
  background:var(--pp-grad);
  color:#111322;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 16px 38px rgba(118,169,255,.20),0 10px 28px rgba(167,139,250,.18),inset 0 1px 0 rgba(255,255,255,.45);
  transition:transform .18s var(--pp-ease),box-shadow .22s var(--pp-ease),filter .22s var(--pp-ease);
}
.primary-btn::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.34) 46%,transparent 70%);
  transform:translateX(-130%);
  transition:transform .6s var(--pp-ease);
  pointer-events:none;
}
.primary-btn:hover{transform:translateY(-2px);filter:saturate(1.08);box-shadow:0 20px 46px rgba(118,169,255,.26),0 12px 30px rgba(167,139,250,.22)}
.primary-btn:hover::after{transform:translateX(130%)}
.primary-btn:active,.secondary-btn:active,.icon-btn:active,.nav-item:active{transform:scale(.975)}
.secondary-btn,.setting button,.safety-grid button{
  background:rgba(255,255,255,.065);
  border-color:rgba(255,255,255,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  transition:transform .18s var(--pp-ease),background .18s var(--pp-ease),border-color .18s var(--pp-ease);
}
.secondary-btn:hover,.setting button:hover,.safety-grid button:hover{
  background:rgba(255,255,255,.095);
  border-color:rgba(255,255,255,.22);
}

/* Top bar */
.topbar{
  height:72px;
  margin:0 10px;
  padding:0 12px;
  top:8px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  background:rgba(10,12,24,.58);
  box-shadow:0 18px 42px rgba(0,0,0,.24),var(--pp-inset);
  backdrop-filter:blur(24px) saturate(140%);
  -webkit-backdrop-filter:blur(24px) saturate(140%);
}
.auth-status{
  display:none;
  align-items:center;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(128,231,195,.075);
  border:1px solid rgba(128,231,195,.14);
  color:#baf5df;
  font-size:10px;
  max-width:150px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.icon-btn,.avatar-btn{
  border-radius:14px;
  background:rgba(255,255,255,.075);
  border-color:rgba(255,255,255,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}

/* Match / discover cards */
.match-card,.discover-card,.mini-profile{
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 24px 64px rgba(0,0,0,.36),var(--pp-inset);
  background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  transition:transform .24s var(--pp-ease),box-shadow .24s var(--pp-ease),border-color .24s var(--pp-ease);
}
.match-card:hover,.discover-card:hover,.mini-profile:hover{
  transform:translateY(-3px);
  border-color:rgba(255,255,255,.20);
  box-shadow:0 30px 76px rgba(0,0,0,.44),0 0 32px rgba(118,169,255,.055),var(--pp-inset);
}
.profile-stage-art,.real-profile-initial,.profile-art{
  box-shadow:inset 0 -70px 90px rgba(6,7,15,.30);
}
.profile-stage-overlay{
  background:linear-gradient(180deg,transparent,rgba(5,6,14,.15) 24%,rgba(5,6,14,.90));
}
.compatibility-chip,.trust-chip,.reliability-chip,.pill,.date-status-chip{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.compatibility-chip{
  background:rgba(118,169,255,.14);
  border-color:rgba(118,169,255,.24);
  color:#dce9ff;
}
.trust-chip{
  background:rgba(128,231,195,.10);
  border-color:rgba(128,231,195,.20);
  color:#c8f8e8;
}
.editorial-prompt-card,.why{
  background:linear-gradient(145deg,rgba(167,139,250,.115),rgba(118,169,255,.055));
  border-color:rgba(167,139,250,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.reaction-dock{
  background:rgba(9,11,22,.54);
  backdrop-filter:blur(24px) saturate(150%);
  -webkit-backdrop-filter:blur(24px) saturate(150%);
  border:1px solid rgba(255,255,255,.15);
}
.reaction-dock button{
  transition:transform .18s var(--pp-ease),filter .18s var(--pp-ease),box-shadow .18s var(--pp-ease);
}
.reaction-dock button:hover{transform:translateY(-2px) scale(1.04);filter:brightness(1.08)}

/* Messages */
.messages-hub{border-radius:28px;padding:18px}
.conversation-card{
  border-color:rgba(255,255,255,.09);
  background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.035));
  transition:transform .18s var(--pp-ease),background .18s var(--pp-ease),border-color .18s var(--pp-ease);
}
.conversation-card:hover{
  transform:translateX(2px);
  background:rgba(255,255,255,.085);
  border-color:rgba(255,255,255,.16);
}
.conversation-avatar{
  background:var(--pp-grad);
  box-shadow:0 10px 28px rgba(167,139,250,.20),inset 0 1px 0 rgba(255,255,255,.35);
}
.chat-line{
  background:rgba(255,255,255,.065);
  border-color:rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.chat-line.mine{
  background:linear-gradient(135deg,rgba(118,169,255,.88),rgba(167,139,250,.88));
  color:white;
  border-color:rgba(255,255,255,.16);
  box-shadow:0 12px 30px rgba(118,169,255,.14);
}
.message-composer,.composer{
  background:rgba(9,11,22,.66);
  border-color:rgba(255,255,255,.12);
  box-shadow:0 18px 48px rgba(0,0,0,.34),var(--pp-inset);
}
.send-btn{
  background:var(--pp-grad);
  color:#111322;
  box-shadow:0 10px 28px rgba(167,139,250,.22),inset 0 1px 0 rgba(255,255,255,.38);
}

/* Concierge */
.concierge-hero{
  box-shadow:0 30px 72px rgba(0,0,0,.34),0 0 54px rgba(167,139,250,.055);
}
.concierge-orb{
  background:var(--pp-grad);
  box-shadow:0 0 0 12px rgba(255,255,255,.045),0 0 72px rgba(167,139,250,.34),inset 0 1px 0 rgba(255,255,255,.50);
  animation:ppOrb 5.5s ease-in-out infinite;
}
.concierge-action{
  min-height:128px;
  border-radius:24px;
  text-align:left;
  transition:transform .22s var(--pp-ease),border-color .22s var(--pp-ease),background .22s var(--pp-ease);
}
.concierge-action:hover{
  transform:translateY(-3px);
  border-color:rgba(118,169,255,.22);
  background:linear-gradient(145deg,rgba(118,169,255,.10),rgba(167,139,250,.06)),rgba(15,17,31,.62);
}
.bubble.ai{
  background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.045));
  border-color:rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.bubble.user{
  background:linear-gradient(135deg,rgba(118,169,255,.92),rgba(167,139,250,.90));
  color:white;
  box-shadow:0 12px 30px rgba(118,169,255,.14);
}
.chip{
  background:rgba(255,255,255,.055);
  border-color:rgba(255,255,255,.11);
  transition:transform .18s var(--pp-ease),background .18s var(--pp-ease);
}
.chip:hover{transform:translateY(-1px);background:rgba(255,255,255,.085)}

/* Dates */
.date-option{
  border:1px solid rgba(255,255,255,.105);
  background:linear-gradient(155deg,rgba(255,255,255,.075),rgba(255,255,255,.03));
  box-shadow:0 22px 58px rgba(0,0,0,.30),var(--pp-inset);
  transition:transform .22s var(--pp-ease),border-color .22s var(--pp-ease),box-shadow .22s var(--pp-ease);
}
.date-option:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.18)}
.date-option.selected{
  outline:0;
  border-color:rgba(255,208,138,.30);
  box-shadow:0 28px 70px rgba(0,0,0,.38),0 0 34px rgba(255,208,138,.07),var(--pp-inset);
}
.dress-code-card,.reservation-state{
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
.approval-strip{
  width:max-content;
  max-width:100%;
  margin:-8px auto 14px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
}
.share-date{
  background:linear-gradient(145deg,rgba(128,231,195,.10),rgba(118,169,255,.045));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}

/* Profile / settings */
.profile-header{
  margin:12px 0 4px;
  padding:24px 8px 20px;
}
.avatar-xl{
  background:var(--pp-grad);
  box-shadow:0 18px 42px rgba(167,139,250,.22),inset 0 1px 0 rgba(255,255,255,.36);
}
.settings-card{
  border-radius:26px;
  overflow:hidden;
}
.setting{
  transition:background .18s var(--pp-ease);
}
.setting:hover{background:rgba(255,255,255,.025)}
.trust-summary{
  border-radius:22px;
  overflow:hidden;
}

/* Floating liquid dock */
.bottom-nav{
  bottom:max(12px,env(safe-area-inset-bottom));
  width:min(calc(100% - 24px),536px);
  height:72px;
  padding:8px 10px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(9,11,22,.66);
  box-shadow:0 26px 64px rgba(0,0,0,.50),var(--pp-inset);
  backdrop-filter:blur(28px) saturate(155%);
  -webkit-backdrop-filter:blur(28px) saturate(155%);
}
.screen-stack{padding-bottom:calc(var(--navh) + 34px)}
.nav-item{
  position:relative;
  border-radius:17px;
  transition:color .2s var(--pp-ease),background .2s var(--pp-ease),transform .2s var(--pp-ease);
}
.nav-item:hover{background:rgba(255,255,255,.035)}
.nav-item.active{
  color:white;
  background:linear-gradient(145deg,rgba(118,169,255,.105),rgba(167,139,250,.075));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
}
.nav-item.center{background:transparent;box-shadow:none}
.nav-item.center span{
  width:48px;
  height:48px;
  border-radius:17px;
  background:var(--pp-grad);
  color:#111322;
  margin-top:-22px;
  box-shadow:0 16px 38px rgba(167,139,250,.30),0 0 26px rgba(118,169,255,.13),inset 0 1px 0 rgba(255,255,255,.42);
}

/* Modals */
dialog.modal{
  border-radius:30px;
  border-color:rgba(255,255,255,.15);
  background:
    linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.035)),
    rgba(14,16,29,.90);
  box-shadow:0 42px 110px rgba(0,0,0,.70),0 0 34px rgba(167,139,250,.07),var(--pp-inset);
  backdrop-filter:blur(30px) saturate(145%);
  -webkit-backdrop-filter:blur(30px) saturate(145%);
}
dialog::backdrop{
  background:rgba(3,4,10,.76);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.modal-x{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.safety-grid button{min-height:52px}
.trust-center-card{
  background:linear-gradient(145deg,rgba(128,231,195,.075),rgba(118,169,255,.035));
  border:1px solid rgba(128,231,195,.12);
}

/* Empty/loading states */
.data-state{
  border-radius:24px;
  min-height:150px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  gap:6px;
  overflow:hidden;
}
.data-state::after{
  content:"";
  position:absolute;
  left:-45%;
  top:0;
  width:36%;
  height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent);
  transform:skewX(-18deg);
  animation:ppShimmer 3.2s ease-in-out infinite;
  pointer-events:none;
}
.data-orb{
  filter:drop-shadow(0 0 16px rgba(167,139,250,.24));
}

/* Motion */
@keyframes ppOrb{
  0%,100%{transform:translateY(0);filter:saturate(1)}
  50%{transform:translateY(-4px);filter:saturate(1.12)}
}
@keyframes ppShimmer{
  0%,20%{transform:translateX(0) skewX(-18deg)}
  70%,100%{transform:translateX(440%) skewX(-18deg)}
}
.screen.active{animation:ppScreenIn .42s var(--pp-ease)}
@keyframes ppScreenIn{
  from{opacity:.45;transform:translateY(10px) scale(.995)}
  to{opacity:1;transform:none}
}

@media(min-width:780px){
  body{padding:22px 0}
  .app-shell{
    min-height:calc(100vh - 44px);
    border-radius:38px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.09);
  }
  .bottom-nav{bottom:34px}
  .topbar{top:10px}
}
@media(max-width:430px){
  .gate-card{padding:25px 22px}
  .gate-card h1{font-size:42px}
  .gate-trust-row{grid-template-columns:1fr}
  .topbar{margin:0 7px}
  .bottom-nav{width:calc(100% - 18px)}
  .nav-item em{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  .concierge-orb,.data-state::after{animation:none!important}
}

/* PairPilot Drip Engine — private wardrobe capture, inventory, and recommendations */
.visually-hidden-file{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
.wardrobe-modal{max-width:760px!important}.wardrobe-banner p{position:relative;z-index:1;margin:6px 0 0;color:rgba(255,255,255,.78);max-width:45ch}
.wardrobe-upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 8px}.wardrobe-upload-actions button{margin:0;min-height:50px}
.wardrobe-status{min-height:24px;padding:8px 2px;color:var(--pp-text-2);font-size:13px}.wardrobe-section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:12px 0}.wardrobe-section-head h3{margin:4px 0 0}
.wardrobe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wardrobe-grid>.data-state{grid-column:1/-1}.wardrobe-item{border-radius:22px;overflow:hidden;min-width:0}
.wardrobe-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:rgba(255,255,255,.04)}.wardrobe-item-copy{padding:13px}.wardrobe-item-top{display:flex;align-items:start;justify-content:space-between;gap:8px}.wardrobe-item h4{margin:3px 0 0;font-size:17px;line-height:1.15}.wardrobe-item p{margin:8px 0 0;color:var(--pp-text-2);font-size:12px;line-height:1.45}
.wardrobe-delete{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);color:var(--pp-text-2);font-size:18px;cursor:pointer}.wardrobe-delete:hover{background:rgba(255,127,142,.12);border-color:rgba(255,127,142,.20);color:#ffc0c8}
.wardrobe-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.wardrobe-tags span{padding:5px 8px;border-radius:999px;background:rgba(118,169,255,.08);border:1px solid rgba(118,169,255,.12);color:#dce8ff;font-size:10px;font-weight:800;text-transform:capitalize}
.drip-builder{margin-top:16px;border-radius:24px;padding:18px;overflow:hidden}.drip-builder h3{margin:5px 0 6px;font-size:21px}.drip-builder>p{margin:0;color:var(--pp-text-2);line-height:1.45}.drip-builder .primary-btn{margin-top:14px;width:100%}.drip-recommendation{margin-top:12px}
.drip-result{padding:14px;border-radius:18px;background:linear-gradient(145deg,rgba(118,169,255,.09),rgba(167,139,250,.07));border:1px solid rgba(167,139,250,.15)}.drip-result h4{font-size:20px;margin:4px 0 8px}.drip-result p{color:var(--pp-text-2);line-height:1.5}.drip-result ul{margin:8px 0 0;padding-left:18px;color:var(--pp-text-2)}
@media(max-width:520px){.wardrobe-upload-actions,.wardrobe-grid{grid-template-columns:1fr}}
