/* ZeKal design system: shared tokens, logical RTL layout, responsive views and reduced motion. */
@font-face {
  font-family:Rubik;
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/rubik-hebrew.woff2') format('woff2');
  unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F
}
@font-face {
  font-family:Rubik;
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/rubik-latin.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 {
  color-scheme:light;
  --bg:#f7f8f2;
  --surface:#fff;
  --surface-alt:#eef1e9;
  --ink:#1c3534;
  --muted:#5e6c67;
  --line:#dce2d8;
  --accent:#257c72;
  --accent-strong:#17645c;
  --lime:#e2efbd;
  --gold:#e9bf65;
  --shadow:0 10px 28px #203e3310;
  --radius:18px;
  --small-radius:10px;
  --max-width:1200px;
  --font:Rubik,Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1)
}
:root[data-theme=dark] {
  color-scheme:dark;
  --bg:#132422;
  --surface:#1b2e2b;
  --surface-alt:#213632;
  --ink:#edf1e4;
  --muted:#b4c1b8;
  --line:#354b43;
  --accent:#91d4c7;
  --accent-strong:#aedfce;
  --lime:#405c3d;
  --gold:#e9bf65;
  --shadow:0 10px 28px #0002
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme=light]) {
    color-scheme:dark;
    --bg:#132422;
    --surface:#1b2e2b;
    --surface-alt:#213632;
    --ink:#edf1e4;
    --muted:#b4c1b8;
    --line:#354b43;
    --accent:#91d4c7;
    --accent-strong:#aedfce;
    --lime:#405c3d;
    --gold:#e9bf65;
    --shadow:0 10px 28px #0002
  }
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  text-align:right;
  font-family:var(--font);
  font-size:16px;
  line-height:1.7;
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  line-height:1.25;
  letter-spacing:-.025em;
  text-wrap:balance
}
h1 {
  font-size:clamp(2.4rem,4.9vw,4.5rem);
  font-weight:800
}
h2 {
  font-size:clamp(1.6rem,2.65vw,2.25rem);
  font-weight:700
}
h3 {
  font-size:1.15rem;
  font-weight:600
}
p {
  color:var(--muted)
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea {
  font:inherit
}
button,a,input,textarea {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  cursor:default;
  opacity:.5
}
button {
  color:inherit
}
a,button {
  touch-action:manipulation
}
img {
  max-width:100%;
  height:auto
}
button,input,textarea {
  border-radius:var(--small-radius)
}
button {
  border:0
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}
input:focus-visible,textarea:focus-visible {
  outline-offset:2px
}
[hidden] {
  display:none!important
}
::selection {
  background:var(--lime);
  color:var(--ink)
}
.container {
  width:min(var(--max-width),calc(100% - 72px));
  margin-inline:auto
}
.section-space {
  padding-block:68px
}
.icon {
  display:inline-block;
  flex-shrink:0;
  vertical-align:middle;
  width:22px;
  height:22px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  inset-block-start:10px;
  inset-inline-start:16px;
  z-index:100;
  background:var(--ink);
  color:var(--bg);
  padding:12px 22px;
  transform:translateY(-180%);
  border-radius:8px
}
.skip-link:focus {
  transform:translateY(0)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  min-height:50px;
  padding:12px 23px;
  border-radius:8px;
  font-size:.92rem;
  font-weight:500;
  border:1px solid transparent;
  transition:background .18s,transform .18s
}
.button:hover {
  transform:translateY(-2px)
}
.primary-button {
  background:var(--ink);
  color:var(--bg)
}
.primary-button:hover {
  background:var(--accent-strong)
}
.secondary-button {
  background:var(--surface);
  border-color:var(--line)
}
.secondary-button:hover {
  border-color:var(--accent)
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:.88rem;
  font-weight:500;
  min-height:44px
}
.text-link:hover {
  color:var(--accent)
}
.text-link .icon {
  width:19px
}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  width:44px;
  height:44px;
  border-radius:50%;
  flex-shrink:0
}
.icon-button:hover {
  background:var(--surface-alt)
}
.site-header {
  position:sticky;
  inset-block-start:0;
  background:var(--bg);
  border-block-end:1px solid var(--line);
  z-index:30
}
.header-inner {
  display:flex;
  align-items:center;
  min-height:86px;
  gap:36px
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0
}
.brand-name {
  font-size:1.65rem;
  font-weight:800;
  letter-spacing:-.035em;
  white-space:nowrap
}
.brand-punctuation {
  color:var(--accent)
}
.brand-mark {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--ink);
  color:var(--lime)
}
.brand-mark img {
  display:block;
  width:100%;
  height:100%
}
.brand-byline {
  border-inline-start:1px solid var(--line);
  padding-inline-start:14px;
  margin-inline-start:4px;
  font-size:.875rem;
  letter-spacing:.025em;
  color:var(--muted)
}
.main-nav {
  display:flex;
  gap:29px;
  align-items:center;
  margin-inline:auto;
  font-size:1rem
}
.main-nav a {
  position:relative;
  padding-block:12px;
  white-space:nowrap
}
.main-nav a:hover,.main-nav a[aria-current] {
  color:var(--accent)
}
.header-actions {
  display:flex;
  gap:4px
}
.theme-sun {
  display:none
}
.theme-toggle[aria-pressed=true] .theme-sun {
  display:inline-flex
}
.theme-toggle[aria-pressed=true] .theme-moon {
  display:none
}
.menu-toggle {
  display:none
}
.hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:center;
  gap:45px;
  padding-block:62px 58px
}
.hero h1 {
  line-height:1.12;
  letter-spacing:-.035em
}
.hero h1>span {
  color:var(--accent);
  position:relative
}
.hero h1>span::after {
  content:"";
  position:absolute;
  inset-inline:2px;
  inset-block-end:-7px;
  height:5px;
  background:var(--gold);
  clip-path:polygon(0 40%,96% 0,100% 55%,5% 100%);
  opacity:.8
}
.hero-description {
  font-size:1.06rem;
  line-height:1.85;
  margin-block:25px
}
.hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:23px
}
.project-map {
  position:relative;
  aspect-ratio:480/390;
  max-width:515px;
  width:100%;
  justify-self:end;
  background-image:radial-gradient(var(--line) .85px,transparent .85px);
  background-size:17px 17px;
  border-radius:48%
}
.map-lines {
  position:absolute;
  inset:3% 0;
  width:100%;
  height:95%;
  color:var(--accent)
}
.map-center {
  position:absolute;
  top:37%;
  left:37%;
  width:27%;
  height:27%;
  background:var(--ink);
  color:var(--bg);
  border-radius:25px;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;
  box-shadow:0 0 0 9px var(--bg);
  transform:rotate(-7deg);
  z-index:2
}
.map-center img {
  display:block;
  width:100%;
  height:100%;
  border-radius:inherit
}
.map-node {
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  width:28%;
  min-height:124px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  transition:transform .2s var(--ease),border-color .2s;
  z-index:3
}
.map-node:hover {
  transform:translateY(-6px) rotate(0deg);
  border-color:var(--accent)
}
.map-node img {
  width:42px;
  height:42px;
  object-fit:contain;
  background:#fff;
  padding:3px;
  border-radius:10px;
  margin-block-end:2px
}
.map-node>span {
  font-size:.875rem;
  font-weight:600
}
.map-node-1 {
  right:4%;
  top:9%;
  transform:rotate(5deg)
}
.map-node-2 {
  left:4%;
  top:8%;
  transform:rotate(-5deg)
}
.map-node-3 {
  right:2%;
  bottom:9%;
  transform:rotate(-4deg)
}
.map-node-4 {
  left:2%;
  bottom:8%;
  transform:rotate(4deg)
}
.map-plus {
  position:absolute;
  left:49%;
  top:12%;
  font-size:22px;
  color:var(--gold)
}
.intent-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:center;
  gap:12px;
  border-block:1px solid var(--line);
  padding-block:22px
}
.intent-strip>a {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.875rem;
  padding:6px 12px;
  min-height:44px;
  border-radius:8px;
  white-space:nowrap
}
.intent-strip>a:hover {
  background:var(--surface-alt)
}
.intent-strip .icon {
  color:var(--accent);
  width:19px
}
.intent-arrow {
  font-size:15px;
  color:var(--muted);
  padding-inline-start:3px
}
.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-block-end:27px
}
.featured-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:19px
}
.featured-card {
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--surface);
  transition:transform .2s var(--ease),box-shadow .2s
}
.featured-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow)
}
.featured-link {
  height:100%;
  display:flex;
  flex-direction:column
}
.project-visual {
  height:158px;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-block-end:1px solid #0000000a
}
.visual-alef-bot {
  background:#dcefe9;
  color:#276d68
}
.visual-tools {
  background:#e9eecf;
  color:#51653f
}
.visual-shir-bot {
  background:#f7e7df;
  color:#a65e46
}
.visual-singles-sorter {
  background:#e4ecf5;
  color:#54779f
}
.visual-symbol {
  position:absolute;
  top:44px;
  left:50%;
  transform:translateX(-50%) rotate(-7deg);
  width:63px;
  height:63px;
  border-radius:16px;
  background:#ffffffc9;
  display:grid;
  place-items:center;
  box-shadow:0 8px 14px #213e3012;
  z-index:2
}
.visual-symbol img {
  width:47px;
  height:47px;
  object-fit:contain;
  border-radius:9px
}
.visual-wave {
  position:absolute;
  top:55px;
  left:10%;
  width:80%;
  height:45px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:4px;
  opacity:.38
}
.visual-wave i {
  height:13px;
  width:3px;
  border-radius:4px;
  background:currentColor
}
.visual-wave i:nth-child(3n) {
  height:36px
}
.visual-wave i:nth-child(2n) {
  height:25px
}
.visual-wave i:nth-child(5n) {
  height:46px
}
.tool-doodle {
  position:absolute;
  border:1px solid #657c5a50;
  width:39px;
  height:39px;
  display:grid;
  place-items:center;
  border-radius:10px
}
.doodle-one {
  left:17%;
  top:63px;
  transform:rotate(-15deg)
}
.doodle-two {
  right:14%;
  top:47px;
  transform:rotate(16deg)
}
.record-rings {
  position:absolute;
  width:108px;
  height:108px;
  border:1px solid #a65e4620;
  border-radius:50%;
  top:19px;
  left:50%;
  transform:translateX(-50%);
  box-shadow:0 0 0 12px #a65e4607,0 0 0 24px #a65e4607
}
.music-note {
  position:absolute;
  font-size:26px;
  opacity:.55
}
.note-one {
  left:20%;
  top:60px;
  transform:rotate(-14deg)
}
.note-two {
  right:17%;
  top:43px;
  transform:rotate(15deg)
}
.folder-shape {
  position:absolute;
  width:67px;
  height:47px;
  border-radius:5px;
  background:#89a7c060;
  border:1px solid #6085a050
}
.folder-shape:before {
  content:"";
  position:absolute;
  width:29px;
  height:9px;
  top:-8px;
  left:1px;
  border-radius:5px 5px 0 0;
  background:inherit;
  border:1px solid #6085a050;
  border-bottom:0
}
.folder-one {
  left:14%;
  top:60px;
  transform:rotate(-17deg)
}
.folder-two {
  right:13%;
  top:55px;
  transform:rotate(15deg)
}
.featured-body {
  display:flex;
  flex-direction:column;
  flex:1;
  padding:21px 21px 18px
}
.project-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px
}
.project-heading h3 {
  font-size:1.17rem;
  letter-spacing:-.025em
}
.featured-body p {
  font-size:.95rem;
  line-height:1.85;
  margin-block:11px 21px
}
.card-action {
  font-size:.875rem;
  font-weight:500;
  margin-block-start:auto;
  color:var(--accent);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.card-action .icon {
  width:19px
}
.directory-section {
  background:var(--surface-alt);
  border-block:1px solid var(--line)
}
.catalog-controls {
  display:flex;
  flex-direction:column;
  gap:19px
}
.search-box {
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:11px;
  padding-inline:18px;
  min-height:61px;
  box-shadow:0 3px 12px #203e3304
}
.search-box>.icon {
  color:var(--muted)
}
.search-box:focus-within {
  border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)
}
.search-box input {
  width:100%;
  min-width:0;
  height:57px;
  background:transparent;
  border:0;
  outline:none!important;
  color:var(--ink);
  text-align:right;
  direction:rtl;
  font-size:1rem
}
.search-box input::placeholder {
  color:var(--muted);
  opacity:.95
}
.search-box input::-webkit-search-cancel-button {
  -webkit-appearance:none
}
.search-box kbd {
  border:1px solid var(--line);
  border-radius:4px;
  font-size:.875rem;
  line-height:1;
  width:24px;
  height:25px;
  display:grid;
  place-items:center;
  color:var(--muted);
  background:var(--bg)
}
.clear-search {
  width:44px;
  height:44px
}
.clear-search .icon {
  width:17px
}
.category-filters {
  display:flex;
  flex-wrap:wrap;
  gap:7px
}
.category-filters button,.category-navigation a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:7px 16px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  font-size:.875rem
}
.category-filters button:hover,.category-navigation a:hover {
  background:var(--surface)
}
.category-filters button[aria-pressed=true],.category-navigation a[aria-current] {
  background:var(--ink);
  color:var(--bg)
}
.category-filters button>span {
  font-family:monospace;
  font-size:.875rem;
  opacity:.8
}
.category-filters .icon {
  width:18px;
  height:18px
}
.results-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:53px;
  margin-block:4px 13px
}
.results-count {
  font-size:.875rem
}
.category-guide-link {
  font-size:.875rem
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px
}
.project-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:210px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface);
  padding:23px;
  transition:border-color .18s,transform .18s
}
.project-card:hover {
  border-color:var(--accent);
  transform:translateY(-3px)
}
.project-card:focus-within {
  outline:2px solid var(--accent);
  outline-offset:3px
}
.project-card-top {
  display:flex;
  align-items:center;
  gap:12px;
  margin-block-end:17px
}
.project-icon {
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  flex-shrink:0;
  border-radius:10px;
  background:#e7f0e9;
  color:#306b57
}
.accent-coral .project-icon {
  background:#faeae2;
  color:#965438
}
.accent-blue .project-icon {
  background:#e7edf8;
  color:#416a9e
}
.accent-lime .project-icon {
  background:#edf1d7;
  color:#52683f
}
.accent-sand .project-icon {
  background:#f7efde;
  color:#876431
}
.project-icon img {
  width:35px;
  height:35px;
  object-fit:contain;
  background:#fff;
  border-radius:8px;
  padding:3px
}
.project-icon .icon {
  width:20px;
  height:20px
}
.project-status {
  font-size:.875rem;
  background:var(--surface-alt);
  color:var(--muted);
  border-radius:4px;
  padding:2px 7px;
  margin-inline-start:auto
}
.project-title-link::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:13px
}
.project-title-link:focus-visible {
  outline:0
}
.project-card h3 {
  margin:0;
  overflow-wrap:anywhere;
  font-size:1.1rem
}
.project-card p {
  font-size:.95rem;
  line-height:1.8;
  margin-block-end:22px
}
.project-card-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-block-start:auto;
  font-size:.875rem;
  color:var(--muted)
}
.project-go {
  color:var(--accent);
  display:flex;
  margin-inline-start:auto
}
.project-go .icon {
  width:20px;
  height:20px
}
.catalog-more {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:10px;
  margin-block-start:28px
}
.shown-count {
  font-size:.875rem;
  color:var(--muted)
}
.empty-state {
  padding:54px 20px;
  text-align:right;
  background:var(--surface);
  border:1px dashed var(--line);
  border-radius:var(--radius)
}
.empty-state>span>.icon {
  width:37px;
  height:37px;
  color:var(--accent);
  margin-block-end:15px
}
.empty-state p {
  margin-block:13px 23px
}
.learning-teaser {
  display:grid;
  grid-template-columns:105px 1fr auto;
  align-items:center;
  gap:35px;
  border-block-end:1px solid var(--line)
}
.learning-symbol {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:11px;
  background:var(--lime);
  color:var(--ink);
  height:108px;
  border-radius:21px;
  transform:rotate(-7deg)
}
.learning-symbol .icon {
  width:35px;
  height:35px
}
.learning-symbol span {
  font-family:monospace;
  font-size:12px
}
.learning-teaser h2 {
  font-size:1.65rem;
  margin-block-end:12px
}
.learning-teaser p {
  font-size:.875rem;
  max-width:510px
}
.learning-actions {
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:.875rem;
  min-width:230px
}
.learning-actions a {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  min-height:42px;
  border-block-end:1px solid var(--line)
}
.learning-actions a:hover {
  color:var(--accent)
}
.learning-actions .icon {
  width:18px
}
.about-section {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:80px;
  padding-block:76px
}
.about-heading {
  position:relative
}
.about-heading h2 {
  font-size:3.25rem;
  font-weight:800;
  line-height:1.18;
  letter-spacing:-.035em
}
.about-heading h2 span {
  color:var(--accent)
}
.about-spark {
  position:absolute;
  left:50px;
  top:30px;
  font-size:100px;
  color:var(--gold);
  line-height:1
}
.about-copy {
  padding-block-start:18px
}
.about-copy .about-lead {
  font-size:1.12rem;
  font-weight:500;
  color:var(--ink);
  margin-block-end:18px;
  line-height:1.8
}
.about-copy p {
  font-size:.9rem;
  line-height:1.95
}
.about-links {
  display:flex;
  flex-wrap:wrap;
  column-gap:30px;
  margin-block-start:19px
}
.about-links .text-link {
  font-size:1rem
}
.contact-section {
  padding-block-end:65px
}
.contact-details {
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface)
}
.contact-details summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:21px 26px;
  cursor:pointer;
  font-size:.91rem;
  list-style:none
}
.contact-details summary::-webkit-details-marker {
  display:none
}
.contact-summary-link {
  font-size:1rem;
  color:var(--accent);
  white-space:nowrap
}
.contact-summary-link>span {
  margin-inline-start:18px;
  font-size:20px
}
.contact-form {
  max-width:740px;
  padding:0 26px 28px;
  margin:auto
}
.contact-form p {
  margin-block-end:20px;
  font-size:.875rem
}
.contact-form label {
  display:block;
  font-size:.95rem;
  margin-block:12px 7px
}
.contact-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.contact-form input,.contact-form textarea {
  background:var(--bg);
  border:1px solid var(--line);
  padding:11px;
  color:var(--ink);
  text-align:right;
  width:100%
}
.contact-form .button {
  margin-block-start:18px
}
.site-footer {
  background:var(--surface-alt);
  border-block-start:1px solid var(--line)
}
.footer-top {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:60px;
  padding-block:49px
}
.footer-brand {
  width:fit-content
}
.footer-top p {
  font-size:.875rem;
  margin-block-start:15px
}
.footer-top nav {
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  font-size:.875rem;
  gap:6px
}
.footer-top nav strong {
  font-size:.875rem;
  margin-block-end:12px
}
.footer-top nav a {
  color:var(--muted);
  min-height:44px;
  display:flex;
  align-items:center
}
.footer-top nav a:hover {
  color:var(--accent);
  text-decoration:underline
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-block-start:1px solid var(--line);
  padding-block:22px;
  font-size:.875rem;
  color:var(--muted)
}
.footer-bottom>a {
  color:var(--ink)
}
.page-content {
  padding-block:30px 65px;
  min-height:65vh
}
.breadcrumbs {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  color:var(--muted);
  font-size:.875rem;
  margin-block-end:35px
}
.breadcrumbs a:hover {
  color:var(--accent);
  text-decoration:underline
}
.category-hero {
  position:relative;
  max-width:850px;
  margin-block:48px 50px
}
.category-hero h1 {
  font-size:clamp(2.3rem,4vw,3.8rem);
  max-width:900px
}
.category-hero>p {
  font-size:1.1rem;
  max-width:730px;
  margin-block:22px
}
.category-hero .button {
  margin-block-start:10px
}
.category-hero-icon {
  display:inline-grid;
  place-items:center;
  background:var(--lime);
  padding:12px;
  border-radius:12px;
  margin-block-end:20px
}
.category-hero-icon .icon {
  width:29px;
  height:29px
}
.category-navigation {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  border-block:1px solid var(--line);
  padding-block:18px
}
.category-guide {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:55px;
  border-block-start:1px solid var(--line)
}
.guide-content h2 {
  font-size:1.2rem;
  margin-block:0 15px
}
.guide-content p {
  font-size:.94rem;
  line-height:1.95;
  margin-block-end:28px
}
.guide-content a,.reading-content a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:3px
}
.learning-video {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:24px;
  padding:32px;
  border-radius:16px;
  background:var(--ink);
  color:var(--bg)
}
.learning-video h2 {
  font-size:clamp(1.6rem,3vw,2rem)
}
.learning-video-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px 24px
}
.learning-video .primary-button {
  background:var(--bg);
  color:var(--ink);
  font-size:1rem;
  min-height:56px;
  gap:12px;
  padding-inline:18px
}
.learning-video .text-link {
  font-size:1rem
}
.learning-video .text-link:hover {
  color:inherit;
  text-decoration:underline
}
.learning-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px
}
.learning-grid>a {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:13px;
  padding:23px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  transition:border-color .2s
}
.learning-grid>a:hover {
  border-color:var(--accent)
}
.learning-grid>a>span {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:12px;
  background:var(--surface-alt);
  color:var(--accent);
  margin-block-end:20px
}
.learning-grid>a>span .icon {
  width:27px;
  height:27px
}
.learning-grid h3 {
  font-size:1rem;
  line-height:1.5
}
.learning-grid p {
  font-size:.875rem;
  line-height:1.8;
  margin-block:12px 22px
}
.learning-grid>a>.icon {
  margin-block-start:auto;
  width:20px;
  align-self:flex-end
}
.reading-content h1 {
  font-size:clamp(2rem,4vw,3rem);
  margin-block-end:30px
}
.reading-content h2 {
  font-size:1.6rem;
  margin-block:35px 20px
}
.reading-content h3 {
  margin-block:25px 15px
}
.reading-content p {
  margin-block:15px;
  font-size:.96rem
}
.reading-content table {
  width:100%;
  border-collapse:collapse;
  background:var(--surface);
  font-size:.89rem
}
.reading-content>table {
  display:block;
  overflow-x:auto
}
.reading-content th {
  background:var(--ink);
  color:var(--bg);
  padding:14px;
  text-align:start;
  font-weight:500
}
.reading-content td {
  padding:13px;
  border-block-end:1px solid var(--line);
  vertical-align:top
}
.reading-content tbody tr:nth-child(even) {
  background:var(--surface-alt)
}
.table-scroll {
  max-width:100%;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:10px;
  margin-block:20px
}
.table-scroll table {
  margin:0;
  min-width:590px
}
.speak-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  color:var(--accent);
  width:36px;
  height:36px;
  border-radius:50%;
  margin-inline-start:5px;
  vertical-align:middle
}
.speak-button:hover {
  background:var(--line)
}
.speak-button .icon {
  width:17px;
  height:17px
}
.reading-next {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
  padding:27px;
  margin-block-start:45px;
  background:var(--surface-alt);
  border:1px solid var(--line);
  border-radius:13px;
  font-size:.88rem
}
.reading-next a {
  display:flex;
  gap:12px;
  align-items:center;
  color:var(--accent);
  min-height:44px
}
.video-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px
}
.video-item {
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface);
  overflow:hidden
}
.video-preview {
  aspect-ratio:16/9;
  background-size:cover;
  background-position:center;
  display:grid;
  place-items:center
}
.play-icon {
  color:white;
  font-size:40px;
  filter:drop-shadow(0 2px 7px #000)
}
.video-details {
  padding:20px
}
.video-details p {
  font-size:.875rem
}
.video-details h4 {
  margin:0
}
.download-buttons {
  display:flex;
  gap:10px;
  flex-wrap:wrap
}
.download-buttons .button,.playlist-links .button {
  border:1px solid var(--line);
  font-size:.875rem;
  padding:9px 12px;
  margin-block:4px
}
.playlist-links {
  margin-block:30px
}
.video-category {
  margin-block:40px
}
.error-page {
  padding-block:60px 100px
}
.error-page h1 {
  font-size:clamp(2rem,4vw,3.5rem)
}
.error-page p {
  margin-block:25px
}
.home-content .hero-copy {
  animation:arrive .5s var(--ease) both
}
.home-content .project-map {
  animation:arrive .65s var(--ease) .05s both
}
@keyframes arrive {
  from {
    opacity:0;
    transform:translateY(12px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@media(min-width:1450px) {
  .hero {
    padding-block:74px
  }
  .project-map {
    max-width:500px
  }
}
@media(max-width:1100px) {
  .brand-byline {
    font-size:.875rem;
    padding-inline-start:9px;
    margin-inline-start:0
  }
  .header-inner {
    gap:20px
  }
  .main-nav {
    gap:20px
  }
  .hero {
    gap:25px
  }
  .hero h1 {
    font-size:3.7rem
  }
  .intent-strip {
    flex-wrap:wrap;
    gap:4px;
    justify-content:space-between
  }
  .intent-strip>a {
    padding-inline:7px
  }
  .featured-grid {
    gap:13px
  }
  .featured-body {
    padding:18px 15px
  }
  .project-heading h3 {
    font-size:1.07rem
  }
  .featured-body p {
    font-size:.95rem
  }
  .learning-teaser {
    grid-template-columns:85px 1fr;
    gap:25px
  }
  .learning-symbol {
    height:85px
  }
  .learning-actions {
    grid-column:2;
    flex-direction:row;
    flex-wrap:wrap;
    gap:18px
  }
  .learning-actions a {
    min-width:190px
  }
  .about-section {
    gap:45px
  }
  .about-spark {
    left:15px
  }
  .learning-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:800px) {
  .container {
    width:calc(100% - 40px)
  }
  .header-inner {
    min-height:72px;
    flex-wrap:wrap;
    gap:0;
    justify-content:space-between
  }
  .brand-name {
    font-size:1.5rem
  }
  .brand-mark {
    width:34px;
    height:34px
  }
  .brand-byline {
    display:block;
    font-size:.875rem
  }
  .header-actions {
    margin-inline-start:auto
  }
  .main-nav {
    width:100%;
    order:3;
    justify-content:flex-start;
    align-items:stretch;
    flex-direction:column;
    border-block-start:1px solid var(--line);
    gap:0;
    padding:5px 0
  }
  .nav-ready .menu-toggle {
    display:inline-flex
  }
  .nav-ready .main-nav:not(.is-open) {
    display:none
  }
  .nav-ready .main-nav.is-open {
    display:flex
  }
  .hero {
    grid-template-columns:1.2fr 1fr;
    gap:10px;
    padding-block:40px
  }
  .hero h1 {
    font-size:clamp(2.55rem,6.3vw,3.5rem)
  }
  .hero-description {
    font-size:.91rem
  }
  .hero-actions {
    gap:8px
  }
  .hero-actions .button {
    padding-inline:16px;
    font-size:.875rem
  }
  .hero-actions .text-link {
    font-size:.875rem
  }
  .map-center {
    border-radius:18px
  }
  .map-node {
    min-height:89px;
    width:29%;
    border-radius:12px;
    gap:2px
  }
  .map-node img {
    width:31px;
    height:31px
  }
  .map-node>span {
    font-size:.875rem;
    line-height:1.3;
    text-align:center
  }
  .intent-strip {
    justify-content:center;
    column-gap:12px;
    padding-block:13px
  }
  .intent-strip>a {
    font-size:.875rem;
    padding-inline:6px
  }
  .intent-strip .icon {
    width:17px
  }
  .intent-arrow {
    display:none
  }
  .section-space {
    padding-block:48px
  }
  .featured-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:17px
  }
  .project-visual {
    height:165px
  }
  .featured-body {
    padding:22px
  }
  .project-heading h3 {
    font-size:1.22rem
  }
  .featured-body p {
    font-size:.95rem
  }
  .card-action {
    font-size:.875rem
  }
  .project-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .project-card {
    padding:20px;
    min-height:0
  }
  .about-section {
    gap:40px
  }
  .about-heading h2 {
    font-size:2.8rem
  }
  .about-spark {
    font-size:70px;
    top:auto;
    bottom:20px;
    left:25px
  }
  .about-copy {
    padding:0
  }
  .about-copy .about-lead {
    font-size:1rem
  }
  .about-copy p {
    font-size:.875rem
  }
  .footer-top {
    grid-template-columns:1fr 1fr;
    gap:35px
  }
  .footer-top>div {
    grid-column:1/-1
  }
  .footer-bottom {
    flex-wrap:wrap;
    font-size:.875rem
  }
  .category-guide {
    grid-template-columns:1fr;
    gap:25px
  }
  .video-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:560px) {
  .learning-video {
    padding:24px
  }
  .learning-video-actions {
    width:100%
  }
  .learning-video .primary-button {
    width:100%
  }
  html {
    scroll-padding-top:88px
  }
  .container {
    width:calc(100% - 36px)
  }
  .header-inner {
    min-height:69px
  }
  .header-inner>.brand {
    display:grid;
    grid-template-columns:33px auto;
    gap:0 9px
  }
  .header-inner .brand-mark {
    grid-row:1 / 3
  }
  .header-inner .brand-name {
    line-height:1.15
  }
  .brand-byline {
    grid-column:2;
    border:0;
    padding:0;
    margin:0;
    font-size:.75rem;
    line-height:1.4
  }
  .github-link {
    display:none
  }
  .header-actions {
    gap:2px
  }
  .brand-mark {
    width:33px;
    height:33px;
    border-radius:10px
  }
  .icon-button {
    width:44px;
    height:44px
  }
  .main-nav {
    gap:0;
    justify-content:flex-start;
    font-size:1rem
  }
  .hero {
    grid-template-columns:1fr;
    padding-block:35px 28px;
    gap:20px
  }
  .hero h1 {
    font-size:3.3rem
  }
  .hero-description {
    font-size:.98rem;
    margin-block:23px
  }
  .hero-actions {
    gap:17px
  }
  .hero-actions .button {
    font-size:.875rem;
    padding:12px 19px
  }
  .project-map {
    aspect-ratio:480/285;
    max-width:375px;
    justify-self:center;
    margin-block:10px 16px;
    background-size:15px 15px
  }
  .map-lines {
    inset:-7% 0;
    height:110%
  }
  .map-center {
    top:33%;
    width:24%;
    height:34%;
    left:38%
  }
  .map-node {
    width:29%;
    min-height:86px
  }
  .map-node img {
    width:30px;
    height:30px
  }
  .map-node>span {
    font-size:.875rem
  }
  .map-node-1,.map-node-2 {
    top:0
  }
  .map-node-3,.map-node-4 {
    bottom:0
  }
  .map-plus {
    display:none
  }
  .intent-strip {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5px;
    padding-block:15px
  }
  .intent-strip>a {
    font-size:.875rem;
    gap:7px;
    min-height:43px;
    padding:5px
  }
  .section-space {
    padding-block:38px
  }
  .section-heading {
    gap:12px;
    margin-block-end:23px
  }
  .section-heading .text-link {
    font-size:.875rem;
    white-space:nowrap
  }
  .section-heading .text-link .icon {
    width:16px
  }
  .featured-grid {
    grid-template-columns:1fr;
    gap:12px
  }
  .featured-link {
    display:grid;
    grid-template-columns:88px minmax(0,1fr)
  }
  .project-visual>:not(.visual-symbol) {
    display:none
  }
  .project-visual {
    height:100%;
    border-block-end:0
  }
  .visual-symbol {
    top:50%;
    transform:translate(-50%,-50%);
    width:52px;
    height:52px;
    border-radius:12px
  }
  .visual-symbol img {
    width:41px;
    height:41px
  }
  .visual-wave {
    top:40px
  }
  .doodle-one {
    left:8%;
    top:55px
  }
  .doodle-two {
    right:7%;
    top:39px
  }
  .tool-doodle {
    width:29px;
    height:29px
  }
  .tool-doodle .icon {
    width:18px
  }
  .folder-shape {
    width:47px;
    height:37px
  }
  .folder-one {
    left:9%;
    top:46px
  }
  .folder-two {
    right:9%;
    top:46px
  }
  .note-one {
    left:10%
  }
  .note-two {
    right:9%
  }
  .record-rings {
    width:87px;
    height:87px;
    top:18px
  }
  .featured-body {
    padding:18px 16px
  }
  .project-heading h3 {
    font-size:1.1rem
  }
  .featured-body p {
    font-size:.95rem;
    line-height:1.8;
    margin-block:8px 12px
  }
  .card-action {
    font-size:.875rem;
    gap:5px
  }
  .card-action .icon {
    width:17px
  }
  .search-box {
    min-height:56px;
    padding-inline:13px;
    gap:10px
  }
  .search-box input {
    font-size:1rem;
    height:54px
  }
  .search-box kbd {
    display:none
  }
  .category-filters {
    gap:4px
  }
  .category-filters button {
    font-size:.875rem;
    padding:6px 10px;
    gap:6px
  }
  .category-filters .icon {
    width:16px
  }
  .category-filters button>span {
    font-size:.875rem
  }
  .results-header {
    align-items:flex-start;
    flex-direction:column;
    gap:0;
    margin-block:16px 15px;
    min-height:22px
  }
  .results-count {
    font-size:.875rem
  }
  .category-guide-link {
    font-size:.875rem;
    min-height:32px
  }
  .project-grid {
    grid-template-columns:1fr;
    gap:12px
  }
  .project-card {
    padding:20px;
    min-height:0
  }
  .project-card-top {
    margin-block-end:13px
  }
  .project-card h3 {
    font-size:1.1rem
  }
  .project-card p {
    font-size:.95rem;
    line-height:1.8;
    margin-block-end:17px
  }
  .project-card-bottom {
    font-size:.875rem
  }
  .project-status {
    font-size:.875rem
  }
  .learning-teaser {
    grid-template-columns:1fr;
    gap:20px
  }
  .learning-symbol {
    width:72px;
    height:72px;
    border-radius:15px;
    gap:5px
  }
  .learning-symbol .icon {
    width:29px
  }
  .learning-symbol span {
    font-size:10px
  }
  .learning-teaser h2 {
    font-size:1.57rem
  }
  .learning-actions {
    grid-column:auto;
    flex-direction:column;
    gap:7px;
    font-size:.875rem
  }
  .learning-actions a {
    min-height:45px
  }
  .about-section {
    grid-template-columns:1fr;
    gap:28px
  }
  .about-heading h2 {
    font-size:3.15rem
  }
  .about-spark {
    font-size:90px;
    bottom:0;
    left:25px
  }
  .about-copy .about-lead {
    font-size:1.06rem
  }
  .about-copy p {
    font-size:.91rem
  }
  .about-links {
    gap:9px
  }
  .contact-section {
    padding-block-end:40px
  }
  .contact-details summary {
    padding:18px;
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
    font-size:.875rem
  }
  .contact-summary-link {
    display:flex;
    justify-content:space-between;
    width:100%
  }
  .contact-form {
    padding-inline:18px
  }
  .contact-fields {
    grid-template-columns:1fr;
    gap:0
  }
  .footer-top {
    padding-block:33px;
    gap:26px 20px
  }
  .footer-top nav {
    font-size:.875rem;
    gap:4px
  }
  .footer-top nav strong {
    font-size:.875rem
  }
  .category-hero {
    margin-block:30px
  }
  .category-hero h1 {
    font-size:2.5rem
  }
  .category-hero>p {
    font-size:1rem
  }
  .category-navigation {
    gap:5px
  }
  .category-navigation a {
    padding:7px 10px;
    font-size:.875rem
  }
  .category-navigation .icon {
    width:18px
  }
  .guide-content h2 {
    font-size:1.2rem
  }
  .guide-content p {
    font-size:.9rem
  }
  .learning-grid {
    grid-template-columns:1fr;
    gap:12px
  }
  .learning-grid>a {
    padding:22px
  }
  .learning-grid>a>span {
    margin-block-end:12px
  }
  .learning-grid p {
    margin-block:10px 16px
  }
  .reading-next {
    padding:20px;
    flex-direction:column;
    align-items:flex-start;
    gap:13px
  }
  .video-grid {
    grid-template-columns:1fr
  }
  .breadcrumbs {
    font-size:.875rem;
    gap:7px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }
  .button:hover,.featured-card:hover,.project-card:hover {
    transform:none
  }
}
