/* StudyBuddy public site — "Cuaderno". Tokens copied from the app
   (frontend/src/index.css); the design is docs/superpowers/plans/D-11-visual-identity.md.

   THE RULE: --field is a surface and is never an action. --action is saturated
   and appears only on what you click or earn. --deep is the same hue for thin
   marks. --red is deadlines only. Action fills carry ink text; red fills white. */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/inter-latin-wght.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
    U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url('/fonts/bricolage-grotesque-latin-wght.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
    U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --field: #f2f6de;
  --action: #d6f24a;
  --deep: #7a9417;
  --ink: #12121c;
  --red: #d92135;
  --on-action: #12121c;
  --on-page: #f1f4e3;
  --paper: #fcfbf8;
  --sheet: #ffffff;
  --grid: #dde4f1;
  --ink-soft: #5a5c6e;
  --ink-faint: #8b8d9c;
  --biro: #2340e8;
  --page: #12121c;
  --offset: #12121c;
  --r: 16px;
  --r-lg: 36px;
  --border: 2.5px;
  --content: 1160px;
  color-scheme: light dark;
}

/* Dark tokens — "pizarra". The visitor's choice wins (`.dark` / `.light` on <html>, set by the
   theme script); with no choice, the system decides. The two blocks below declare the same
   tokens, and site-output.test.ts fails if they ever drift apart.
   Not an inversion: --ink becomes chalk and keeps its two jobs (text and every border), --deep
   brightens instead of darkening, and the hard offset becomes true black, because depth still
   falls away from the light. --action, --on-action, --red and --on-page do not change. */
@media (prefers-color-scheme: dark) {
  :root:not(.light) {
    --paper: #13160e;
    --sheet: #1d2216;
    --field: #262f19;
    --page: #0a0b06;
    --grid: rgba(238, 242, 223, 0.07);
    --ink: #eef2df;
    --ink-soft: #b3bba2;
    --ink-faint: #8b9380;
    --deep: #b4d63c;
    --biro: #8fa2ff;
    --offset: #000000;
  }
}

:root.dark {
  --paper: #13160e;
  --sheet: #1d2216;
  --field: #262f19;
  --page: #0a0b06;
  --grid: rgba(238, 242, 223, 0.07);
  --ink: #eef2df;
  --ink-soft: #b3bba2;
  --ink-faint: #8b9380;
  --deep: #b4d63c;
  --biro: #8fa2ff;
  --offset: #000000;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* The header is sticky at 68px; anchors must clear it. */
  scroll-padding-top: 84px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
  }
}

body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

