:root {
  --hh-radius: 0;
  --hh-shadow: none;
  --hh-max: 1560px;
}

html { scroll-behavior: smooth; }
body.hh-theme {
  background: var(--hh-background-color);
  color: var(--hh-text-color);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.55;
  margin: 0;
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.14em;
}
img { max-width: 100%; height: auto; }

.hh-container {
  width: min(var(--hh-max), calc(100% - 32px));
  margin: 0 auto;
}

.hh-main { padding: 0 0 80px; }

.hh-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: color-mix(in srgb, var(--hh-surface-color) 90%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--hh-border-color);
}
.hh-header__inner {
  min-height: 62px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.hh-brand {
  color: var(--hh-text-color);
  text-decoration: none;
  font-size: 1.15rem;
  letter-spacing: 0.04em;
  font-weight: 700;
}
.hh-site-title-text, .hh-footer__site-name { font-style: italic; }
.hh-site-logo { max-height: 46px; width: auto; display: block; }
.hh-nav { display: flex; align-items: center; gap: 22px; }
.hh-menu, .hh-footer-menu, .hh-footer__bottom-links {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  margin: 0;
  padding: 0;
}
.hh-menu a, .hh-footer-menu a, .hh-footer__bottom-links a {
  text-decoration: none;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hh-muted-text-color);
}
.hh-menu .current-menu-item > a,
.hh-menu a:hover,
.hh-footer-menu a:hover,
.hh-footer__bottom-links a:hover,
.hh-home-index__link:hover {
  color: var(--hh-text-color);
}

.hh-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 11px 18px;
  border: 1px solid var(--hh-text-color);
  border-radius: 999px;
  background: var(--hh-text-color);
  color: var(--hh-surface-color);
  text-decoration: none;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hh-button--small { padding: 9px 14px; font-size: 0.72rem; }
.hh-button--ghost, .hh-button--outline {
  background: transparent;
  color: var(--hh-text-color);
  border-color: var(--hh-border-color);
}
.hh-button--outline:hover, .hh-button--ghost:hover { border-color: var(--hh-text-color); }

