/* action ai · Sign-in, Onboarding and Plans (REDESIGN-R9-SIGNIN-ONBOARDING-PLANS-2026-10-07).
   LIFTED from BUILD HANDOVER 2026-10-05: mockups/Sign-in, Onboarding, Plans, Teams, Sponsors, Admin (37 states)
   (review round 4).html, built by src/areas/account/account.py (its CSS block) on src/kit/kit.css (+ fx3.css E01 E03
   E05 E06 E07 E08 E12 E13). Every value is the mockup's. Adapted for the app only:
   - the mockup's kit parts (.panel .pc .field .seg .cta .sec .ghost .link .tag .sl .dots .bar .sheet .scrim .grab .orb
     .hsky .hd .ib .qb .go) are mapped onto the classes each real component already renders, beside them, so nothing is
     added, removed or reworded: only the look changes;
   - every rule is scoped under one of these components' own roots: .auth-screen.kx (SignInScreen, the magic-link card,
     ResetPasswordScreen, OAuthReturnScreen), .ob-identity.kx / .ob-demo.kx / .ob-features.kx / .ob-embers.kx /
     .ob-teaser.kx (onboarding), .iw-scrim.kx (InstallWalkthroughModal), .scene-plan.kx (PlanScene) and
     .upgrade-nudge.kx (UpgradeNudge, all six callers); Landing's own .upgrade-nudge, TeamsScene's and SettingsView's
     .auth-consent, HomeMomentum's .reach-bar-* and every other .sheet-head are untouched;
   - keyframes carry an ac- prefix and custom properties are the R1 kit's (kit-tokens.css), so no name collides (KIT-1);
   - onboarding (.ob-*) sizes resolve to the app's type steps (var(--ts-*), ci/check-type-scale.mjs ONB2): the kit's
     16px reading size has no step and takes --ts-subhead (17), 14px takes --ts-body (15), the 34px hero --ts-hero (28);
   - the brand lockup image is the app's own ChevronMark + Wordmark (MOCK-ONLY.md), the install sheet keeps the app's
     own phone timeline and icon, the Plus / Pro plan cards keep their animated ring (ci/check-billing-fix-pins.mjs PIN A),
     and the native checkboxes stay checkboxes (a tick there is consent, not a completion: no E11 / W01). */