img,
svg {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Links are the biro — the pen the student writes with. */
a {
  color: var(--biro);
  text-underline-offset: 3px;
}

a:hover {
  color: var(--biro);
}

:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Display face: headings, numbers and button labels. */
h1,
h2,
h3,
.display {
  font-family: 'Bricolage Grotesque', 'Inter', sans-serif;
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 0.98;
}

.num {
  font-family: 'Bricolage Grotesque', 'Inter', sans-serif;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Tactility without WebGL: one grain layer over the colour fields. */
.grain {
  position: relative;
  isolation: isolate;
}

.grain::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  opacity: 0.45;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");
}

.wrap {
  width: 100%;
  max-width: var(--content);
  margin: 0 auto;
  padding: 0 20px;
}

@media (min-width: 640px) {
  .wrap {
    padding: 0 28px;
  }
}

.narrow {
  max-width: 820px;
}

.muted {
  color: var(--ink-faint);
  font-size: 14px;
}

.skip {
  position: absolute;
  left: 16px;
  top: -64px;
  z-index: 40;
  padding: 10px 18px;
  background: var(--sheet);
  color: var(--ink);
  border: var(--border) solid var(--ink);
  border-radius: 999px;
  box-shadow: 0 4px 0 var(--offset);
}

.skip:focus {
  top: 12px;
}

/* ── Buttons: thick ink border, hard offset, pill ─────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 56px;
  padding: 15px 28px;
  border: var(--border) solid var(--ink);
  border-radius: 999px;
  font: 700 17px/1 'Bricolage Grotesque', 'Inter', sans-serif;
  letter-spacing: -0.02em;
  text-decoration: none;
  cursor: pointer;
  color: var(--ink);
  background: var(--sheet);
  box-shadow: 0 5px 0 var(--offset);
  transition: transform 90ms ease, box-shadow 90ms ease;
}

.btn:hover {
  color: var(--ink);
}

.btn:active {
  transform: translateY(4px);
  box-shadow: 0 1px 0 var(--offset);
}

/* On --field a lime fill would vanish in light mode, hence the ink inversion;
   on the dark board it reads, so the primary button fills normally. */
.btn-primary {
  background: var(--ink);
  color: var(--action);
}

.btn-primary:hover {
  color: var(--action);
}

@media (prefers-color-scheme: dark) {
  :root:not(.light) .btn-primary,
  :root:not(.light) .btn-primary:hover {
    background: var(--action);
    color: var(--on-action);
  }
}

:root.dark .btn-primary,
:root.dark .btn-primary:hover {
  background: var(--action);
  color: var(--on-action);
}

/* On a white sheet the fill reads as itself. */
.btn-go {
  background: var(--action);
  color: var(--on-action);
}

.btn-secondary {
  background: var(--sheet);
  color: var(--ink);
}

.btn-quiet {
  min-height: 42px;
  padding: 11px 18px;
  font-size: 14px;
  box-shadow: 0 3px 0 var(--offset);
}

/* ── Header ──────────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--field);
  border-bottom: var(--border) solid var(--ink);
}

.header-inner {
  display: flex;
  align-items: center;
  gap: 26px;
  min-height: 68px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  font: 800 20px/1 'Bricolage Grotesque', 'Inter', sans-serif;
  letter-spacing: -0.04em;
  color: var(--ink);
  text-decoration: none;
  flex: none;
}

.brand:hover {
  color: var(--ink);
}

.brand-mark {
  flex: none;
}

.section-nav {
  display: none;
  gap: 20px;
  font-size: 14px;
  font-weight: 600;
}

.section-nav a {
  color: var(--ink);
  opacity: 0.66;
  text-decoration: none;
}

.section-nav a:hover {
  color: var(--ink);
  opacity: 1;
}

@media (min-width: 960px) {
  .section-nav {
    display: flex;
  }
}

.header-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Language is navigation, not an action: ink, never --action. */
.langs {
  display: flex;
  gap: 2px;
  font-size: 12px;
  font-weight: 700;
}

.lang {
  padding: 6px 10px;
  border-radius: 999px;
  color: var(--ink);
  opacity: 0.45;
  text-decoration: none;
}

.lang:hover {
  color: var(--ink);
  opacity: 0.8;
}

.lang[aria-current='true'] {
  background: var(--ink);
  color: var(--field);
  opacity: 1;
}

@media (max-width: 559px) {
  .header-actions .btn {
    display: none;
  }
  .brand {
    font-size: 18px;
  }
}

/* ── Theme toggle ────────────────────────────────────────── */
/* On a phone it is a control in the header, next to the language switcher:
   nothing floats over the page, so it cannot land on a sheet, a demo panel or
   a link at any scroll position. From 560px there is margin to spare and it
   lifts out to the bottom right, where PR #142 put it. */
.theme-toggle {
  display: none;
  width: 40px;
  height: 40px;
  flex: none;
  align-items: center;
  justify-content: center;
  border: var(--border) solid var(--ink);
  border-radius: 50%;
  background: var(--sheet);
  color: var(--ink);
  cursor: pointer;
  box-shadow: 0 3px 0 var(--offset);
}

.has-js .theme-toggle {
  display: inline-flex;
}

.theme-toggle .icon {
  width: 19px;
  height: 19px;
}

@media (min-width: 560px) {
  .theme-toggle {
    position: fixed;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    z-index: 30;
    width: 52px;
    height: 52px;
    box-shadow: 0 4px 0 var(--offset);
  }
  .theme-toggle .icon {
    width: 22px;
    height: 22px;
  }
}

.theme-toggle:active {
  transform: translateY(3px);
  box-shadow: 0 1px 0 var(--offset);
}

/* No transition on the swap: the icon is either one or the other, whatever the motion setting. */
.theme-toggle .icon-sun,
:root.dark .theme-toggle .icon-moon {
  display: none;
}

:root.dark .theme-toggle .icon-sun {
  display: block;
}

@media (prefers-color-scheme: dark) {
  :root:not(.light) .theme-toggle .icon-moon {
    display: none;
  }
  :root:not(.light) .theme-toggle .icon-sun {
    display: block;
  }
}

/* ── Hero ────────────────────────────────────────────────── */
.hero {
  background: var(--field);
  padding: 56px 0 0;
  overflow: hidden;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: end;
}

@media (min-width: 900px) {
  .hero {
    padding: 74px 0 0;
  }
  .hero-grid {
    grid-template-columns: 1.28fr 0.72fr;
    gap: 28px;
  }
}

h1 {
  font-size: clamp(40px, 6.6vw, 96px);
  line-height: 0.95;
  max-width: 12.5em;
}

.lead {
  margin-top: 24px;
  font-size: clamp(17px, 1.4vw, 19px);
  line-height: 1.5;
  max-width: 27em;
  font-weight: 500;
  color: var(--ink-soft);
}

.actions {
  margin-top: 32px;
  display: flex;
  gap: 13px;
  flex-wrap: wrap;
}

.note {
  margin: 18px 0 40px;
  font-size: 13px;
  color: var(--ink-faint);
  max-width: 28em;
}

@media (min-width: 900px) {
  .note {
    margin-bottom: 60px;
  }
}

/* The buddy: the student's own apuntes, awake. */
.buddy {
  width: 100%;
  max-width: 220px;
  margin: 0 auto -6px;
}

@media (min-width: 900px) {
  .buddy {
    max-width: 400px;
    justify-self: end;
    margin-right: 0;
  }
}

/* ── Trophy strip ────────────────────────────────────────── */
.strip {
  background: var(--page);
  color: var(--on-page);
}

.strip-in {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px 20px;
  padding: 32px 0 26px;
}

@media (min-width: 760px) {
  .strip-in {
    grid-template-columns: repeat(4, 1fr);
  }
}

.trophy-value {
  font-size: clamp(34px, 3.4vw, 46px);
  line-height: 1;
  display: block;
  color: var(--action);
}

.trophy-label {
  font-size: 13px;
  color: #9b9dad;
  margin-top: 7px;
  display: block;
}

.strip-note {
  padding: 0 0 30px;
  font-size: 13px;
  color: #9b9dad;
}

/* ── Bands ───────────────────────────────────────────────── */
/* 22px squared paper under the ink outline, with the top corners rolled over. */
.section {
  background-color: var(--paper);
  background-image:
    linear-gradient(to right, var(--grid) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid) 1px, transparent 1px);
  background-size: 22px 22px;
  border: var(--border) solid var(--ink);
  border-bottom: none;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  padding: 56px 0 64px;
}

