body { min-height: 100vh; background: var(--bg2); overflow-x: hidden; }
.bg-glow { position: fixed; inset: -20% -10% auto; height: 70vh; background: radial-gradient(40% 50% at 20% 30%, rgba(192, 132, 252, .14), transparent 70%), radial-gradient(40% 50% at 80% 20%, rgba(99, 102, 241, .12), transparent 70%); pointer-events: none; z-index: 0; }
.w-top { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: 22px 24px 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.brand { display: flex; align-items: center; gap: 10px; font-size: 17px; }
.brand-lg { width: 34px; height: 34px; }
.free-pill { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--brand); background: var(--brand-soft); border: 1px solid var(--brand-line); padding: 6px 12px; border-radius: 999px; }
.free-pill [data-icon] { width: 15px; height: 15px; }

.frame { position: relative; z-index: 1; max-width: 1180px; margin: 22px auto 0; display: grid; grid-template-columns: 240px 1fr; background: var(--bg); border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 30px 80px -30px rgba(16, 24, 40, .25); min-height: min(720px, calc(100vh - 140px)); }
.steps { padding: 24px 16px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 4px; position: relative; }
.step { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; text-align: left; position: relative; }
.step:hover { background: var(--hover); }
.step.on { background: var(--bg3); }
.step .num { width: 30px; height: 30px; flex: none; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px; border: 1.5px solid var(--line2); color: var(--text2); background: var(--bg); }
.step.on .num { background: var(--brand); border-color: var(--brand); color: var(--brand-ink); box-shadow: 0 0 0 4px var(--brand-soft); }
.step.done .num { background: var(--brand-soft); border-color: var(--brand-line); color: var(--brand); font-size: 0; }
.step.done .num::after { content: "✓"; font-size: 14px; }
.step small { display: block; font-size: 12px; color: var(--text3); }
.step b { display: block; font-weight: 600; font-size: 14px; }
.step:not(:last-child)::after { content: ""; position: absolute; left: 26.5px; top: 44px; height: 14px; border-left: 1.5px solid var(--line2); }

