/* ============================================================
   base.css - reset, responsive stage scaling, slide base, typography
   ============================================================ */

*{box-sizing:border-box;}

html{
  --rail-offset:0px;
  /* Proportional scaling: 1rem tracks the smaller of width/height ratio
     of the 1920x1080 design, so the slide keeps its composition and
     never overflows on 16:9 / 16:10 screens. No transform:scale used.
     When the rail pushes the content on desktop, --rail-offset reduces
     the available width so the stage rescales into the remaining area. */
  font-size:clamp(6px, min(calc((100vw - var(--rail-offset)) / 120), calc(100vh / 67.5)), 24px);
}
html,body{margin:0;padding:0;background:var(--night);
  font-family:var(--font);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;}
body{overflow:hidden;}

/* height:auto обязателен: у img заданы атрибуты width/height (CLS),
   и без него CSS-ширина растянула бы картинку по высоте из атрибута */
img{max-width:100%;height:auto;}
a{color:inherit;}
button{font-family:inherit;}

/* ============================ DECK CONTAINER ============================ */
.deck{position:fixed;top:0;right:0;bottom:0;left:var(--rail-offset,0px);overflow:hidden;
  transition:left .42s var(--ease);}

/* ============================ SCREEN (full-viewport) ============================ */
/* Each screen fills the viewport and carries the slide background colour.
   The inner .slide is the 1920x1080 stage, centred within. */
.screen{
  position:absolute;inset:0;overflow:hidden;
  display:grid;place-items:center;
  background:var(--white);color:var(--t-ink);
  opacity:0;visibility:hidden;
  transition:opacity .5s var(--ease),visibility .5s var(--ease);
  will-change:opacity;
}
/* dot pattern fills the whole viewport (no visible stage border) */
.screen > .dotgrid{z-index:0;}
/* accent glows stay anchored to the content: a stage-sized, stage-centred
   box that is allowed to overflow, so the spots sit where the content sits
   and bleed past the stage. On tall/narrow screens the surrounding area
   grows and the full rounded spot becomes visible; the screen clips at the
   viewport edge so there are no scrollbars. */
.screen > .deco{
  position:absolute;top:50%;left:50%;
  width:var(--stage-w);height:var(--stage-h);
  transform:translate(-50%,-50%);
  overflow:visible;z-index:0;pointer-events:none;
}
.screen.paper{background:var(--paper);}
.screen.dark{background:var(--night);color:var(--d-ink);}
.screen.ink{background:var(--ink);color:var(--d-ink);}
.screen.active{opacity:1;visibility:visible;z-index:1;}

/* ============================ SLIDE STAGE ============================ */
section.slide,
.slide{
  width:var(--stage-w);height:var(--stage-h);
  background:transparent;color:inherit;
  padding:var(--pad);
  display:grid;grid-template-rows:auto 1fr auto;row-gap:1.875rem;
  position:relative;z-index:1;overflow:hidden;
}

/* ---- eyebrow / top row ---- */
.top{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;z-index:3;}
.eyebrow{display:inline-flex;align-items:center;gap:.8125rem;font-family:var(--mono);
  font-size:1rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--acc,var(--orange));}
.eyebrow .sq{width:.6875rem;height:.6875rem;background:currentColor;border-radius:.1875rem;}
.eyebrow .num{color:var(--t-faint);font-weight:500;}
.dark .eyebrow .num,.ink .eyebrow .num{color:var(--d-faint);}
.topmeta{font-family:var(--mono);font-size:.875rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--t-faint);}
.dark .topmeta,.ink .topmeta{color:var(--d-faint);}

/* ---- footer ---- */
.foot{display:flex;align-items:center;justify-content:space-between;
  font-size:.875rem;color:var(--t-faint);z-index:3;}
.dark .foot,.ink .foot{color:var(--d-faint);}
.foot .brand{display:flex;align-items:center;gap:.6875rem;font-weight:700;
  letter-spacing:-.01em;color:var(--t-mut);}
.dark .foot .brand,.ink .foot .brand{color:var(--d-mut);}
.foot .logo{width:1.375rem;height:1.375rem;flex:none;
  background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22%3E%3Cpath fill=%22%23e26028%22 d=%22M12 1 H52 Q63 1 63 12 V41 Q63 52 52 52 H48 L60 64 L33 52 H12 Q1 52 1 41 V12 Q1 1 12 1 Z%22/%3E%3Cpath fill=%22%23ffffff%22 fill-rule=%22evenodd%22 d=%22M29.10 31.75Q29.10 35.39 26.40 37.31Q23.70 39.24 18.48 39.24Q13.72 39.24 11.01 37.55Q8.30 35.86 7.53 32.43L12.54 31.61Q13.05 33.58 14.53 34.46Q16.00 35.35 18.62 35.35Q24.05 35.35 24.05 32.05Q24.05 30.99 23.43 30.31Q22.81 29.62 21.67 29.16Q20.54 28.71 17.32 28.06Q14.54 27.41 13.45 27.01Q12.36 26.61 11.49 26.08Q10.61 25.54 9.99 24.79Q9.38 24.03 9.03 23.01Q8.69 21.99 8.69 20.67Q8.69 17.32 11.21 15.53Q13.74 13.75 18.55 13.75Q23.16 13.75 25.47 15.19Q27.78 16.63 28.45 19.95L23.42 20.64Q23.03 19.04 21.85 18.23Q20.66 17.42 18.45 17.42Q13.74 17.42 13.74 20.37Q13.74 21.34 14.24 21.96Q14.74 22.57 15.72 23.00Q16.71 23.43 19.71 24.08Q23.28 24.84 24.82 25.48Q26.36 26.12 27.25 26.97Q28.15 27.83 28.62 29.01Q29.10 30.20 29.10 31.75Z M43.67 35.17Q45.69 35.17 47.59 34.59Q49.49 34.00 50.53 33.08V29.66H44.48V25.82H55.27V34.93Q53.31 36.95 50.15 38.09Q47.00 39.24 43.53 39.24Q37.49 39.24 34.23 35.89Q30.98 32.54 30.98 26.39Q30.98 20.27 34.25 17.01Q37.52 13.75 43.66 13.75Q52.37 13.75 54.75 20.20L49.97 21.64Q49.19 19.76 47.54 18.79Q45.89 17.83 43.66 17.83Q40.00 17.83 38.10 20.04Q36.20 22.25 36.20 26.39Q36.20 30.59 38.16 32.88Q40.12 35.17 43.67 35.17Z%22/%3E%3C/svg%3E") no-repeat center/contain;}
.foot .pg{font-family:var(--mono);letter-spacing:.1em;}
.foot .pg b{color:var(--t-mut);font-weight:600;}
.dark .foot .pg b,.ink .foot .pg b{color:var(--d-mut);}

.body{min-height:0;z-index:2;display:flex;flex-direction:column;}

/* ============================ TYPOGRAPHY ============================ */
h1.title{font-size:5.25rem;line-height:1.0;letter-spacing:-.03em;font-weight:800;
  margin:0;text-wrap:balance;}
h2.htitle{font-size:3.25rem;line-height:1.04;letter-spacing:-.024em;font-weight:800;
  margin:0;text-wrap:balance;}
h3.stitle{font-size:2.125rem;line-height:1.1;letter-spacing:-.02em;font-weight:700;ma