/* KlerkIt Landing1 - 30-second Firm Boss workflow story (modal).
   Markup: Views/Home/_FirmWorkflowStory.cshtml. Behaviour: js/home/firm-story.js.
   Ported from the standalone RC "klerkit-firm-boss-demo-v3". Every selector is namespaced
   .kfm-* (modal chrome) or .kf-* (story); the story is sized from its own container, not the viewport.
   Integration changes vs the standalone RC: no standalone page shell, header/body/footer are <div>s
   (Landing1 styles bare footer/h1), and the frame height is capped to the modal's viewport. */

/* ---------- modal chrome ---------- */
.kfm[hidden]{display:none}
.kfm{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px}
.kfm-backdrop{position:absolute;inset:0;background:rgba(8,20,45,.72);backdrop-filter:blur(4px)}
.kfm-dialog{position:relative;width:min(1280px,100%);max-height:100%;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior:contain}
.kfm-bar{flex:none;display:flex;justify-content:flex-end}
.kfm-close{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff;font:400 26px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.kfm-close:hover{background:rgba(255,255,255,.22)}
.kfm-close:focus-visible{outline:2px solid #fff;outline-offset:2px}
body.kfm-open{overflow:hidden}
@media (max-width:640px){
  .kfm{padding:0;align-items:stretch}
  .kfm-dialog{gap:0;background:#0F172A}
  .kfm-bar{padding:8px 8px 0}
  .kfm-close{width:36px;height:36px;font-size:22px}
}

/* ---------- component scope (namespaced reset) ---------- */
.kf-root,.kf-root *,.kf-root *::before,.kf-root *::after{box-sizing:border-box}
.kf-root{container-type:inline-size;container-name:kfhost;display:block;width:100%;color:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;text-align:left;line-height:normal}
.kf-root :where(button){font:inherit;color:inherit}
.kf-root :where(a){color:inherit}
.kf-root :where(h1,h2,h3,p,small,ul,li){color:inherit;font-family:inherit;text-transform:none;margin-block:0}
.kf-root h1,.kf-root h2{max-width:none;text-shadow:none}   /* Landing1's bare h1 rule adds max-width + text-shadow */
.kf-root[lang^="zh"] h1,.kf-root[lang^="zh"] h2{letter-spacing:0;line-height:1.2}
.kf-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.kf-frame{
  --blue:#2563EB; --violet:#7C3AED; --ink:#0F172A; --slate:#64748B;
  --ease:cubic-bezier(.16,1,.3,1);
  container-type:inline-size;container-name:kf;
  position:relative;width:min(1280px,100%);margin:0 auto;display:flex;flex-direction:column;overflow:hidden;
  height:min(720px,calc(min(100cqw,1280px)*9/16),calc(100vh - 96px));
  background:#0F172A;border-radius:24px;border:1px solid rgba(255,255,255,.08);
  box-shadow:0 24px 80px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.06) inset;
}
/* header */
.kf-head{height:52px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(11,18,32,.85);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.07);z-index:20}
.kf-brand{display:flex;align-items:center;gap:12px;min-width:0}
.kf-logo{width:28px;height:28px;border-radius:6px;background:var(--blue);display:grid;place-items:center;font-weight:800;font-size:13px}
.kf-name{font-weight:700;font-size:14px;letter-spacing:-.02em}
.kf-aud{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.6);font-size:12px;font-weight:500;letter-spacing:.02em}
.kf-aud::before{content:"";width:1px;height:16px;background:rgba(255,255,255,.15)}
.kf-hr{display:flex;align-items:center;gap:16px}
.kf-dashes{display:flex;gap:6px}
.kf-dashes i{height:6px;width:10px;border-radius:9px;background:rgba(255,255,255,.15);transition:all .5s}
.kf-dashes i.past{width:16px;background:rgba(255,255,255,.4)}.kf-dashes i.cur{width:24px;background:var(--blue)}
.kf-time{font:500 11px ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.4);font-variant-numeric:tabular-nums}
.kf-time b{font-weight:500;color:rgba(255,255,255,.9)}
.kf-play{width:28px;height:28px;border-radius:50%;border:0;background:#fff;color:#000;display:grid;place-items:center;cursor:pointer}
.kf-play:hover{background:rgba(255,255,255,.9)}
.kf-play svg{width:10px;height:10px;fill:#000}
.kf-play .i-play{display:none;margin-left:1px}.kf-frame.is-paused .kf-play .i-play{display:block}.kf-frame.is-paused .kf-play .i-pause{display:none}

/* body + scenes */
.kf-body{position:relative;flex:1;min-height:0;overflow:hidden;cursor:pointer;
  background:radial-gradient(120% 120% at 50% 0%,rgba(124,58,237,.18),transparent 40%),radial-gradient(100% 100% at 20% 20%,rgba(37,99,235,.22),transparent 50%),linear-gradient(180deg,#0F172A,#0B1220)}
.kf-body::before,.kf-body::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.kf-body::before{top:-96px;left:50%;width:800px;height:400px;margin-left:-400px;background:rgba(37,99,235,.15);filter:blur(80px)}
.kf-body::after{top:80px;right:40px;width:300px;height:300px;background:rgba(124,58,237,.12);filter:blur(60px)}
.kf-sc{position:absolute;inset:0;padding:clamp(14px,2.2cqw,32px);display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s,transform .7s,visibility 0s .7s;z-index:1}
.kf-sc.next{transform:translateY(24px)}.kf-sc.past{transform:translateY(-24px)}
.kf-sc.cur{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .7s,transform .7s}
.kf-root .rv{opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease),transform .6s var(--ease)}.kf-root .rv.on{opacity:1;transform:none}

.kf-cap{margin-top:clamp(10px,1.6cqw,18px);text-align:center;flex:none}
.kf-cap h2{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-size:clamp(20px,2.4cqw,28px)}
.kf-cap p{margin:6px auto 0;max-width:600px;font-size:clamp(11px,1.2cqw,13px);color:rgba(255,255,255,.5)}
.kf-cap .hl{color:#60A5FA}

/* shared white card bits */
.kf-card{background:#fff;color:var(--ink);border:1px solid rgba(0,0,0,.05);box-shadow:0 12px 40px rgba(0,0,0,.18)}
.kf-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;font-size:11px;font-weight:600;border:1px solid transparent}
.kf-chip.red{background:#FEF2F2;border-color:#FECACA;color:#DC2626}
.kf-chip.green{background:#DCFCE7;border-color:#BBF7D0;color:#166534}
.kf-chip.blue{background:rgba(37,99,235,.15);border-color:rgba(37,99,235,.28);color:#93C5FD}
.kf-chip.glass{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.75)}
.kf-chip.white{background:#fff;color:var(--ink)}
.kf-up{text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:10px}
@keyframes kf-pulse{50%{opacity:.35}}@keyframes kf-ping{75%,100%{transform:scale(2);opacity:0}}
.kf-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:kf-pulse 2s infinite}

/* 1 · MESS */
.kf-s0{align-items:center;justify-content:center}
.kf-mess{width:min(460px,100%);border-radius:16px;overflow:hidden}
.kf-s0.cur .kf-mess.go{animation:kf-spring .9s var(--ease) both,kf-shake .6s ease 1.2s}
@keyframes kf-spring{0%{transform:translateY(-80px) scale(.96);opacity:0}60%{transform:translateY(12px) scale(1.02);opacity:1}80%{transform:translateY(-6px) scale(.99)}100%{transform:none;opacity:1}}
@keyframes kf-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}
.kf-mess .top{padding:16px;display:flex;gap:12px;align-items:flex-start}
.kf-av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.kf-mess .nm{font-size:13px;font-weight:700;letter-spacing:-.01em;line-height:1.2}
.kf-mess .sm{font-size:11px;font-weight:500;color:var(--slate);margin-top:2px}
.kf-mess .chips{padding:0 16px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:44px}
.kf-mess .prog{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10px;font-weight:500;color:var(--slate)}
.kf-mess .prog i{width:32px;height:6px;border-radius:9px;background:#F1F5F9;overflow:hidden;display:block}.kf-mess .prog i b{display:block;height:100%;background:var(--ink)}
.kf-mess .foot{height:42px;background:#F8FAFC;border-top:1px solid rgba(0,0,0,.05);display:flex;align-items:center;gap:12px;padding:0 16px;font-size:10px;color:#94A3B8}
.kf-mess .foot i{flex:1;height:6px;border-radius:9px;background:#E2E8F0;overflow:hidden;display:block}.kf-mess .foot i b{display:block;width:5%;height:100%;background:var(--ink)}
.kf-hero{margin-top:clamp(18px,3cqw,40px);text-align:center;max-width:720px}
.kf-hero h1{margin:0;font-weight:800;letter-spacing:-.03em;line-height:.98;font-size:clamp(28px,4.2cqw,50px)}
.kf-hero p{margin:12px 0 0;font-size:clamp(12px,1.3cqw,14px);letter-spacing:.02em;color:rgba(255,255,255,.5);font-weight:500}

/* 2 · COMPRESS */
.kf-comp{position:relative;flex:1;min-height:0;display:flex}
.kf-lane{position:relative;flex:1;overflow:hidden;border-radius:14px;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.06);padding:12px}
.kf-lane::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.6),transparent)}
.kf-beam{position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,rgba(37,99,235,.9),rgba(124,58,237,.8),transparent);filter:blur(1px);animation:kf-sweep 1.2s cubic-bezier(.4,0,.2,1) infinite}
.kf-beam.on{opacity:1}.kf-beam::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:rgba(255,255,255,.8);box-shadow:0 0 20px rgba(37,99,235,1)}
@keyframes kf-sweep{0%{left:-20%}100%{left:120%}}
.kf-rows{display:grid;gap:3px}
.kf-rows i{display:flex;align-items:center;gap:8px;height:6px;border-radius:9px;background:rgba(255,255,255,.1);opacity:.6;transition:transform .7s var(--ease),opacity .7s var(--ease)}
.kf-rows i::before{content:"";margin-left:4px;width:24px;height:3px;border-radius:9px;background:rgba(255,255,255,.2)}
.kf-rows i::after{content:"";width:48px;height:3px;border-radius:9px;background:rgba(255,255,255,.1)}
.kf-lane.squash .kf-rows i{opacity:.15;transform:translateX(200px) scale(.2)}.kf-lane.squash .kf-rows i:nth-child(-n+20){opacity:0}
.kf-groups{position:absolute;left:42%;top:50%;display:grid;grid-template-columns:repeat(3,56px);gap:8px;opacity:0;transform:translateY(-50%) scale(.8);transition:all .7s}
.kf-groups.on{opacity:1;transform:translateY(-50%)}
.kf-groups i{height:18px;border-radius:6px;background:rgba(37,99,235,.2);border:1px solid rgba(37,99,235,.3);display:grid;place-items:center}.kf-groups i::after{content:"";width:28px;height:4px;border-radius:9px;background:rgba(96,165,250,.7)}
.kf-ba{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;min-width:min(250px,86%);text-align:center;padding:20px 20px 18px;border-radius:18px;background:rgba(11,18,32,.92);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px rgba(0,0,0,.6)}
.kf-ba .lbl{font-size:11px;font-weight:600;letter-spacing:.12em;color:rgba(255,255,255,.4);text-transform:uppercase}
.kf-ba .big1{margin-top:4px;font-size:28px;font-weight:700;letter-spacing:-.02em;color:rgba(255,255,255,.7);font-variant-numeric:tabular-nums;line-height:1}
.kf-ba .big1 small{font-size:13px;font-weight:500;color:rgba(255,255,255,.4)}
.kf-ba .arr{margin:12px auto;display:flex;flex-direction:column;align-items:center}
.kf-ba .arr i{display:block;width:2px;height:24px;background:linear-gradient(180deg,rgba(255,255,255,.2),var(--blue));transform-origin:top}
.kf-ba .arr.go i{animation:kf-arrow .6s var(--ease) both}
@keyframes kf-arrow{0%{transform:scaleY(.2);opacity:.2}50%{transform:scaleY(1.3);opacity:1}100%{transform:none;opacity:1}}
.kf-ba .arr b{margin-top:4px;width:24px;height:24px;border-radius:50%;background:var(--blue);display:grid;place-items:center;font-size:11px;box-shadow:0 0 20px rgba(37,99,235,.6)}
.kf-ba .lbl2{color:#60A5FA}
.kf-ba .big2{margin-top:4px;font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.kf-ba .big2 b{color:#60A5FA;font-weight:800}.kf-ba .big2 small{font-size:14px;font-weight:700}
.kf-ba .pill{margin-top:14px}
.kf-ba .pill .sep{width:4px;height:4px;border-radius:50%;background:#93C5FD}

/* 3 · REVIEW */
.kf-rhead{text-align:center;margin-bottom:clamp(14px,1.8cqw,20px);flex:none}
.kf-rhead h2{margin:0;font-weight:800;letter-spacing:-.03em;line-height:.95;font-size:clamp(22px,2.4cqw,30px)}
.kf-rhead p{margin:8px 0 0;font-size:clamp(12px,1.3cqw,14px);color:rgba(255,255,255,.6);font-weight:500}
.kf-rbody{flex:1;min-height:0;width:100%;max-width:860px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:clamp(10px,1.4cqw,16px)}
.kf-cert{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.2cqw,12px)}
.kf-c{background:#fff;color:var(--ink);border:1px solid rgba(0,0,0,.05);border-radius:14px;padding:clamp(12px,1.4cqw,14px);box-shadow:0 1px 3px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:4px}
.kf-c .k{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#64748B}
.kf-c .k i{width:6px;height:6px;border-radius:50%}
.kf-c .n{font-size:clamp(26px,2.4cqw,30px);font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.kf-rmid{width:100%;flex:1;min-height:0;display:grid;grid-template-columns:1.35fr .65fr;gap:12px}
.kf-glist{display:flex;flex-direction:column;gap:8px}
.kf-g{background:#fff;color:var(--ink);border:1px solid rgba(0,0,0,.05);border-radius:12px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.kf-g .mn{min-width:0}.kf-g .t{font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kf-g .m{margin-top:2px;font-size:10px;color:#64748B}
.kf-g .pill{flex:none;padding:4px 8px;border-radius:99px;background:#DBEAFE;border:1px solid #BFDBFE;color:#1D4ED8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.kf-ai{position:relative;min-height:90px;border-radius:14px;background:#0B1220;border:1px solid rgba(255,255,255,.1);padding:16px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}
.kf-ai::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 80% at 50% 50%,rgba(37,99,235,.22),transparent)}
.kf-ai>div{position:relative;display:flex;flex-direction:column;align-items:center}
.kf-ai .p1{padding:4px 10px;border-radius:99px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);font-size:10px;font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.7);text-transform:uppercase}
.kf-ai .p2{padding:4px 10px;border-radius:99px;background:#fff;color:var(--ink);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.kf-ai .ln{margin:8px 0;display:flex;align-items:center;gap:6px}
.kf-ai .ln i{display:block;width:24px;height:2px;border-radius:9px;background:linear-gradient(90deg,#2563EB,#7C3AED)}
.kf-ai .ln i:last-child{background:linear-gradient(90deg,#7C3AED,rgba(255,255,255,.4))}
.kf-ai .ln b{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6)}

/* 4 · DECIDE */
.kf-dbody{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(18px,2.2cqw,24px)}
.kf-dbody h2{margin:0;text-align:center;font-weight:800;letter-spacing:-.03em;line-height:.95;font-size:clamp(24px,2.7cqw,34px)}
.kf-dcard{width:100%;max-width:640px;background:#fff;color:var(--ink);border:1px solid rgba(0,0,0,.05);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.18);overflow:hidden;padding:clamp(16px,1.6cqw,20px);display:flex;align-items:center;justify-content:space-between;gap:16px}
.kf-dcard .l{flex:1;min-width:0}
.kf-dcard .id{display:flex;align-items:center;gap:10px}
.kf-dcard .av{width:32px;height:32px;border-radius:50%;flex:none;background:#DBEAFE;color:#1D4ED8;display:grid;place-items:center;font-weight:700;font-size:11px}
.kf-dcard .tt{font-size:clamp(13px,1.2cqw,14px);font-weight:700;line-height:1.2}
.kf-dcard .mm{margin-top:2px;font-size:11px;color:#64748B;display:flex;align-items:center;gap:8px}.kf-dcard .mm i{width:4px;height:4px;border-radius:50%;background:#CBD5E1}
.kf-res{margin-top:12px;display:flex;align-items:center;gap:8px;opacity:0;transform:translateY(6px);transition:all .5s}.kf-res.on{opacity:1;transform:none}
.kf-res .bar{flex:1;max-width:180px;height:4px;border-radius:9px;background:#F1F5F9;overflow:hidden}.kf-res .bar b{display:block;height:100%;width:0;border-radius:9px;background:#16A34A;transition:width .7s}
.kf-res span{font-size:11px;font-weight:700;color:#16A34A;font-variant-numeric:tabular-nums}
.kf-dcard .r{flex:none;display:flex;flex-direction:column;gap:8px;align-items:stretch}
.kf-st{align-self:flex-end;padding:4px 10px;border-radius:99px;font-size:10px;font-weight:700;border:1px solid #FECACA;background:#FEF2F2;color:#DC2626;transition:all .5s}
.kf-st.ok{background:#DCFCE7;border-color:#BBF7D0;color:#166534}
.kf-btn{height:42px;padding:0 20px;border-radius:10px;border:1px solid transparent;background:var(--blue);color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 8px 24px rgba(37,99,235,.35);transition:all .3s;animation:kf-btnpulse 1.6s infinite;white-space:nowrap;cursor:inherit}
.kf-btn.ok{animation:none;background:#F1F5F9;color:#166534;border-color:#BBF7D0;box-shadow:none}
@keyframes kf-btnpulse{0%{box-shadow:0 0 0 0 rgba(37,99,235,.5)}70%{box-shadow:0 0 0 14px rgba(37,99,235,0)}100%{box-shadow:0 0 0 0 rgba(37,99,235,0)}}
.kf-dsub{margin:16px 0 0;text-align:center;flex:none;font-size:clamp(11px,1.1cqw,12px);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:rgba(255,255,255,.5)}

/* 5 · CAPACITY */
.kf-clients{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.4cqw,14px);flex:none}
.kf-cl{position:relative;overflow:hidden;border-radius:14px;padding:12px;box-shadow:0 4px 16px rgba(0,0,0,.14);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.kf-cl .row{display:flex;gap:10px}
.kf-cl .nm{font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kf-cl .sm{font-size:10px;color:var(--slate)}
.kf-cl .chips{margin-top:10px;display:flex;gap:6px}
.kf-cl .chips .kf-chip{font-size:10px;padding:2px 8px}
.kf-cl .bar{margin-top:10px;height:6px;border-radius:9px;background:#F1F5F9;overflow:hidden}.kf-cl .bar b{display:block;height:100%;border-radius:9px;background:var(--ink)}
.kf-cl .pg{margin-top:4px;display:flex;justify-content:space-between;font-size:9px;color:#94A3B8}
.kf-cl .top{position:absolute;top:0;left:0;right:0;height:2px;background:var(--blue)}.kf-cl .top b{display:block;height:100%;background:var(--violet)}
.kf-fin{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 8px;min-height:0}
.kf-fin h2{margin:0;font-weight:800;letter-spacing:-.03em;line-height:.98;font-size:clamp(24px,3.4cqw,40px)}
.kf-fin .l{margin:10px 0 0;display:grid;gap:2px;font-size:clamp(11px,1.3cqw,13px);color:rgba(255,255,255,.62)}
.kf-ctas{display:grid;justify-items:center;margin-top:clamp(14px,2.2cqw,24px)}
.kf-cta-pre,.kf-cta-fin{grid-area:1/1;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;transition:opacity .5s var(--ease),visibility 0s}
.kf-cta-fin{opacity:0;visibility:hidden;pointer-events:none}
.kf-frame.is-ended .kf-cta-pre{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s var(--ease),visibility 0s .5s}
.kf-frame.is-ended .kf-cta-fin{opacity:1;visibility:visible;pointer-events:auto}
.kf-cta{margin-top:0;justify-content:center;text-decoration:none;white-space:nowrap;height:44px;padding:0 24px;border:0;border-radius:12px;background:var(--blue);color:#fff;font-size:13px;font-weight:700;box-shadow:0 8px 24px rgba(37,99,235,.35);display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:background .2s}
.kf-cta:hover{background:#1D4ED8}
.kf-cta.kf-cta-2nd{background:transparent;border:1.5px solid rgba(255,255,255,.4);box-shadow:none}
.kf-cta.kf-cta-2nd:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6)}
.kf-cta .ar{font-size:16px;line-height:1}
.kf-fin small{margin-top:8px;font-size:10px;letter-spacing:.02em;color:rgba(255,255,255,.4)}

/* footer: step timeline */
.kf-foot{flex:none;background:#0B1220;border-top:1px solid rgba(255,255,255,.06);padding:12px 20px;display:flex;flex-direction:column;gap:10px;z-index:20}
.kf-steps{position:relative;height:40px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);padding:4px;display:flex;gap:4px;overflow:hidden}
.kf-steps .fill{position:absolute;left:4px;top:4px;bottom:4px;width:0;border-radius:8px;background:rgba(255,255,255,.06);pointer-events:none;max-width:calc(100% - 8px)}
.kf-step{position:relative;flex:1;min-width:0;border:0;background:none;border-radius:8px;padding:0 12px;text-align:left;display:flex;flex-direction:column;justify-content:center;color:rgba(255,255,255,.6);cursor:pointer;transition:background .3s,color .3s}
.kf-step:hover{background:rgba(255,255,255,.06);color:rgba(255,255,255,.9)}
.kf-step.cur{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.2)}
.kf-step .r1{display:flex;align-items:center;justify-content:space-between;gap:4px}
.kf-step .lb{font-size:11px;font-weight:700;letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-step .rg{font:500 9px ui-monospace,Menlo,monospace;opacity:.6}
.kf-step .pb{margin-top:4px;height:3px;border-radius:9px;background:rgba(255,255,255,.15);overflow:hidden}.kf-step.cur .pb{background:rgba(0,0,0,.1)}
.kf-step .pb b{display:block;height:100%;border-radius:9px;background:rgba(255,255,255,.2)}.kf-step.past .pb b{background:rgba(255,255,255,.5)}.kf-step.cur .pb b{background:var(--blue)}
.kf-step:focus-visible,.kf-play:focus-visible,.kf-cta:focus-visible{outline:2px solid #fff;outline-offset:2px}
.kf-meta{display:flex;align-items:center;justify-content:space-between;padding:0 4px;font-size:10px;color:rgba(255,255,255,.35)}
.kf-meta .sts{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.5);font-weight:500;letter-spacing:.04em;text-transform:uppercase}
.kf-meta .sts i{width:6px;height:6px;border-radius:50%;background:#22C55E;animation:kf-pulse 2s infinite}
.kf-meta .mini{margin-left:8px;width:84px;height:6px;border-radius:9px;background:rgba(255,255,255,.1);overflow:hidden}.kf-meta .mini b{display:block;height:100%;background:var(--blue);width:0}
.kf-hint-s{display:none}

/* ---------- narrower frames ---------- */
@container kf (max-width:900px){
  .kf-sc{padding:14px 16px}
  .kf-cert{gap:8px}
  .kf-rmid{grid-template-columns:1fr 1fr}
  .kf-clients{gap:8px}
}
/* phone: frame becomes a tall portrait card, scenes re-stack */
@container kf (max-width:820px){
  .kf-head{padding:0 14px}
  .kf-aud,.kf-dashes{display:none}
  .kf-hr{gap:12px}
  .kf-step .rg{display:none}.kf-step{padding:0 4px;align-items:center}.kf-step .r1{justify-content:center}.kf-step .lb{font-size:9px;letter-spacing:.02em}
  .kf-foot{padding:10px 12px}.kf-steps{height:44px}
  .kf-hint-d{display:none}.kf-hint-s{display:inline}
  .kf-meta .mini{display:none}

  /* MESS */
  .kf-mess .chips{min-height:0}
  .kf-mess .prog{margin-left:0;width:100%}
  /* COMPRESS: card is the hero, rows become a faint backdrop */
  .kf-groups{display:none}
  .kf-ba{min-width:min(280px,88%)}
  .kf-lane{padding:8px}
  /* REVIEW */
  .kf-s2,.kf-s3{justify-content:center}
  .kf-rhead{margin-bottom:14px}
  .kf-rbody{flex:none}
  .kf-cert{gap:8px}.kf-c{padding:10px 12px}
  .kf-rmid{flex:none;grid-template-columns:1fr;gap:8px}
  .kf-ai{min-height:80px;padding:12px}
  .kf-g .pill{font-size:8.5px;padding:3px 7px}
  /* DECIDE */
  .kf-dbody{flex:none;gap:18px}
  .kf-dcard{flex-direction:column;align-items:stretch;gap:14px}
  .kf-dcard .r{flex-direction:column}.kf-st{align-self:flex-start}
  .kf-dsub{margin-top:18px}
  /* CAPACITY */
  .kf-clients{grid-template-columns:1fr;gap:6px}
  .kf-cl{padding:8px 10px}.kf-cl .chips,.kf-cl .pg{display:none}.kf-cl .bar{margin-top:6px}
  .kf-fin{justify-content:flex-start;padding-top:14px}
}
@container kf (max-width:380px){
  .kf-c .k{font-size:8px}
}
/* frame height in the modal: same proportions as the RC, capped to the visible viewport */
@container kfhost (max-width:900px){
  .kf-frame{height:max(580px,min(780px,calc(100vh - 96px)))}
}
@container kfhost (max-width:640px){
  .kf-frame{width:100%;height:max(540px,calc(100svh - 52px));min-height:540px;max-height:none;border-radius:0;border:0}
}
@media (prefers-reduced-motion:reduce){
  .kf-sc,.kf-root .rv,.kf-c,.kf-cl,.kf-cta-pre,.kf-cta-fin{transition:none!important}
  .kf-beam,.kf-btn,.kf-mess.go{animation:none!important}
}
