/* Basportal (D-102): the grid of products like a phone's home screen; light and dark by the device */
:root{color-scheme:light dark;--bg:#f3f3fa;--card:#fff;--ink:#15142b;--muted:#5d5c78;--line:#e3e3f0;--accent:#5b4bf0;--grad:linear-gradient(135deg,#6c4cf1,#22b6d8);
  --live:#127a4a;--live-bg:#dff5ea;--beta:#8a4e06;--beta-bg:#fff0da;--soon:#4b4a66;--soon-bg:#ececf6;--warn:#fff0da;--warn-ink:#8a4e06}
@media (prefers-color-scheme:dark){:root{--bg:#11101e;--card:#1c1b2f;--ink:#eeedf8;--muted:#a7a4c3;--line:#302e4a;--accent:#a395ff;
  --live:#6fe0a6;--live-bg:#173426;--beta:#f1b45b;--beta-bg:#362813;--soon:#c9c7e0;--soon-bg:#2a2942;--warn:#362813;--warn-ink:#f1b45b}}
*{box-sizing:border-box}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent)}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.band{background:var(--warn);color:var(--warn-ink);font-size:14px;padding:8px 16px;text-align:center}
header{display:flex;align-items:center;gap:12px;padding:16px 0;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;color:var(--ink);text-decoration:none}
header nav{display:flex;gap:14px;margin-inline-start:auto;align-items:center;flex-wrap:wrap}
.langs{display:flex;gap:10px;font-size:14px}.langs a{color:var(--muted);text-decoration:none;padding:6px 2px}.langs a[aria-current]{color:var(--ink);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border-radius:14px;background:var(--grad);color:#fff!important;text-decoration:none;font-weight:600;border:0;font:inherit;font-weight:600;cursor:pointer}
.btn.sm{min-height:40px;padding:8px 16px}
.btn.ghost{background:var(--card);color:var(--ink)!important;border:1px solid var(--line)}
.hero{padding:32px 0 16px;text-align:center}
.hero h1{font-size:clamp(28px,5vw,44px);line-height:1.12;margin:0 0 12px}
.hero p{font-size:18px;color:var(--muted);max-width:640px;margin:0 auto 20px}
.search input{width:100%;max-width:520px;padding:14px 18px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:inherit;font:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:24px 0 40px}
.tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 10px 16px;border-radius:22px;background:var(--card);border:1px solid var(--line);
  color:var(--ink);text-decoration:none;text-align:center;transition:transform .15s ease,box-shadow .15s ease}
.tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(40,30,120,.12)}
.tile img{width:88px;height:88px;border-radius:22px}
.tile b{font-size:18px;margin-top:6px}.tile .muted{font-size:14px;line-height:1.3}
@media (max-width:420px){.tiles{grid-template-columns:repeat(2,1fr)}.tile img{width:72px;height:72px}}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;vertical-align:middle;margin-top:4px}
.badge.live{color:var(--live);background:var(--live-bg)}.badge.beta{color:var(--beta);background:var(--beta-bg)}.badge.soon{color:var(--soon);background:var(--soon-bg)}
h1 .badge{font-size:14px;margin-inline-start:8px}
.muted{color:var(--muted)}.small{font-size:14px}
.phero{display:flex;gap:24px;align-items:flex-start;margin:8px 0 24px;flex-wrap:wrap}
.phero img{width:112px;height:112px;border-radius:28px;flex:none}
.phero>div{flex:1;min-width:260px}.phero h1{margin:0 0 8px;font-size:clamp(28px,4vw,40px)}.lead{font-size:19px;margin:0 0 8px}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 8px;align-items:center}
.pill{display:inline-block;padding:10px 16px;border-radius:14px;background:var(--soon-bg);color:var(--soon);font-size:14px}
h2{font-size:24px;margin:36px 0 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.card{background:var(--card);border-radius:20px;padding:20px;border:1px solid var(--line)}.card h3{margin:0 0 6px;font-size:17px}.card p{margin:0;color:var(--muted)}
.wait{max-width:560px}.wait h2{margin-top:0}
.wait form{display:grid;gap:12px}.wait label{display:grid;gap:4px;font-size:14px;color:var(--muted)}
.wait input{padding:12px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit}
.note{margin:0;font-size:14px}.note.ok{color:var(--live)}.note.bad{color:#c62828}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 18px;margin:0 0 8px}
.faq summary{cursor:pointer;font-weight:600}.faq p{margin:8px 0 0;color:var(--muted)}
.doc{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;margin:8px 0 32px}.doc h1{margin-top:0;font-size:28px}.doc h2{font-size:19px;margin:24px 0 6px}
.draft{background:var(--warn);color:var(--warn-ink);padding:10px 14px;border-radius:12px}
footer{padding:24px 0 40px;color:var(--muted);font-size:14px;border-top:1px solid var(--line);margin-top:24px}footer a{color:var(--muted)}
@media (prefers-reduced-motion:reduce){.tile{transition:none}.tile:hover{transform:none}}
.shots{display:flex;gap:12px;overflow-x:auto;padding:4px 0 12px;scroll-snap-type:x mandatory}
.shots img{height:420px;width:auto;border-radius:18px;border:1px solid var(--line);scroll-snap-align:start;flex:none}
.shots img.wide{height:420px}
@media (max-width:600px){.shots img,.shots img.wide{height:340px}}
