/* =====================================================================
   Klipová farma – theme
   ---------------------------------------------------------------------
   1) DESIGN TOKENS  – change colours / fonts / sizes here only.
   2) BASE + CHROME  – slide padding, header, footer.
   3) COMPONENTS     – phone frame, cards, avatars, slots, chips…
   4) SLIDE LAYOUTS  – one block per slide (search for "S07" etc.)
   5) MOTION         – entrance animations + custom Reveal fragments.
   ===================================================================== */

/* ---------- 1) DESIGN TOKENS ---------------------------------------- */
:root{
  /* palette – dark stage (default) */
  --bg:        #0d0d0b;   /* slide background            */
  --surface:   #161613;   /* cards                        */
  --surface-2: #1d1d19;   /* raised / hover               */
  --line:      #2c2b26;   /* hairlines + borders          */
  --text:      #efede6;   /* primary text                 */
  --muted:     #8e8b81;   /* secondary text               */
  --faint:     #55534c;   /* tertiary / ticks             */
  --accent:    #d6f84a;   /* THE one accent (signal lime) */
  --accent-ink:#0d0d0b;   /* text on accent               */
  --todo:      #ffb547;   /* "doplň" placeholders only    */

  /* Grok Bot avatar colours (from the app's palette) */
  --bot-chief: #FF9800;   /* yellow  */
  --bot-scout: #FF6700;   /* orange  */
  --bot-clip:  #00BCA6;   /* cyan    */
  --bot-post:  #1084FE;   /* blue    */
  --bot-group: #FF309B;   /* magenta */

  /* type */
  --f-sans:  "Inter Tight", "Inter", system-ui, sans-serif;
  --f-serif: "Instrument Serif", Georgia, serif;
  --f-mono:  "JetBrains Mono", ui-monospace, monospace;

  /* rhythm (slide is 1920×1080, Reveal scales it to any screen) */
  --pad-x: 120px;
  --pad-top: 150px;   /* space under the header row */
  --radius: 22px;
  --ease: cubic-bezier(.2,.7,.1,1);
}
/* light theme – press L during the talk, or add class="light" to <html> */
html.light{
  --bg:#f4f2ec; --surface:#ffffff; --surface-2:#ecebe4; --line:#d9d6cc;
  --text:#14140f; --muted:#68655c; --faint:#b0ada2; --accent:#3f5c00; --accent-ink:#f4f2ec; --todo:#b25e00;
}
html.light .accent-fill{ --accent:#d6f84a; }

/* ---------- 2) BASE + CHROME ---------------------------------------- */
html,body{ background:var(--bg); }
.reveal-viewport{ background:var(--bg); }
.reveal{ font-family:var(--f-sans); color:var(--text); font-size:28px; font-weight:400;
  -webkit-font-smoothing:antialiased; font-feature-settings:"ss01","cv11"; }
.reveal .slides{ text-align:left; }
.reveal .slides section{ height:1080px; width:1920px; padding:0; box-sizing:border-box; }
.reveal .slides section > .inner{ position:absolute; inset:var(--pad-top) var(--pad-x) 120px var(--pad-x); }
.reveal h1,.reveal h2,.reveal h3,.reveal p{ margin:0; }
.reveal em{ font-family:var(--f-serif); font-style:italic; font-weight:400; letter-spacing:0; }
.reveal b,.reveal strong{ font-weight:600; }
.reveal ::selection{ background:var(--accent); color:var(--accent-ink); }

/* header row (auto-injected by js/deck.js from data-kicker) */
.chrome-top{ position:absolute; top:64px; left:var(--pad-x); right:var(--pad-x); display:flex; justify-content:space-between; align-items:center; }
.chrome-bot{ position:absolute; bottom:52px; left:var(--pad-x); right:var(--pad-x); display:flex; justify-content:space-between; align-items:center; padding-top:22px; border-top:1px solid var(--line); }
.label,.chrome-top,.chrome-bot{ font-family:var(--f-mono); font-size:17px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.chrome-top .kicker::before{ content:""; display:inline-block; width:10px; height:10px; background:var(--accent); margin-right:14px; vertical-align:1px; }

/* the Grok Bot text wordmark (no official logo – deliberately plain type) */
.gb{ font-family:var(--f-sans); font-weight:700; letter-spacing:-.02em; text-transform:none; color:var(--text); }
.gb-tag{ display:inline-flex; align-items:center; gap:12px; }
.gb-tag .gb{ font-size:20px; }

/* headings */
.h-xl{ font-size:150px; line-height:.92; font-weight:700; letter-spacing:-.045em; }
.h-l { font-size:92px; line-height:.98; font-weight:700; letter-spacing:-.04em; }
.h-m { font-size:64px; line-height:1.02; font-weight:600; letter-spacing:-.035em; }
.h-s { font-size:40px; line-height:1.1; font-weight:600; letter-spacing:-.025em; }
.lead{ font-size:34px; line-height:1.3; color:var(--muted); letter-spacing:-.01em; }
.body{ font-size:26px; line-height:1.4; color:var(--muted); }
.small{ font-size:21px; line-height:1.4; color:var(--muted); }
.num { font-weight:700; letter-spacing:-.05em; font-variant-numeric:tabular-nums; line-height:.9; }
.mono{ font-family:var(--f-mono); }
.acc { color:var(--accent); }
.mut { color:var(--muted); }
.title-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:60px; margin-bottom:44px; }

/* ---------- 3) COMPONENTS ------------------------------------------- */
.card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:36px; position:relative; }
.rule{ height:1px; background:var(--line); }
.chip{ display:inline-flex; align-items:center; font-family:var(--f-mono); font-size:16px; letter-spacing:.03em; padding:7px 13px; border-radius:999px; border:1px solid var(--line); color:var(--text); white-space:nowrap; }
.chip.solid{ background:var(--accent); color:var(--accent-ink); border-color:transparent; }
.chips{ display:flex; flex-wrap:wrap; gap:9px; }
.idx{ font-family:var(--f-mono); font-size:18px; color:var(--faint); letter-spacing:.05em; }