/* ── shared kit parts, scoped to the R9 roots ─────────────────────────────────────────────────────────────── */
.auth-screen.kx,.ob-identity.kx,.ob-demo.kx,.ob-features.kx,.ob-embers.kx,.ob-teaser.kx,.scene-plan.kx{background:var(--kx-bg);color:var(--t1);font-family:'Hanken Grotesk',system-ui,sans-serif;-webkit-font-smoothing:antialiased;position:relative;isolation:isolate}
.auth-screen.kx>.hsky,.ob-identity.kx>.hsky,.ob-demo.kx>.hsky,.ob-features.kx>.hsky,.ob-embers.kx>.hsky,.ob-teaser.kx>.hsky,.scene-plan.kx>.hsky{position:absolute;left:0;right:0;top:0;height:460px;z-index:-1;pointer-events:none;-webkit-mask:linear-gradient(#000 55%,transparent);mask:linear-gradient(#000 55%,transparent)}
.kx>.hsky::before,.kx>.hsky::after{content:"";position:absolute;inset:0;background-repeat:repeat}
.kx>.hsky::before{background-image:radial-gradient(.6px .6px at 150px 20px,#fff9,transparent),radial-gradient(.6px .6px at 280px 120px,#fff7,transparent),radial-gradient(1px 1px at 20px 30px,#fff8,transparent),radial-gradient(1px 1px at 120px 80px,#fff6,transparent),radial-gradient(1.4px 1.4px at 200px 160px,#fffa,transparent),radial-gradient(1px 1px at 300px 40px,#fff5,transparent),radial-gradient(1px 1px at 60px 200px,#fff7,transparent);background-size:340px 240px;opacity:.28}
.kx>.hsky::after{background-image:radial-gradient(1.6px 1.6px at 80px 60px,#C7C0FF,transparent),radial-gradient(1.2px 1.2px at 260px 190px,#FFE7B0,transparent),radial-gradient(1.2px 1.2px at 170px 120px,#B6F5E4,transparent);background-size:360px 280px;opacity:.25}

/* entrances: .rise is the element's own blur-rise (kit.css); E03 skips it (fx3.js enter) */
.auth-screen.kx .rise,.auth-screen.kx form.auth-card,.ob-identity.kx .rise,.ob-demo.kx .rise,.ob-features.kx .rise,.ob-embers.kx .rise,.ob-teaser.kx .rise,.upgrade-nudge.kx.rise{opacity:0;transform:translateY(14px);filter:blur(8px);animation:ac-rise .7s var(--ease) forwards}
@keyframes ac-rise{to{opacity:1;transform:none;filter:none}}

/* kit button press (kit.css button:active) + E06 on the kit parts; the app's .btn press is replaced inside these roots */
.auth-screen.kx button,.ob-identity.kx button,.ob-demo.kx button,.ob-features.kx button,.ob-embers.kx button,.ob-teaser.kx button,.iw-scrim.kx button,.scene-plan.kx button,.upgrade-nudge.kx button{transition:transform .14s var(--ease),scale var(--fx-fast) var(--out)}
.auth-screen.kx button:active,.ob-identity.kx button:active,.ob-demo.kx button:active,.ob-features.kx button:active,.ob-embers.kx button:active,.ob-teaser.kx button:active,.iw-scrim.kx button:active,.scene-plan.kx button:active,.upgrade-nudge.kx button:active{transform:scale(.96)}
.kx .cta,.kx .sec,.kx .pc,.kx .go,.kx .qb,.kx .ib,.kx .seg button,.kx.upgrade-nudge .cta,.iw-scrim.kx .iw-actions .btn{transition:scale var(--fx-fast) var(--out)}

/* .cta · the one loud button: white, spectral ring turning (kit.css .cta) */
.kx .cta,.kx.upgrade-nudge .cta,.iw-scrim.kx .iw-actions .btn-primary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff;color:#0b0b12;font-weight:800;font-size:17px;letter-spacing:normal;border:0;border-radius:18px;min-height:56px;padding:0 18px;position:relative;isolation:isolate;box-shadow:0 0 0 2px var(--kx-bg),0 18px 40px -16px rgba(162,155,254,.6)}
.kx .cta::after,.kx.upgrade-nudge .cta::after,.iw-scrim.kx .iw-actions .btn-primary::after{content:"";position:absolute;inset:-3px;border-radius:21px;padding:2.5px;background:var(--conic);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:kx-spin 4s linear infinite;pointer-events:none}
.kx .cta:active,.kx.upgrade-nudge .cta:active,.iw-scrim.kx .iw-actions .btn-primary:active{scale:.98;box-shadow:0 0 0 2px var(--kx-bg),0 18px 54px -10px rgba(162,155,254,.9)}
html .kx .cta svg,html .kx .sec svg{width:20px;height:20px;flex:none}
/* .sec · quiet full-width button */
.kx .sec,.iw-scrim.kx .iw-actions .btn-ghost{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:0 16px;border:0;border-radius:16px;background:var(--glass);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);font-size:16px;font-weight:600;color:var(--t2);letter-spacing:normal}
.kx .sec+.sec,.kx .cta+.sec,.iw-scrim.kx .iw-actions .btn-primary+.btn-ghost{margin-top:12px}
.kx .sec[disabled]{opacity:.75}
/* .ghost · text button, 44px */
.kx .ghost{min-height:44px;padding:0 12px;font-size:16px;font-weight:600;color:var(--t3);background:none;border:0;letter-spacing:normal}
/* .link · inline action, 44px tall */
.kx .link,.auth-screen.kx .auth-consent a,.auth-screen.kx .auth-fine a{color:var(--peri2);font-weight:700;font-size:16px;min-height:44px;display:inline-flex;align-items:center;gap:4px;justify-content:center;min-width:44px}
.kx a.link,.auth-screen.kx .auth-consent a,.auth-screen.kx .auth-fine a{text-decoration:underline}
/* .pc · card (radius 18, #111114, 9% hairline) */
.kx .pc{position:relative;display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--kx-line);border:0;text-align:left;width:100%;color:var(--t1)}
.kx .pc+.pc{margin-top:10px}
.kx .pc .m{flex:1;min-width:0}
.kx .note .ic{flex:none}
/* .panel */
.kx .panel,.kx.panel,.auth-screen.kx form.auth-card{position:relative;border-radius:22px;overflow:hidden;background:rgba(20,20,24,.55);box-shadow:inset 0 0 0 1px var(--kx-line);border:0;padding:16px}
/* .edge · spectral rim */
.kx .edge,.kx.edge{position:relative;isolation:isolate}
.kx .edge::before,.kx.edge::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--edge);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.8}
/* .sl · section label with a spectral hairline */
.kx .sl{display:flex;align-items:center;gap:12px;margin:24px 16px 10px;font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3);text-align:left}
.kx .sl::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.14),transparent)}
.kx .sl::before{content:none;display:none}
/* .tag */
.kx .tag{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:99px;font-size:14px;font-weight:700;letter-spacing:normal;text-transform:none;color:var(--peri2);background:rgba(162,155,254,.14);border:0;width:auto;margin:0}
.kx .tag.mint{color:var(--mint);background:rgba(85,239,196,.14)}
.kx .tag.amber{color:var(--kx-amber);background:rgba(253,203,110,.14)}
/* .qb / .ib · round icon buttons and tiles, 44px */
.kx .qb{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--peri2);background:var(--glass);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);border:0;padding:0;margin:0}
html .kx .qb svg{width:18px;height:18px}
.kx .ib{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);border:0;color:var(--t1);padding:0;margin:0}
html .kx .ib svg{width:20px;height:20px}
/* .ic · inline icon */
html .kx .ic svg{width:20px;height:20px;display:block}
.kx .ic.peri{color:var(--peri2)}