/* A band of --field between two paper ones; it is a surface, never an action. */
.section-alt {
  background: var(--field);
  background-image: none;
  border: none;
  border-top: var(--border) solid var(--ink);
  border-bottom: var(--border) solid var(--ink);
  border-radius: 0;
  padding: 56px 0 64px;
}

@media (min-width: 960px) {
  .section,
  .section-alt {
    padding: 64px 0 76px;
  }
}

h2 {
  font-size: clamp(30px, 4vw, 48px);
}

.section-lead {
  margin-top: 12px;
  font-size: 17px;
  color: var(--ink-soft);
  max-width: 34em;
}

/* Sheets, and the tabs that make them a page in a binder. */
.sheet,
.card,
.step {
  background: var(--sheet);
  border: var(--border) solid var(--ink);
  border-radius: var(--r);
  box-shadow: 5px 5px 0 var(--offset);
  padding: 22px;
}

.tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px 7px;
  background: var(--field);
  border: var(--border) solid var(--ink);
  border-bottom: none;
  border-radius: 12px 12px 0 0;
  font: 700 14px/1 'Bricolage Grotesque', 'Inter', sans-serif;
  color: var(--ink);
}

.tabbed > .sheet,
.tabbed > .step-sheet {
  border-radius: 0 var(--r) var(--r) var(--r);
}

/* ── How it works ────────────────────────────────────────── */
.steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  margin-top: 40px;
}