/* Home */
.hh-home { padding-top: 0; }
.hh-home { overflow-x: clip; }
.hh-home-hero { --hh-hero-media-height: clamp(240px, 33vw, 480px); margin-bottom: 56px; }
.hh-home-hero__media-wrap { width: 100%; margin: 0; }
.hh-home-hero__media-link { display: block; }
.hh-home-hero__media { background: #eae7e0; height: var(--hh-hero-media-height); overflow: hidden; }
.hh-home-hero__media img, .hh-feature-lead__image, .hh-feature-mini__image, .hh-card__image {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.hh-home-hero__media img { width: 100%; height: 100%; min-height: 0; }
.hh-home-hero__card {
  width: min(980px, calc(100% - 96px));
  max-width: 980px;
  background: var(--hh-surface-color);
  padding: clamp(22px, 3.4vw, 40px) clamp(22px, 3.8vw, 42px);
  margin-top: -54px;
  position: relative;
  box-shadow: none;
}
.hh-home-hero__case {
  display: inline-flex;
  align-items: center;
  margin: 0 0 18px;
  padding: 8px 12px 7px;
  background: #111111;
  color: #ffffff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  line-height: 1;
}
.hh-feature-lead__eyebrow,
.hh-feature-mini__eyebrow,
.hh-card__eyebrow,
.hh-card__case,
.hh-footer__heading,
.hh-home-index__item-number {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--hh-muted-text-color);
}
.hh-home-hero__title,
.hh-feature-lead__title,
.hh-home-manifesto__title,
.hh-section__title,
.hh-article-header__title,
.hh-card__title {
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.03em;
  margin: 0;
}
.hh-home-hero__title { font-size: clamp(2.5rem, 5vw, 4.6rem); max-width: 18ch; text-wrap: balance; }
.hh-home-hero__title a, .hh-feature-lead__link, .hh-feature-mini__link, .hh-card__link { text-decoration: none; color: inherit; }
.hh-home-hero__summary {
  margin: 16px 0 10px;
  font-size: clamp(0.98rem, 1.2vw, 1.08rem);
  line-height: 1.58;
  color: var(--hh-muted-text-color);
  max-width: min(58ch, 100%);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.hh-home-hero__situation,
.hh-feature-lead__meta, .hh-card__meta, .hh-feature-mini__desc, .hh-card__desc, .hh-section__description, .hh-section__subtitle, .hh-footer__muted, .hh-footer__text, .hh-footer__tagline, .hh-footer-notes__date, .hh-home-index__item-count, .hh-home-index__desc {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--hh-muted-text-color);
}
.hh-home-hero__situation {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.55;
  letter-spacing: 0.04em;
  max-width: min(60ch, 100%);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.hh-home-feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.45fr) minmax(320px, 0.95fr);
  gap: 38px;
  align-items: start;
  margin-bottom: 84px;
}
.hh-home-feature-grid--single { grid-template-columns: minmax(0, 1fr); }
.hh-feature-lead__media { aspect-ratio: 16 / 10; background: #ece8df; margin-bottom: 24px; }
.hh-feature-lead__eyebrow,
.hh-feature-mini__eyebrow {
  display: inline-flex;
  align-items: center;
  margin: 0 0 12px;
  padding: 6px 10px 5px;
  background: #111111;
  color: #ffffff;
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1;
}
.hh-feature-lead__title { font-size: clamp(2rem, 3vw, 3rem); margin-top: 10px; max-width: 28ch; text-wrap: balance; }
.hh-feature-lead__desc {
  margin: 12px 0 14px;
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--hh-muted-text-color);
  max-width: 54ch;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.hh-feature-lead__meta {
  font-size: 0.78rem;
  line-height: 1.55;
  letter-spacing: 0.03em;
  max-width: 60ch;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.hh-feature-stack { display: grid; gap: 28px; padding-left: 12px; }
.hh-feature-mini { border-left: 1px solid var(--hh-border-color); padding-left: 24px; }
.hh-feature-mini__link { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 20px; align-items: stretch; }
.hh-feature-mini__media { aspect-ratio: 1 / 1; background: #ece8df; height: 100%; min-height: 92px; overflow: hidden; }
.hh-feature-mini__content { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; min-height: 100%; padding-right: 4px; }
.hh-feature-mini__eyebrow { align-self: flex-start; margin-bottom: 0; padding: 5px 8px 4px; font-size: 0.55rem; letter-spacing: 0.13em; }
.hh-feature-mini__title {
  font-size: clamp(1.08rem, 1.25vw, 1.2rem);
  line-height: 1.08;
  margin: 0;
  max-width: 100%;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.hh-feature-mini__desc {
  margin: 0 0 10px;
  font-size: 0.92rem;
  line-height: 1.58;
  color: var(--hh-muted-text-color);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.hh-feature-mini__meta {
  margin-top: auto;
  padding-top: 2px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.68rem;
  line-height: 1.42;
  color: var(--hh-muted-text-color);
  letter-spacing: 0.03em;
  max-width: 100%;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.hh-home-index { padding: 72px 0 82px; border-top: 1px solid rgba(0,0,0,0.03); }
.hh-home-index__header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 32px;
}
.hh-home-index__title { font-size: clamp(2rem, 3.8vw, 3rem); margin-bottom: 10px; }
.hh-home-index__link {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--hh-muted-text-color);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.72rem;
  text-decoration: none;
}
.hh-home-index__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--hh-border-color);
  border-left: 1px solid var(--hh-border-color);
}
.hh-home-index__item {
  min-height: 132px;
  padding: 18px 18px 20px;
  border-right: 1px solid var(--hh-border-color);
  border-bottom: 1px solid var(--hh-border-color);
  text-decoration: none;
  background: rgba(255,255,255,0.35);
}
.hh-home-index__item-title { margin-top: 26px; font-size: 1.45rem; line-height: 1.08; }
.hh-home-index__item-count { margin-top: 18px; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; }
.hh-home-index__item:hover { background: #fff; }

.hh-home-manifesto {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.05fr);
  gap: 44px;
  align-items: center;
  padding: 86px 0 90px;
}
.hh-home-manifesto__title { font-size: clamp(2.2rem, 4vw, 4.1rem); max-width: 8ch; color: color-mix(in srgb, var(--hh-text-color) 72%, var(--hh-background-color)); }
.hh-home-manifesto__description {
  margin: 0 0 14px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.82rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hh-muted-text-color);
  max-width: 34ch;
}
.hh-home-manifesto__body {
  margin: 22px 0 26px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.06rem;
  line-height: 1.9;
  color: var(--hh-text-color);
  max-width: 28ch;
}
.hh-home-manifesto__after {
  margin: -8px 0 26px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--hh-muted-text-color);
  max-width: 34ch;
}
.hh-home-manifesto__after p:last-child { margin-bottom: 0; }
.hh-home-manifesto__art {
  min-height: 340px;
  border-left: 1px solid rgba(0,0,0,0.04);
  position: relative;
}
.hh-home-manifesto__line-art { position: absolute; inset: 12% 0 0 10%; opacity: 0.42; }
.hh-home-manifesto__shape { position: absolute; border: 2px solid var(--hh-border-color); border-radius: 6px; }
.hh-home-manifesto__shape--book { width: 126px; height: 22px; bottom: 20px; left: 22%; }
.hh-home-manifesto__shape--frame { width: 56px; height: 86px; top: 22%; left: 16%; }
.hh-home-manifesto__shape--lamp { width: 120px; height: 170px; right: 12%; top: 18%; border-radius: 0; border-top: 0; border-left: 0; }
.hh-home-manifesto__shape--cup { width: 66px; height: 52px; bottom: 30px; right: 20%; border-radius: 0 0 16px 16px; }
.hh-home-manifesto__shape--note { width: 78px; height: 100px; left: 46%; top: 28%; transform: rotate(8deg); }
.hh-home-manifesto__image-wrap { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px 0 0 24px; }
.hh-home-manifesto__image { width: min(100%, 720px); height: auto; max-height: 420px; object-fit: contain; display: block; }

