@import url('https://fonts.googleapis.com/css2?family=Red+Hat+Display:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap');

* { margin:0; padding:0; box-sizing:border-box; }

:root {
  --cut:16px;
  --ink:#000;
  --grey-dark:#3a3a3a;
  --grey-mid:#999999;
  --grey-line:#E5E5E5;
  --grey-bg:#F5F5F4;
  --sidebar-w:260px;
}

html, body { background:var(--grey-bg); }
body {
  font-family:'Red Hat Display', Arial, sans-serif;
  color:#000;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}

a { color:inherit; }

/* ---- layout: fixed sidebar + scrolling content -------------------- */
.shell { display:flex; min-height:100vh; }

.sidebar {
  width:var(--sidebar-w); flex:0 0 auto;
  background:#fff; border-right:1px solid var(--grey-line);
  position:sticky; top:0; height:100vh; overflow-y:auto;
  padding:28px 22px;
}
.sidebar .logo { width:84px; height:auto; display:block; margin-bottom:22px; }
.sidebar .eyebrow {
  font-size:10px; font-weight:700; color:var(--grey-mid);
  text-transform:uppercase; letter-spacing:0.08em;
  margin:20px 0 8px 0;
}
.sidebar .eyebrow:first-of-type { margin-top:0; }
.sidebar nav ul { list-style:none; }
.sidebar nav li { margin:0 0 2px 0; }
.sidebar nav a {
  display:block; text-decoration:none; color:#000;
  font-size:13.5px; padding:6px 8px; border-radius:4px;
  letter-spacing:0.003em;
}
.sidebar nav a:hover { background:var(--grey-bg); }
.sidebar nav a.active { background:#000; color:#fff; }
.sidebar nav .sub { margin-left:10px; }
.sidebar nav .sub a { font-size:12.5px; color:#555; padding:4px 8px; }
.sidebar nav .sub a.active { background:#000; color:#fff; }

.content { flex:1 1 auto; min-width:0; }
.page {
  max-width:760px; margin:0 auto;
  padding:56px 40px 90px 40px;
}

/* ---- header block --------------------------------------------------- */
.eyebrow-top {
  font-size:10.5px; font-weight:700; color:var(--grey-mid);
  text-transform:uppercase; letter-spacing:0.08em;
}
h1 {
  font-size:34px; font-weight:400; letter-spacing:0.002em;
  line-height:1.15; margin:8px 0 0 0;
}
.sub {
  font-size:15px; font-weight:400; color:#333;
  line-height:1.5; margin:12px 0 0 0; max-width:60ch;
}
.crumb {
  font-size:11.5px; color:var(--grey-mid); margin-bottom:10px;
}
.crumb a { text-decoration:none; color:var(--grey-mid); }
.crumb a:hover { color:#000; }

/* ---- diagonal-cut card ---------------------------------------------- */
.card {
  --clip: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut),
                  100% 100%, var(--cut) 100%, 0 calc(100% - var(--cut)));
  background:#000; padding:1px;
  clip-path:var(--clip);
  margin-top:22px;
}
.card > .in {
  background:#fff; clip-path:var(--clip);
  padding:20px 24px 26px 24px;
}
.card h2 {
  font-size:16px; font-weight:700; letter-spacing:0.003em;
  margin:0;
}
.card .rule { border-top:1px solid #000; margin:12px 0 14px 0; }
.card p { font-size:13.5px; line-height:1.6; margin:0 0 10px 0; }
.card p:last-child { margin-bottom:0; }

.cols { display:flex; gap:28px; flex-wrap:wrap; }
.cols > div { flex:1 1 220px; min-width:0; }

ul.plain { list-style:none; margin:8px 0 0 0; }
ul.plain li {
  display:flex; align-items:baseline;
  font-size:13px; line-height:1.5; margin:0 0 7px 0;
}
ul.plain li .box { flex:0 0 auto; width:16px; }

/* ---- step list -------------------------------------------------------- */
ol.steps { counter-reset:step; list-style:none; margin:14px 0 0 0; }
ol.steps li {
  counter-increment:step;
  position:relative; padding-left:34px; margin-bottom:14px;
  font-size:13.5px; line-height:1.55;
}
ol.steps li::before {
  content:counter(step);
  position:absolute; left:0; top:0;
  width:22px; height:22px; border-radius:50%;
  background:#000; color:#fff; font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}

/* ---- screenshot placeholder -------------------------------------------- */
.shot {
  margin-top:16px; border:1.5px dashed #C9C9C7; border-radius:6px;
  background:#FAFAF9; padding:36px 20px; text-align:center;
}
.shot .tag {
  font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--grey-mid);
}
.shot .cap { font-size:12.5px; color:#777; margin-top:6px; }

/* ---- real screenshot -------------------------------------------------- */
figure.shotimg {
  margin-top:16px; border:1px solid var(--grey-line); border-radius:6px;
  overflow:hidden; background:#fff;
}
figure.shotimg img { display:block; width:100%; height:auto; }
figure.shotimg figcaption {
  font-size:12px; color:#777; padding:9px 14px; border-top:1px solid var(--grey-line);
  background:#FAFAF9;
}

/* ---- module grid (index page) ------------------------------------------ */
.grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:26px; }
.tile {
  --clip: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut),
                  100% 100%, var(--cut) 100%, 0 calc(100% - var(--cut)));
  background:#000; padding:1px; clip-path:var(--clip);
  text-decoration:none; color:#000; display:block;
}
.tile .in {
  background:#fff; clip-path:var(--clip);
  padding:18px 20px 20px 20px; height:100%;
}
.tile:hover .in { background:#FAFAF9; }
.tile .n { font-size:10.5px; font-weight:700; color:var(--grey-mid); letter-spacing:0.08em; text-transform:uppercase; }
.tile h3 { font-size:15.5px; font-weight:700; margin:6px 0 6px 0; }
.tile p { font-size:12.5px; color:#555; margin:0; line-height:1.5; }

/* ---- callout band ----------------------------------------------------- */
.band { margin-top:22px; }
.band .in { padding:16px 22px 20px 22px; font-size:13.5px; line-height:1.6; }
.band b { font-weight:700; }

/* ---- prev/next footer nav --------------------------------------------- */
.pagenav {
  display:flex; justify-content:space-between; gap:16px;
  margin-top:48px; padding-top:18px; border-top:1px solid var(--grey-line);
}
.pagenav a {
  text-decoration:none; color:#000; font-size:13px;
  max-width:45%;
}
.pagenav .dir { display:block; font-size:10px; font-weight:700; color:var(--grey-mid); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:4px; }
.pagenav .next { text-align:right; margin-left:auto; }

/* ---- misc ---------------------------------------------------------------- */
code { background:#F0EFED; padding:1px 5px; border-radius:3px; font-size:0.92em; }