.pane { padding: 34px 40px 28px; display: flex; flex-direction: column; min-width: 0; animation: paneIn .3s ease-out; }
@keyframes paneIn { from { opacity: 0; transform: translateY(6px); } }
.pane-foot { margin-top: auto; padding-top: 22px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.btn.big { min-height: 48px; padding: 10px 28px; font-size: 15px; }
.pane-h { margin: 0 0 6px; font-size: 26px; letter-spacing: -.02em; text-align: center; }
.pane-sub { margin: 0 0 24px; text-align: center; color: var(--text2); }

.hero { text-align: center; max-width: 640px; margin: 10px auto 0; position: relative; }
.hero-lg { position: relative; isolation: isolate; width: 84px; height: 84px; margin: 6px auto 18px; animation: float 5s ease-in-out infinite; }
.hero-lg::before { content: ""; position: absolute; inset: -22px; z-index: -1; border-radius: 50%; background: radial-gradient(closest-side, rgba(139, 92, 246, .30), rgba(139, 92, 246, 0)); }
@keyframes float { 50% { transform: translateY(-6px); } }
.hero h1 { margin: 0 0 12px; font-size: clamp(28px, 4vw, 42px); line-height: 1.12; letter-spacing: -.03em; }
.hero h1 em { font-style: normal; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lead { margin: 0 auto 22px; color: var(--text2); font-size: 17px; max-width: 540px; }
.ticks { list-style: none; padding: 0; margin: 0 auto 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ticks li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg2); font-weight: 600; font-size: 14px; }
.ticks [data-icon] { width: 18px; height: 18px; color: #6366f1; }
.orbit { display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; }
.orbit span { width: 54px; height: 54px; padding: 11px; border-radius: 16px; background: var(--bg); border: 1px solid var(--line); box-shadow: var(--shadow-1); animation: float 4s ease-in-out infinite; }
.orbit span:nth-child(2) { animation-delay: .4s; } .orbit span:nth-child(3) { animation-delay: .8s; } .orbit span:nth-child(4) { animation-delay: 1.2s; } .orbit span:nth-child(5) { animation-delay: 1.6s; } .orbit span:nth-child(6) { animation-delay: 2s; }

.feat { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 30px auto 0; max-width: 860px; text-align: left; }
.feat > div { border: 1px solid var(--line); border-radius: 16px; padding: 14px; background: var(--bg2); }
.feat [data-app], .feat [data-icon] { display: block; width: 26px; height: 26px; margin-bottom: 10px; color: var(--brand); }
.feat b { display: block; font-size: 14px; margin-bottom: 2px; }
.feat small { display: block; color: var(--text2); font-size: 12.5px; line-height: 1.4; }
.hero { max-width: 880px !important; }
.lead, .hero h1 { max-width: 640px; margin-left: auto; margin-right: auto; }
@media (max-width: 900px) { .feat { grid-template-columns: 1fr 1fr; } }
.tabs { align-self: center; display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--bg3); max-width: 100%; overflow-x: auto; }
.tabs button { height: 36px; padding: 0 16px; border-radius: 999px; font-weight: 500; color: var(--text2); white-space: nowrap; }
.tabs button.on { background: var(--bg); color: var(--text); box-shadow: var(--shadow-1); font-weight: 600; }
.tab-cap { text-align: center; color: var(--text2); margin: 14px 0 16px; min-height: 22px; }
.stage { height: clamp(380px, 52vh, 520px); max-width: 920px; width: 100%; margin: 0 auto; }

.pin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; max-width: 860px; margin: 0 auto; width: 100%; }
.pin-card { border: 1px solid var(--line); border-radius: 20px; padding: 22px; background: var(--bg2); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.pin-card ol { text-align: left; margin: 0; padding-left: 20px; display: grid; gap: 8px; color: var(--text2); }
.pin-card ol b { color: var(--text); }
.pin-card p { margin: 0; color: var(--text2); }
.pin-card .hint { font-size: 13px; color: var(--text3); }
.pin-demo { width: 100%; max-width: 340px; position: relative; height: 130px; }
.fake-bar { height: 42px; border-radius: 12px; background: var(--bg); border: 1px solid var(--line); display: flex; align-items: center; gap: 10px; padding: 0 12px; }
.fake-bar .addr { flex: 1; height: 22px; border-radius: 11px; background: var(--bg3); }
.fake-bar .puz { width: 22px; height: 22px; color: var(--text2); border-radius: 6px; outline: 2px solid var(--brand); outline-offset: 3px; animation: ring 2s infinite; }
.fake-bar .pinned { width: 22px; height: 22px; }
@keyframes ring { 50% { outline-color: transparent; } }
.fake-pop { position: absolute; right: 8px; top: 50px; width: 250px; border-radius: 12px; background: var(--bg); border: 1px solid var(--line); box-shadow: var(--shadow-2); padding: 8px; }
.fp-row { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 8px; background: var(--bg2); font-size: 13px; font-weight: 500; }
.fp-lg { width: 20px; height: 20px; }
.fp-row > span:nth-child(2) { flex: 1; text-align: left; }
.fp-pin { width: 18px; height: 18px; color: var(--brand); }
.kbd-big { display: flex; align-items: center; gap: 8px; margin: 18px 0 4px; font-size: 18px; color: var(--text3); }
.kbd-big kbd { font: 700 18px var(--font); min-width: 46px; height: 46px; padding: 0 12px; display: grid; place-items: center; border-radius: 12px; background: var(--bg); border: 1px solid var(--line2); border-bottom-width: 3px; color: var(--text); }

.apps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 900px; margin: 0 auto; width: 100%; }
.app-card { border: 1px solid var(--line); border-radius: 18px; padding: 14px; background: var(--bg); text-align: left; transition: transform .15s, box-shadow .15s, border-color .15s; }
.app-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); border-color: var(--brand-line); }
.app-win { display: grid; grid-template-columns: 1fr 34%; gap: 8px; height: 104px; border-radius: 10px; border: 1px solid var(--line); background: var(--bg2); padding: 10px; }
.app-win .lines { border-radius: 6px; background: repeating-linear-gradient(var(--bg3) 0 7px, transparent 7px 15px); }
.app-win.grid .lines { background: linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 25% 100%, linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 100% 16px; background-color: var(--bg); }
.app-win .side { border-radius: 6px; border: 1.5px solid var(--brand-line); background: var(--brand-soft); }
.app-win.web .lines { background: linear-gradient(135deg, #c7d2fe, #a5f3fc 55%, #bbf7d0); opacity: .7; }
.app-lbl { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-weight: 600; }
.app-lbl [data-app] { width: 22px; height: 22px; }
.legal { font-size: 13px; color: var(--text3); }
.legal a { color: var(--text2); }
.disclaimer { position: relative; z-index: 1; text-align: center; font-size: 12px; color: var(--text3); margin: 18px auto 26px; max-width: 720px; padding: 0 16px; }

@media (max-width: 900px) {
  .frame { grid-template-columns: 1fr; margin: 16px; border-radius: 22px; }
  .steps { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 10px; }
  .step { flex: none; } .step:not(:last-child)::after { display: none; }
  .pane { padding: 24px 18px; }
  .pin-grid, .apps { grid-template-columns: 1fr 1fr; }
  .mk-sp { min-width: 200px; }
}
@media (max-width: 560px) { .pin-grid, .apps { grid-template-columns: 1fr; } .stage { height: 420px; } .mk-sp { display: none; } }

/* motion */
.stage { transition: opacity .28s ease, transform .35s var(--ease); }
.stage.out { opacity: 0; transform: translateY(8px) scale(.99); }
.tabs button { transition: background-color .2s, color .2s, box-shadow .25s; }
.step, .step .num { transition: background-color .25s, border-color .25s, color .25s, box-shadow .3s; }
.feat > div { transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; animation: fadeUp .5s var(--ease) backwards; }
.feat > div:nth-child(2) { animation-delay: .06s; } .feat > div:nth-child(3) { animation-delay: .12s; } .feat > div:nth-child(4) { animation-delay: .18s; }
.feat > div:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); border-color: var(--brand-line); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } }
.ticks li { animation: fadeUp .45s var(--ease) backwards; }
.ticks li:nth-child(2) { animation-delay: .08s; } .ticks li:nth-child(3) { animation-delay: .16s; }
.app-card { animation: fadeUp .45s var(--ease) backwards; }
.app-card:nth-child(2) { animation-delay: .05s; } .app-card:nth-child(3) { animation-delay: .1s; } .app-card:nth-child(4) { animation-delay: .15s; } .app-card:nth-child(5) { animation-delay: .2s; } .app-card:nth-child(6) { animation-delay: .25s; }
.btn.primary { transition: transform .18s var(--ease), box-shadow .25s, filter .2s; }
.btn.primary:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(124, 58, 237, .32); }
.bg-glow { animation: glow 14s ease-in-out infinite alternate; }
@keyframes glow { to { transform: translate3d(2%, 3%, 0) scale(1.05); } }
/* big screens */
@media (min-width: 1700px) {
  .frame, .w-top { max-width: 1440px; }
  .stage { height: clamp(520px, 56vh, 680px); max-width: 1120px; }
  .hero h1 { font-size: 52px; }
  .lead { font-size: 19px; }
}
@media (min-width: 2300px) {
  html { zoom: 1.2; }
}
@media (max-height: 760px) and (min-width: 901px) { .stage { height: 420px; } .pane { padding-top: 24px; } }
@media (max-width: 420px) {
  .w-top { padding: 16px 16px 0; } .brand b { font-size: 15px; } .free-pill { font-size: 12px; padding: 5px 10px; }
  .frame { margin: 12px 8px; } .pane { padding: 20px 14px; }
  .tabs button { padding: 0 12px; font-size: 13px; }
  .feat { grid-template-columns: 1fr; }
  .orbit span { width: 46px; height: 46px; padding: 9px; }
  .pane-foot .btn { flex: 1; }
}

