:root{--ink:#191a1f;--muted:#727785;--line:rgba(62,75,112,.12);--blue:#7c3aed;--pink:#ec4899;--card:rgba(255,255,255,.82)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 18% 7%,rgba(124,58,237,.1),transparent 28%),radial-gradient(circle at 82% 8%,rgba(236,72,153,.09),transparent 27%),linear-gradient(180deg,#fcfaff,#f8f5ff 55%,#fcfaff)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(55,68,104,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(55,68,104,.025) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to bottom,#000,transparent 75%)}a{color:inherit}.topbar{min-height:72px;padding:calc(10px + env(safe-area-inset-top)) clamp(18px,5vw,68px) 10px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;border-bottom:1px solid var(--line);background:rgba(253,251,255,.78);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:22px;font-weight:800;letter-spacing:-.6px}.brand-mark{width:36px;height:36px;flex:none;display:block;filter:drop-shadow(0 3px 6px rgba(124,58,237,.18))}.brand strong{background:linear-gradient(90deg,#a855f7,var(--pink));background-clip:text;color:transparent}.account{display:flex;align-items:center;gap:10px}.avatar,.avatar-img{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:white;background:linear-gradient(135deg,var(--blue),var(--pink));box-shadow:0 8px 20px rgba(124,58,237,.16);object-fit:cover}.user-copy{line-height:1.15}.user-copy b{display:block;font-size:14px}.user-copy span{font-size:12px;color:var(--muted)}.hero{min-height:56vh;padding:72px 24px 58px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}.hero-logo{width:min(760px,88vw);filter:drop-shadow(0 22px 42px rgba(75,88,145,.08));position:relative;z-index:2}.hero h1{margin:6px 0 0;font-size:clamp(32px,5vw,54px);letter-spacing:-1.9px}.hero p{max-width:650px;margin:13px auto 0;color:var(--muted);font-size:clamp(17px,2vw,21px);line-height:1.55}.signin{display:inline-flex;align-items:center;justify-content:center;gap:9px;margin-top:30px;padding:13px 20px;border-radius:14px;text-decoration:none;font-weight:800;color:white;background:linear-gradient(100deg,var(--blue),#a855f7 58%,var(--pink));box-shadow:0 16px 36px rgba(124,58,237,.24);transition:.2s}.signin:hover{transform:translateY(-2px)}.signed-out .hero{min-height:calc(100vh - 72px)}.glow{position:absolute;border-radius:50%;filter:blur(12px)}.glow-a{width:320px;height:320px;background:rgba(124,58,237,.12);left:8%;top:18%}.glow-b{width:340px;height:340px;background:rgba(236,72,153,.1);right:6%;top:12%}.apps{max-width:1160px;margin:0 auto;padding:56px 24px 88px}.section-title{text-align:center;margin-bottom:28px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:900;color:#8b5cf6}.section-title h2{font-size:clamp(32px,5vw,48px);letter-spacing:-1.6px;margin:8px 0}.section-title p{margin:0;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card{min-height:260px;padding:23px;border-radius:27px;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;background:var(--card);border:1px solid var(--line);box-shadow:0 18px 50px rgba(53,69,110,.09);backdrop-filter:blur(16px);transition:.2s}.card:hover{transform:translateY(-5px);box-shadow:0 28px 70px rgba(53,69,110,.14)}.card-head{display:flex;align-items:center;justify-content:space-between}.icon{width:60px;height:60px}.launch{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:#697080}.card h3{font-size:26px;letter-spacing:-.7px;margin:18px 0 7px}.card p{margin:0;color:var(--muted);line-height:1.55}.cta{margin-top:22px;color:#8b5cf6;font-size:14px;font-weight:800}.profile-wrap{max-width:590px;margin:0 auto;padding:74px 22px}.panel{padding:30px;border-radius:28px;background:rgba(255,255,255,.86);border:1px solid var(--line);box-shadow:0 24px 70px rgba(53,69,110,.11);backdrop-filter:blur(18px)}.panel-logo{width:min(300px,100%);display:block;margin:0 auto 20px}.panel h1{text-align:center;margin:0;font-size:36px;letter-spacing:-1.2px}.lead{text-align:center;color:var(--muted);line-height:1.5;margin:10px auto 28px}.field{margin-top:18px}.field label{display:block;font-weight:800;font-size:13px;margin-bottom:7px}.email-readout,.help{font-size:12px;color:var(--muted);line-height:1.45}.optional{font-weight:500;color:#888}.field input[type=text]{width:100%;padding:13px 14px;border:1px solid rgba(62,75,112,.17);border-radius:13px;background:#fff;font:inherit;outline:none}.field input[type=text]:focus{border-color:#a78bfa;box-shadow:0 0 0 4px rgba(124,58,237,.1)}.upload{border:1px dashed rgba(86,105,180,.3);border-radius:18px;padding:18px;background:#fcfaff;display:flex;gap:14px;align-items:center}.upload-preview{width:58px;height:58px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,var(--blue),var(--pink))}.upload input{max-width:100%}.button{width:100%;margin-top:24px;border:0;border-radius:14px;padding:13px 18px;font:inherit;font-weight:850;color:white;cursor:pointer;background:linear-gradient(100deg,var(--blue),#a855f7 58%,var(--pink));box-shadow:0 14px 32px rgba(124,58,237,.22)}.secondary{display:block;text-align:center;margin-top:16px;color:var(--muted);font-size:13px}.error{padding:11px 13px;border-radius:12px;background:#fff0f1;color:#a22b36;font-size:13px;margin-bottom:18px}footer{padding:28px 24px 36px;text-align:center;color:#979ba6;font-size:12px}@media(max-width:720px){.topbar{min-height:56px;padding:8px 14px}.user-copy{display:none}.signed-out .hero{min-height:calc(100vh - 64px)}.hero{padding:54px 20px}.grid{grid-template-columns:1fr}.apps{padding-top:38px}.card{min-height:235px}.panel{padding:24px 19px}.profile-wrap{padding-top:45px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Keep account controls available on small screens. */
@media(max-width:720px){.user-copy{display:block}.brand{font-size:18px}.account{gap:7px}.user-copy b{max-width:110px;overflow-wrap:anywhere}.upload{flex-wrap:wrap}.upload>div{min-width:0;width:100%}}
:focus-visible{outline:3px solid #7c3aed;outline-offset:4px}.logout-form{display:inline}.text-button{border:0;padding:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.hero h1{overflow-wrap:anywhere;max-width:100%}

/* Dark mode (phones and computers set to dark). The dashboard and profile
   styles have their own dark layers at the end of their files. */
@media (prefers-color-scheme:dark){
:root{color-scheme:dark;--ink:#f2f3f7;--muted:#9a9fad;--line:rgba(255,255,255,.12);--card:rgba(28,29,34,.86)}
body{background:radial-gradient(circle at 18% 7%,rgba(124,58,237,.18),transparent 28%),radial-gradient(circle at 82% 8%,rgba(236,72,153,.13),transparent 27%),linear-gradient(180deg,#0c0d11,#08090c 55%,#0b0c10)}
body:before{background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px)}
.topbar{background:rgba(12,13,17,.8)}

.launch{background:#1c1d22}
.panel{background:rgba(24,25,30,.9);box-shadow:0 24px 60px rgba(0,0,0,.45)}
.field input[type=text]{background:#16171b;border-color:rgba(255,255,255,.14);color:var(--ink)}
.upload{background:#15161b;border-color:rgba(196,165,255,.3)}
.error{background:#3a1519;color:#ff9aa2}
}

/* Public About page. */
.about-link{font-weight:700;text-underline-offset:4px;padding:8px 0}
.hero-about{position:relative;margin-top:22px}
.about-intro{max-width:820px;margin:0 auto;padding:56px 24px 20px;text-align:center}
.about-logo{display:block;width:min(440px,100%);margin:0 auto 28px}
.about-intro h1{font-size:clamp(32px,5vw,50px);letter-spacing:-1.5px;line-height:1.12;margin:12px 0 22px}
.about-intro>p:not(.eyebrow){color:var(--muted);line-height:1.7;font-size:17px}
.about-card{justify-content:flex-start;min-height:230px}
.about-card:hover{transform:none}
.about-apps{scroll-margin-top:90px}

/* Joining without an invitation (/join), and its link on the signed-out page. */
.hero-actions{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.join-link{margin-top:14px;font-weight:700;color:var(--ink);text-underline-offset:4px}
.join-wrap{max-width:680px}
.join-form fieldset{border:0;margin:18px 0 0;padding:0;min-width:0}
.join-kind{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.join-form .join-kind label,.join-form .join-app{display:flex;margin:0;font-size:14px;font-weight:400;gap:10px;align-items:flex-start;padding:13px 14px;border:1px solid rgba(62,75,112,.17);border-radius:14px;background:#fff;cursor:pointer}
.join-kind label:has(input:checked),.join-app:has(input:checked){border-color:#a78bfa;box-shadow:0 0 0 3px rgba(124,58,237,.12)}
.join-kind input,.join-app input{margin:3px 0 0;flex:none}
.join-kind span,.join-app span{display:flex;flex-direction:column;gap:3px;min-width:0}
.join-kind small,.join-app small{color:var(--muted);font-size:12px;line-height:1.4}
.join-apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.join-form .join-app{align-items:center}
.join-app input{margin:0}
.join-app img{width:40px;height:40px;flex:none}
.join-app b{overflow-wrap:anywhere}
.join-form:has(input[value=personal]:checked) .join-app[data-personal="0"],.join-form:has(input[value=family]:checked) .join-app[data-family="0"],.join-form:has(input[value=group]:checked) .join-app[data-family="0"]{opacity:.4}
.join-form .field input[type=email]{width:100%;padding:13px 14px;border:1px solid rgba(62,75,112,.17);border-radius:13px;background:#fff;font:inherit;outline:none}
.join-form .field input[type=email]:focus{border-color:#a78bfa;box-shadow:0 0 0 4px rgba(124,58,237,.1)}
.join-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.join-form legend{display:block;font-weight:800;font-size:13px;margin-bottom:9px;padding:0}
@media(max-width:520px){.join-kind{grid-template-columns:1fr}.join-apps{grid-template-columns:1fr}.join-form .join-app{padding:10px 12px}.join-app img{width:32px;height:32px}}
@media (prefers-color-scheme:dark){.join-form .join-kind label,.join-form .join-app,.join-form .field input[type=email]{background:#16171b;border-color:rgba(255,255,255,.14);color:var(--ink)}}
.join-check{min-height:65px}
a.button.join-done{display:block;text-align:center;text-decoration:none}

@media(max-width:720px){.brand-mark{width:30px;height:30px}}
.hero-logo,.panel-logo,.about-logo{height:auto}

/* Public pages (home and About): header, landing sections, story, footer. */
.site-links{display:flex;align-items:center;gap:4px 18px;flex-wrap:wrap}
.site-links a{font-weight:700;font-size:15px;color:var(--ink);text-decoration:none;padding:8px 2px}
.site-links a:hover,.site-links a[aria-current=page]{color:var(--blue)}
.site-links .nav-cta{padding:9px 16px;border-radius:12px;color:#fff;background:linear-gradient(100deg,var(--blue),#a855f7 58%,var(--pink));box-shadow:0 8px 20px rgba(124,58,237,.22)}
.site-links .nav-cta:hover{color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 22px;border-radius:14px;font-weight:800;text-decoration:none;transition:transform .2s,box-shadow .2s}
.btn.primary{color:#fff;background:linear-gradient(100deg,var(--blue),#a855f7 58%,var(--pink));box-shadow:0 16px 36px rgba(124,58,237,.26)}
.btn.ghost{color:var(--ink);background:var(--card);border:1px solid var(--line)}
.btn:hover{transform:translateY(-2px)}
.landing{overflow:hidden}
.l-hero{position:relative;max-width:980px;margin:0 auto;padding:64px 22px 56px;text-align:center}
.l-hero .hero-logo{width:min(720px,88vw);margin:0 auto}
.l-hero h1{position:relative;z-index:2;font-size:clamp(34px,5.4vw,60px);letter-spacing:-1.9px;line-height:1.06;margin:18px 0 0}
.l-sub{position:relative;z-index:2;max-width:640px;margin:16px auto 0;color:var(--muted);font-size:clamp(17px,2vw,20px);line-height:1.55}
.l-actions{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:28px}
.l-note{position:relative;z-index:2;color:var(--muted);font-size:14px;margin:14px 0 0}
.l-points{position:relative;z-index:2;list-style:none;padding:0;margin:30px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;color:var(--muted);font-size:14px;font-weight:600}
.l-points li:before{content:"\2713";color:var(--blue);font-weight:900;margin-right:7px}
.l-section{max-width:1080px;margin:0 auto;padding:56px 22px;scroll-margin-top:80px}
.l-head{text-align:center;max-width:640px;margin:0 auto 32px}
.l-head h2,.story-teaser h2,.l-cta h2{font-size:clamp(28px,3.6vw,40px);letter-spacing:-1.1px;line-height:1.12;margin:8px 0 10px}
.l-head p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.55;margin:0}
.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.app-card{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:20px;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 30px rgba(53,69,110,.06)}
.app-card img{width:48px;height:48px;flex:none;border-radius:12px}
.app-card h3{font-size:17px;margin:2px 0 4px;letter-spacing:-.3px}
.app-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.steps li{padding:24px;border-radius:22px;background:var(--card);border:1px solid var(--line)}
.step-n{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#fff;font-weight:900;background:linear-gradient(135deg,var(--blue),var(--pink))}
.steps h3{font-size:19px;margin:14px 0 6px;letter-spacing:-.4px}
.steps p{margin:0;color:var(--muted);line-height:1.55}
.story-teaser{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:36px;align-items:center;padding:28px;border-radius:28px;background:linear-gradient(135deg,rgba(124,58,237,.08),rgba(236,72,153,.08));border:1px solid var(--line)}
.story-teaser img{width:100%;height:auto;display:block}
.story-teaser p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.6;margin:0 0 20px}
.l-cta{max-width:1036px;margin:0 auto 64px;padding:48px 22px;text-align:center;border-radius:28px;background:linear-gradient(120deg,var(--blue),#a855f7 55%,var(--pink));color:#fff}
.l-cta h2{color:#fff}
.l-cta p{margin:0;color:rgba(255,255,255,.88);font-size:17px}
.l-cta .btn.primary{background:#fff;color:#5b21b6;box-shadow:0 14px 30px rgba(40,10,80,.25)}
.l-cta .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.site-footer{border-top:1px solid var(--line);padding:28px 22px calc(28px + env(safe-area-inset-bottom))}
.site-footer-inner{max-width:1080px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px}
.site-footer .brand{font-size:18px}
.site-footer p{margin:0;color:var(--muted);font-size:14px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.site-footer nav a{color:var(--ink);font-weight:700;font-size:14px;text-decoration:none}
/* About: the story. */
.story{max-width:1080px;margin:0 auto;padding:56px 22px 24px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center}
.story-art{width:100%;height:auto;display:block}
.story-media{display:block}
.story-video{display:block;width:100%;height:auto;aspect-ratio:960/644;mix-blend-mode:multiply}
.story-text h1.story-title{font-weight:900;letter-spacing:-1.6px;background:linear-gradient(90deg,#7c3aed,#a855f7 45%,#ec4899);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 6px 18px rgba(168,85,247,.22))}
@media (prefers-color-scheme:dark){.story-video{mix-blend-mode:normal;background:#fff;border-radius:24px;box-shadow:0 20px 50px rgba(0,0,0,.35)}.story-text h1.story-title{background-image:linear-gradient(90deg,#a78bfa,#c084fc 45%,#f472b6)}}
.story-text h1{font-size:clamp(32px,4.4vw,48px);letter-spacing:-1.4px;line-height:1.1;margin:10px 0 12px}
.story-text p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.7;margin:0 0 14px}
.story-text .story-lead{color:var(--ink);font-size:20px;font-weight:700}
.story-text .story-welcome{color:var(--ink);font-weight:800;font-size:19px;margin-top:22px}
.story-text .story-sign{font-style:italic}
@media(max-width:860px){.app-grid{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr}.story,.story-teaser{grid-template-columns:1fr}.story-art,.story-media,.story-teaser img{max-width:480px;margin:0 auto}}
@media(max-width:560px){.app-grid{grid-template-columns:1fr}.site-links a:not(.nav-cta):not([href="/join"]){display:none}.l-hero{padding-top:36px}.l-section{padding:40px 18px}.l-cta{margin:0 16px 48px;padding:40px 20px}.story-teaser{padding:20px}}
@media (prefers-color-scheme:dark){.btn.ghost{background:#1c1d22;border-color:rgba(255,255,255,.14)}.app-card,.steps li{box-shadow:none}.l-cta .btn.primary{color:#4c1d95}}
@media(max-width:560px){.home-apps{grid-template-columns:1fr 1fr;gap:10px}.home-apps .app-card{flex-direction:column;gap:10px;padding:14px}.home-apps .app-card p{display:none}.home-apps .app-card h3{font-size:15px;margin:0}.home-apps .app-card img{width:40px;height:40px}}
.site-footer .brand{color:var(--ink)}.site-footer{text-align:left}
/* Signed in with no account yet, and joining with that confirmed address. */
.no-account-alt{margin:14px 0 0;text-align:center}
.no-account-alt .text-button{color:var(--muted);font-size:14px;font-weight:700}
.no-account-help{text-align:center;margin-top:18px}
.join-verified{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding:13px 14px;border-radius:13px;background:#f3edff;border:1px solid #e6dcfb;font-weight:700;overflow-wrap:anywhere}
.join-verified span{color:#7c3aed;font-weight:900}
.join-verified small{color:var(--muted);font-weight:600}
.join-other{display:block;width:100%;margin-top:16px;background:none;border:0;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}
@media (prefers-color-scheme:dark){.join-verified{background:#22183a;border-color:rgba(196,165,255,.22)}.join-verified span{color:#c4a5ff}}
.join-form .field-label{display:block;font-weight:800;font-size:13px;margin-bottom:9px}

/* App feature tours (tap an app card). */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
button.app-card{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%;transition:transform .2s,box-shadow .2s,border-color .2s}
button.app-card:hover{transform:translateY(-3px);border-color:#c4b5fd;box-shadow:0 18px 40px rgba(124,58,237,.14)}
.tour-hint{display:inline-block;margin-top:8px;font-size:13px;font-weight:800;background:linear-gradient(90deg,#7c3aed,#ec4899);background-clip:text;-webkit-background-clip:text;color:transparent}
.tour-open{overflow:hidden}
.tour{width:min(520px,calc(100vw - 24px));max-height:min(680px,calc(100dvh - 24px));padding:0;border:0;border-radius:28px;background:var(--card-solid,#fff);color:var(--ink);box-shadow:0 30px 80px rgba(40,10,80,.35);overflow:hidden}
.tour[open]{display:flex;flex-direction:column}
.tour::backdrop{background:rgba(20,10,40,.55);backdrop-filter:blur(4px)}
.tour-head{position:relative;padding:22px 22px 6px;text-align:center}
.tour-logo{width:min(260px,70%);height:auto}
.tour-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(124,58,237,.1);color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.tour-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;outline:none;overscroll-behavior-x:contain}
.tour-track::-webkit-scrollbar{display:none}
.tour-slide{flex:0 0 100%;scroll-snap-align:center;padding:14px 32px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}
.tour-emoji{display:grid;place-items:center;width:96px;height:96px;border-radius:28px;font-size:48px;background:linear-gradient(135deg,rgba(124,58,237,.14),rgba(236,72,153,.14));margin-bottom:18px}
.tour-slide h3{font-size:24px;letter-spacing:-.6px;line-height:1.2;margin:0 0 10px}
.tour-slide p{margin:0;color:var(--muted);font-size:16px;line-height:1.6;max-width:380px}
.tour-cta{margin-top:20px}
.tour-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px 20px}
.tour-nav{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
.tour-nav:disabled{opacity:.3;cursor:default}
.tour-dots{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.tour-dot{width:9px;height:9px;padding:0;border-radius:99px;border:0;background:rgba(124,58,237,.25);cursor:pointer;transition:width .2s,background .2s}
.tour-dot[aria-current=true]{width:24px;background:linear-gradient(90deg,#7c3aed,#ec4899)}
@media (prefers-color-scheme:dark){.tour{background:#1c1d22}.tour-close{background:rgba(196,165,255,.14)}button.app-card:hover{border-color:rgba(196,165,255,.35)}}
@media(max-width:560px){.tour-slide{padding:10px 22px;min-height:280px}.tour-slide h3{font-size:21px}.home-apps .tour-hint{display:none}}
/* Add apps: the ones just for you, each with Remove. */
.join-notice{margin:0 0 14px;padding:12px 14px;border-radius:13px;background:#f3edff;color:#4c1d95;font-size:14px}
.join-mine{margin-top:26px}
.join-mine h2{font-size:17px;margin:0 0 4px}
.join-mine ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.join-mine li{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(62,75,112,.17);border-radius:13px;background:#fff}
.join-mine li b{flex:1;min-width:0;overflow-wrap:anywhere}
.join-mine img{width:32px;height:32px;flex:none}
.join-mine .text-button{margin:0;color:#b42323}
@media (prefers-color-scheme:dark){.join-notice{background:rgba(124,58,237,.18);color:#e4d7ff}.join-mine li{background:#1c1d22;border-color:rgba(255,255,255,.14)}.join-mine .text-button{color:#ff8a8a}}
/* Apps the admin has marked coming soon: shown, greyed, and can't be chosen. */
.soon-tag{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:#f3edff;color:#6d28d9;font-size:11px;font-weight:800;letter-spacing:0;vertical-align:2px;white-space:nowrap}
.join-app small.soon-tag{margin:0;align-self:flex-start;font-size:11px;color:#6d28d9}
.app-card.soon img,.join-app.soon img{filter:grayscale(1);opacity:.55}
.app-card.soon h3,.app-card.soon p,.join-app.soon b{opacity:.6}
.join-form .join-app.soon{cursor:default;background:#f8f7fb}
.tour-soon{margin:0;font-weight:700;color:#6d28d9}
@media (prefers-color-scheme:dark){.soon-tag,.join-app small.soon-tag{background:#2a1650;color:#c4a5ff}.join-form .join-app.soon{background:#17181d}.tour-soon{color:#c4a5ff}}
/* Signed in: the User / Admin switch, shown only to admins. */
.hub-mode{display:inline-flex;gap:2px;padding:3px;margin:0 auto 0 14px;border-radius:12px;background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.16)}
.hub-mode a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9px;text-decoration:none;font-size:13px;font-weight:800;color:#5b4b80}
.hub-mode a[aria-current=page]{color:#fff;background:linear-gradient(100deg,var(--blue),#a855f7 58%,var(--pink));box-shadow:0 4px 12px rgba(124,58,237,.25)}
.hub-mode .hub-count{margin-left:0}
@media (prefers-color-scheme:dark){.hub-mode{background:rgba(196,165,255,.08);border-color:rgba(196,165,255,.18)}.hub-mode a{color:#c9b8f5}}
/* iPhone zooms the page when you tap a box with text under 16px (and the app's web views keep that zoom). */
@media (pointer:coarse){input,select,textarea{font-size:max(16px,1em) !important}}
/* The privacy policy (/privacy) and the delete-account page. */
.policy-wrap{max-width:760px;margin:0 auto;padding:48px 22px 72px}.policy h1{font-size:clamp(28px,4.4vw,40px);letter-spacing:-1.2px;margin:6px 0 4px}.policy-updated{color:var(--muted);font-size:13px;margin:0 0 22px}.policy h2{font-size:20px;letter-spacing:-.4px;margin:30px 0 8px}.policy p,.policy li{line-height:1.6;color:#3b3f4a}.policy ul{padding-left:20px}.policy li{margin:6px 0}.policy a{color:#7c3aed}
.delete-steps{margin:0 0 18px;padding-left:20px;line-height:1.55;color:var(--muted)}.delete-steps li{margin:6px 0}
@media (prefers-color-scheme:dark){.policy p,.policy li{color:#c9cbd3}.policy a{color:#c4b5fd}}
/* Passkeys on the sign-in page. */
.passkey-box{margin:0 0 6px}.passkey-box .button{margin-top:0}.passkey-box .or{text-align:center;color:var(--muted);font-size:13px;margin:16px 0 0}.passkey-box .error{margin:12px 0 0}

/* Roamulus (/roamulus): the animated logo, trip sizes, solo or together, features. */
.ro-hero .ro-logo{position:relative;z-index:2;display:block;width:min(560px,86vw);height:auto;aspect-ratio:380/140;margin:0 auto 6px}
.ro-hero .eyebrow{position:relative;z-index:2;margin:0}
.ro-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ro-card{padding:24px;border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 30px rgba(53,69,110,.06)}
.ro-emoji{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;font-size:24px;background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(236,72,153,.12))}
.ro-card h3,.ro-who-col h3{font-size:19px;margin:14px 0 6px;letter-spacing:-.4px}
.ro-card p,.ro-who-col p{margin:0;color:var(--muted);line-height:1.55}
.ro-trips .ro-card{background:linear-gradient(160deg,var(--card),rgba(168,85,247,.07))}
.ro-who{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:stretch;padding:28px;border-radius:28px;background:linear-gradient(135deg,rgba(124,58,237,.08),rgba(236,72,153,.08));border:1px solid var(--line)}
.ro-who-col{padding:22px;border-radius:20px;background:var(--card);border:1px solid var(--line)}
.ro-who-text{order:-1;align-self:center;padding:4px 10px}
.ro-who-text h2{font-size:clamp(28px,3.6vw,40px);letter-spacing:-1.1px;line-height:1.12;margin:8px 0 10px}
.ro-who-text p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.6;margin:0}
.tour-cta{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}

@media(max-width:860px){.ro-grid{grid-template-columns:1fr 1fr}.ro-who{grid-template-columns:1fr 1fr}.ro-who-text{grid-column:1/-1}}
@media(max-width:560px){.ro-grid,.ro-who{grid-template-columns:1fr}.ro-who{padding:18px}}
.sign-in-for{display:flex;align-items:center;justify-content:center;gap:10px;margin:-6px 0 14px}.sign-in-for img{width:40px;height:40px;border-radius:11px}.sign-in-for span{display:flex;flex-direction:column;line-height:1.2;text-align:left}.sign-in-for b{font-size:16px}.sign-in-for small{font-size:12px;color:var(--muted)}

/* Keep sign-in focused on the app and the next action. */
.sign-in-wrap{max-width:520px;padding-top:48px}
.sign-in-wrap .panel h1{font-size:30px;letter-spacing:-.8px}
.sign-in-wrap .lead{margin-bottom:22px}
.sign-in-wrap .sign-in-for{margin:0 0 16px}
.sign-in-note{text-align:center;color:var(--muted);font-size:13px;line-height:1.5;margin:20px 0 0}
.sign-in-wrap .button{background:#6940dc;color:#fff;min-height:48px}
.sign-in-wrap .field input{min-height:48px;font-size:16px}
@media(max-width:520px){.sign-in-wrap{padding:24px 16px}.sign-in-wrap .panel{padding:24px 20px}}

.sign-in-wrap .panel-logo[src*="bfcd-apps-logo"]{display:none}
