/* ==========================================================================
   Playground IEP — Home v3 "Keynote de producto". CSS propio (sin Webflow).
   ========================================================================== */
@font-face{ font-family:"Politetype"; src:url("../fonts/politetype-regular.ttf") format("truetype"); font-weight:400; font-display:swap; }
@font-face{ font-family:"Inter"; src:url("../fonts/inter-regular.ttf") format("truetype"); font-weight:400; font-display:swap; }
@font-face{ font-family:"Inter"; src:url("../fonts/inter-medium.ttf") format("truetype"); font-weight:500; font-display:swap; }
@font-face{ font-family:"Inter"; src:url("../fonts/inter-semibold.ttf") format("truetype"); font-weight:600; font-display:swap; }

:root{
  --bg:#ffffff; --surface:#f5f5f7; --ink:#111d2a; --ink-2:#3c4652; --muted:#6e7681; --line:rgba(17,29,42,.08);
  --brand:#4f1cf8; --brand-ink:#3a10c4; --brand-soft:#eee9ff; --green:#2f9e5b; --green-text:#1f7a45; --green-soft:#edf8f1; --amber:#b7791f; --amber-soft:#fff6e3;
  --dark:#0f1720;
  --display:"Politetype", "Inter", sans-serif; --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --gap:clamp(7rem, 12vw, 11rem);
  --ease:cubic-bezier(.2,.7,.2,1);
  --win-shadow:0 60px 120px -40px rgba(17,29,42,.28), 0 8px 30px -10px rgba(17,29,42,.10);
}
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:1.0625rem; line-height:1.5; -webkit-font-smoothing:antialiased; overflow-x:clip; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,p,ul{ margin:0; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:6px; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.wrap{ width:min(1200px, 100% - 3rem); margin-inline:auto; }
.wrap-wide{ width:min(1360px, 100% - 3rem); margin-inline:auto; }
.section{ padding-top:var(--gap); }
.band{ background:var(--surface); padding-block:var(--gap); margin-top:var(--gap); }
.band + .section{ padding-top:var(--gap); }

/* ---------- type ---------- */
.kicker{ font-weight:500; font-size:1.0625rem; color:var(--brand); margin-bottom:1rem; }
.h1{ font-family:var(--display); font-weight:400; font-size:clamp(2.9rem, 6.2vw, 5.4rem); line-height:.98; letter-spacing:-.03em; text-wrap:balance; }
.h2{ font-family:var(--display); font-weight:400; font-size:clamp(2.2rem, 4.4vw, 3.6rem); line-height:1.02; letter-spacing:-.025em; text-wrap:balance; max-width:20ch; }
.h3{ font-family:var(--display); font-weight:400; font-size:clamp(1.5rem, 2.2vw, 1.9rem); line-height:1.15; letter-spacing:-.01em; }
.lead{ font-size:clamp(1.125rem, 1.5vw, 1.375rem); line-height:1.45; color:var(--ink-2); max-width:34rem; }
.lead.is-big{ font-size:clamp(1.25rem, 1.9vw, 1.6rem); }
.copy{ color:var(--ink-2); max-width:34rem; }
.muted{ color:var(--muted); }
.hd{ max-width:44rem; }
.hd.is-center{ margin-inline:auto; text-align:center; }
.hd.is-center .h2, .hd.is-center .lead{ margin-inline:auto; }
.hd .lead{ margin-top:1.25rem; }
.ul{ position:relative; white-space:nowrap; }
.ul img{ position:absolute; left:0; right:0; margin:auto; pointer-events:none; }
.ul img.top{ width:92%; bottom:-.22em; }
.ul img.bot{ width:62%; bottom:-.34em; left:14%; }

/* ---------- buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:.5rem; height:3rem; padding:0 1.35rem; border-radius:999px; font-weight:500; font-size:1rem; transition:transform .25s var(--ease), background .2s, box-shadow .25s; white-space:nowrap; }
.btn:hover{ transform:translateY(-1px); }
.btn:active{ transform:translateY(0) scale(.98); }
.btn.is-primary{ background:var(--brand); color:#fff; }
.btn.is-primary:hover{ background:var(--brand-ink); box-shadow:0 10px 30px -10px rgba(79,28,248,.55); }
.btn.is-ink{ background:var(--ink); color:#fff; }
.btn.is-ghost{ border:1px solid rgba(17,29,42,.16); color:var(--ink); background:#fff; }
.btn.is-ghost:hover{ border-color:rgba(17,29,42,.35); }
.btn.is-white{ background:#fff; color:var(--ink); }
.btn.is-sm{ height:2.5rem; padding:0 1.05rem; font-size:.9375rem; }
.link{ font-weight:500; color:var(--brand); display:inline-flex; align-items:center; gap:.35rem; }
.link::after{ content:"›"; font-size:1.2em; line-height:1; transition:transform .2s; }
.link:hover::after{ transform:translateX(3px); }
.ctas{ display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; }

/* ---------- nav ---------- */
.nav{ position:fixed; inset:0 0 auto 0; z-index:100; height:4rem; transition:background .3s, box-shadow .3s, backdrop-filter .3s; }
.nav.is-scrolled, .nav.is-open{ background:rgba(255,255,255,.78); -webkit-backdrop-filter:blur(20px) saturate(160%); backdrop-filter:blur(20px) saturate(160%); box-shadow:0 1px 0 var(--line); }
.nav_in{ height:100%; display:flex; align-items:center; gap:1.5rem; }
.nav_logo{ width:8.25rem; margin-right:.75rem; }
.nav_menu{ display:flex; align-items:center; gap:.25rem; }
.nav_item{ position:relative; }
.nav_btn{ display:inline-flex; align-items:center; gap:.35rem; height:2.25rem; padding:0 .8rem; border-radius:.6rem; font-weight:500; font-size:.9375rem; color:var(--ink); transition:background .2s; }
.nav_btn:hover, .nav_item.is-open .nav_btn{ background:rgba(17,29,42,.06); }
.nav_btn svg{ width:.75rem; height:.75rem; opacity:.6; transition:transform .2s; }
.nav_item.is-open .nav_btn svg{ transform:rotate(180deg); }
.nav_right{ margin-left:auto; display:flex; align-items:center; gap:.5rem; }
.nav_login{ font-weight:500; font-size:.9375rem; padding:0 .8rem; }
.mega{ position:absolute; top:calc(100% + .6rem); left:-.5rem; background:#fff; border:1px solid var(--line); border-radius:1.1rem; box-shadow:0 30px 60px -20px rgba(17,29,42,.28), 0 4px 16px -6px rgba(17,29,42,.08); padding:.75rem; display:grid; grid-template-columns:1fr 1fr 11rem; gap:.25rem .75rem; width:58rem; opacity:0; transform:translateY(6px) scale(.985); transform-origin:top left; pointer-events:none; transition:opacity .18s var(--ease), transform .22s var(--ease); }
.mega.is-2{ grid-template-columns:1fr 12rem; width:38rem; }
.mega .is-side{ grid-column:3; }
.mega.is-2 .is-side{ grid-column:2; }
.mega.is-1{ grid-template-columns:1fr; width:16rem; }
.nav_item.is-open .mega{ opacity:1; transform:none; pointer-events:auto; }
.mega_col{ display:flex; flex-direction:column; gap:.1rem; }
.mega_col.is-side{ background:var(--surface); border-radius:.75rem; padding:.9rem; grid-row:1 / span 2; }
.mega_h{ font-size:.75rem; font-weight:500; color:var(--muted); padding:.5rem .75rem .35rem; }
.mega_link{ display:grid; grid-template-columns:2.25rem 1fr; gap:.7rem; align-items:start; padding:.6rem .75rem; border-radius:.75rem; transition:background .15s; }
.mega_link:hover{ background:var(--surface); }
.mega_link i{ width:2.25rem; height:2.25rem; border-radius:.6rem; display:grid; place-items:center; background:var(--surface); border:1px solid var(--line); }
.mega_link i img{ width:1.05rem; height:1.05rem; }
.mega_link b{ display:block; font-weight:500; font-size:.9375rem; }
.mega_link span{ display:block; font-size:.8125rem; color:var(--muted); line-height:1.35; margin-top:.1rem; }
.mega_side a{ display:block; padding:.4rem .25rem; font-size:.9rem; font-weight:500; }
.mega_side a:hover{ color:var(--brand); }
.mega_side .kicker{ font-size:.75rem; color:var(--muted); margin:0 .25rem .35rem; font-weight:500; }
.mega_foot{ grid-column:1 / -1; display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); margin-top:.35rem; padding:.75rem .75rem .25rem; font-size:.85rem; color:var(--muted); }
.mega_foot b{ color:var(--ink); font-weight:500; }
.mega_foot .tag{ background:var(--brand-soft); color:var(--brand-ink); font-size:.7rem; font-weight:600; padding:.15rem .45rem; border-radius:.35rem; margin-right:.45rem; }
.nav_burger{ display:none; width:2.5rem; height:2.5rem; border-radius:.6rem; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.nav_burger i{ width:1.15rem; height:2px; background:var(--ink); border-radius:2px; transition:transform .25s, opacity .25s; }
.nav.is-open .nav_burger i:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.is-open .nav_burger i:nth-child(2){ opacity:0; }
.nav.is-open .nav_burger i:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.sheet{ display:none; }

/* ---------- product window (la app reconstruida) ---------- */
.win{ background:#fff; border:1px solid var(--line); border-radius:1.15rem; box-shadow:var(--win-shadow); overflow:hidden; font-size:.8125rem; line-height:1.4; color:var(--ink); }
.win.is-app{ display:grid; grid-template-columns:12.5rem 1fr; min-height:34rem; }
.win_side{ background:#fafafb; border-right:1px solid var(--line); padding:1rem .85rem; display:flex; flex-direction:column; gap:.2rem; }
.win_side img{ width:6.5rem; margin:.15rem .25rem 1rem; }
.win_side .grp{ font-size:.66rem; color:var(--muted); margin:.75rem .5rem .25rem; }
.win_side a, .win_side span.it{ display:flex; align-items:center; gap:.55rem; padding:.42rem .55rem; border-radius:.5rem; font-size:.8rem; color:var(--ink-2); }
.win_side .it.is-on{ background:#eef0f4; color:var(--ink); font-weight:500; }
.win_side .it i{ width:.9rem; height:.9rem; border-radius:3px; background:#d7dbe2; display:inline-block; }
.win_side .it.is-on i{ background:var(--brand); }
.win_main{ display:flex; flex-direction:column; min-width:0; }
.win_top{ display:flex; align-items:center; gap:.75rem; padding:.7rem 1.25rem; border-bottom:1px solid var(--line); }
.win_chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .65rem; border-radius:.55rem; background:#fff7e0; border:1px solid #f3dfa4; color:#7a5a0f; font-weight:500; font-size:.75rem; }
.win_search{ margin-left:auto; display:flex; align-items:center; gap:.5rem; border:1px solid var(--line); border-radius:999px; padding:.35rem .8rem; color:var(--muted); font-size:.75rem; width:11rem; }
.win_search kbd{ margin-left:auto; font:inherit; font-size:.62rem; border:1px solid var(--line); border-radius:.3rem; padding:.05rem .3rem; }
.win_cta{ background:#2b47e0; color:#fff; font-weight:600; font-size:.75rem; padding:.45rem .8rem; border-radius:.55rem; }
.win_body{ padding:1.25rem 1.5rem; flex:1; }
.tag{ display:inline-block; padding:.15rem .45rem; border-radius:.35rem; font-size:.66rem; font-weight:600; }
.tag.blue{ background:#e7efff; color:#2b56d9; } .tag.amber{ background:#fff1d6; color:#8a5c0f; } .tag.green{ background:var(--green-soft); color:var(--green-text); } .tag.red{ background:#fdeaea; color:#c2412f; } .tag.gray{ background:#eef0f4; color:var(--ink-2); font-weight:500; }
.av{ width:1.75rem; height:1.75rem; border-radius:50%; display:grid; place-items:center; font-size:.62rem; font-weight:600; background:#eee9ff; color:#5b3fd6; flex:none; }
.av.pink{ background:#fdeef6; color:#c33d84; } .av.green{ background:#e8f6ec; color:#2f7d47; } .av.orange{ background:#feead9; color:#b6570c; } .av.blue{ background:#e7efff; color:#2b56d9; }
.chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.28rem .6rem; border-radius:.5rem; border:1px solid var(--line); background:#fff; font-size:.72rem; font-weight:500; white-space:nowrap; }
.chip .n{ width:1rem; height:1rem; border-radius:.25rem; background:var(--green-soft); color:var(--green-text); font-size:.6rem; font-weight:700; display:grid; place-items:center; }
.chip.doc::before{ content:""; width:.65rem; height:.8rem; border-radius:2px; background:linear-gradient(#f0b0a0,#e57d69); }
.mini{ display:inline-block; padding:.32rem .6rem; border-radius:.45rem; border:1px solid var(--line); font-size:.7rem; font-weight:500; white-space:nowrap; background:#fff; }
.mini.dark{ background:var(--ink); color:#fff; border-color:transparent; } .mini.red{ border-color:#f3c3bd; color:#c2412f; } .mini.brand{ background:var(--brand); color:#fff; border-color:transparent; }

/* dashboard (hero) */
.dash_hi{ font-family:var(--serif); font-size:1.5rem; margin:.25rem 0 1rem; }
.dash_hi small{ display:block; font-family:var(--sans); font-size:.72rem; color:var(--muted); margin-bottom:.35rem; }
.dash_quick{ display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; margin-bottom:1.25rem; }
.q{ border-radius:.8rem; padding:1rem 1rem 1.1rem; color:#fff; min-height:6rem; display:flex; flex-direction:column; justify-content:flex-end; gap:.15rem; }
.q b{ font-weight:600; font-size:.95rem; } .q span{ font-size:.7rem; opacity:.85; }
.q.b{ background:linear-gradient(135deg,#3d6cf5,#6c8dff); } .q.g{ background:linear-gradient(135deg,#2fae63,#6bd08c); } .q.v{ background:linear-gradient(135deg,#7b4bf0,#b08cff); } .q.o{ background:linear-gradient(135deg,#f08a2e,#f6b47a); }
.tbl{ width:100%; border-collapse:collapse; font-size:.76rem; }
.tbl th{ text-align:left; font-weight:500; color:var(--muted); font-size:.68rem; padding:.55rem .6rem; border-bottom:1px solid var(--line); }
.tbl td{ padding:.6rem .6rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.tbl td small{ display:block; color:var(--muted); font-size:.64rem; }
.tbl .st{ display:flex; align-items:center; gap:.6rem; }
.tbl .over{ color:#c2412f; }

/* draft / evidence */
.draft{ font-family:var(--serif); font-size:.95rem; line-height:1.6; color:#1a2430; }
.draft b{ font-weight:600; }
.draft_t{ font-family:var(--serif); font-size:1.35rem; line-height:1.2; margin-bottom:.5rem; }
.draft_k{ font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:.35rem; }
.cite{ text-decoration:underline; text-decoration-color:rgba(47,158,91,.55); text-decoration-thickness:1.5px; text-underline-offset:3px; border-radius:2px; transition:background .25s; cursor:pointer; }
.cite.hot, .cite:hover{ background:rgba(47,158,91,.13); }
.sup{ display:inline-grid; place-items:center; min-width:1rem; height:1rem; padding:0 .2rem; margin-left:.15rem; border-radius:.25rem; background:var(--green-soft); color:var(--green-text); font-family:var(--sans); font-size:.6rem; font-weight:700; vertical-align:super; line-height:1; }
.evid{ background:#f6f7f9; border-radius:.75rem; padding:.85rem 1rem; margin:.9rem 0; }
.evid_l{ font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:.5rem; }
.evid_list{ display:flex; flex-wrap:wrap; gap:.4rem; }
.gband{ display:flex; gap:.7rem; align-items:flex-start; background:var(--green-soft); border:1px solid rgba(47,158,91,.25); border-radius:.75rem; padding:.75rem .9rem; font-size:.76rem; line-height:1.45; }
.gband i{ width:1.05rem; height:1.05rem; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; font-size:.62rem; font-style:normal; flex:none; margin-top:.05rem; }
.gband b{ font-weight:600; }
.pop{ position:absolute; z-index:5; width:19rem; background:#fff; border:1px solid var(--line); border-radius:.85rem; box-shadow:0 24px 48px -14px rgba(17,29,42,.3), 0 2px 8px rgba(17,29,42,.06); padding:.9rem 1rem 1rem; font-size:.74rem; line-height:1.45; transform-origin:top left; transition:opacity .3s var(--ease), transform .4s var(--ease); }
.pop.hide{ opacity:0; transform:translateY(6px) scale(.98); pointer-events:none; }
.pop_l{ font-size:.62rem; color:var(--muted); margin-bottom:.25rem; }
.pop_q{ font-family:var(--serif); color:#2a3541; margin-bottom:.7rem; }
.pop_f{ border-left:3px solid var(--green); padding:.5rem .75rem; background:#f8faf8; border-radius:0 .5rem .5rem 0; font-family:var(--serif); color:#1a2430; }
.pop_f b{ font-weight:700; }
.pop_s{ display:flex; align-items:center; gap:.45rem; margin-top:.6rem; font-weight:500; }
.pop_o{ margin-top:.5rem; text-align:right; color:var(--green-text); font-weight:600; }
.rail{ font-size:.72rem; color:var(--muted); width:11rem; flex:none; }
.rail_h{ display:flex; justify-content:space-between; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.4rem; }
.rail_b{ height:4px; border-radius:2px; background:#eceef2; overflow:hidden; margin-bottom:.9rem; }
.rail_b i{ display:block; height:100%; width:0; background:var(--green); transition:width 1.2s var(--ease); }
.rail ul{ list-style:none; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.rail li{ display:flex; justify-content:space-between; align-items:center; gap:.5rem; }
.rail li.on{ color:var(--ink); font-weight:500; }
.rail li.amber{ color:var(--amber); }
.tick{ width:.85rem; height:.85rem; border-radius:50%; border:1px solid #d8dde3; display:grid; place-items:center; font-size:.55rem; color:var(--green-text); }
.tick.done{ background:var(--green-soft); border-color:transparent; }
.tick.amb{ background:var(--amber); border-color:transparent; width:.45rem; height:.45rem; }

/* ---------- hero ---------- */
.hero{ padding-top:clamp(8rem, 14vw, 11.5rem); }
.hero .hd{ max-width:52rem; }
.hero .lead{ margin-top:1.5rem; font-size:clamp(1.15rem, 1.7vw, 1.4rem); max-width:36rem; }
.hero .ctas{ justify-content:center; margin-top:2.25rem; }
.hero_note{ margin-top:1rem; font-size:.9rem; color:var(--muted); }
.hero_stage{ margin-top:clamp(3.5rem, 7vw, 6rem); position:relative; }
.hero_stage .win{ height:38rem; }
.hiw_win .pane{ display:flex; flex-direction:column; }
.hiw_win .win_body{ overflow:hidden; }
.hero_stage::after{ content:""; position:absolute; inset:auto 0 0 0; height:9rem; background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 90%); pointer-events:none; }
.trust{ display:flex; gap:2.5rem; align-items:center; justify-content:center; flex-wrap:wrap; margin-top:3rem; padding-top:2.5rem; border-top:1px solid var(--line); }
.trust p{ font-size:.9rem; color:var(--muted); width:100%; text-align:center; margin-bottom:.5rem; }
.trust img{ height:1.75rem; width:auto; opacity:.55; filter:grayscale(1); }

/* ---------- how it works (sticky) ---------- */
.hiw{ display:grid; grid-template-columns:minmax(18rem, .8fr) 1.5fr; gap:clamp(2rem, 5vw, 5rem); align-items:start; min-height:380vh; }
.hiw_left{ position:sticky; top:6.5rem; display:flex; flex-direction:column; gap:1.5rem; }
.hiw_steps{ display:flex; flex-direction:column; gap:.25rem; margin-top:2.5rem; }
.step{ display:grid; grid-template-columns:2.5rem 1fr; gap:.75rem; padding:.9rem .9rem; border-radius:.9rem; text-align:left; opacity:.45; transition:opacity .3s, background .3s; }
.step:hover{ opacity:.8; }
.step.on{ opacity:1; background:var(--surface); }
.step_n{ font-family:var(--display); color:var(--brand); padding-top:.2rem; }
.step h3{ font-family:var(--display); font-weight:400; font-size:1.35rem; line-height:1.15; letter-spacing:-.01em; }
.step p{ font-size:.95rem; color:var(--ink-2); margin-top:.3rem; }
.hiw_right{ position:sticky; top:6.5rem; }
.hiw_win{ position:relative; height:min(36rem, calc(100vh - 8rem)); }
.pane{ position:absolute; inset:0; opacity:0; transition:opacity .45s var(--ease); pointer-events:none; }
.pane.on{ opacity:1; pointer-events:auto; }
.hiw_spacer{ display:none; }
/* file pane */
.file_head{ display:flex; align-items:center; gap:.9rem; padding-bottom:.9rem; border-bottom:1px solid var(--line); margin-bottom:.9rem; }
.file_head .av{ width:2.75rem; height:2.75rem; font-size:.9rem; }
.file_head b{ display:block; font-weight:600; font-size:1rem; } .file_head span{ font-size:.72rem; color:var(--muted); }
.file_meta{ display:flex; gap:1.5rem; font-size:.7rem; color:var(--muted); margin-bottom:1rem; } .file_meta b{ display:block; color:var(--ink); font-weight:600; font-size:.8rem; }
.docs{ display:grid; grid-template-columns:1fr 1fr; gap:.45rem; }
.doc{ display:flex; align-items:center; gap:.6rem; border:1px solid var(--line); border-radius:.6rem; padding:.5rem .65rem; font-size:.72rem; }
.doc i{ width:.9rem; height:1.1rem; border-radius:2px; background:linear-gradient(#f0b0a0,#e57d69); flex:none; }
.doc b{ font-weight:500; display:block; } .doc small{ color:var(--muted); font-size:.62rem; }
.drop{ margin-top:.75rem; border:1.5px dashed #cfd4dc; border-radius:.7rem; padding:.8rem; text-align:center; color:var(--muted); font-size:.72rem; }
/* snapshot pane */
.snap{ max-width:24rem; margin:0 auto; border:1px solid var(--line); border-radius:.9rem; overflow:hidden; }
.snap_h{ background:linear-gradient(135deg,#2e46f0,#4f1cf8); color:#fff; padding:.9rem 1.1rem; display:flex; gap:.7rem; align-items:center; }
.snap_h b{ font-weight:600; display:block; font-size:.9rem; } .snap_h span{ font-size:.68rem; opacity:.85; }
.snap_m{ display:grid; grid-template-columns:repeat(4,1fr); padding:.75rem 1.1rem; border-bottom:1px solid var(--line); font-size:.62rem; color:var(--muted); } .snap_m b{ display:block; color:var(--ink); font-weight:600; font-size:.74rem; }
.snap_s{ padding:.7rem 1.1rem; border-bottom:1px solid var(--line); } .snap_s h4{ margin:0 0 .3rem; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); } .snap_s ul{ padding-left:1rem; font-size:.74rem; }
.snap_a{ display:flex; gap:.5rem; padding:.8rem 1.1rem; } .snap_a span{ flex:1; text-align:center; font-size:.7rem; font-weight:500; padding:.45rem; border-radius:.5rem; border:1px solid var(--line); } .snap_a span:first-child{ background:var(--brand); color:#fff; border-color:transparent; }
.toast{ position:absolute; right:1.25rem; bottom:1.25rem; background:var(--ink); color:#fff; border-radius:.7rem; padding:.6rem .85rem; font-size:.74rem; display:flex; gap:.5rem; align-items:center; box-shadow:0 10px 30px -10px rgba(0,0,0,.4); }
.toast i{ width:1rem; height:1rem; border-radius:50%; background:var(--green); display:grid; place-items:center; font-size:.6rem; font-style:normal; }

/* ---------- chapters ---------- */
.chapter{ padding-top:var(--gap); }
.chapter .hd{ margin-bottom:clamp(2.5rem, 5vw, 4rem); }
.chapter .stage{ position:relative; }
.split{ display:grid; grid-template-columns:.8fr 1.3fr; gap:clamp(2.5rem, 6vw, 6rem); align-items:center; }
.split .hd{ margin-bottom:0; }
/* chat */
.chat{ max-width:40rem; margin-left:auto; }
.chat_t{ display:flex; flex-direction:column; gap:.9rem; padding:1.25rem 1.25rem .5rem; min-height:18rem; }
.bub{ max-width:88%; padding:.8rem .95rem; border-radius:1rem; font-size:.82rem; line-height:1.5; }
.bub.u{ align-self:flex-end; background:var(--brand-soft); border-bottom-right-radius:.3rem; }
.bub.a{ align-self:flex-start; background:#f6f7f9; border-bottom-left-radius:.3rem; }
.bub .evid_list{ margin-top:.6rem; }
.typing{ align-self:flex-start; display:flex; align-items:center; gap:.5rem; color:var(--muted); font-size:.74rem; }
.typing img{ width:2.6rem; }
.chat_in{ margin:.75rem 1.25rem 1rem; display:flex; align-items:center; gap:.5rem; border:1px solid var(--line); border-radius:.8rem; padding:.6rem .8rem; color:var(--muted); font-size:.8rem; }
.chat_in i{ margin-left:auto; width:1.6rem; height:1.6rem; border-radius:50%; background:var(--brand); }
.chat_f{ display:flex; gap:.5rem; align-items:center; padding:.6rem 1.25rem .9rem; font-size:.7rem; color:var(--muted); border-top:1px solid var(--line); }
.tw{ white-space:pre-wrap; }
.caret{ display:inline-block; width:2px; height:.9em; background:var(--ink); vertical-align:-.1em; margin-left:1px; animation:blink 1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0 } }
/* progress */
.prog_grid{ display:grid; grid-template-columns:1.1fr .9fr; }
.prog_l{ padding:1.25rem 1.5rem; border-right:1px solid var(--line); }
.prog_r{ padding:1.25rem 1.5rem; background:#fafafb; }
.prog_row{ display:flex; gap:.5rem; align-items:center; font-size:.74rem; color:var(--muted); margin-bottom:.6rem; } .prog_row b{ color:var(--ink); font-weight:600; }
.prog_txt{ font-size:.82rem; line-height:1.5; background:#f6f7f9; border-radius:.6rem; padding:.75rem .9rem; min-height:4rem; }
.status{ display:flex; gap:.4rem; margin-top:.7rem; flex-wrap:wrap; } .status span{ font-size:.68rem; padding:.28rem .55rem; border-radius:1rem; border:1px solid var(--line); color:var(--muted); } .status span.on{ border-color:var(--green); color:var(--green-text); background:var(--green-soft); }
.stu{ display:grid; grid-template-columns:1.75rem 1fr auto; gap:.7rem; align-items:center; padding:.65rem 0; font-size:.78rem; border-bottom:1px solid var(--line); } .stu small{ display:block; color:var(--muted); font-size:.66rem; }
.dots{ display:flex; gap:.25rem; } .dots i{ width:.62rem; height:.62rem; border-radius:50%; background:#e4e7ec; transform:scale(.6); opacity:.5; } .dots i.g{ background:var(--green); } .dots i.o{ background:#f2a33a; } .dots i.b{ background:#479ff8; }
.dots.static i{ transform:none; opacity:1; }
.report{ margin-top:1rem; display:flex; align-items:center; gap:.7rem; padding:.8rem .9rem; border-radius:.7rem; background:var(--green-soft); border:1px solid rgba(47,158,91,.25); font-size:.76rem; } .report b{ display:block; font-weight:600; } .report span{ margin-left:auto; color:var(--green-text); font-weight:600; }
.sparks{ height:5.5rem; margin-top:1rem; }
.sparks svg{ width:100%; height:100%; overflow:visible; }
/* scheduler */
.sched .tbl th:first-child, .sched .tbl td:first-child{ padding-left:1.5rem; }
.sched .tbl tr{ transition:background .2s; } .sched .tbl tbody tr:hover{ background:#fafafb; }
.sched_top{ display:flex; align-items:center; gap:1rem; padding:1rem 1.5rem; border-bottom:1px solid var(--line); }
.sched_top b{ font-weight:600; font-size:.9rem; } .sched_top span{ color:var(--muted); font-size:.74rem; }
.sched_top .seg{ display:flex; gap:.25rem; margin-left:auto; } .seg span{ padding:.3rem .6rem; border-radius:.45rem; font-size:.7rem; font-weight:500; } .seg span.on{ background:var(--ink); color:#fff; }
/* copilot */
.cop_h{ text-align:center; padding:1.75rem 1.5rem .5rem; } .cop_h b{ font-weight:600; font-size:1.4rem; display:block; } .cop_h span{ color:var(--muted); font-size:.82rem; }
.cop_tabs{ display:flex; justify-content:center; gap:.25rem; margin:1rem auto 1.5rem; padding:.3rem; border:1px solid var(--line); border-radius:999px; width:max-content; max-width:100%; overflow:auto; }
.cop_tabs button{ padding:.5rem .95rem; border-radius:999px; font-size:.8rem; font-weight:500; color:var(--ink-2); white-space:nowrap; transition:background .2s, color .2s; }
.cop_tabs button[aria-selected="true"]{ background:var(--ink); color:#fff; }
.cop_grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; padding:0 1.5rem 1.75rem; }
.tool{ border:1px solid var(--line); border-radius:.85rem; padding:1rem; display:flex; flex-direction:column; gap:.55rem; min-height:8rem; background:#fff; transition:opacity .35s var(--ease), transform .45s var(--ease); }
.tool.off{ opacity:.14; transform:scale(.97); }
.tool i{ width:2.2rem; height:2.2rem; border-radius:.6rem; display:grid; place-items:center; } .tool i img{ width:1rem; height:1rem; }
.tool i.c1{ background:linear-gradient(135deg,#5f6cf5,#8b7bff); } .tool i.c2{ background:linear-gradient(135deg,#2fa889,#67c9b2); } .tool i.c3{ background:linear-gradient(135deg,#b46bf0,#d59cff); } .tool i.c4{ background:linear-gradient(135deg,#f08a2e,#f6b47a); }
.tool b{ font-weight:600; font-size:.82rem; } .tool span{ font-size:.7rem; color:var(--muted); line-height:1.35; }
.tool.soon{ opacity:.55; }

/* ---------- safe (dark) ---------- */
.safe{ background:var(--dark); color:#fff; margin-top:var(--gap); padding-block:var(--gap); }
.safe .kicker{ color:#8fb4ff; }
.safe .h2{ max-width:16ch; }
.safe_grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin-top:4rem; padding-top:2.5rem; border-top:1px solid rgba(255,255,255,.12); }
.safe_it b{ font-family:var(--display); font-weight:400; font-size:1.35rem; display:block; margin-bottom:.5rem; }
.safe_it p{ color:rgba(255,255,255,.66); font-size:.95rem; }
.safe_it .num{ font-family:var(--display); font-size:2.8rem; line-height:1; color:#8fb4ff; display:block; margin-bottom:.5rem; }
.safe .ctas{ margin-top:3rem; }

/* ---------- team ---------- */
.seg2{ display:inline-flex; gap:.25rem; padding:.25rem; border-radius:999px; background:var(--surface); margin-top:2rem; }
.seg2 button{ padding:.6rem 1.15rem; border-radius:999px; font-weight:500; font-size:.95rem; color:var(--muted); transition:background .25s, color .25s, box-shadow .25s; }
.seg2 button[aria-selected="true"]{ background:#fff; color:var(--ink); box-shadow:0 2px 10px rgba(17,29,42,.1); }
.team_p{ display:none; grid-template-columns:.8fr 1.3fr; gap:3rem; align-items:center; margin-top:2.5rem; }
.team_p.on{ display:grid; }
.team_p ul{ list-style:none; padding:0; margin-top:1rem; display:flex; flex-direction:column; gap:.55rem; color:var(--ink-2); }
.team_p li{ display:flex; gap:.6rem; } .team_p li::before{ content:"✓"; color:var(--green-text); font-weight:700; font-size:.85rem; }

/* ---------- proof ---------- */
.quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:3rem; }
.quote{ border-top:1px solid var(--line); padding-top:1.5rem; display:flex; flex-direction:column; gap:1.25rem; }
.quote p{ font-family:var(--display); font-size:1.3rem; line-height:1.3; letter-spacing:-.01em; }
.quote .who{ display:flex; gap:.75rem; align-items:center; margin-top:auto; } .who img{ width:2.5rem; height:2.5rem; border-radius:50%; object-fit:cover; background:#e8f0ff; }
.who b{ display:block; font-weight:500; font-size:.95rem; } .who span{ font-size:.85rem; color:var(--muted); }

/* ---------- paths ---------- */
.paths{ margin-top:3rem; border-top:1px solid var(--line); }
.path{ display:grid; grid-template-columns:1fr 1fr auto; gap:2rem; align-items:center; padding:2rem 0; border-bottom:1px solid var(--line); }
.path p{ color:var(--ink-2); } .path small{ display:block; margin-top:.3rem; font-size:.85rem; color:var(--muted); }

/* ---------- faq ---------- */
.faq{ max-width:46rem; margin-top:2.5rem; }
.faq details{ border-top:1px solid var(--line); }
.faq details:last-of-type{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; padding:1.25rem 0; font-weight:500; font-size:1.125rem; display:flex; justify-content:space-between; gap:1rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--muted); transition:transform .25s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ padding:0 0 1.25rem; color:var(--ink-2); max-width:40rem; }

/* ---------- cta + footer ---------- */
.cta{ margin-top:var(--gap); background:var(--surface); border-radius:1.5rem; padding:clamp(3.5rem, 7vw, 6rem) clamp(1.5rem, 5vw, 5rem); position:relative; overflow:clip; text-align:center; }
.cta .h2{ margin-inline:auto; }
.cta .ctas{ justify-content:center; margin-top:2rem; }
.cta_dino{ position:absolute; right:2rem; bottom:-.5rem; width:7.5rem; }
.foot{ margin-top:4rem; padding:3rem 0 2rem; border-top:1px solid var(--line); }
.foot_g{ display:grid; grid-template-columns:1.5fr repeat(4,1fr); gap:2rem; }
.foot_g img{ width:8.25rem; }
.foot_g p{ font-size:.9rem; color:var(--muted); margin-top:1rem; }
.foot_g h4{ margin:0 0 .75rem; font-size:.85rem; font-weight:500; color:var(--muted); }
.foot_g a{ display:block; font-size:.95rem; padding:.25rem 0; }
.foot_g a:hover{ color:var(--brand); }
.foot_b{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:2.5rem; padding-top:1.25rem; border-top:1px solid var(--line); font-size:.85rem; color:var(--muted); }
.foot_b a{ margin-left:1.25rem; }

/* ---------- responsive ---------- */
@media (max-width: 1023px){
  .nav_menu, .nav_login{ display:none; }
  .nav_burger{ display:inline-flex; }
  .nav.is-open .sheet{ display:block; position:fixed; inset:4rem 0 0 0; background:#fff; padding:1rem 1.5rem 2rem; overflow:auto; }
  .sheet details{ border-bottom:1px solid var(--line); } .sheet summary{ list-style:none; padding:1rem 0; font-weight:500; font-size:1.1rem; cursor:pointer; display:flex; justify-content:space-between; } .sheet summary::-webkit-details-marker{ display:none; } .sheet summary::after{ content:"+"; color:var(--muted); }
  .sheet details[open] summary::after{ content:"–"; }
  .sheet a{ display:block; padding:.6rem 0; color:var(--ink-2); } .sheet .sheet_a{ font-weight:500; font-size:1.1rem; color:var(--ink); padding:1rem 0; border-bottom:1px solid var(--line); }
  .sheet .ctas{ margin-top:1.5rem; }
  .win.is-app{ grid-template-columns:1fr; } .win_side{ display:none; }
  .hero_stage .win{ height:30rem; }
  .hiw{ grid-template-columns:minmax(0,1fr); min-height:auto; }
  .hiw_left, .hiw_right, .hiw_win, .pane, .win_body, .win_main, .win{ min-width:0; }
  .file_meta{ flex-wrap:wrap; gap:.75rem 1.25rem; }
  .hiw_left{ position:static; } .hiw_right{ position:static; }
  .hiw_win{ height:auto; } .hiw_win .pane{ position:relative; display:none; opacity:1; } .hiw_win .pane.on{ display:flex; }
  .hiw_spacer{ display:none; }
  .split{ grid-template-columns:1fr; }
  .chat{ margin-left:0; }
  .prog_grid{ grid-template-columns:1fr; } .prog_l{ border-right:0; border-bottom:1px solid var(--line); }
  .cop_grid{ grid-template-columns:repeat(2,1fr); }
  .safe_grid{ grid-template-columns:1fr 1fr; }
  .team_p{ grid-template-columns:1fr; }
  .quotes{ grid-template-columns:1fr; }
  .path{ grid-template-columns:1fr; gap:1rem; }
  .foot_g{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px){
  .wrap, .wrap-wide{ width:min(100% - 2rem, 1200px); }
  .dash_quick{ grid-template-columns:1fr 1fr; }
  .tbl th:nth-child(n+4), .tbl td:nth-child(n+4){ display:none; }
  .docs{ grid-template-columns:1fr; }
  .rail{ display:none; }
  .doc b{ white-space:normal; }
  .pop{ position:relative; width:100%; margin-top:1rem; left:auto !important; top:auto !important; }
  .cop_grid{ grid-template-columns:1fr; }
  .safe_grid{ grid-template-columns:1fr; }
  .hero .ctas .btn{ width:100%; justify-content:center; }
  .cta_dino{ width:5rem; right:.75rem; }
  .foot_g{ grid-template-columns:1fr; }
  .trust{ gap:1.25rem; }
  .sched_top{ flex-wrap:wrap; gap:.5rem .75rem; } .sched_top .seg{ display:none; }
  .h1{ font-size:clamp(2.6rem, 11.5vw, 3.2rem); }
}
@media (prefers-reduced-motion: reduce){
  .caret{ animation:none; }
  .pane, .pop, .tool, .step, .btn{ transition:none; }
  .dots i{ transform:none; opacity:1; }
}
