/* Planet SEF: a continuous product stage, with the Planet brand palette. */
:root { --planet-ink:#15132f; --planet-muted:#586579; --planet-indigo:#5946e8; }
body { -webkit-font-smoothing:antialiased; }
.wrap { width:min(1240px,calc(100% - 64px)); }
.button { min-height:46px; transition:transform .2s,box-shadow .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary:hover { box-shadow:0 12px 26px #5946e832; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #0891b2; outline-offset:5px; }
.sef-hero { position:relative; padding:164px 0 40px; background:radial-gradient(ellipse at 79% 32%,#eeebff 0,transparent 47%),radial-gradient(ellipse at 97% 12%,#e9fcfa 0,transparent 44%),linear-gradient(#f9faff,#fff 90%); }
.sef-hero .wrap { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:16px 0; }
.hero-copy { position:relative; z-index:2; padding-bottom:0; }
@keyframes heroCopyIn { from { opacity:0; transform:translate3d(0,14px,0); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:no-preference) {
  html:not(.pa-i18n-wait) .sef-hero .hero-copy > * { animation:heroCopyIn 560ms cubic-bezier(.2,.7,.2,1) both; }
  html:not(.pa-i18n-wait) .sef-hero .hero-copy > h1 { animation-delay:70ms; }
  html:not(.pa-i18n-wait) .sef-hero .hero-copy > .lead { animation-delay:150ms; }
  html:not(.pa-i18n-wait) .sef-hero .hero-copy > .hero-actions { animation-delay:220ms; }
  html:not(.pa-i18n-wait) .sef-hero .hero-copy > .quick-downloads { animation-delay:280ms; }
}
.sef-lockup { gap:12px; margin-bottom:28px; }
.sef-lockup img { width:44px; height:44px; }
.sef-lockup strong { font-size:18px; }
.sef-lockup small { margin-top:4px; font-size:12px; letter-spacing:.06em; }
.sef-hero h1 { max-width:650px; font-size:clamp(42px,4.45vw,66px); line-height:1.08; letter-spacing:-.055em; margin-bottom:24px; }
.sef-hero h1 em { color:#5946e8; background:linear-gradient(110deg,#6840df 12%,#4d55d9 55%,#138caa); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.sef-hero .lead { max-width:47ch; font-size:17px; line-height:1.75; margin-bottom:28px; padding-right:26px; }
.sef-hero .hero-actions { gap:12px; }
.sef-hero .button { min-height:50px; padding:0 22px; }
.os-pills { margin-top:24px; gap:18px; }
.os-pill { border:0; padding:0; background:transparent; font-size:14px; font-weight:500; }
.os-pill svg { width:17px; height:17px; }
.hero-photo { width:122%; margin-left:-5%; z-index:1; }
.hero-photo::before { inset:28% 8% 0 12%; background:radial-gradient(ellipse,#7970da25,transparent 68%); filter:blur(25px); }
.hero-photo img { width:100%; aspect-ratio:16/9; object-fit:contain; -webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 87%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 78%,transparent); -webkit-mask-composite:source-in; mask-image:linear-gradient(to right,transparent,#000 12%,#000 87%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 78%,transparent); mask-composite:intersect; }
.hero-photo.has-cutout img { aspect-ratio:auto; -webkit-mask-image:none; mask-image:none; }
.hero-strip { margin-top:12px; padding:22px 0 0; gap:26px 30px; border-color:#e6e8f0; }
.strip-item { gap:12px; }
.strip-item svg { width:21px; height:21px; margin-top:3px; }
.strip-item strong { font-size:14px; line-height:1.4; font-weight:650; }
.strip-item span { font-size:12px; color:#64748b; line-height:1.6; margin-top:4px; }
.jump { justify-content:center; padding:20px 0; border-bottom:1px solid #eef0f5; gap:8px; }
.jump a { font-size:14px; font-weight:500; border-color:transparent; background:transparent; padding:9px 16px; }
.jump a:hover { background:#f0edff; border-color:transparent; }
.kicker { font-size:12px; letter-spacing:.1em; padding:0; background:none; color:#6453c8; }
.center-head { padding-top:96px; padding-bottom:24px; }
.band h2,.wide h2,.center-head h2,.phone-copy h2,.trio-head h2 { font-size:clamp(30px,3.15vw,44px); line-height:1.16; letter-spacing:-.045em; margin-top:15px; margin-bottom:18px; }
.center-head p,.wide>p { max-width:64ch; line-height:1.75; }
.modes { gap:24px; padding:12px 0 76px; }
.mode { min-height:260px; padding:36px; border:1px solid #e6e8f1; background:#f8f9fc; border-radius:22px; }
.mode.is-indigo { background:radial-gradient(ellipse at 100% 0,#6755d6,transparent 70%),#28204d; border-color:transparent; }
.mode .num { font-size:14px; margin-bottom:32px; }
.mode h3 { font-size:28px; }
.mode p { color:#586579; }
.wide { padding-bottom:48px; }
.flow-grid { gap:0; border-block:1px solid #e4e6f0; }
.flow-step { padding:30px 25px; border:0; border-radius:0; box-shadow:none; background:transparent; }
.flow-step+.flow-step { border-left:1px solid #e4e6f0; }
.flow-step .n { width:36px; height:36px; border-radius:50%; margin-bottom:20px; font-size:14px; }
.flow-step h3 { font-size:18px; }
.flow-step p { font-size:16px; line-height:1.65; }
.showcase { padding:76px 0 40px; }
.feat-points { gap:30px; margin:8px 0 36px; }
.feat-points li { border:0; background:none; padding:0 20px; text-align:center; }
.feat-points b { font-size:16px; }
.feat-points span { font-size:14px; line-height:1.6; }
.ui-tablist { gap:6px; margin-bottom:24px; }
.ui-tablist button { min-height:44px; padding:0 22px; font-size:14px; border-color:transparent; background:#f3f4f8; }
.ui-tablist button[aria-selected=true] { background:#28204d; box-shadow:0 5px 12px #28204d18; border-color:#28204d; }
.ui-frame { display:grid; border-radius:26px; padding:30px; background:linear-gradient(130deg,#eeebfb,#f5f9fc 60%,#ecf7f7); border:1px solid #e8e6f3; }
.ui-frame > .ui-shot { grid-area:1 / 1; display:block; margin:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .32s ease, visibility 0s linear .32s; }
.ui-frame > .ui-shot.is-on { opacity:1; visibility:visible; pointer-events:auto; z-index:1; transition:opacity .32s ease, visibility 0s; }
.ui-shot img { max-width:1024px; margin-inline:auto; box-shadow:0 18px 40px #1e1b4b20; border-radius:10px; }
.ui-shot img[src$="/desktop.webp"] { max-width:1536px; }
.ui-shot img[src$="-hd.png"] { max-width:1919px; }
.ui-shot figcaption { font-size:14px; margin-top:20px; }
.phone-feat { margin-top:60px; padding:84px 0; background:linear-gradient(120deg,#f4f4fc,#f5fafb); }
.phone-split { gap:48px; }
.phone-feat.wrap { padding-inline:48px; border-radius:26px; }
.phone-copy { min-width:0; }
.phone-copy h2 { max-width:19ch; text-wrap:balance; }
.phone-shot.is-side { transform:translateY(24px); }
.phone-copy li { font-size:16px; padding-block:10px; }
.phone-copy li::before { width:5px; height:5px; top:20px; }
.trio-head { padding-top:72px; }
.trio { gap:24px; }
.trio article { padding:32px; border:1px solid #e7e8f0; background:#fafbfe; border-radius:22px; display:flex; flex-direction:column; align-items:flex-start; }
.trio p { font-size:16px; }
.trio .plat-note { font-size:14px; margin-top:16px; }
.dl-row { margin-top:auto; padding-top:22px; }
.faq { max-width:860px; margin:auto; }
.faq summary { padding:24px 0; font-weight:600; }
.faq details p { font-size:16px; padding-right:32px; }
.related { gap:20px; }
.related a { background:none; border:1px solid #e7e8f0; border-radius:16px; padding:22px; }
.related a span { font-size:14px; }
.cta { width:min(1320px,calc(100% - 48px)); margin:64px auto 24px; border-radius:28px; padding:72px 32px; background:radial-gradient(ellipse at 95% 10%,#6756d9,transparent 65%),#28204d; }
.cta h2 { max-width:760px; margin:0 auto 22px; font-size:clamp(30px,3.2vw,46px); letter-spacing:-.04em; line-height:1.2; }
.cta p { max-width:620px; margin:0 auto 28px; font-size:16px; line-height:1.7; }
@media(min-width:981px) and (max-width:1160px) { .sef-hero h1 { font-size:48px; } .hero-photo { width:116%; } .sef-hero .lead { font-size:16px; } .sef-hero .button { padding-inline:16px; } }
@media(max-width:980px) { .sef-hero { padding-top:136px; } .sef-hero .wrap { grid-template-columns:1fr; gap:0; } .hero-copy { max-width:680px; margin:auto; text-align:center; } .sef-lockup,.hero-actions,.os-pills { justify-content:center; } .sef-hero h1 { max-width:680px; font-size:clamp(42px,6.5vw,64px); } .sef-hero .lead { margin-inline:auto; padding:0; } .hero-photo { width:100%; max-width:800px; margin:30px auto 12px; } .hero-strip { grid-template-columns:repeat(2,1fr); gap:26px; } .modes { grid-template-columns:1fr 1fr; } .mode { padding:26px; } .flow-grid { grid-template-columns:1fr 1fr; } .flow-step:nth-child(3) { border-left:0; } .flow-step:nth-child(n+3) { border-top:1px solid #e4e6f0; } .feat-points { grid-template-columns:repeat(3,1fr); gap:12px; } .phone-split { gap:40px; } .phone-copy { max-width:640px; margin:auto; } .trio { grid-template-columns:1fr; } .phone-feat { padding-bottom:72px; } }
@media(max-width:720px) { .wrap { width:calc(100% - 40px); } .sef-hero { padding-top:120px; padding-bottom:26px; } .sef-lockup { margin-bottom:24px; text-align:left; } .sef-hero h1 { font-size:clamp(38px,8vw,52px); letter-spacing:-.05em; } .sef-hero .lead { font-size:16px; line-height:1.7; } .sef-hero .hero-actions { flex-direction:column; align-items:stretch; max-width:340px; margin:auto; } .hero-photo { width:calc(100% + 32px); max-width:none; margin-left:-16px; margin-top:24px; } .hero-strip { gap:24px 18px; margin-top:4px; padding-top:28px; } .strip-item { gap:8px; } .strip-item svg { width:18px; height:18px; } .strip-item strong { font-size:14px; } .strip-item span { font-size:12px; } .jump { flex-wrap:nowrap; overflow:auto; justify-content:flex-start; } .jump a { flex:none; padding:8px 12px; } .center-head { padding-top:64px; } .modes { grid-template-columns:1fr; gap:16px; padding-bottom:56px; } .mode .num { margin-bottom:20px; } .mode h3 { font-size:26px; } .flow-grid { grid-template-columns:1fr; } .flow-step+.flow-step { border-left:0; border-top:1px solid #e4e6f0; } .flow-step { padding:24px 0; } .flow-step .n { float:left; margin-right:16px; } .flow-step p { clear:both; } .showcase { padding-top:50px; } .feat-points { grid-template-columns:1fr; gap:18px; } .feat-points li { text-align:left; padding:0; } .ui-frame { padding:10px; border-radius:16px; } .ui-shot figcaption { margin:14px 6px 6px; } .ui-tablist { gap:6px; } .ui-tablist button { padding:0 14px; } .phone-feat { padding-top:56px; margin-top:20px; } .phone-split { gap:36px; } .phones { gap:14px; } .phone-shot img { border-radius:20px; } .cta { width:calc(100% - 24px); padding:48px 24px; border-radius:24px; } .trio-head { padding-top:48px; } }
@media(max-width:380px) { .brand { max-width:140px; line-height:1.15; } .nav-actions>.button-primary { padding-inline:8px; } .hero-strip { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

/* Install the app: clear platform choices, real availability and next steps. */
.hero-script { display:block; top:-22px; right:12%; max-width:90%; font-size:clamp(24px,2.2vw,31px); line-height:1.15; transform:rotate(-5deg); color:#6d41bc; }
.quick-downloads { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:25px; }
.quick-download { display:inline-flex; align-items:center; gap:8px; min-height:40px; font-size:14px; font-weight:650; color:#5144ad; border-bottom:1px solid #d8d1ee; }
.quick-download svg { width:18px; height:18px; flex:none; }
.quick-download svg:last-child { width:15px; }
.quick-download.is-soon { color:#606878; border-bottom-color:#dde1e9; }
.download-lead { max-width:62ch; font-size:17px; line-height:1.7; color:#64748b; }
.download-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; padding-top:28px; }
.download-card { min-width:0; padding:36px; border:1px solid #dedbec; border-radius:26px; background:linear-gradient(150deg,#f3f0ff,#fcfcff 55%); }
.download-card.android-card { background:linear-gradient(150deg,#eff9f7,#fcfcff 55%); border-color:#dcebe8; }
.download-card-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; }
.download-os { width:58px; height:58px; display:grid; place-items:center; border-radius:16px; background:white; box-shadow:0 5px 20px #42318708; }
.download-os svg { width:30px; height:30px; }
.release-label { color:#4d4780; background:#e8e3f9; font-size:12px; font-weight:600; padding:8px 12px; border-radius:30px; }
.release-label.is-soon { color:#4a6660; background:#e3eeeb; }
.download-card h3 { font-size:17px; font-weight:550; margin:0; color:#6b6882; }
.download-card h3 span { display:block; margin-top:7px; color:#1c1835; font-size:34px; font-weight:750; letter-spacing:-.04em; }
.download-description { color:#5e6a7d; font-size:16px; line-height:1.7; margin:18px 0 24px; min-height:55px; }
.download-specs { display:flex; flex-direction:column; gap:6px; font-size:14px; color:#5d667a; margin-bottom:24px; }
.download-button { width:100%; min-height:52px; border-radius:13px; font-size:15px; gap:10px; }
.download-button:disabled { color:#62756f; background:#e3eee9; border-color:#d2e4dc; cursor:default; transform:none; box-shadow:none; opacity:1; }
.install-steps { list-style:none; counter-reset:install; display:grid; gap:13px; padding:26px 0 22px; margin:0; }
.install-steps li { display:flex; gap:11px; align-items:baseline; counter-increment:install; font-size:14px; color:#4c5269; line-height:1.5; }
.install-steps li::before { content:counter(install); display:inline-grid; place-items:center; width:22px; height:22px; flex:none; border:1px solid #d9d8e8; border-radius:50%; font-size:12px; color:#6d6689; }
.install-note { font-size:12px; line-height:1.65; color:#666f7d; border-top:1px solid #e2e4eb; padding-top:17px; margin:0; }
.install-note.secondary-note { border:0; padding-top:7px; }
.ecosystem-bar { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:30px 36px; margin-top:24px; border-radius:22px; color:#eeeafd; background:radial-gradient(ellipse at 100% 10%,#514084,transparent 65%),#27213e; }
.ecosystem-bar h3 { font-size:23px; font-weight:650; margin:0 0 19px; letter-spacing:-.025em; }
.ecosystem-products { display:flex; flex-wrap:wrap; gap:12px 25px; font-size:15px; font-weight:550; }
.ecosystem-products span+span { border-left:1px solid #ffffff30; padding-left:25px; }
.ecosystem-footnote { font-size:11px; line-height:1.6; color:#beb6d4; margin:19px 0 0; max-width:75ch; }
.ecosystem-bar img { flex:none; filter:drop-shadow(0 5px 16px #a298df30); }

/* Real screenshots remain intact inside a restrained Android device frame. */
.phones { gap:30px; align-items:flex-start; padding:24px 9px 28px; perspective:1400px; }
.phone-shot,.phone-shot.is-side { width:min(254px,46%); }
.phone-shot { transform:rotate(-2deg); }
.phone-shot.is-side { transform:rotate(2deg) translateY(14px); }
.android-device { position:relative; padding:24px 7px 9px; border:2px solid #606579; border-radius:35px; background:linear-gradient(110deg,#2d3241,#12141d 35%,#333746); box-shadow:0 0 0 1px #151724,0 22px 34px -12px #18233465,inset 0 0 0 2px #ffffff12; }
.device-camera { position:absolute; top:8px; left:calc(50% - 4px); width:8px; height:8px; border-radius:50%; background:#090b15; box-shadow:inset 0 0 0 2px #262b3c; }
.device-screen { position:relative; aspect-ratio:9 / 20; border-radius:14px 14px 26px 26px; overflow:hidden; background:#101729; }
.phone-shot .device-screen img { position:absolute; inset:0; border-radius:0; box-shadow:none; display:block; width:100%; height:100%; object-fit:contain; background:transparent; }
.phone-shot figcaption { text-align:center; color:#696c83; font-size:12px; margin-top:17px; font-weight:500; }
.phone-download-link { display:inline-flex; gap:10px; font-size:14px; font-weight:650; color:#5848b9; margin-top:22px; padding-bottom:5px; border-bottom:1px solid #c6bfea; }

/* A brief signal travels through the four steps when they enter view. */
.flow-grid { position:relative; border:1px solid #e7e3f1; border-radius:24px; background:linear-gradient(120deg,#faf9ff,#f9fcfc); overflow:hidden; }
.flow-step { position:relative; padding:32px 25px 28px; }
.flow-step+.flow-step { border:0; }
.flow-step .n { position:relative; z-index:1; width:42px; height:42px; background:#ede9fc; border:1px solid #ded5f8; }
.flow-step:not(:last-child)::after { content:''; position:absolute; top:53px; left:68px; right:-25px; height:1px; background:#dad5ec; }
.flow-step p { font-size:15px; }
.flow-grid.is-playing .flow-step .n { animation:step-signal .9s ease-in-out both; }
.flow-grid.is-playing .flow-step:nth-child(2) .n { animation-delay:.85s; }
.flow-grid.is-playing .flow-step:nth-child(3) .n { animation-delay:1.7s; }
.flow-grid.is-playing .flow-step:nth-child(4) .n { animation-delay:2.55s; }
.flow-grid.is-playing .flow-step:not(:last-child)::after { background:linear-gradient(90deg,#7959d8,#32a99e,#dad5ec); transform-origin:left; animation:step-link .85s ease-out both; animation-delay:.4s; }
.flow-grid.is-playing .flow-step:nth-child(2)::after { animation-delay:1.25s; }
.flow-grid.is-playing .flow-step:nth-child(3)::after { animation-delay:2.1s; }
@keyframes step-signal { 0% { box-shadow:0 0 0 0 #7959d800; } 55% { background:#6950ca; color:#fff; box-shadow:0 0 0 8px #7959d815; } 100% { background:#e7f2ef; border-color:#d0e7df; color:#237564; } }
@keyframes step-link { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.faq details { overflow:hidden; }
.faq summary { margin:0; }
.faq summary::after,.faq details[open] summary::after { content:'+'; transition:transform .28s ease; font-weight:500; font-size:26px; }
.faq details[data-expanded=true] summary::after { transform:rotate(45deg); }
.faq details[data-expanded=true] summary { color:#5845b3; }
.faq-body { display:flow-root; }
@media(max-width:980px) { .quick-downloads { justify-content:center; } .hero-script { display:block; top:-8px; right:9%; font-size:28px; } .flow-step:nth-child(2)::after { display:none; } .flow-step:nth-child(n+3) { border-top:1px solid #e4e6f0; } .phone-shot,.phone-shot.is-side { width:min(250px,43%); } .download-card { padding:28px; } }
@media(max-width:720px) { .hero-script { display:block; top:-8px; right:6%; font-size:22px; } .quick-downloads { flex-direction:column; align-items:center; gap:4px; } .navbar .nav-download { font-size:12px; padding:0 11px; min-height:38px; } .download-grid { grid-template-columns:1fr; gap:18px; padding-top:18px; } .download-card { padding:26px; } .download-description { min-height:0; } .ecosystem-bar { padding:26px; gap:15px; align-items:flex-start; } .ecosystem-bar img { width:42px; height:42px; } .ecosystem-products { flex-direction:column; gap:12px; font-size:14px; } .ecosystem-products span+span { border:0; padding:0; } .ecosystem-bar h3 { font-size:22px; } .ecosystem-footnote { font-size:11px; } .phones { gap:15px; padding:20px 5px 30px; } .phone-shot,.phone-shot.is-side { width:46%; } .android-device { padding:19px 4px 6px; border-radius:24px; } .device-camera { top:6px; width:6px; height:6px; } .device-screen { border-radius:10px 10px 18px 18px; } .phone-shot figcaption { font-size:12px; margin-top:12px; } .flow-step { padding:24px; } .flow-step:not(:last-child)::after { display:none; } .flow-step .n { float:none; margin-right:0; margin-bottom:16px; } .flow-step p { clear:none; } .flow-step:nth-child(n+2) { border-top:1px solid #e4e6f0; } }
@media(prefers-reduced-motion:reduce) { .flow-grid.is-playing .flow-step .n,.flow-grid.is-playing .flow-step::after { animation:none!important; } .faq summary::after { transition:none; } }
@media(max-width:980px) { .phone-feat.wrap { padding-inline:36px; } }
@media(max-width:720px) { .phone-feat.wrap { padding-inline:24px; border-radius:20px; } }