/* Footer */
.hh-footer {
  border-top: 1px solid rgba(0,0,0,0.06);
  padding: 34px 0 24px;
  background: rgba(255,255,255,0.52);
}
.hh-footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 1.2fr) minmax(0, 1fr);
  gap: 36px;
  padding: 18px 0 42px;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.hh-footer__brand-block {
  text-align: center;
  padding: 0 24px;
  border-left: 1px solid rgba(0,0,0,0.06);
  border-right: 1px solid rgba(0,0,0,0.06);
}
.hh-footer__brand-block .hh-site-logo { margin: 0 auto 14px; }
.hh-footer__brand {
  margin: 0 0 12px;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 500;
}
.hh-footer__tagline {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin: 0 0 14px;
}
.hh-footer__text { margin: 0 auto; max-width: 36ch; font-size: 0.95rem; line-height: 1.8; }
.hh-footer__heading { margin: 0 0 18px; }
.hh-footer-notes__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.hh-footer-notes__item a { text-decoration: none; display: inline-block; margin-top: 6px; }
.hh-footer__nav-block .hh-footer-menu { display: grid; gap: 12px; }
.hh-footer__nav-block .hh-footer-menu a { text-transform: none; letter-spacing: 0.02em; font-size: 0.96rem; color: var(--hh-text-color); }
.hh-footer__bottom {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 20px;
  padding-top: 22px;
}
.hh-footer__copy {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--hh-muted-text-color);
  font-size: 0.75rem;
  text-align: right;
}
.hh-footer__site-name { font-size: 1rem; color: var(--hh-muted-text-color); }
.hh-footer__bottom-links { justify-content: center; }