/* ── SIGN-IN (states signin, signin-password, signup, signup-password, signin-inapp) ───────────────────────── */
.auth-screen.kx{display:block;min-height:100vh;min-height:100dvh;max-width:480px;margin:0 auto;padding:0 0 110px;gap:0;align-items:stretch;font-size:16px;line-height:1.45}
.auth-screen.kx .auth-hero{padding:calc(56px + var(--safe-top,0px)) 20px 18px;text-align:left}
.auth-screen.kx .auth-hero .aai-mark-row{justify-content:flex-start;align-items:center;min-height:34px;margin-bottom:0!important}
.auth-screen.kx .auth-hero-title{font-family:'Fraunces','Times New Roman',serif;font-style:italic;font-weight:600;letter-spacing:-.02em;font-size:34px;line-height:1.05;margin:18px 0 4px;color:var(--t1)}
.auth-screen.kx .auth-card{width:auto;max-width:none;margin:0 16px;display:block;gap:0;padding:16px;border:0}
.auth-screen.kx .auth-card::before{content:none;display:none}
.auth-screen.kx form.auth-card .auth-title{font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.45;text-align:left;color:var(--t1)}
.auth-screen.kx form.auth-card .auth-sub{font-size:16px;line-height:1.45;color:var(--t2);margin:4px 0 16px;text-align:left}
/* in-app note: .pc note with the info icon */
.auth-screen.kx .auth-inapp-note{align-items:flex-start;margin:0 0 6px;padding:14px;border:0;border-radius:18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--kx-line)}
.auth-screen.kx .auth-inapp-note p{font-size:16px;line-height:1.5;color:var(--t2);margin:0}
.auth-screen.kx .auth-inapp-note strong{color:var(--t1)}
/* OAuth as .sec rows with their own icons */
.auth-screen.kx .auth-oauth.sec{justify-content:center;background:var(--glass);border:0;color:var(--t2)}
.auth-screen.kx .auth-oauth.sec:disabled{opacity:.5}
.auth-screen.kx .auth-oauth.sec+.auth-oauth.sec{margin-top:10px}
html .auth-screen.kx .auth-oauth.sec svg{width:20px;height:20px}
/* "or with email" as .sl.tight */
.auth-screen.kx .auth-divider.sl{margin:20px 0 12px}
.auth-screen.kx .auth-divider.sl span{white-space:nowrap}
/* Magic link / Password as .seg (44px) */
.auth-screen.kx .auth-tabs.seg{display:flex;padding:3px;border-radius:14px;background:#121215;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);border:0}
.auth-screen.kx .auth-tabs.seg .auth-tab{flex:1;height:44px;min-height:44px;padding:0 12px;border-radius:11px;font-size:14px;font-weight:700;color:var(--t3);background:none}
.auth-screen.kx .auth-tabs.seg .auth-tab.active{background:#26262b;color:#fff}
/* fields: .field 52px, 16px input, E12 focus ring (fx3.css .field:focus-within) */
.auth-screen.kx .auth-input.field{display:block;width:100%;margin-top:12px;min-height:52px;padding:0 14px;border:0;border-radius:16px;background:var(--glass);color:#fff;font-size:16px;font-family:inherit;outline:0;transition:box-shadow .2s var(--out)}
.auth-screen.kx .auth-input.field:not(:focus-within){box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.auth-screen.kx .auth-input.field::placeholder{color:var(--t4)}
/* consent row (sign-up): the native checkbox drawn as the kit's round tick, both links as .link */
.auth-screen.kx .auth-consent{display:flex;align-items:center;gap:12px;margin:16px 0 0;font-size:15px;line-height:1.45;color:var(--t2);flex-wrap:wrap;min-height:44px}
.auth-screen.kx .auth-consent>span:last-child{flex:1;min-width:0}
.auth-screen.kx .auth-consent a{font-size:15px;color:var(--peri2)}
.auth-screen.kx .auth-consent-box,.scene-plan.kx .auth-consent-box{-webkit-appearance:none;appearance:none;width:24px;height:24px;min-width:24px;margin:10px 10px 10px 0;flex:none;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35);background:transparent center/14px 14px no-repeat;cursor:pointer;transition:background-color .25s var(--ease),box-shadow .25s var(--ease)}
.auth-screen.kx .auth-consent-box:checked,.scene-plan.kx .auth-consent-box:checked{background-color:var(--mint);box-shadow:0 0 12px rgba(85,239,196,.5);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2307070a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E")}
.auth-screen.kx .auth-consent-box:focus-visible,.scene-plan.kx .auth-consent-box:focus-visible{outline:2px solid var(--peri);outline-offset:2px}
/* the primary action as the one .cta (mt2) */
.auth-screen.kx form.auth-card .cta{margin-top:20px}
.auth-screen.kx .auth-forgot{display:flex;justify-content:center;font-size:16px}
.auth-screen.kx .auth-forgot .ghost{color:var(--t3)}
/* toggle, bounce and fine-print rows (.row-wrap) */
.auth-screen.kx .auth-inapp-secondary,.auth-screen.kx .auth-toggle,.auth-screen.kx .auth-fine{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:6px;text-align:center;line-height:1.45}
.auth-screen.kx .auth-inapp-secondary,.auth-screen.kx .auth-toggle{margin-top:10px;font-size:15px;color:var(--t2)}
.auth-screen.kx .auth-inapp-secondary .auth-link,.auth-screen.kx .auth-toggle .auth-link{color:var(--peri2);font-weight:700;font-size:15px;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:none;border:0;padding:0;text-decoration:none}
/* the consent line flows as one balanced sentence: as a flex row each text run (" · ", ".") was its own item, so the dot
   and the full stop wrapped and gapped on their own (SIGNIN-LINKEDIN-FIX SL-2). The links keep their 44px inline-flex
   tap box; the side padding that reaches 44 wide is cancelled by an equal negative margin, so "Terms." reads unbroken */
.auth-screen.kx form.auth-card .auth-fine{display:block;margin-top:2px;font-size:14px;color:var(--t3);text-wrap:balance}
.auth-screen.kx form.auth-card .auth-fine a{font-size:14px;padding:0 4px;margin:0 -4px}
/* WHAT IT COSTS: .sl, three .pc cards (Plus with the .edge rim), "Start free" as .sec */
.auth-screen.kx .auth-social-proof{width:auto;max-width:none}
.auth-screen.kx .auth-pricing{margin:0}
.auth-screen.kx .auth-section-eyebrow.sl{margin:24px 16px 10px;text-align:left}
.auth-screen.kx .auth-pricing-grid{display:block;margin:0 16px;padding:0}
.auth-screen.kx .auth-pricing-card.pc{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:10px;row-gap:6px;padding:14px;border:0;border-radius:18px}
.auth-screen.kx .auth-pricing-card .auth-pricing-tier{font-size:16px;font-weight:700;color:#fff;letter-spacing:normal;text-transform:none}
.auth-screen.kx .auth-pricing-card .auth-pricing-price{font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:20px;font-weight:800;margin:0;color:var(--t1);line-height:1.45}
.auth-screen.kx .auth-pricing-card .auth-pricing-price span{font-size:14px;font-weight:600;color:var(--t3)}
.auth-screen.kx .auth-pricing-card .auth-pricing-line{grid-column:1/-1;font-size:16px;line-height:1.5;color:var(--t2);margin:0}
.auth-screen.kx .auth-pricing-cta.sec{margin:20px 16px 0;width:calc(100% - 32px)}

/* ── MAGIC LINK SENT + RESET (states magic-sent, reset): one centred panel ──────────────────────────────── */
.auth-screen.kx.ac-solo{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding:24px 16px;min-height:812px;min-height:max(812px,100dvh)}
.auth-screen.kx.ac-solo .auth-card{width:100%;margin:0 16px}
.auth-screen.kx.ac-solo .auth-logo{justify-content:flex-start;align-items:center;min-height:27px;margin:0 0 18px}
.auth-screen.kx.ac-solo .auth-title{font-family:'Fraunces','Times New Roman',serif;font-style:italic;font-weight:600;letter-spacing:-.02em;font-size:28px;line-height:1.05;margin:8px 0 4px;text-align:left;color:var(--t1)}
.auth-screen.kx.ac-solo .auth-sub{font-size:16px;line-height:1.5;color:var(--t2);text-align:left;margin-top:0!important}
.auth-screen.kx.ac-solo .auth-sub+.auth-sub{margin-top:12px!important}
.auth-screen.kx.ac-solo .auth-sub strong{color:var(--t1)}
.auth-screen.kx.ac-solo .auth-fine{font-size:16px;line-height:1.45;color:var(--t1);text-align:left;margin-top:12px!important}
.auth-screen.kx.ac-solo .sec,.auth-screen.kx.ac-solo .cta{margin-top:20px}
.auth-screen.kx.ac-solo .cta+.auth-fine{margin-top:12px!important}

/* ── OAUTH RETURN (state oauth-return): the .full night page, the E13 orb (72px), "Signing you in" ──────── */
.auth-screen.kx.full{position:fixed;inset:0;z-index:70;max-width:none;margin:0;padding:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:radial-gradient(80% 60% at 50% 35%,rgba(162,155,254,.14),transparent 70%),#06060a}
.auth-screen.kx.full .orb{width:72px;height:72px;border:0;border-radius:50%;margin:0 auto;position:relative;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,rgba(162,155,254,.25),rgba(7,7,10,.9) 70%)}
.auth-screen.kx.full .orb::before{content:"";position:absolute;inset:0;border-radius:50%;padding:3px;background:var(--conic);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:kx-spin 3s linear infinite}
.auth-screen.kx.full .orb::after{content:"";position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(circle,rgba(162,155,254,.25),transparent 65%);z-index:-1}
.auth-screen.kx.full .aai-mark-row{min-height:34px;align-items:center}
.auth-screen.kx.full .auth-returning-label{font-size:16px;font-weight:600;color:var(--t2)}

/* ── ONBOARDING (states ob-demo, ob-features, ob-embers, ob-teaser; Identity has no mockup state) ──────────── */
.ob-identity.kx,.ob-demo.kx,.ob-features.kx,.ob-embers.kx,.ob-teaser.kx{padding:0 16px;font-size:var(--ts-subhead);line-height:1.45;gap:0}
.ob-demo.kx,.ob-features.kx,.ob-embers.kx,.ob-teaser.kx{background:var(--kx-bg)}
.ob-identity.kx>*,.ob-demo.kx>*,.ob-features.kx>*,.ob-embers.kx>*,.ob-teaser.kx>*{flex-shrink:0}
.ob-identity.kx{min-height:100dvh;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom,0px)}
/* the top row: five .dots (done and active lit) and Skip as .ghost */
.kx .ob-progress{display:flex;align-items:center;justify-content:flex-start;gap:10px;height:44px;box-sizing:content-box;padding:calc(12px + var(--safe-top,0px)) 0 6px 4px;margin:0}
.kx .ob-progress .ob-dot{flex:none;width:8px;height:8px;border-radius:50%;background:transparent;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4)}
.kx .ob-progress .ob-dot.active,.kx .ob-progress .ob-dot.done{background:#fff;box-shadow:0 0 0 2px var(--peri),0 0 10px var(--peri)}
.kx .ob-skip.ghost{position:absolute;top:calc(12px + var(--safe-top,0px));right:8px;z-index:2;min-height:44px;height:44px;padding:0 12px;border:0;border-radius:0;background:none;font-size:var(--ts-subhead);font-weight:600;color:var(--t3)}
/* the step line, quiet; the headline in Fraunces italic (the scene's one phrase) */
.kx .ob-step{font-size:var(--ts-subhead);font-weight:400;letter-spacing:normal;text-transform:none;color:var(--t3);margin:0;line-height:1.5}
.kx .ob-id-headline{font-family:'Fraunces','Times New Roman',serif;font-style:italic;font-weight:600;letter-spacing:-.02em;font-size:var(--ts-hero);line-height:1.05;margin:6px 0 12px;color:var(--t1)}
/* the footer: the one .cta with the arrow icon, at the foot of the scene (the scene scrolls, so it is always reachable) */
.ob-demo.kx .ob-id-footer,.ob-features.kx .ob-id-footer,.ob-embers.kx .ob-id-footer,.ob-identity.kx .ob-id-footer{position:static;margin-top:auto;padding:24px 0 calc(32px + var(--safe-bottom,0px));gap:0;background:none}
.ob-demo.kx .ob-id-footer .cta,.ob-features.kx .ob-id-footer .cta,.ob-embers.kx .ob-id-footer .cta,.ob-identity.kx .ob-id-footer .cta{font-size:var(--ts-subhead);padding:0 18px;border-radius:18px}
html .kx .ob-id-footer .cta svg{width:20px;height:20px}
.ob-demo.kx .btn-primary.ghosted{opacity:.4}
/* demo: the capture line, the note as a .panel, the chips as .pc rows with .tag, the caption */
.ob-demo.kx .ob-id-capture-def{font-size:var(--ts-subhead);line-height:1.5;color:var(--t2);border:0;background:none;border-radius:0;padding:0;margin:0}
.ob-demo.kx .ob-id-capture-def strong{color:inherit;font-weight:700}
.ob-demo.kx .ob-demo-note{margin-top:20px;padding:16px;border-radius:22px;animation:none}
.ob-demo.kx .ob-demo-note-label{font-size:var(--ts-body);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3);margin:0}
.ob-demo.kx .ob-demo-note-body{font-size:var(--ts-subhead);line-height:1.5;color:var(--t1);margin-top:6px}
.ob-demo.kx .ob-demo-note-body strong{color:inherit;font-weight:700}
.ob-demo.kx .ob-demo-chips{display:block;margin-top:20px}
.ob-demo.kx .ob-demo-chip.pc{gap:12px;padding:14px;border:0;border-radius:18px;transition:opacity 320ms ease-out}
.ob-demo.kx .ob-demo-chip-tag{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:99px;font-size:var(--ts-body);font-weight:700;letter-spacing:normal;flex:none;color:var(--peri2);background:rgba(162,155,254,.14)}
.ob-demo.kx .ob-demo-chip-tag.user{color:var(--mint);background:rgba(85,239,196,.14)}
.ob-demo.kx .ob-demo-chip-tag.tp{color:var(--kx-amber);background:rgba(253,203,110,.14)}
.ob-demo.kx .ob-demo-chip-text,.ob-demo.kx .ob-demo-chip.tp .ob-demo-chip-text{flex:1;min-width:0;font-size:var(--ts-subhead);line-height:1.45;color:var(--t1);font-style:normal}
.ob-demo.kx .ob-demo-caption{font-size:var(--ts-subhead);line-height:1.5;color:var(--t2);text-align:left;margin-top:20px}
/* features: three .pc cards, the 44px periwinkle icon tile, the mock rows as .mock insets, mint / amber .tag pills */
.ob-features.kx .ob-feat-card.pc{align-items:flex-start;gap:12px;padding:14px;margin:0;border:0;border-radius:18px}
.ob-features.kx .ob-id-headline+.ob-feat-card{margin-top:20px}
.ob-features.kx .ob-feat-card.pc+.ob-feat-card.pc{margin-top:10px}
.ob-features.kx .ob-feat-icon.qb{width:44px;height:44px;border-radius:50%;font-size:var(--ts-subhead);color:var(--peri2);background:var(--glass);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
html .ob-features.kx .ob-feat-icon.qb svg{width:18px;height:18px}
.ob-features.kx .ob-feat-title{font-size:var(--ts-subhead);font-weight:700;color:#fff;margin:0}
.ob-features.kx .ob-feat-text{font-size:var(--ts-subhead);line-height:1.5;color:var(--t2);margin-top:6px}
.ob-features.kx .ob-feat-mock{margin-top:12px;padding:12px;border-radius:14px;background:var(--card2);box-shadow:inset 0 0 0 1px var(--kx-line);border:0;font-size:var(--ts-subhead);line-height:1.45;color:var(--t1)}
.ob-features.kx .ob-feat-mock-event{display:block;padding:0;border:0;border-radius:0;background:none}
.ob-features.kx .ob-feat-mock-event-name{font-weight:700;color:var(--t1)}
.ob-features.kx .ob-feat-mock-event-count{font-size:var(--ts-body);color:var(--t3);margin-top:1px}
.ob-features.kx .ob-feat-mock.events-mock{display:block}
.ob-features.kx .ob-feat-mock-line{font-weight:400;color:var(--t1);margin:0}
.ob-features.kx .ob-feat-mock-tps{font-family:inherit;color:var(--t3);margin-top:6px;line-height:1.5}
.ob-features.kx .ob-feat-mock.drag-mock{display:flex;align-items:center;justify-content:space-around;gap:10px}
.ob-features.kx .ob-feat-mock-col{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;background:none;border-radius:0}
.ob-features.kx .ob-feat-mock-head,.ob-features.kx .ob-feat-mock-arrow{font-size:var(--ts-body);font-weight:400;letter-spacing:normal;text-transform:none;color:var(--t3)}
.ob-features.kx .ob-feat-mock-pill{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:99px;font-size:var(--ts-body);font-weight:700;color:var(--mint);background:rgba(85,239,196,.14);animation:none}
.ob-features.kx .ob-feat-mock-pill.incoming{color:var(--kx-amber);background:rgba(253,203,110,.14)}
/* embers: a .panel with the kit .bar at 27% (E05 draw-in 900ms after 120ms); HomeMomentum / SharesSheet bars untouched */
.ob-embers.kx .ob-embers-preview{margin-top:20px;padding:16px;border-radius:22px}
.ob-embers.kx .reach-bar-track{height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin:0}
.ob-embers.kx .reach-bar-fill{height:100%;border-radius:inherit;background:var(--edge);transform-origin:left;animation:ac-bar .9s .12s var(--out) both;transition:none}
@keyframes ac-bar{from{scale:0 1}}
.ob-embers.kx .ob-embers-preview-meta{margin-top:12px;font-size:var(--ts-subhead);line-height:1.5;color:var(--t2)}
.ob-embers.kx .ob-embers-preview-meta b{color:#fff;font-weight:700}
/* teaser: three .pc tile buttons, the 44px icon tile and the chevron; the forward line */
.ob-teaser.kx .ob-teaser-tiles{position:static;display:block;margin-top:20px;padding:0;background:none}
.ob-teaser.kx .ob-teaser-tile.pc{flex-direction:row;align-items:center;gap:12px;padding:14px;border:0;border-radius:18px}
.ob-teaser.kx .ob-teaser-tile.pc+.ob-teaser-tile.pc{margin-top:10px}
.ob-teaser.kx .ob-teaser-icon.qb{font-size:var(--ts-subhead);line-height:1}
html .ob-teaser.kx .ob-teaser-icon.qb svg{width:18px;height:18px}
.ob-teaser.kx .ob-teaser-tile-title{flex:1;min-width:0;font-size:var(--ts-subhead);font-weight:700;color:#fff}
.ob-teaser.kx .ob-teaser-chev{color:var(--t3)}
.ob-teaser.kx .ob-teaser-forward{margin-top:20px;padding:0 0 calc(32px + var(--safe-bottom,0px));background:none;border:0;border-radius:0;font-size:var(--ts-subhead);line-height:1.5;color:var(--t2)}
.ob-teaser.kx .ob-teaser-forward strong{color:inherit;font-weight:700}
/* Identity (no mockup state): the same parts. Top row: the wordmark and "Get started fast" as .ghost */
.ob-identity.kx .ob-identity-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + var(--safe-top,0px)) 0 0 4px;margin:0}
.ob-identity.kx .ob-identity-intro .ob-wordmark{margin:0}
.ob-identity.kx .ob-progress{padding-top:6px}
.ob-identity.kx .ob-id-input-wrap{margin:20px 0 0}
.ob-identity.kx .ob-id-label{display:block;font-size:var(--ts-body);font-weight:700;letter-spacing:normal;text-transform:none;color:var(--t3);margin:0 0 8px}
.ob-identity.kx .ob-id-input.field{display:block;width:100%;min-height:52px;padding:0 14px;border:0;border-radius:16px;background:var(--glass);color:#fff;font-size:var(--ts-subhead);font-weight:400;letter-spacing:normal;font-family:inherit;outline:0;transition:box-shadow .2s var(--out)}
.ob-identity.kx .ob-id-input.field:not(:focus-within){box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.ob-identity.kx .ob-id-input.field::placeholder{color:var(--t4)}
.ob-identity.kx .ob-mic-card{margin-top:20px;padding:16px;border-radius:22px;border:0}
.ob-identity.kx .ob-mic-row{gap:12px;margin:0}
.ob-identity.kx .ob-mic-badge.qb{width:44px;height:44px;border-radius:50%;background:var(--glass);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);color:var(--peri2)}
html .ob-identity.kx .ob-mic-badge.qb svg{width:18px;height:18px}
.ob-identity.kx .ob-mic-title{font-size:var(--ts-subhead);font-weight:700;color:#fff;margin:0}
.ob-identity.kx .ob-mic-why{font-size:var(--ts-subhead);line-height:1.5;color:var(--t2);border:0;padding:0;margin-top:12px}
.ob-identity.kx .ob-mic-why strong{color:#fff;font-weight:700}
.ob-identity.kx .ob-id-footer .ghost{align-self:center}
.ob-identity.kx .ob-id-footer .cta+.ghost{margin-top:12px}

/* ── INSTALL SHEET (states install-ios, install-android): E08 sheet, Fraunces title, the phone, .pc captions ── */
.iw-scrim.kx{background:rgba(3,3,5,.75);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:ac-fade .35s var(--out) both}
@keyframes ac-fade{from{opacity:0}}
.iw-scrim.kx .iw-card-sheet{width:100%;max-width:480px;max-height:92%;overflow:auto;border:0;border-radius:28px 28px 0 0;background:#0f0f12;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);padding:10px 16px calc(28px + env(safe-area-inset-bottom,0px));color:var(--t1);font-family:'Hanken Grotesk',system-ui,sans-serif;animation:ac-sheet .55s var(--sheet) both}
@keyframes ac-sheet{from{translate:0 105%}to{translate:0 0}}
.iw-scrim.kx .iw-card-sheet.ac-drag{animation:none;transition:none}
.iw-scrim.kx .iw-card-sheet:not(.ac-drag){transition:transform .5s var(--sheet)}
.iw-scrim.kx .sheet-grip{width:40px;height:5px;border-radius:3px;background:rgba(255,255,255,.22);margin:0 auto 12px;cursor:grab;touch-action:none;position:relative}
.iw-scrim.kx .sheet-grip::after{content:"";position:absolute;inset:-14px -60px}
.iw-scrim.kx .sheet-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 4px;padding:0}
.iw-scrim.kx .sheet-eyebrow{font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3)}
.iw-scrim.kx .sheet-close{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);border:0;color:var(--t1);padding:0;margin:0}
html .iw-scrim.kx .sheet-close svg{width:20px;height:20px}
.iw-scrim.kx .iw-title{font-family:'Fraunces','Times New Roman',serif;font-style:italic;font-weight:600;letter-spacing:-.02em;font-size:28px;line-height:1.05;margin:8px 0 4px;color:var(--t1)}
.iw-scrim.kx .iw-sub{font-size:16px;line-height:1.5;color:var(--t2);margin:0}
/* the phone from the mockup (toolbar, share sheet and home grid stacked in one frame); the app's own 9s timeline keeps
   running on it: the tap rings land on Share, then on Add to Home Screen, then the app icon pops onto the home grid */
.iw-scrim.kx .iw-phone{width:230px;height:auto;margin:18px auto 0;padding:12px;display:flex;flex-direction:column;gap:10px;border:0;border-radius:30px;background:var(--card);box-shadow:inset 0 0 0 1px var(--kx-line2);overflow:visible}
.iw-scrim.kx .iw-screen{position:relative;inset:auto;opacity:1;animation:none;transform:none}
.iw-scrim.kx .iw-tb-row{position:static;height:40px;padding:0;border-radius:12px;background:var(--card2);color:var(--t2);font-size:18px;display:flex;align-items:center;justify-content:space-around}
.iw-scrim.kx .iw-tb-share{color:var(--peri2);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;box-shadow:0 0 0 2px var(--peri)}
html .iw-scrim.kx .iw-tb-share svg{width:18px;height:18px}
.iw-scrim.kx .iw-tap{width:34px;height:34px;border-width:2px}
.iw-scrim.kx .iw-tap-share{bottom:3px;left:59%}
.iw-scrim.kx .iw-sheet{border-radius:14px;background:var(--card2);padding:8px 10px}
.iw-scrim.kx .iw-sheet-grab{width:30px;height:5px;border-radius:3px;background:rgba(255,255,255,.22);margin:0 auto 6px}
.iw-scrim.kx .iw-sheet-row{font-size:14px;line-height:1.45;color:var(--t2);padding:6px 4px;border:0;border-radius:8px;gap:8px}
.iw-scrim.kx .iw-sheet-add{color:#fff;font-weight:700;background:rgba(162,155,254,.14)}
.iw-scrim.kx .iw-sheet-ic{color:var(--peri2)}
.iw-scrim.kx .iw-tap-add{bottom:auto;top:82px;left:22px}
.iw-scrim.kx .iw-home{background:none}
.iw-scrim.kx .iw-home-grid{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:8px;align-content:start;justify-items:stretch}
.iw-scrim.kx .iw-app{width:auto;height:auto;aspect-ratio:1;border-radius:12px;background:#26262b}
.iw-scrim.kx .iw-app-ours{background:none}
.iw-scrim.kx .iw-app-ours img{width:100%;height:100%;border-radius:12px;display:block}
/* the iOS captions as three .pc rows (16px), the Android line centred */
.iw-scrim.kx .iw-caps{position:static;height:auto;margin:16px 0 0;text-align:left}
.iw-scrim.kx .iw-cap.pc{position:relative;inset:auto;opacity:1;animation:none;font-size:16px;line-height:1.45;color:var(--t1);display:block}
.iw-scrim.kx .iw-cap strong{color:inherit;font-weight:700}
.iw-scrim.kx .iw-caps-static{margin-top:20px;text-align:center}
.iw-scrim.kx .iw-cap-static{font-size:16px;line-height:1.5;color:var(--t2)}
.iw-scrim.kx .iw-actions{display:block;margin-top:20px}
.iw-scrim.kx .iw-actions .btn{flex:none}

/* ── PLANS (states plan, plan-partner, plan-pro) ──────────────────────────────────────────────────────────── */
.scene-plan.kx{font-size:16px;line-height:1.45}
.scene-plan.kx .dash-header.hd{display:flex;align-items:center;gap:10px;min-height:60px;padding:8px 16px;background:none;border:0;position:relative}
.scene-plan.kx .dash-header .dash-title{flex:1;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--t1);text-align:left;font-family:'Hanken Grotesk',system-ui,sans-serif}
.scene-plan.kx .plan-partner-note.pc{align-items:flex-start;margin:0 16px 6px;width:auto}
.scene-plan.kx .plan-partner-note .m{font-size:16px;line-height:1.45;color:var(--t1)}
.scene-plan.kx .plan-cards{display:block;padding:0 16px;gap:0;overflow:visible}
.scene-plan.kx .plan-card.pc{flex-direction:column;align-items:stretch;gap:6px;padding:18px;border-radius:18px;overflow:hidden}
.scene-plan.kx .plan-card.pc+.plan-card.pc{margin-top:14px}
.scene-plan.kx .plan-card:not(.plan-card-plus):not(.plan-card-pro){border:0}
.scene-plan.kx .plan-card-current:not(.plan-card-plus):not(.plan-card-pro){box-shadow:inset 0 0 0 1px var(--kx-line)}
.scene-plan.kx .plan-card-head{display:flex;flex-direction:column;gap:6px}
.scene-plan.kx .plan-card-name{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap}
.scene-plan.kx .plan-card-name .tier-badge{background:none;border:0;padding:0;margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em;text-transform:none;color:var(--t1)}
.scene-plan.kx .plan-card-tagline{font-size:14px;color:var(--t3)}
.scene-plan.kx .plan-card-price{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.45;margin:4px 0 2px;color:var(--t1)}
.scene-plan.kx .plan-card-price-unit{font-size:14px;font-weight:600;color:var(--t3);margin:0}
.scene-plan.kx .plan-card-features{margin:8px 0 4px;gap:8px}
.scene-plan.kx .plan-card-features li{gap:10px;font-size:16px;line-height:1.45;color:var(--t2)}
.scene-plan.kx .plan-card-feature-tick{width:auto;height:auto;color:var(--mint);margin:0}
.scene-plan.kx .plan-card-feature-tick::before{content:none}
html .scene-plan.kx .plan-card-feature-tick svg{width:16px;height:16px;margin-top:3px;display:block}
.scene-plan.kx .plan-card-pricenote{font-size:14px;color:var(--t3);text-align:left;margin:0}
.scene-plan.kx .plan-card .cta,.scene-plan.kx .plan-card .sec{margin-top:10px}
.scene-plan.kx .plan-card .cta:disabled{opacity:.5;cursor:not-allowed}
/* the "Start my plan now" tickbox under each upgrade: a native checkbox drawn as the kit's round tick */
.scene-plan.kx .plan-card .auth-consent{display:flex;align-items:center;gap:12px;margin:0;font-size:15px;line-height:1.45;color:var(--t2);min-height:44px;cursor:pointer}
.scene-plan.kx .plan-card .auth-consent>span{flex:1;min-width:0}
/* Manage subscription and Refresh as .ghost, centred */
.scene-plan.kx .plan-manage-row{display:flex;justify-content:center;padding:0 16px;margin:0}
.scene-plan.kx .plan-cards+.plan-manage-row{margin-top:14px}
/* On the roadmap as .sl; its rows as .pc with an amber "Coming soon" .tag and "Register interest" as .go */
.scene-plan.kx .plan-roadmap{margin:0;padding:0;background:none;border:0;border-radius:0}
.scene-plan.kx .plan-roadmap-title.sl{margin:24px 16px 10px;font-size:14px;font-weight:700;color:var(--t3)}
.scene-plan.kx .plan-roadmap-row.pc{margin:0 16px;width:auto;border:0}
.scene-plan.kx .plan-roadmap-row.pc+.plan-roadmap-row.pc{margin-top:10px}
.scene-plan.kx .plan-roadmap-main{flex:1;min-width:0}
.scene-plan.kx .plan-roadmap-name{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:16px;font-weight:700;color:#fff}
.scene-plan.kx .plan-roadmap-soon.tag{color:var(--kx-amber);background:rgba(253,203,110,.14)}
.scene-plan.kx .plan-roadmap-btn.go{flex:none;min-width:76px;height:44px;padding:0 16px;border:0;border-radius:99px;background:#F4F4F5;color:#0b0b12;font-weight:800;font-size:15px;position:relative;isolation:isolate;white-space:nowrap;cursor:pointer}
.scene-plan.kx .plan-roadmap-btn.go::before{content:"";position:absolute;inset:-4px;border-radius:99px;padding:1.5px;background:var(--conic);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:kx-spin 12s linear infinite;opacity:.75;pointer-events:none}
.scene-plan.kx .plan-roadmap-btn.go:disabled{opacity:.6;cursor:default}
.scene-plan.kx .plan-signed-out-note{font-size:16px;color:var(--t3);text-align:center;padding:16px 16px 0}

/* ── UPGRADE NUDGE (states nudge-free, nudge-plus): a .panel with the .edge rim; Landing's own nudge untouched ── */
.upgrade-nudge.kx{display:block;margin:14px 16px;padding:16px;border-radius:22px;border:0;background:rgba(20,20,24,.55);box-shadow:inset 0 0 0 1px var(--kx-line);color:var(--t1);font-family:'Hanken Grotesk',system-ui,sans-serif;line-height:1.45}
.upgrade-nudge.kx .upgrade-nudge-eyebrow{font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3)}
.upgrade-nudge.kx .upgrade-nudge-title{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--t1);margin-top:6px}
.upgrade-nudge.kx .upgrade-nudge-blurb{font-size:16px;line-height:1.5;color:var(--t2);margin-top:6px}
.upgrade-nudge.kx .upgrade-nudge-cta.cta{margin-top:20px}
.upgrade-nudge.kx .upgrade-nudge-foot{font-size:16px;line-height:1.45;color:var(--t1);text-align:left;margin-top:12px}

/* reduced motion: every value shows at once (kit.css + fx3.css) */
@media (prefers-reduced-motion:reduce){
.auth-screen.kx .rise,.auth-screen.kx form.auth-card,.ob-identity.kx .rise,.ob-demo.kx .rise,.ob-features.kx .rise,.ob-embers.kx .rise,.ob-teaser.kx .rise,.upgrade-nudge.kx.rise{opacity:1;transform:none;filter:none;animation:none}
.kx .cta::after,.kx.upgrade-nudge .cta::after,.scene-plan.kx .plan-roadmap-btn.go::before,.auth-screen.kx.full .orb::before,.ob-embers.kx .reach-bar-fill,.iw-scrim.kx,.iw-scrim.kx .iw-card-sheet{animation:none}
.auth-screen.kx.full .orb{display:none}
.kx button,.kx .cta,.kx .sec,.kx .pc,.kx .auth-input.field,.kx .ob-id-input.field,.kx .auth-consent-box,.iw-scrim.kx .iw-card-sheet:not(.ac-drag){transition:none}
}
/* PRICING-V4-2026-10-08 · LimitSheet (Pricing v4 states 4, 5, 7, 8; Alex 2026-10-08 "pricing is a go"). Values lifted from
   pricing.py's CSS; every rule is scoped to the sheet's own root (.limit-sheet.kx). Moved here from app/index.html by
   PRICING-V4-PINS-2026-10-09: the rules read kit tokens (--kx-bg, --t1..--t3, --ease), and KIT-1 keeps kit token names
   out of the app files. Rules unchanged. */
.limit-sheet.kx{position:fixed;inset:0;z-index:99990;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--kx-bg);color:var(--t1);font:400 16px/1.45 'Hanken Grotesk',system-ui,sans-serif;letter-spacing:normal;-webkit-font-smoothing:antialiased;isolation:isolate;text-align:left}
.limit-sheet.kx>.hsky{position:absolute;left:0;right:0;top:0;height:460px;z-index:0;pointer-events:none;-webkit-mask:linear-gradient(#000 55%,transparent);mask:linear-gradient(#000 55%,transparent)}
.limit-sheet.kx .screen{position:relative;z-index:1;min-height:100%}
.limit-sheet.kx .pad{padding:0 var(--space-4)}
.limit-sheet.kx .top-gap{padding-top:calc(var(--space-5) + env(safe-area-inset-top, 0px))}
.limit-sheet.kx .eb{font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3)}
.limit-sheet.kx .h2{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.45;color:var(--t1)}
.limit-sheet.kx .read{font-size:16px;line-height:1.5;margin:0}
.limit-sheet.kx .read strong{font-weight:700;color:var(--t1)}
.limit-sheet.kx .t2{color:var(--t2)}
.limit-sheet.kx .panel .mt-s{margin-top:var(--space-1)}
.limit-sheet.kx .panel .mt{margin-top:var(--space-3)}
.limit-sheet.kx .panel .mt2{margin-top:var(--space-4)}
.limit-sheet.kx .panel .pc+.pc{margin-top:var(--space-2)}
.limit-sheet.kx .col{flex-direction:column;align-items:stretch;gap:var(--space-1)}
.limit-sheet.kx .pr-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}
.limit-sheet.kx .plan{padding:var(--space-4)}
.limit-sheet.kx .pname{font-size:22px;font-weight:800;letter-spacing:-.02em}
.limit-sheet.kx .pc .s{font-size:14px;color:var(--t3);margin-top:1px}
.limit-sheet.kx .panel .plan .cta,.limit-sheet.kx .panel .plan .sec{margin-top:var(--space-2)}
.limit-sheet.kx .rise{opacity:0;transform:translateY(14px);filter:blur(8px);animation:ac-rise .7s var(--ease) forwards}
@media (prefers-reduced-motion: reduce){.limit-sheet.kx .rise{opacity:1;transform:none;filter:none;animation:none}}