@media (max-width: 900px) {
  .steps { justify-content: center; gap: 6px; overflow: visible; flex-wrap: nowrap; }
  .step { padding: 6px 8px; gap: 8px; min-width: 0; }
  .step:not(.on) > span:last-child { display: none; }
  .step.on > span:last-child small { display: none; }
  .tabs { flex-wrap: wrap; justify-content: center; border-radius: 18px; overflow: visible; }
}
@media (max-width: 420px) { .tabs button { height: 32px; padding: 0 10px; } }
@media (max-width: 900px) {
  .steps { max-width: 100%; }
  .step { flex: 0 0 auto; }
  .step.on { flex: 0 1 auto; min-width: 0; }
  .step.on > span:last-child { min-width: 0; overflow: hidden; }
  .step.on b { white-space: normal; overflow-wrap: anywhere; line-height: 1.2; }
  .step.on > span:last-child { overflow: visible; }
  .frame { max-width: calc(100vw - 16px); }
  .hero, .pane, .stage { max-width: 100%; min-width: 0; }
  .hero h1 { overflow-wrap: anywhere; }
}
html { overflow-x: clip; }
@media (max-width: 900px) { .frame { grid-template-columns: minmax(0, 1fr); } .steps, .pane { min-width: 0; } }
@media (max-width: 560px) { .pin-grid, .apps { grid-template-columns: minmax(0, 1fr); } .pin-card, .app-card { min-width: 0; } .fake-pop { width: auto; left: 8px; } }
@media (max-width: 380px) { .free-pill { display: none; } }