/* bot avatar (Grok Bot mark) */
.av{ width:72px; height:72px; display:block; }
.av.sm{ width:44px; height:44px; } .av.lg{ width:96px; height:96px; }

/* phone frame – wraps a vertical 9:16 video/image */
.phone{ position:relative; width:340px; aspect-ratio:9/18.6; border-radius:52px; background:#050505; padding:12px;
  box-shadow:0 0 0 1.5px #2e2e2b inset, 0 0 0 1px #000, 0 40px 80px -30px rgba(0,0,0,.7); }
.phone .screen{ position:absolute; inset:12px; border-radius:41px; overflow:hidden; background:#000; }
.phone .screen > video,.phone .screen > img{ width:100%; height:100%; object-fit:cover; display:block; }
.phone::after{ content:""; position:absolute; top:24px; left:50%; width:96px; height:28px; transform:translateX(-50%); background:#050505; border-radius:20px; z-index:2; }
html.light .phone{ box-shadow:0 0 0 1.5px #2e2e2b inset, 0 30px 60px -30px rgba(0,0,0,.35); }

/* screenshot slot – drop a file at the path in src and it appears; until then a labelled placeholder shows */
.slot{ position:relative; margin:0; border-radius:var(--radius); overflow:hidden; background:repeating-linear-gradient(-45deg, transparent 0 14px, rgba(255,181,71,.05) 14px 28px); outline:2px dashed var(--todo); outline-offset:-2px; }
.slot > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top; z-index:1; }
.slot > img[hidden]{ display:none; }
.slot .slot-msg{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; gap:14px; padding:34px; color:var(--todo); }
.slot .slot-msg b{ font-family:var(--f-mono); font-size:15px; letter-spacing:.1em; text-transform:uppercase; font-weight:500; }
.slot .slot-msg span{ font-size:24px; line-height:1.3; color:var(--text); }
.slot .slot-msg code{ font-family:var(--f-mono); font-size:14px; color:var(--muted); word-break:break-all; }
.phone .screen.slot{ border-radius:41px; outline-offset:-3px; }

/* "doplň" placeholder text – deliberately loud so it can't be forgotten */
.todo{ color:var(--todo); font-family:var(--f-mono); font-weight:500; background:rgba(255,181,71,.08); border:1.5px dashed var(--todo); border-radius:12px; padding:.12em .4em; letter-spacing:-.01em; }
.todo-badge{ display:inline-block; font-family:var(--f-mono); font-size:15px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-ink); background:var(--todo); padding:6px 12px; border-radius:8px; }

/* figure caption / source line */
.src{ font-family:var(--f-mono); font-size:15px; letter-spacing:.04em; color:var(--faint); text-transform:uppercase; }

/* ---------- 4) SLIDE LAYOUTS ---------------------------------------- */

/* S01 title */
.reveal .slides section.s-title > .inner{ inset:0; }
.s-title .t-left{ position:absolute; left:var(--pad-x); top:210px; width:1000px; }
.s-title h1{ font-size:224px; line-height:.86; font-weight:800; letter-spacing:-.055em; }
.s-title h1 .colon{ color:var(--accent); }
.s-title h2{ margin-top:44px; font-family:var(--f-serif); font-style:italic; font-weight:400; font-size:64px; line-height:1.08; letter-spacing:-.01em; color:var(--text); max-width:900px; }
.s-title .who{ position:absolute; left:var(--pad-x); right:var(--pad-x); bottom:64px; display:flex; justify-content:space-between; align-items:flex-end; border-top:1px solid var(--line); padding-top:26px; }
.s-title .who .name{ font-size:30px; font-weight:600; letter-spacing:-.015em; }
.s-title .who .name span{ color:var(--muted); font-weight:400; }
.s-title .phones{ position:absolute; right:100px; top:150px; width:640px; height:760px; }
.s-title .phones .phone{ position:absolute; width:300px; }
.s-title .phones .p1{ left:0; top:120px; transform:rotate(-8deg); }
.s-title .phones .p2{ left:170px; top:20px; z-index:2; width:320px; }
.s-title .phones .p3{ left:350px; top:140px; transform:rotate(7deg); }
.s-title .topline{ position:absolute; top:64px; left:var(--pad-x); right:var(--pad-x); display:flex; justify-content:space-between; }
.s-title .built{ font-family:var(--f-mono); font-size:17px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:14px; }
.s-title .built .gb{ font-size:30px; }

/* S02 about */
.s-about .grid{ display:grid; grid-template-columns: 1fr 1.05fr; gap:120px; height:100%; }
.s-about .facts{ align-self:end; }
.s-about .row{ display:grid; grid-template-columns:220px 1fr; padding:24px 0; border-top:1px solid var(--line); align-items:baseline; }
.s-about .row:last-child{ border-bottom:1px solid var(--line); }
.s-about .row .v{ font-size:34px; letter-spacing:-.015em; }

/* S03 problem */
.s-problem .grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:110px; margin-top:20px; }
.s-problem .dur{ display:flex; align-items:flex-end; gap:40px; }
.s-problem .dur .n{ font-size:200px; }
.s-problem .dur .arrow{ font-size:80px; color:var(--faint); padding-bottom:40px; font-weight:300; }
.s-problem .bar{ position:relative; height:26px; background:var(--surface-2); border-radius:6px; margin:56px 0 18px; overflow:hidden; }
.s-problem .bar i{ position:absolute; left:15.6%; width:1.7%; top:0; bottom:0; background:var(--accent); }
.s-problem ol{ list-style:none; margin:0; padding:0; }
.s-problem li{ display:grid; grid-template-columns:70px 1fr; padding:22px 0; border-top:1px solid var(--line); font-size:32px; letter-spacing:-.015em; align-items:baseline; }
.s-problem li:last-child{ border-bottom:1px solid var(--line); }

/* S04 idea statement */
.s-idea .inner{ display:flex; flex-direction:column; justify-content:center; }
.s-idea .statement{ font-size:132px; line-height:.95; font-weight:700; letter-spacing:-.05em; max-width:1500px; }
.s-idea .statement em{ color:var(--accent); font-size:1.08em; }
.s-idea .sub{ margin-top:56px; font-size:40px; color:var(--muted); letter-spacing:-.015em; max-width:1300px; }
.s-idea .sub b{ color:var(--text); font-weight:500; }
.gb-hero{ font-size:44px; }
.s-idea .gbline{ position:absolute; left:0; bottom:0; display:flex; align-items:baseline; gap:18px; }

/* S05 Grok Bot */
.s-gb .grid{ display:grid; grid-template-columns:1fr 440px; gap:110px; height:100%; }
.s-gb .wm{ display:flex; align-items:baseline; gap:24px; }
.s-gb .wm .gb-hero{ font-size:150px; letter-spacing:-.05em; line-height:.9; }
.s-gb .intro{ font-size:36px; line-height:1.3; letter-spacing:-.015em; margin:30px 0 46px; max-width:1000px; }
.s-gb .feats{ display:grid; grid-template-columns:1fr 1fr; column-gap:56px; }
.s-gb .feat{ display:grid; grid-template-columns:56px 1fr; padding:22px 0; border-top:1px solid var(--line); }
.s-gb .feat h3{ font-size:30px; font-weight:600; letter-spacing:-.02em; }
.s-gb .feat p{ font-size:22px; line-height:1.35; color:var(--muted); margin-top:6px; }
.s-gb .side{ display:flex; flex-direction:column; align-items:center; gap:18px; margin-top:-30px; }
.s-gb .side .phone{ width:380px; }

/* S06 team */
.s-team .cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.s-team .card{ padding:34px 32px 30px; height:570px; display:flex; flex-direction:column; }
.s-team .card .top{ display:flex; justify-content:space-between; align-items:flex-start; }
.s-team .card h3{ font-size:46px; line-height:1; font-weight:700; letter-spacing:-.035em; margin:32px 0 6px; }
.s-team .card .role{ font-family:var(--f-mono); font-size:16px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.s-team .card p.d{ font-size:23px; line-height:1.38; color:var(--text); margin-top:22px; }
.s-team .card .tools{ margin-top:auto; padding-top:20px; }
.s-team .card .never{ margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:19px; color:var(--muted); line-height:1.35; }
.s-team .card .never b{ font-family:var(--f-mono); font-size:14px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); font-weight:500; margin-right:8px; }
.s-team .group{ display:flex; align-items:center; gap:20px; margin-top:24px; font-size:24px; color:var(--muted); }
.s-team .group b{ color:var(--text); font-weight:500; }

/* S07 pipeline */
.s-pipe .stage{ position:relative; height:680px; }
.s-pipe .node{ position:absolute; width:250px; display:flex; flex-direction:column; align-items:center; text-align:center; }
.s-pipe .node .av{ width:96px; height:96px; }
.s-pipe .node .disc{ width:96px; height:96px; border-radius:50%; display:grid; place-items:center; border:1.5px solid var(--line); background:var(--surface); font-weight:700; font-size:30px; letter-spacing:-.03em; }
.s-pipe .node .disc.yt{ border-radius:24px; background:var(--accent); color:var(--accent-ink); border-color:transparent; font-size:22px; }
.s-pipe .node .disc.pz{ border-radius:24px; font-family:var(--f-mono); font-size:20px; }
.s-pipe .node h3{ font-size:32px; font-weight:600; letter-spacing:-.025em; margin-top:20px; }
.s-pipe .node .role{ font-family:var(--f-mono); font-size:15px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-top:6px; }
.s-pipe .wire{ position:absolute; height:2px; background:var(--faint); transform-origin:left center; }
.s-pipe .wire.v{ width:2px; height:auto; transform-origin:center top; }
.s-pipe .wire::after{ content:""; position:absolute; right:-2px; top:-5px; border-left:10px solid var(--faint); border-top:6px solid transparent; border-bottom:6px solid transparent; }
.s-pipe .wire.v::after{ right:auto; left:-5px; top:auto; bottom:-2px; border-left:6px solid transparent; border-right:6px solid transparent; border-top:10px solid var(--faint); border-bottom:0; }
.s-pipe .wire.up::after{ bottom:auto; top:-2px; border-top:0; border-bottom:10px solid var(--faint); }
.s-pipe .hand{ position:absolute; font-size:21px; line-height:1.3; color:var(--muted); text-align:center; width:230px; }
.s-pipe .hand b{ display:block; font-family:var(--f-mono); font-size:14px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); font-weight:500; margin-bottom:6px; }
.s-pipe .token{ position:absolute; width:50px; height:89px; border-radius:9px; overflow:hidden; border:2px solid var(--accent); left:0; top:0; z-index:5; opacity:0; box-shadow:0 10px 30px -10px rgba(0,0,0,.8); }
.s-pipe .token img{ width:100%; height:100%; object-fit:cover; }
.s-pipe .ig{ position:absolute; border:1.5px dashed var(--line); border-radius:18px; padding:18px 22px; width:250px; text-align:center; }
.s-pipe .ig h3{ font-size:26px; font-weight:600; color:var(--muted); letter-spacing:-.02em; }