/* Generic cards + archive + single */
.hh-section { margin: 42px 0; }
.hh-section__header { margin-bottom: 22px; }
.hh-section__title { font-size: clamp(1.9rem, 3vw, 2.8rem); margin: 0 0 10px; }
.hh-section__posts--grid_2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.hh-section__posts--grid_3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.hh-card { background: rgba(255,255,255,0.55); }
.hh-card__media { aspect-ratio: 16 / 10; background: #ece8df; margin-bottom: 16px; }
.hh-card__content { padding: 4px 0 0; }
.hh-card__title { font-size: 1.75rem; margin: 6px 0 10px; }
.hh-card__desc { font-size: 0.98rem; line-height: 1.7; margin: 10px 0 0; }
.hh-empty { color: var(--hh-muted-text-color); }
.hh-archive-shell { padding-top: 42px; }
.hh-archive-shell__header { display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.hh-article-header { margin: 32px 0 34px; }
.hh-article-header__media { margin-top: 24px; }
.hh-article-header__title { font-size: clamp(2.4rem, 4vw, 4rem); margin: 10px 0 14px; }
.hh-article-header__desc { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--hh-muted-text-color); max-width: 42ch; }
.hh-article__content { max-width: 760px; font-size: 1.08rem; }
.hh-article__content p, .hh-richtext p { margin: 0 0 1.2em; }
.hh-gadgets { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 26px; }
.hh-gadget { padding: 18px; border: 1px solid var(--hh-border-color); background: rgba(255,255,255,0.55); }

@media (max-width: 1120px) {
  .hh-home-index__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .hh-container { width: min(var(--hh-max), calc(100% - 20px)); }
  .hh-header__inner, .hh-archive-shell__header, .hh-home-index__header, .hh-footer__bottom { grid-template-columns: none; flex-wrap: wrap; }
  .hh-home-feature-grid,
  .hh-home-manifesto,
  .hh-footer__top,
  .hh-section__posts--grid_2,
  .hh-section__posts--grid_3,
  .hh-gadgets { grid-template-columns: 1fr; }
  .hh-feature-stack { padding-left: 0; }
  .hh-feature-mini { border-left: 0; padding-left: 0; border-top: 1px solid var(--hh-border-color); padding-top: 22px; }
  .hh-home-index__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hh-home-hero__card { width: min(100%, 760px); }
  .hh-home-manifesto__art { min-height: 220px; border-left: 0; border-top: 1px solid rgba(0,0,0,0.04); }
  .hh-footer__brand-block { border-left: 0; border-right: 0; padding: 22px 0; border-top: 1px solid rgba(0,0,0,0.06); border-bottom: 1px solid rgba(0,0,0,0.06); }
}
@media (max-width: 640px) {
  .hh-nav { width: 100%; justify-content: space-between; }
  .hh-menu { gap: 14px; }
  .hh-home-hero__card { width: calc(100% - 12px); max-width: none; margin-top: -24px; padding: 22px 18px; }
  .hh-home-hero__title { max-width: none; font-size: clamp(2rem, 9vw, 3rem); }
  .hh-home-hero__case { margin-bottom: 14px; padding: 7px 10px 6px; letter-spacing: 0.14em; }
  .hh-home-hero__summary { font-size: 0.94rem; }
  .hh-home-hero__situation { font-size: 0.74rem; letter-spacing: 0.03em; }
  .hh-feature-mini__link { grid-template-columns: 1fr; }
  .hh-feature-lead__eyebrow,
  .hh-feature-mini__eyebrow { padding: 6px 9px 5px; letter-spacing: 0.12em; }
  .hh-feature-lead__desc,
  .hh-feature-mini__desc { font-size: 0.9rem; }
  .hh-feature-mini__meta { font-size: 0.72rem; }
  .hh-home-index__grid { grid-template-columns: 1fr 1fr; }
  .hh-home-index__item-title { font-size: 1.2rem; }
  .hh-home-manifesto__title { max-width: none; }
  .hh-footer__bottom { grid-template-columns: 1fr; text-align: center; }
  .hh-footer__copy { text-align: center; }
}
