﻿    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--bg);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-size: 16px;
      line-height: 1.6;
    }

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

    a {
      color: inherit;
    }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 20;
      border-bottom: 1px solid rgba(222, 216, 205, 0.8);
      background: rgba(246, 243, 237, 0.92);
      backdrop-filter: blur(14px);
    }

    .nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: min(1180px, calc(100% - 32px));
      min-height: 72px;
      margin: 0 auto;
      gap: 24px;
    }

    .brand {
      display: grid;
      grid-template-columns: 48px 1fr;
      align-items: center;
      gap: 12px;
      text-decoration: none;
    }

    .brand-mark {
      width: 48px;
      height: 48px;
      object-fit: contain;
      border-radius: 8px;
      box-shadow: 0 8px 18px rgba(23, 32, 31, 0.08);
    }

    .brand-text {
      min-width: 0;
    }

    .brand strong {
      display: block;
      color: var(--steel);
      font-size: 1.35rem;
      letter-spacing: 0;
      line-height: 1;
    }

    .brand span {
      display: block;
      color: var(--muted);
      font-size: 0.78rem;
      margin-top: 5px;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .nav-links a {
      display: inline-flex;
      min-height: 42px;
      align-items: center;
      padding: 0 12px;
      border-radius: 999px;
      color: var(--steel);
      font-size: 0.93rem;
      font-weight: 650;
      text-decoration: none;
    }

    .nav-links a:hover,
    .nav-links a:focus-visible {
      background: #ebe5da;
      outline: none;
    }

    .nav-toggle {
      display: none;
      min-height: 44px;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 0 14px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--paper);
      color: var(--steel);
      cursor: pointer;
      font: inherit;
      font-weight: 750;
    }

    .nav-toggle-bars,
    .nav-toggle-bars::before,
    .nav-toggle-bars::after {
      display: block;
      width: 18px;
      height: 2px;
      border-radius: 999px;
      background: currentColor;
      transition: transform 160ms ease, opacity 160ms ease;
    }

    .nav-toggle-bars {
      position: relative;
    }

    .nav-toggle-bars::before,
    .nav-toggle-bars::after {
      content: "";
      position: absolute;
      left: 0;
    }

    .nav-toggle-bars::before {
      top: -6px;
    }

    .nav-toggle-bars::after {
      top: 6px;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-bars {
      transform: rotate(45deg);
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-bars::before {
      transform: translateY(6px) rotate(90deg);
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-bars::after {
      opacity: 0;
    }

    .hero {
      position: relative;
      min-height: 68vh;
      display: grid;
      align-items: end;
      overflow: hidden;
      background: #111;
    }

    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(90deg, rgba(11, 18, 19, 0.9), rgba(11, 18, 19, 0.62) 44%, rgba(11, 18, 19, 0.22)),
        url("../images/index_rot1.jpg") center 45% / auto 100% no-repeat;
    }

    .hero::after {
      content: "";
      position: absolute;
      inset: -24px;
      z-index: 0;
      background:
        linear-gradient(90deg, rgba(11, 18, 19, 0.78), rgba(11, 18, 19, 0.26) 48%, rgba(11, 18, 19, 0.7)),
        url("../images/index_rot1.jpg") center / cover no-repeat;
      filter: blur(10px) saturate(0.82);
      opacity: 0.82;
      transform: scaleX(-1) scale(1.08);
    }

    .hero-inner {
      position: relative;
      z-index: 2;
      width: min(1180px, calc(100% - 32px));
      margin: 0 auto;
      padding: 96px 0 64px;
      color: white;
    }

    .eyebrow {
      margin: 0 0 16px;
      color: #dfd5c5;
      font-size: 0.82rem;
      font-weight: 750;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

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

    .hero h1 {
      max-width: 780px;
      margin-bottom: 22px;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(2.8rem, 8vw, 6.8rem);
      font-weight: 700;
      letter-spacing: 0;
      line-height: 0.92;
    }

    .hero-copy {
      max-width: 760px;
      margin-bottom: 30px;
      color: #f6efe4;
      font-size: clamp(1.05rem, 2vw, 1.32rem);
    }

    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }

    .button {
      display: inline-flex;
      min-height: 48px;
      align-items: center;
      justify-content: center;
      padding: 0 18px;
      border: 1px solid transparent;
      border-radius: 999px;
      background: var(--accent);
      color: white;
      cursor: pointer;
      font: inherit;
      font-weight: 750;
      text-decoration: none;
    }

    .button.secondary {
      border-color: rgba(255, 255, 255, 0.38);
      background: rgba(255, 255, 255, 0.1);
    }

    main {
      width: min(1180px, calc(100% - 32px));
      margin: 0 auto;
    }

    .section {
      padding: 68px 0;
      border-bottom: 1px solid var(--line);
    }

    .section-header {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 24px;
      margin-bottom: 28px;
    }

    .section h2 {
      margin-bottom: 8px;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(2rem, 4vw, 3.4rem);
      line-height: 1.04;
    }

    .section-lead {
      max-width: 720px;
      margin-bottom: 0;
      color: var(--muted);
      font-size: 1.05rem;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }

    .card {
      min-height: 100%;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--paper);
      box-shadow: 0 1px 0 rgba(23, 32, 31, 0.05);
    }

    .card.feature {
      display: grid;
      grid-template-columns: 120px 1fr;
      gap: 22px;
      align-items: start;
    }

    .book-cover {
      width: 120px;
      aspect-ratio: 2 / 3;
      object-fit: cover;
      border-radius: 6px;
      box-shadow: var(--shadow);
    }

    .tag {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      margin-bottom: 14px;
      padding: 0 10px;
      border-radius: 999px;
      background: #eee6d9;
      color: var(--accent-dark);
      font-size: 0.78rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    .card h3 {
      margin-bottom: 10px;
      font-size: 1.18rem;
      line-height: 1.25;
    }

    .card p {
      margin-bottom: 18px;
      color: var(--muted);
    }

    .text-link {
      color: var(--accent-dark);
      font-weight: 800;
      text-decoration-thickness: 2px;
      text-underline-offset: 4px;
    }

    .publication-tools {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 14px;
      margin-bottom: 18px;
    }

    .publication-tools.compact {
      display: flex;
      justify-content: flex-end;
    }

    .search {
      min-height: 48px;
      width: 100%;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 0 14px;
      background: var(--paper);
      color: var(--ink);
      font: inherit;
    }

    .filters {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .filter {
      min-height: 48px;
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 0 14px;
      background: var(--paper);
      color: var(--steel);
      cursor: pointer;
      font: inherit;
      font-weight: 750;
    }

    .filter[aria-pressed="true"] {
      border-color: var(--accent);
      background: var(--accent);
      color: white;
    }

    .content-list,
    .publication-list {
      display: grid;
      max-height: calc((var(--publication-row) * 5) + (var(--publication-gap) * 4));
      overflow-y: auto;
      overscroll-behavior: contain;
      padding-right: 6px;
      gap: var(--publication-gap);
      scrollbar-color: var(--accent) #eee6d9;
    }

    .content-list.is-expanded,
    .publication-list.is-expanded {
      max-height: none;
      overflow-y: visible;
      padding-right: 0;
    }

    .content-list::-webkit-scrollbar,
    .publication-list::-webkit-scrollbar {
      width: 10px;
    }

    .content-list::-webkit-scrollbar-track,
    .publication-list::-webkit-scrollbar-track {
      background: #eee6d9;
      border-radius: 999px;
    }

    .content-list::-webkit-scrollbar-thumb,
    .publication-list::-webkit-scrollbar-thumb {
      border: 2px solid #eee6d9;
      border-radius: 999px;
      background: var(--accent);
    }

    .state {
      padding: 18px;
      border: 1px dashed #c8beb1;
      border-radius: var(--radius);
      background: rgba(255, 253, 248, 0.72);
      color: var(--muted);
    }

    .list-item,
    .publication {
      display: grid;
      grid-template-columns: 86px 1fr auto;
      gap: 18px;
      align-items: center;
      min-height: var(--publication-row);
      padding: 16px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--paper);
      text-decoration: none;
    }

    .podcast-item {
      grid-template-columns: 52px 86px 1fr auto;
    }

    .platform-badge {
      display: inline-flex;
      width: 42px;
      height: 42px;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      background: white;
      box-shadow: 0 4px 12px rgba(23, 32, 31, 0.12);
      overflow: hidden;
    }

    .platform-badge img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .list-item:hover,
    .list-item:focus-visible,
    .publication:hover,
    .publication:focus-visible {
      border-color: #c6b8a5;
      box-shadow: 0 10px 28px rgba(23, 32, 31, 0.08);
      outline: none;
      transform: translateY(-1px);
    }

    .date {
      color: var(--accent-dark);
      font-weight: 850;
      line-height: 1.2;
    }

    .list-item strong,
    .publication strong {
      display: block;
      line-height: 1.3;
    }

    .list-item span,
    .publication span {
      color: var(--muted);
      font-size: 0.93rem;
    }

    .arrow {
      color: var(--accent-dark);
      font-weight: 900;
    }

    .split {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 340px;
      gap: 24px;
      align-items: start;
    }

    .contact-panel {
      position: sticky;
      top: 96px;
      padding: 24px;
      border-radius: var(--radius);
      background: var(--steel);
      color: white;
    }

    .contact-panel p {
      color: #e4e8e5;
    }

    .contact-panel a {
      color: white;
      font-weight: 750;
    }

    .site-footer {
      width: min(1180px, calc(100% - 32px));
      margin: 0 auto;
      padding: 34px 0 48px;
      color: var(--muted);
      font-size: 0.94rem;
    }

    .site-footer a {
      color: var(--steel);
      font-weight: 750;
    }

    .theme-credit {
      margin: 24px 0 0;
      text-align: center;
    }

    .footer-actions {
      display: flex;
      justify-content: center;
      margin: 18px 0 0;
    }

    .footer-admin {
      min-height: 38px;
      padding: 0 14px;
      font-size: 0.88rem;
    }

    .cookie-notice {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 30;
      display: flex;
      width: min(520px, calc(100% - 36px));
      align-items: center;
      gap: 16px;
      padding: 16px;
      border: 1px solid rgba(222, 216, 205, 0.95);
      border-radius: var(--radius);
      background: var(--paper);
      box-shadow: var(--shadow);
    }

    .cookie-notice[hidden] {
      display: none;
    }

    .cookie-notice p {
      margin: 0;
      color: var(--muted);
      font-size: 0.92rem;
      line-height: 1.45;
    }

    .cookie-notice .button {
      min-height: 42px;
      flex: 0 0 auto;
    }

    @media (max-width: 880px) {
      .hero {
        min-height: 72vh;
      }

      .hero::before {
        background:
          linear-gradient(90deg, rgba(11, 18, 19, 0.86), rgba(11, 18, 19, 0.58) 48%, rgba(11, 18, 19, 0.18)),
          url("../images/index_rot1.jpg") center 45% / auto 100% no-repeat;
      }

      .hero::after {
        inset: -18px;
        filter: blur(8px) saturate(0.82);
      }

      .nav {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        padding: 14px 0;
        gap: 12px;
      }

      .nav-toggle {
        display: inline-flex;
      }

      .nav-links {
        display: none;
        grid-column: 1 / -1;
        width: 100%;
        padding: 8px;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        background: var(--paper);
        box-shadow: 0 12px 28px rgba(23, 32, 31, 0.08);
      }

      .nav-links.is-open {
        display: grid;
        grid-template-columns: 1fr;
      }

      .nav-links a {
        width: 100%;
        justify-content: flex-start;
        padding: 0 14px;
        border-radius: var(--radius);
      }

      .brand {
        grid-template-columns: 42px 1fr;
      }

      .brand-mark {
        width: 42px;
        height: 42px;
      }

      .brand span {
        font-size: 0.72rem;
        line-height: 1.25;
      }

      .grid,
      .split {
        grid-template-columns: 1fr;
      }

      .section-header,
      .publication-tools {
        align-items: stretch;
        flex-direction: column;
        display: flex;
      }

      .section {
        padding: 52px 0;
      }

      .contact-panel {
        position: static;
      }
    }

    @media (max-width: 620px) {
      :root {
        --publication-row: 132px;
      }

      body {
        font-size: 15px;
      }

      .nav,
      main,
      .site-footer,
      .hero-inner {
        width: min(100% - 24px, 1180px);
      }

      .nav-links.is-open {
        grid-template-columns: 1fr;
      }

      .nav-toggle-label {
        display: none;
      }

      .hero {
        min-height: 76vh;
      }

      .hero::before {
        background:
          linear-gradient(180deg, rgba(11, 18, 19, 0.32), rgba(11, 18, 19, 0.9)),
          url("../images/index_rot1.jpg") center top / cover no-repeat;
      }

      .hero::after {
        display: none;
      }

      .hero-inner {
        padding: 70px 0 40px;
      }

      .hero h1 {
        font-size: clamp(2.8rem, 18vw, 4.6rem);
      }

      .content-list,
      .publication-list {
        max-height: calc((var(--publication-row) * 5) + (var(--publication-gap) * 4));
        overflow-y: auto;
        padding-right: 6px;
      }

      .content-list.is-mobile-expanded,
      .publication-list.is-mobile-expanded {
        max-height: min(68vh, 560px);
        overflow-y: auto;
        padding-right: 6px;
      }

      .actions,
      .filters {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
      }

      .button,
      .filter {
        width: 100%;
        padding: 0 12px;
      }

      .button {
        text-align: center;
      }

      .cookie-notice {
        right: 12px;
        bottom: 12px;
        width: calc(100% - 24px);
        align-items: stretch;
        flex-direction: column;
      }

      .card.feature {
        grid-template-columns: 1fr;
      }

      .book-cover {
        width: 120px;
      }

      .list-item,
      .publication {
        grid-template-columns: 1fr;
        gap: 8px;
        align-items: start;
      }

      .podcast-item {
        grid-template-columns: 42px 1fr;
      }

      .podcast-item .date,
      .podcast-item .arrow {
        grid-column: 2;
      }

      .podcast-item > div:nth-child(3) {
        grid-column: 2;
      }

      .arrow {
        display: none;
      }
    }