/* ---------- step 1: general AI first ---------- */
.feat { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feat > div { min-width: 0; }
.feat > div:nth-child(5) { animation-delay: .24s; } .feat > div:nth-child(6) { animation-delay: .3s; }
.feat-main { background: linear-gradient(135deg, var(--brand-soft), var(--bg2)) !important; border-color: var(--brand-line) !important; }
@media (max-width: 900px) { .feat { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .feat { grid-template-columns: minmax(0, 1fr); } }

/* ---------- step 4: open the extension ---------- */
.open-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0 auto 26px; max-width: 900px; animation: fadeUp .45s var(--ease) both; }
.open-cta .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: auto; min-height: 52px; padding: 10px 26px; text-align: center; max-width: 100%; white-space: normal; }
.open-cta .btn > [data-icon] { width: 18px; height: 18px; flex: none; }
.cta-main { font-size: 16px; box-shadow: 0 10px 28px rgba(124, 58, 237, .32); }
.cta-main:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(124, 58, 237, .4); }
.cta-lg { width: 26px; height: 26px; flex: none; background: #fff; border-radius: 8px; padding: 2px; }
.cta-main.pulse { animation: ctaPulse .7s var(--ease); }
@keyframes ctaPulse { 0% { box-shadow: 0 0 0 0 rgba(124, 58, 237, .5); } 100% { box-shadow: 0 0 0 18px rgba(124, 58, 237, 0); } }
.or-app { display: flex; align-items: center; gap: 14px; max-width: 900px; margin: 0 auto 16px; color: var(--text3); font-size: 13px; font-weight: 500; }
.or-app::before, .or-app::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.or-app > span { text-align: center; }
@media (max-width: 560px) { .open-cta .btn { width: 100%; } }

/* ---------- compact steps: numbers only, the current step's name on its own line ---------- */
.step-cap { display: none; }
@media (max-width: 900px) {
  .step.on > span:last-child { display: none !important; }
  .step { padding: 4px; }
  .steps { border-bottom: 0 !important; padding-bottom: 4px !important; }
  .step-cap { display: block; margin: 0; padding: 2px 16px 12px; border-bottom: 1px solid var(--line); text-align: center; font-weight: 650; font-size: 15px; color: var(--text); overflow-wrap: break-word; }
  .step-cap.in { animation: fadeUp .35s var(--ease) both; }
}
@media (max-width: 420px) { .mk-search > span { display: none; } .mk-search { flex: 0 0 auto; padding: 0 10px; } }

/* ---- step 1: sign in with Google ---- */
.signin { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 34px; align-items: center; max-width: 980px; width: 100%; margin: 6px auto 0; }
.si-card { text-align: left; }
.si-card .hero-lg { margin: 0 0 18px; width: 68px; height: 68px; }
.si-card h1 { margin: 0 0 10px; font-size: clamp(26px, 3.4vw, 38px); line-height: 1.12; letter-spacing: -.03em; }
.si-card .lead { margin: 0 0 22px; font-size: 16px; max-width: 460px; }
.si-act { min-height: 56px; margin-bottom: 20px; }
.g-signin { display: inline-flex; align-items: center; gap: 12px; height: 52px; padding: 0 26px 0 18px; border-radius: 999px; background: var(--bg); border: 1px solid var(--line2); box-shadow: 0 1px 2px rgba(16,24,40,.08), 0 8px 24px -10px rgba(16,24,40,.25); font-size: 16px; font-weight: 600; color: var(--text); transition: transform .15s, box-shadow .2s, background .15s; position: relative; overflow: hidden; }
.g-signin svg { width: 22px; height: 22px; flex: none; }
.g-signin:hover { background: var(--bg2); box-shadow: 0 2px 4px rgba(16,24,40,.08), 0 14px 30px -12px rgba(124,58,237,.45); transform: translateY(-1px); }
.g-signin:active { transform: scale(.98); }
.g-signin::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(124,58,237,.12) 50%, transparent 70%); transform: translateX(-100%); animation: shine 3.2s ease-in-out 1s infinite; }
@keyframes shine { 60%, 100% { transform: translateX(100%); } }
.g-signin.busy { pointer-events: none; opacity: .7; }
.si-done { display: inline-flex; align-items: center; gap: 12px; padding: 10px 18px 10px 12px; border-radius: 16px; background: rgba(19,115,51,.08); border: 1px solid rgba(19,115,51,.25); animation: paneIn .3s ease-out; }
.si-done b { display: block; color: #137333; }
.si-done small { display: block; color: var(--text2); font-size: 13px; }
.si-ok { width: 30px; height: 30px; border-radius: 50%; background: #137333; color: #fff; padding: 6px; flex: none; }
.si-err { color: #b42318; font-size: 14px; margin: 10px 0 0; max-width: 460px; }
.perms { list-style: none; padding: 0; margin: 0 0 14px; display: grid; gap: 10px; max-width: 470px; }
.perms li { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg2); }
.perms li > [data-app] { width: 22px; height: 22px; flex: none; }
.perms li > [data-icon] { width: 22px; height: 22px; flex: none; color: var(--brand); }
.perms li > div { margin-left: 6px; min-width: 0; }
.perms b { display: block; font-size: 14px; }
.perms small { display: block; font-size: 12.5px; color: var(--text2); line-height: 1.4; }
.si-note { margin: 0; font-size: 12.5px; color: var(--text3); max-width: 470px; }
.si-demo { display: flex; flex-direction: column; gap: 22px; align-items: center; }
.si-demo .orbit span { width: 46px; height: 46px; padding: 9px; border-radius: 14px; }
.si-sheet { width: 100%; max-width: 440px; border: 1px solid var(--line); border-radius: 18px; background: var(--bg); box-shadow: 0 24px 60px -28px rgba(16,24,40,.35); overflow: hidden; }
.ss-top { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: 13.5px; }
.ss-top [data-app] { width: 20px; height: 20px; }
.ss-grid { display: grid; grid-template-columns: 28px 1.2fr 1fr 1fr; font-size: 12.5px; }
.ss-grid i { font-style: normal; padding: 7px 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text3); background: var(--bg2); text-align: center; }
.ss-grid i.h, .ss-grid i.c { background: var(--bg); color: var(--text); text-align: left; }
.ss-grid i.h { font-weight: 700; background: #e8f0fe; color: #1f1f1f; opacity: 0; animation: cellIn .35s ease-out forwards; }
.ss-grid i.c { opacity: 0; animation: cellIn .35s ease-out forwards; }
.ss-grid i.n { text-align: right; }
.ss-grid i.t { font-weight: 700; }
.ss-grid i.f { color: #137333; }
.ss-grid i:nth-child(n+5):nth-child(-n+8) { animation-delay: 1.1s; }
.ss-grid i:nth-child(n+9):nth-child(-n+12) { animation-delay: 1.45s; }
.ss-grid i:nth-child(n+13):nth-child(-n+16) { animation-delay: 1.8s; }
.ss-grid i:nth-child(n+17):nth-child(-n+20) { animation-delay: 2.15s; }
.ss-grid i:nth-child(n+21) { animation-delay: 2.6s; }
@keyframes cellIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.ss-bar { display: flex; align-items: center; gap: 8px; margin: 12px; padding: 8px 12px; border-radius: 999px; border: 1px solid var(--brand-line); box-shadow: 0 0 0 3px var(--brand-soft); font-size: 13px; }
.ss-bar .lg { width: 20px; height: 20px; flex: none; }
.ss-typed { overflow: hidden; white-space: nowrap; border-right: 2px solid var(--brand); max-width: 0; animation: typeIn 1s steps(30) .1s forwards, caret .8s step-end infinite; }
@keyframes typeIn { to { max-width: 100%; } }
@keyframes caret { 50% { border-color: transparent; } }
.free-pill.acc { color: #137333; background: rgba(19,115,51,.08); border-color: rgba(19,115,51,.25); }
@media (max-width: 960px) { .signin { grid-template-columns: 1fr; } .si-demo { display: none; } }
@media (prefers-reduced-motion: reduce) { .ss-grid i.h, .ss-grid i.c { opacity: 1; animation: none; } .ss-typed { max-width: 100%; animation: none; } .g-signin::after { display: none; } }

/* last step: rate card */
.rate { display: flex; align-items: center; gap: 16px; max-width: 760px; width: 100%; margin: 22px auto 0; padding: 16px 18px; border-radius: 18px; border: 1px solid var(--brand-line); background: linear-gradient(135deg, var(--brand-soft), var(--bg2)); animation: paneIn .4s ease-out; transition: opacity .25s, transform .25s; }
.rate.bye { opacity: 0; transform: translateY(6px); }
.rate-stars { display: flex; gap: 2px; flex: none; }
.rate-stars span { width: 20px; height: 20px; color: #f5b301; fill: #f5b301; animation: starPop .5s cubic-bezier(.2,.8,.2,1) both; }
.rate-stars span svg { fill: currentColor; }
.rate-stars span:nth-child(2) { animation-delay: .08s } .rate-stars span:nth-child(3) { animation-delay: .16s } .rate-stars span:nth-child(4) { animation-delay: .24s } .rate-stars span:nth-child(5) { animation-delay: .32s }
@keyframes starPop { from { opacity: 0; transform: scale(.4) rotate(-20deg); } }
.rate-t { flex: 1; min-width: 0; }
.rate-t b { display: block; font-size: 15px; }
.rate-t small { display: block; color: var(--text2); font-size: 13px; }
.rate-a { display: flex; gap: 8px; flex: none; }
.rate-a .btn [data-icon] { width: 16px; height: 16px; }
@media (max-width: 760px) { .rate { flex-direction: column; text-align: center; } .rate-a { justify-content: center; flex-wrap: wrap; } }

/* Pro offer on the last step */
.w-pro { display: flex; align-items: center; gap: 16px; max-width: 760px; width: 100%; margin: 22px auto 0; padding: 16px 18px; border-radius: 18px; color: #fff; background: linear-gradient(135deg, #a855f7 0%, #7c3aed 55%, #5b21b6 100%); box-shadow: 0 10px 30px rgba(91, 33, 182, .25); animation: paneIn .4s ease-out; }
.w-pro-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: rgba(255, 255, 255, .18); }
.w-pro-ic svg { width: 22px; height: 22px; }
.w-pro-t { flex: 1; min-width: 0; }
.w-pro-t b { display: block; font-size: 16px; }
.w-pro-t small { display: block; opacity: .9; font-size: 13px; }
.w-pro-b { flex: none; background: #fff; color: #5b21b6; }
.w-pro-b:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
@media (max-width: 640px) { .w-pro { flex-direction: column; align-items: stretch; text-align: center; } .w-pro-ic { margin: 0 auto; } }