/* S08 one clip */
.s-clip .grid{ display:grid; grid-template-columns:400px 1fr; gap:100px; }
.s-clip .phone{ width:400px; margin-top:-20px; }
.s-clip .srcline{ font-size:26px; color:var(--muted); margin-bottom:6px; }
.s-clip .srcline b{ color:var(--text); font-weight:600; }
.s-clip .tl{ position:relative; height:120px; margin:26px 0 30px; }
.s-clip .tl .track{ position:absolute; left:0; right:0; top:54px; height:12px; border-radius:6px; background:var(--surface-2); }
.s-clip .tl .tick{ position:absolute; top:40px; width:3px; height:40px; background:var(--faint); border-radius:2px; transform:translateX(-50%); }
.s-clip .tl .tick.pick{ background:var(--text); }
.s-clip .tl .tick.hero{ background:var(--accent); width:5px; height:56px; top:32px; }
.s-clip .tl .tag{ position:absolute; top:-4px; transform:translateX(-14px); font-family:var(--f-mono); font-size:16px; color:var(--accent); white-space:nowrap; letter-spacing:.02em; }
.s-clip .tl .ends{ position:absolute; top:94px; left:0; right:0; display:flex; justify-content:space-between; font-family:var(--f-mono); font-size:15px; color:var(--faint); }
.s-clip .legend{ display:flex; gap:28px; font-family:var(--f-mono); font-size:15px; color:var(--muted); letter-spacing:.04em; text-transform:uppercase; }
.s-clip .legend i{ display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:9px; vertical-align:-1px; }
.s-clip .steps{ margin-top:22px; }
.s-clip .step{ display:grid; grid-template-columns:56px 56px 1fr; gap:0 18px; align-items:center; padding:15px 0; border-top:1px solid var(--line); }
.s-clip .step .av{ width:44px; height:44px; }
.s-clip .step p{ font-size:25px; line-height:1.3; letter-spacing:-.01em; }
.s-clip .step p span{ color:var(--muted); }
.s-clip .result{ display:flex; align-items:baseline; gap:24px; margin-top:22px; padding-top:22px; border-top:1px solid var(--line); }
.s-clip .result .num{ font-size:96px; color:var(--accent); }
.s-clip .result p{ font-size:26px; color:var(--muted); line-height:1.3; }