@media (min-width: 860px) {
  .steps {
    grid-template-columns: repeat(3, 1fr);
  }
}

.step {
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  border-radius: 0;
}

.step-sheet {
  background: var(--sheet);
  border: var(--border) solid var(--ink);
  border-radius: 0 var(--r) var(--r) var(--r);
  box-shadow: 5px 5px 0 var(--offset);
  padding: 22px;
}

.step h3 {
  font-size: 19px;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.step p {
  margin-top: 9px;
  font-size: 14.5px;
  color: var(--ink-soft);
}

/* ── Feature cards ───────────────────────────────────────── */
.cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 40px;
}

@media (min-width: 700px) {
  .cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1000px) {
  .cards {
    grid-template-columns: repeat(3, 1fr);
  }
}

.card h3 {
  font-size: 17.5px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-top: 12px;
}

.card p {
  margin-top: 8px;
  font-size: 14px;
  color: var(--ink-soft);
}

.card .icon,
.promise .icon {
  width: 38px;
  height: 38px;
  padding: 8px;
  border: 2px solid var(--ink);
  border-radius: 11px;
  background: var(--field);
  color: var(--ink);
}

/* ── Demo session ────────────────────────────────────────── */
/* The tab has to travel with the sheet, so the frame carries the centring. */
.demo-frame {
  max-width: 660px;
  margin: 44px auto 0;
}

.demo {
  background: var(--sheet);
  border: var(--border) solid var(--ink);
  border-radius: 0 var(--r) var(--r) var(--r);
  box-shadow: 5px 5px 0 var(--offset);
  padding: 20px;
}

.demo-bar {
  display: none;
}

.demo-body {
  display: block;
}

.bubble {
  border: 2px solid var(--ink);
  border-radius: 15px;
  padding: 13px 16px;
  font-size: 15px;
}

/* The student's own voice is the biro. In the dark it lifts, so its text
   flips to the dark on-fill colour. */
.bubble-student {
  background: var(--biro);
  color: #fff;
  margin-left: 48px;
  border-bottom-right-radius: 4px;
}

@media (prefers-color-scheme: dark) {
  :root:not(.light) .bubble-student {
    color: var(--on-action);
  }
}

:root.dark .bubble-student {
  color: var(--on-action);
}

.bubble-tutor {
  background: var(--sheet);
  margin: 12px 40px 0 0;
  border-bottom-left-radius: 4px;
}

.demo-source {
  display: flex;
  width: fit-content;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  padding: 5px 11px;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--field);
  font-size: 12px;
  font-weight: 600;
}

.demo-source .icon {
  width: 14px;
  height: 14px;
}

/* A dashed ink rule: the sheet is torn above the quiz. */
.demo-quiz {
  margin-top: 18px;
  border-top: var(--border) dashed var(--ink);
  padding-top: 16px;
}

.demo-quiz-label {
  font: 700 13px 'Bricolage Grotesque', 'Inter', sans-serif;
  color: var(--ink-soft);
}

.demo-quiz-question {
  margin-top: 7px;
  font-size: 16px;
  font-weight: 600;
}