/* S09 anatomy */
.s-anat .grid{ display:grid; grid-template-columns:1fr 430px 1fr; gap:70px; align-items:center; height:100%; }
.s-anat .phone{ width:410px; margin-top:-90px; }
.s-anat .callouts{ position:relative; align-self:stretch; }
.s-anat .callouts .callout{ position:absolute; left:0; right:0; }
.s-anat .callout{ position:relative; }
.s-anat .callout h3{ font-size:34px; font-weight:600; letter-spacing:-.025em; }
.s-anat .callout p{ font-size:23px; line-height:1.35; color:var(--muted); margin-top:8px; }
.s-anat .left .callout{ text-align:right; }
.s-anat .callout::after{ content:""; position:absolute; top:22px; width:60px; height:2px; background:var(--accent); }
.s-anat .left .callout::after{ right:-70px; }
.s-anat .right .callout::after{ left:-70px; }
.s-anat .stack{ margin-top:6px; }
.s-anat .stack .r{ display:grid; grid-template-columns:200px 1fr; padding:16px 0; border-top:1px solid var(--line); font-size:22px; color:var(--muted); align-items:baseline; }
.s-anat .stack .r b{ font-family:var(--f-mono); color:var(--text); font-weight:500; font-size:21px; }

/* S10 autopilot */
.s-auto .grid{ display:grid; grid-template-columns:1.05fr 1fr 330px; gap:80px; }
.s-auto .pz .phone{ width:310px; margin-top:-40px; }
.s-auto .pz figcaption{ margin-top:16px; }
.s-auto .colh{ display:flex; align-items:center; gap:14px; margin-bottom:26px; }
.s-auto .colh .dot{ width:12px; height:12px; border-radius:50%; background:var(--accent); }
.s-auto .colh .dot.me{ background:var(--text); }
.s-auto .day{ position:relative; padding-left:34px; }
.s-auto .day::before{ content:""; position:absolute; left:6px; top:12px; bottom:12px; width:2px; background:var(--line); }
.s-auto .ev{ position:relative; padding:0 0 26px; }
.s-auto .ev::before{ content:""; position:absolute; left:-34px; top:10px; width:14px; height:14px; border-radius:50%; background:var(--bg); border:2px solid var(--accent); }
.s-auto .ev .t{ font-family:var(--f-mono); font-size:22px; color:var(--accent); }
.s-auto .ev p{ font-size:25px; line-height:1.32; margin-top:4px; letter-spacing:-.01em; }
.s-auto .ev p span{ color:var(--muted); }
.s-auto .me-list .it{ padding:20px 0; border-top:1px solid var(--line); }
.s-auto .me-list .it h4{ font-size:27px; font-weight:600; letter-spacing:-.02em; margin:0; }
.s-auto .me-list .it p{ font-size:21px; color:var(--muted); line-height:1.35; margin-top:5px; }
.s-auto .slot{ height:600px; }
.browser{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--surface); }
.browser .bar{ height:40px; display:flex; align-items:center; gap:8px; padding:0 16px; border-bottom:1px solid var(--line); }
.browser .bar i{ width:11px; height:11px; border-radius:50%; background:var(--line); }