.demo-options {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.demo-options li {
  padding: 10px 17px;
  border: 2px solid var(--ink);
  border-radius: 999px;
  font-size: 14.5px;
  font-weight: 600;
  background: var(--sheet);
}

/* The right answer is earned, so it takes the action colour. */
.demo-options .is-picked {
  background: var(--action);
  color: var(--on-action);
  box-shadow: 0 3px 0 var(--offset);
}

/* ── Privacy: quiet on purpose, two columns ──────────────── */
.promises {
  display: grid;
  grid-template-columns: 1fr;
  gap: 26px 44px;
  margin-top: 38px;
}

@media (min-width: 800px) {
  .promises {
    grid-template-columns: 1fr 1fr;
  }
}

.promise {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.promise h3 {
  font-size: 16px;
  line-height: 1.2;
  font-weight: 700;
}

.promise p {
  margin-top: 7px;
  font-size: 14.5px;
  color: var(--ink-soft);
}

.more {
  margin-top: 30px;
  font-weight: 600;
}

/* ── FAQ ─────────────────────────────────────────────────── */
.faq {
  margin-top: 34px;
  border-top: 2px solid var(--ink);
}

.faq details {
  border-bottom: 2px solid var(--ink);
}

.faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 2px;
  font: 700 17px/1.3 'Bricolage Grotesque', 'Inter', sans-serif;
  letter-spacing: -0.02em;
  cursor: pointer;
  list-style: none;
}

.faq summary::-webkit-details-marker {
  display: none;
}

.faq summary::after {
  content: '+';
  font-size: 24px;
  line-height: 1;
  color: var(--deep);
}

.faq details[open] summary::after {
  content: '–';
}

.faq p {
  padding: 0 44px 20px 2px;
  font-size: 15px;
  color: var(--ink-soft);
}

/* ── Closing CTA ─────────────────────────────────────────── */
.cta {
  background: var(--page);
  background-image: none;
  border: none;
  border-radius: 0;
  color: var(--on-page);
  text-align: center;
  padding: 72px 0;
}

.cta h2 {
  font-size: clamp(30px, 4.2vw, 50px);
}

.cta p {
  margin: 14px auto 0;
  max-width: 30em;
  color: #a9abbb;
  font-size: 17px;
}

.cta .btn {
  margin-top: 30px;
  background: var(--action);
  color: var(--on-action);
  box-shadow: 0 5px 0 #6f8814;
}

/* ── Footer ──────────────────────────────────────────────── */
.site-footer {
  background: var(--page);
  color: var(--on-page);
  /* The bottom padding keeps the floating theme button clear of the last link. */
  padding: 48px 0 calc(32px + 56px);
  overflow: hidden;
}

.footer-grid {
  display: flex;
  gap: 56px;
  flex-wrap: wrap;
  font-size: 14px;
}

.footer-heading {
  font: 700 14px 'Bricolage Grotesque', 'Inter', sans-serif;
  letter-spacing: 0;
  color: var(--action);
  margin-bottom: 10px;
}

.site-footer a {
  color: #9b9dad;
  text-decoration: none;
  display: block;
  padding: 3px 0;
}

.site-footer a:hover {
  color: var(--on-page);
}

.site-footer .brand-footer {
  color: var(--on-page);
  margin-bottom: 10px;
}

.site-footer .muted {
  color: #6f7183;
}

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 36px;
}

.footer-bottom .lang {
  color: #9b9dad;
  display: inline-block;
}

.footer-bottom .lang[aria-current='true'] {
  background: var(--on-page);
  color: var(--page);
}

/* The wordmark as the closing graphic. */
.wordmark {
  font-family: 'Bricolage Grotesque', 'Inter', sans-serif;
  margin-bottom: calc(-32px - 56px);
  font-weight: 800;
  font-size: clamp(64px, 15.4vw, 228px);
  line-height: 0.8;
  letter-spacing: -0.05em;
  color: var(--action);
  margin: 26px 0 -12px;
  user-select: none;
}

/* ── Shared icon box ─────────────────────────────────────── */
.icon {
  width: 24px;
  height: 24px;
  flex: none;
}

/* ── Closing CTA inner ───────────────────────────────────── */
.cta-inner {
  display: grid;
  justify-items: center;
}

.cta-inner p {
  color: #a9abbb;
}

.cta-inner .btn {
  margin-top: 30px;
}

/* ── Footer lists ────────────────────────────────────────── */
.site-footer nav a {
  color: #9b9dad;
}

.site-footer li + li {
  margin-top: 2px;
}

.site-footer .langs a {
  display: inline-block;
  padding: 6px 10px;
}

/* ── 404 ─────────────────────────────────────────────────── */
.not-found {
  display: grid;
  gap: 32px;
  max-width: 560px;
  margin: 0 auto;
  background: var(--paper);
  color: var(--ink);
  /* The bottom padding keeps the floating theme button clear of the last link. */
  padding: 64px 16px calc(64px + 56px);
}

.not-found-block {
  display: grid;
  justify-items: start;
  gap: 8px;
  padding-top: 24px;
  border-top: 2px solid var(--ink);
}

.not-found-block h1,
.not-found-block h2 {
  font-size: 28px;
}

.not-found-block p {
  color: var(--ink-soft);
}

.not-found-block .btn {
  margin-top: 8px;
}