/* S11 results */
.s-res .grid{ display:grid; grid-template-columns:1fr 600px; gap:90px; }
.s-res .kpis{ display:grid; grid-template-columns:1fr 1fr; gap:0 60px; }
.s-res .kpi{ padding:22px 0 26px; border-top:1px solid var(--line); }
.s-res .kpi .num{ font-size:128px; }
.s-res .kpi .num.acc{ color:var(--accent); }
.s-res .kpi p{ font-size:25px; margin-top:12px; letter-spacing:-.01em; }
.s-res .kpi .src{ margin-top:8px; }
.s-res .fill{ margin-top:30px; border:1.5px dashed var(--todo); border-radius:var(--radius); padding:24px 28px; display:grid; grid-template-columns:auto 1fr 1fr; gap:34px; align-items:center; }
.s-res .fill .f .k{ font-family:var(--f-mono); font-size:15px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.s-res .fill .f .todo{ font-size:24px; display:inline-block; white-space:nowrap; }
.s-res .wall{ display:grid; grid-template-columns:repeat(9,1fr); gap:6px; align-content:start; }
.s-res .wall img{ width:100%; aspect-ratio:9/16; object-fit:cover; border-radius:6px; display:block; }
.s-res .wallcap{ margin-top:16px; display:flex; justify-content:space-between; }

/* S12 what works */
.s-data .grid{ display:grid; grid-template-columns:1fr 420px; gap:90px; }
.s-data .bars{ display:flex; flex-direction:column; gap:10px; }
.s-data .b{ display:grid; grid-template-columns:600px 1fr; gap:26px; align-items:center; }
.s-data .b .t{ font-size:23px; text-align:right; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.s-data .b .track{ position:relative; height:36px; }
.s-data .b .fillbar{ position:absolute; left:0; top:0; bottom:0; width:calc(var(--v) / 902 * 78%); background:var(--accent); border-radius:5px; transform-origin:left; }
.s-data .b .val{ position:absolute; top:50%; transform:translateY(-50%); left:calc(var(--v) / 902 * 78% + 16px); font-family:var(--f-mono); font-size:21px; }
.s-data .b .cat{ font-family:var(--f-mono); font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-left:12px; }
.s-data .b.cold .t{ color:var(--muted); }
.s-data .b.cold .fillbar{ background:var(--faint); }
.s-data .b.cold .val{ color:var(--muted); }
.s-data .verdict .grp{ padding:22px 0; border-top:1px solid var(--line); }
.s-data .verdict .big{ font-size:46px; font-weight:700; letter-spacing:-.035em; line-height:1.1; }
.s-data .verdict .big.no{ color:var(--muted); text-decoration:line-through; text-decoration-thickness:3px; text-decoration-color:var(--faint); }

/* S13 broke */
.s-broke .grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.s-broke .card{ min-height:268px; box-sizing:border-box; padding:40px 42px; display:grid; grid-template-columns:70px 1fr; gap:0 10px; }
.s-broke .card h3{ font-size:44px; font-weight:700; letter-spacing:-.03em; line-height:1.05; }
.s-broke .card p{ font-size:26px; line-height:1.38; color:var(--muted); margin-top:14px; }
.s-broke .card .fix{ margin-top:22px; display:flex; gap:14px; align-items:baseline; font-size:25px; }
.s-broke .card .fix .chip{ font-size:13px; padding:5px 10px; letter-spacing:.1em; text-transform:uppercase; }
.s-broke .bonus{ margin-top:34px; font-size:26px; color:var(--muted); }
.s-broke .bonus b{ color:var(--text); font-weight:500; }

/* S14 next */
.s-next .grid{ display:grid; grid-template-columns:540px 540px 1fr; gap:70px; }
.s-next .goal .num{ font-size:104px; white-space:nowrap; }
.s-next .goal .pair{ display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:34px; }
.s-next .goal .pair p{ font-size:23px; color:var(--muted); margin-top:10px; line-height:1.3; }
.s-next .goal .note{ margin-top:34px; padding-top:22px; border-top:1px solid var(--line); font-size:23px; color:var(--muted); line-height:1.4; }
.s-next .goal .note b{ color:var(--text); font-weight:600; }
.s-next .ba{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.s-next .ba .phone{ width:100%; }
.s-next .ba figcaption{ margin-top:16px; }
.s-next .list .it{ padding:22px 0; border-top:1px solid var(--line); }
.s-next .list .it:last-child{ border-bottom:1px solid var(--line); }
.s-next .list h4{ font-size:30px; font-weight:600; letter-spacing:-.02em; margin:0; }
.s-next .list p{ font-size:21px; color:var(--muted); line-height:1.35; margin-top:6px; }

/* S15 thanks */
.reveal .slides section.s-end > .inner{ inset:0; }
.s-end .big{ position:absolute; left:var(--pad-x); top:250px; font-size:300px; line-height:.85; font-weight:800; letter-spacing:-.06em; }
.s-end .big .dot{ color:var(--accent); }
.s-end .q{ position:absolute; left:calc(var(--pad-x) + 8px); top:560px; font-family:var(--f-serif); font-style:italic; font-size:96px; color:var(--muted); }
.s-end .team{ position:absolute; right:var(--pad-x); top:300px; display:flex; gap:34px; align-items:flex-start; }
.s-end .team figure{ margin:0; display:flex; flex-direction:column; align-items:center; gap:14px; font-family:var(--f-mono); font-size:16px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.s-end .team .av{ width:84px; height:84px; }
.s-end .contacts{ position:absolute; left:var(--pad-x); right:var(--pad-x); bottom:90px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); padding-top:30px; }
.s-end .contacts .v{ font-size:52px; font-weight:600; letter-spacing:-.035em; margin-top:10px; }

/* ---------- 5) MOTION ----------------------------------------------- */
/* Entrance animations: any element with data-a animates in when its slide
   becomes active. Only runs when <html> has .anim (not in PDF/print, not
   with prefers-reduced-motion) – otherwise everything is simply visible.
   Values: data-a="up" (default) | "fade" | "left" | "scale" | "grow" (bars). */
html.anim .reveal .slides section:not(.present) [data-a]{ opacity:0; transition:opacity 0s .8s, transform 0s .8s; }
html.anim .reveal .slides section:not(.present) [data-a=""],
html.anim .reveal .slides section:not(.present) [data-a="up"]   { transform:translate3d(0,34px,0); }
html.anim .reveal .slides section:not(.present) [data-a="left"] { transform:translate3d(-40px,0,0); }
html.anim .reveal .slides section:not(.present) [data-a="scale"]{ transform:scale(.92); }
html.anim .reveal .slides section:not(.present) [data-a="grow"] { transform:scaleX(0); opacity:1; }
html.anim .reveal .slides section:not(.present) [data-a="tile"] { transform:translate3d(0,20px,0) scale(.85); }
html.anim .reveal .slides section.present [data-a]{
  opacity:1; transform:none;
  transition: opacity .8s var(--ease) calc(var(--d, 0) * 1s + .2s),
              transform 1.1s var(--ease) calc(var(--d, 0) * 1s + .2s);
}

/* Custom Reveal fragment styles (used with class="fragment rise" etc.) */
.reveal .slides section .fragment.rise{ opacity:0; visibility:hidden; transform:translate3d(0,26px,0); transition:all .7s var(--ease); }
.reveal .slides section .fragment.rise.visible{ opacity:1; visibility:inherit; transform:none; }
.reveal .slides section .fragment.draw{ opacity:1; visibility:inherit; transform:scaleX(0); transition:transform .7s var(--ease); }
.reveal .slides section .fragment.draw.visible{ transform:scaleX(1); }
.reveal .slides section .fragment.draw.v{ transform:scaleY(0); }
.reveal .slides section .fragment.draw.v.visible{ transform:scaleY(1); }
.reveal .slides section .fragment.dim-in{ opacity:.18; visibility:inherit; transition:opacity .6s var(--ease); }
.reveal .slides section .fragment.dim-in.visible{ opacity:1; }

/* Reveal UI tweaks */
.reveal .progress{ height:3px; color:var(--accent); background:transparent; }
.reveal .controls{ color:var(--muted); }
.reveal .controls{ opacity:.35; }

/* print / PDF: one page per slide, no chrome UI */
html.print-pdf .reveal .controls,html.print-pdf .reveal .progress{ display:none !important; }
@media (prefers-reduced-motion: reduce){ .reveal .slides section .fragment{ transition:none !important; } }

/* S11 live YouTube Studio numbers */
.s-res .live{ margin-top:30px; border-top:1px solid var(--line); padding-top:24px; display:grid; grid-template-columns:1fr 1fr; gap:0 60px; position:relative; }
.s-res .live .num{ font-size:84px; color:var(--accent); }
.s-res .live p{ font-size:24px; margin-top:10px; }
.s-res .live .lv-src{ position:absolute; right:0; top:-34px; }
/* S12 top 4 */
.s-data .top4{ margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.s-data .top4 ol{ list-style:none; margin:14px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 50px; }
.s-data .top4 li{ font-size:23px; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.s-data .top4 li b{ font-family:var(--f-mono); font-weight:500; color:var(--accent); margin-right:16px; font-size:21px; }

/* S06 whole team (12 bots) */
.s-all .grid{ display:grid; grid-template-columns:500px 1fr; gap:90px; height:100%; }
.s-all .left{ display:flex; flex-direction:column; justify-content:center; }
.s-all .num.big{ font-size:300px; line-height:.8; letter-spacing:-.07em; margin-left:-12px; }
.s-all .left h2{ margin-top:26px; }
.s-all .left .lead{ margin-top:22px; font-size:30px; }
.s-all .left .meta{ margin-top:40px; padding-top:22px; border-top:1px solid var(--line); font-size:22px; color:var(--muted); line-height:1.4; }
.s-all .left .meta b{ color:var(--text); font-weight:600; }
.s-all .tiles{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:1fr; gap:16px; align-content:center; }
.s-all .bt{ position:relative; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:24px 22px 22px; display:flex; flex-direction:column; gap:18px; min-height:200px; box-sizing:border-box; }
.s-all .bt .av{ width:52px; height:52px; }
.s-all .bt h3{ font-size:25px; font-weight:600; letter-spacing:-.02em; line-height:1.1; }
.s-all .bt p{ font-size:18px; line-height:1.35; color:var(--muted); margin-top:6px; }
.s-all .bt.farm{ border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.s-all .bt .chip{ position:absolute; top:20px; right:18px; font-size:12px; padding:4px 9px; letter-spacing:.1em; text-transform:uppercase; }

/* S16 QR codes – light tile + dark modules, quiet zone baked into the SVG */
.s-end .qrs{ position:absolute; right:var(--pad-x); top:455px; display:flex; gap:36px; }
.s-end .qrs figure{ margin:0; display:flex; flex-direction:column; align-items:center; gap:14px; }
.s-end .qrs img{ width:270px; height:270px; display:block; border-radius:16px; background:#efede6; image-rendering:pixelated; }
.s-end .qrs figcaption{ font-family:var(--f-mono); font-size:18px; letter-spacing:.04em; color:var(--muted); }
