:root {
  --ink: #22292b;
  --soft-ink: #667174;
  --paper: #fbfbf8;
  --white: #ffffff;
  --pale: #f1f4f4;
  --mist: #dce5e6;
  --blue-gray: #78929b;
  --blue-gray-dark: #596f77;
  --line: rgba(34, 41, 43, 0.13);
  --shadow: 0 28px 90px rgba(40, 52, 56, 0.16);
  --max: 1180px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", Georgia, serif;
  line-height: 1.9;
  text-rendering: optimizeLegibility;
}

body.nav-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

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

.site-header {
  position: fixed;
  z-index: 30;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  min-height: 104px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 22px clamp(18px, 4.2vw, 58px);
  color: var(--ink);
  background: rgba(251, 251, 248, 0.96);
  box-shadow: 0 1px 0 var(--line);
  backdrop-filter: blur(18px);
  transition: background 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.brand-sub {
  display: none;
}

.site-header.is-scrolled,
.site-header.is-open {
  color: var(--ink);
  background: rgba(251, 251, 248, 0.94);
  box-shadow: 0 1px 0 var(--line);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  min-width: 0;
}

.brand-mark {
  font-size: 1.08rem;
  line-height: 1;
  white-space: nowrap;
}

.brand-sub,
.site-nav,
.eyebrow,
.section-kicker,
.button,
.panel-label,
.info-list dt {
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
}

.brand-sub {
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  opacity: 0.7;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 22px;
  font-size: 0.74rem;
}

.site-nav a {
  opacity: 0.84;
}

.site-nav a:hover {
  opacity: 1;
}

.nav-shop {
  position: relative;
  display: inline-flex;
  padding: 0;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.nav-shop > span {
  position: relative;
  display: block;
  padding: 2px 4px 5px;
}

.nav-shop > span::after {
  content: none;
}

.nav-shop small {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  display: block;
  font-family: "Bradley Hand", "Segoe Print", "Comic Sans MS", cursive;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  opacity: 0.72;
  white-space: nowrap;
  transform: translateX(-50%) rotate(-2deg);
}

.nav-shop small::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: -6px;
  width: calc(100% + 12px);
  border-top: 1px solid currentColor;
  border-radius: 48% 52% 46% 54%;
  opacity: 0.72;
  transform: rotate(-7deg);
  transform-origin: left center;
}

.menu-button {
  display: none;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: inherit;
  background: transparent;
}

.menu-button span {
  display: block;
  width: 17px;
  height: 1px;
  background: currentColor;
}

.menu-button span + span {
  margin-top: 5px;
}

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

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: end;
  justify-items: end;
  padding: 132px clamp(24px, 6.8vw, 104px) 84px;
  isolation: isolate;
  overflow: hidden;
}

.hero-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  filter: saturate(0.86) brightness(0.95) contrast(0.96);
  background: var(--blue-gray-dark);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(25, 34, 36, 0.28), rgba(25, 34, 36, 0.12) 44%, rgba(25, 34, 36, 0.54)),
    linear-gradient(0deg, rgba(25, 34, 36, 0.36), rgba(25, 34, 36, 0.02) 58%);
}

.hero-copy {
  width: min(720px, 100%);
  color: var(--white);
  text-align: left;
  text-shadow: 0 2px 22px rgba(0, 0, 0, 0.2);
}

.eyebrow,
.section-kicker,
.panel-label {
  margin-bottom: 18px;
  color: var(--blue-gray-dark);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero .eyebrow {
  color: rgba(255, 255, 255, 0.78);
  margin-bottom: 22px;
}

h1 {
  margin-bottom: 24px;
  font-size: clamp(4.2rem, 8.4vw, 7.2rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: 0.02em;
}

.hero h1 {
  white-space: nowrap;
}

h2 {
  margin-bottom: 0;
  font-size: clamp(2.2rem, 5.2vw, 5.1rem);
  font-weight: 400;
  line-height: 1.22;
}

h3 {
  margin-bottom: 0;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  font-weight: 400;
  line-height: 1.35;
}

.hero-lead {
  margin-bottom: 16px;
  font-size: clamp(1.25rem, 2.1vw, 1.75rem);
  line-height: 1.55;
}

.hero-text {
  max-width: 650px;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 1rem;
}

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

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 20px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 0.82rem;
  line-height: 1.2;
}

.button-light {
  color: var(--ink);
  border-color: var(--white);
  background: var(--white);
}

.button-outline-light {
  color: var(--white);
  background: rgba(255, 255, 255, 0.08);
}

.button-blue {
  color: var(--white);
  border-color: var(--blue-gray-dark);
  background: var(--blue-gray-dark);
}

.current-stories {
  padding: clamp(70px, 9vw, 118px) clamp(20px, 5vw, 72px);
  background: var(--paper);
}

.current-stories-head,
.current-stories-grid {
  max-width: var(--max);
  margin-inline: auto;
}

.current-stories-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: clamp(30px, 5vw, 54px);
}

.current-stories-head .section-kicker,
.current-stories-head h2 {
  margin-bottom: 0;
}

.current-stories-head h2 {
  font-size: clamp(2rem, 4vw, 3.8rem);
}

.current-stories-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2.5vw, 34px);
}

.current-story {
  position: relative;
  min-height: clamp(380px, 52vw, 610px);
  overflow: hidden;
  color: var(--white);
}

.current-story img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  filter: saturate(0.8) contrast(0.96);
  transition: transform 500ms ease, filter 500ms ease;
}

.current-story::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(25, 34, 36, 0.68), rgba(25, 34, 36, 0.03) 65%);
}

.current-story:hover img {
  transform: scale(1.025);
  filter: saturate(0.94) contrast(0.98);
}

.current-story-copy {
  position: absolute;
  z-index: 1;
  left: clamp(22px, 4vw, 46px);
  right: clamp(22px, 4vw, 46px);
  bottom: clamp(24px, 4vw, 46px);
  display: grid;
  gap: 8px;
}

.current-story-copy small {
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.76;
}

.current-story-copy strong {
  font-size: clamp(1.65rem, 3vw, 2.8rem);
  font-weight: 400;
  line-height: 1.35;
}

.current-story-copy span {
  font-size: 0.94rem;
  opacity: 0.82;
}

.statement,
.section,
.feature-band,
.owner-words {
  padding: clamp(96px, 13vw, 176px) clamp(20px, 5vw, 72px);
}

.statement-inner,
.section > *,
.feature-band,
.owner-inner,
.site-footer {
  max-width: var(--max);
  margin-inline: auto;
}

.statement {
  background: var(--paper);
  min-height: 100svh;
  display: grid;
  align-items: center;
  padding-top: clamp(58px, 7vw, 94px);
  padding-bottom: clamp(58px, 7vw, 94px);
}

.statement-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 0.78fr);
  gap: clamp(32px, 6vw, 88px);
  align-items: stretch;
}

.statement-content {
  min-height: clamp(520px, 68svh, 660px);
  display: flex;
  flex-direction: column;
}

.statement h2 {
  max-width: 660px;
  margin-top: auto;
  font-size: clamp(2.9rem, 5.5vw, 5.1rem);
  line-height: 1.35;
}

.statement-copy {
  max-width: 620px;
  margin-top: auto;
  color: var(--soft-ink);
  font-size: clamp(1rem, 1.45vw, 1.2rem);
}

.statement-copy p {
  margin-bottom: 22px;
}

.statement-photo {
  width: 100%;
  height: 100%;
  margin: 0;
}

.statement-photo img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: 46% 52%;
  box-shadow: var(--shadow);
}

.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;
}

.hero-canva {
  position: relative;
  height: calc(104px + 67.82vw);
  min-height: 760px;
  overflow: hidden;
  background: var(--paper);
}

.hero-canva > img {
  position: absolute;
  top: calc(104px - 7.18vw);
  left: 0;
  width: 100%;
  max-width: none;
  height: auto;
}

.hero-canva-tagline {
  position: absolute;
  z-index: 2;
  top: 104px;
  right: 0;
  width: 19.4%;
  height: 47.38vw;
  display: grid;
  place-items: center;
  color: #3e4b4f;
  background: var(--paper);
  border-left: 1px solid var(--line);
}

.hero-canva-tagline p {
  margin: 0;
  font-size: clamp(1rem, 1.4vw, 1.3rem);
  line-height: 2.15;
  letter-spacing: 0.12em;
  writing-mode: vertical-rl;
}

.hero-canva-copy {
  position: absolute;
  z-index: 2;
  top: calc(104px + 47.38vw);
  left: 0;
  width: 56.4%;
  height: 20.44vw;
  padding: clamp(24px, 3.6vw, 58px) 5vw 2vw 11.5vw;
  color: #4e595c;
  background: var(--paper);
}

.hero-canva-copy p {
  max-width: 590px;
  margin-bottom: clamp(18px, 2.5vw, 36px);
  font-size: clamp(0.78rem, 1.08vw, 1rem);
  line-height: 1.9;
}

.hero-canva-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 2.2vw, 34px);
}

.hero-canva-actions a {
  display: grid;
  min-height: clamp(38px, 3.7vw, 54px);
  place-items: center;
  padding: 8px 14px;
  color: var(--ink);
  border: 1px solid rgba(34, 41, 43, 0.34);
  font-size: clamp(0.72rem, 0.96vw, 0.9rem);
  line-height: 1.3;
}

.hero-canva-actions a:focus-visible {
  outline: 2px solid var(--blue-gray-dark);
  outline-offset: 3px;
}

.hero-canva-interior {
  position: absolute;
  z-index: 3;
  top: calc(104px + 33.36vw);
  left: 56.35%;
  width: 28.73%;
  height: 25.97vw;
  margin: 0;
  overflow: hidden;
  box-shadow: 0 18px 46px rgba(40, 52, 56, 0.18);
}

.hero-canva-interior img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 48% 58%;
}

.hero-composite-mobile {
  display: none;
}

.hero-composite {
  min-height: 100svh;
  padding-top: 78px;
  display: grid;
  grid-template-columns: minmax(0, 3.25fr) minmax(230px, 0.9fr);
  grid-template-rows: minmax(430px, calc(68svh - 53px)) minmax(230px, calc(32svh - 25px));
  overflow: hidden;
  background: var(--paper);
}

.hero-composite-main {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: var(--blue-gray-dark);
}

.hero-composite-main::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(29, 38, 40, 0.26);
}

.hero-composite-main > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
  filter: saturate(0.78) contrast(0.94);
}

.hero-composite-title {
  position: absolute;
  z-index: 1;
  left: clamp(36px, 7vw, 112px);
  bottom: clamp(42px, 8vh, 82px);
  color: var(--white);
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.24);
}

.hero-composite-title .eyebrow {
  margin-bottom: 14px;
  color: rgba(255, 255, 255, 0.76);
}

.hero-composite-title h1 {
  margin: 0;
  font-size: clamp(4.4rem, 8vw, 7.8rem);
  white-space: nowrap;
}

.hero-composite-side {
  position: relative;
  display: grid;
  place-items: center;
  padding: 44px 30px;
  background: var(--paper);
}

.hero-composite-side::after {
  content: "";
  position: absolute;
  inset: 7% 0 7% 55%;
  border-left: 1px solid var(--line);
  opacity: 0.42;
}

.hero-composite-side p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #3e4b4f;
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  line-height: 2.05;
  letter-spacing: 0.12em;
  writing-mode: vertical-rl;
}

.hero-composite-bottom {
  position: relative;
  grid-column: 1 / -1;
  min-height: 250px;
  background: var(--paper);
}

.hero-composite-copy {
  width: 47%;
  padding: clamp(34px, 4.5vw, 58px) clamp(28px, 5.5vw, 88px);
  color: var(--soft-ink);
  font-size: clamp(0.86rem, 1.04vw, 1rem);
  line-height: 1.95;
}

.hero-composite-copy p {
  margin-bottom: 12px;
}

.hero-composite-copy .hero-shopline {
  color: var(--ink);
}

.hero-composite-copy .hero-actions {
  margin-top: 22px;
}

.hero-composite-copy .button {
  min-width: 168px;
  border-radius: 0;
  color: var(--ink);
  background: transparent;
}

.hero-composite-interior {
  position: absolute;
  z-index: 2;
  top: clamp(-118px, -10vw, -72px);
  left: 48%;
  width: min(30vw, 470px);
  height: clamp(285px, 29vw, 440px);
  margin: 0;
  box-shadow: var(--shadow);
}

.hero-composite-interior img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 45% center;
}

.hero-composite-note {
  position: absolute;
  right: clamp(30px, 4vw, 64px);
  bottom: clamp(32px, 4vw, 56px);
  width: min(22vw, 340px);
  margin: 0;
  padding-left: 26px;
  color: var(--soft-ink);
  border-left: 1px solid var(--blue-gray);
  font-size: clamp(0.78rem, 0.92vw, 0.92rem);
  line-height: 2;
}

.pale,
.connect {
  background: var(--pale);
}

.things-illustrated {
  padding: clamp(54px, 6vw, 82px) clamp(20px, 5vw, 72px) clamp(42px, 5vw, 68px);
  background: var(--paper);
}

.things-illustrated-inner {
  max-width: 1320px;
  margin-inline: auto;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.things-illustrated h2 {
  margin: 0;
  font-size: clamp(2rem, 3vw, 2.8rem);
  line-height: 1.4;
}

.things-illustrated-heading {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: clamp(40px, 5vw, 62px) 20px clamp(34px, 4vw, 50px);
  text-align: center;
}

.things-illustrated-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.things-illustrated-grid article {
  min-width: 0;
  min-height: 180px;
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 18px;
  align-items: center;
  padding: 32px clamp(18px, 2.3vw, 34px);
}

.things-illustrated-grid article + article {
  border-left: 1px solid var(--line);
}

.things-illustrated-grid svg {
  width: 46px;
  height: 46px;
  margin: 0;
  fill: none;
  stroke: var(--blue-gray-dark);
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.things-illustrated-grid h3 {
  margin-bottom: 10px;
  font-size: clamp(1rem, 1.28vw, 1.18rem);
}

.things-illustrated-grid p {
  margin: 0;
  color: var(--soft-ink);
  font-size: clamp(0.74rem, 0.88vw, 0.84rem);
  line-height: 1.8;
}

.section-head {
  margin-bottom: clamp(42px, 6vw, 76px);
}

.section-head.centered {
  max-width: 760px;
  text-align: center;
}

.things-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
  gap: clamp(18px, 2vw, 30px);
  align-items: stretch;
}

.things-visual {
  position: relative;
  min-height: 700px;
  overflow: hidden;
  background: var(--blue-gray-dark);
}

.things-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(25, 34, 36, 0.78), rgba(25, 34, 36, 0.08) 66%);
}

.things-visual > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.72) contrast(0.94);
}

.things-heading {
  position: absolute;
  z-index: 1;
  right: clamp(28px, 5vw, 76px);
  bottom: clamp(34px, 6vw, 82px);
  left: clamp(28px, 5vw, 76px);
  margin-bottom: 0;
}

.things-heading .section-kicker {
  color: rgba(255, 255, 255, 0.74);
}

.things-heading h2 {
  max-width: 720px;
  color: #fff;
  font-size: clamp(2.7rem, 4.7vw, 5rem);
  line-height: 1.3;
}

.things-heading .things-intro {
  max-width: 620px;
  margin-top: 30px;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 2;
}

#things-title {
  white-space: normal;
}

.section-head.narrow {
  max-width: 680px;
}

.section-head.split {
  display: grid;
  grid-template-columns: 0.82fr 1fr;
  gap: clamp(26px, 7vw, 94px);
  align-items: end;
}

.section-head p:not(.section-kicker) {
  margin-bottom: 0;
  color: var(--soft-ink);
  font-size: 1.02rem;
}

.things-grid {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  padding: 0 clamp(22px, 2.4vw, 38px);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.52);
}

.things-grid article {
  min-height: 140px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 16px;
  row-gap: 8px;
  align-content: center;
  padding: clamp(24px, 2.5vw, 34px) 4px;
  border-bottom: 1px solid var(--line);
  background: transparent;
}

.things-grid article:last-child {
  border-bottom: 0;
}

.things-grid .thing-number {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  padding-top: 7px;
  color: var(--blue-gray-dark);
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.75rem;
  font-weight: 300;
  line-height: 1;
  opacity: 0.56;
}

.things-grid .thing-title {
  grid-column: 2;
  grid-row: 1;
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.35;
}

.things-grid p {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  color: var(--soft-ink);
  font-size: clamp(0.95rem, 1.3vw, 1.08rem);
  line-height: 2;
}

.collection {
  padding-top: 28px;
  background: var(--paper);
}

.collection-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 26px);
}

.collection-card {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  background: var(--pale);
}

.collection-card:nth-child(2),
.collection-card:nth-child(5) {
  transform: translateY(54px);
}

.collection-card img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  filter: saturate(0.78) contrast(0.96);
}

.collection-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(26, 34, 36, 0.44), rgba(26, 34, 36, 0.02) 55%);
}

.collection-card h3 {
  position: absolute;
  z-index: 1;
  left: 24px;
  right: 24px;
  bottom: 92px;
  color: var(--white);
}

.collection-card p {
  position: absolute;
  z-index: 1;
  left: 24px;
  right: 24px;
  bottom: 24px;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
  line-height: 1.5;
}

.crop-a img {
  object-position: 48% 48%;
}

.crop-b img {
  object-position: 50% 48%;
}

.crop-c img {
  object-position: 52% 50%;
}

.crop-d img {
  object-position: 52% 45%;
}

.crop-e img {
  object-position: 42% 58%;
}

.crop-f img {
  object-position: 58% 54%;
}

.feature-band {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(300px, 0.62fr);
  gap: clamp(34px, 7vw, 96px);
  align-items: center;
  background: var(--mist);
}

.events-band {
  grid-template-columns: minmax(260px, 0.58fr) minmax(0, 1.42fr);
  align-items: start;
}

.events-teaser {
  display: grid;
  grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.7fr);
  gap: clamp(38px, 6vw, 92px);
  padding: clamp(72px, 9vw, 132px) max(20px, calc((100vw - var(--max)) / 2));
  background: var(--mist);
}

.events-teaser-head > p:not(.section-kicker) {
  margin: 22px 0 26px;
  color: var(--soft-ink);
  line-height: 2;
}

.events-teaser-link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.events-teaser-link > span {
  color: var(--soft-ink);
  font-size: 0.72rem;
  letter-spacing: 0;
}

.events-teaser-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: rgba(255,255,255,.5);
  border: 1px solid var(--line);
}

.teaser-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 330px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(24px, 3vw, 40px);
  color: var(--white);
  text-decoration: none;
  background-position: center;
  background-size: cover;
}

.teaser-card + .teaser-card { border-left: 1px solid rgba(255,255,255,.42); }
.teaser-current { background-color: #6f8188; background-image: none; }
.teaser-aji { background-image: linear-gradient(rgba(35,45,48,.28),rgba(35,45,48,.74)),url("assets/aji-quarry-setouchi-v2.png"); }
.teaser-shodoshima { background-image: linear-gradient(rgba(35,45,48,.2),rgba(35,45,48,.68)),url("assets/experience-shodoshima-tour.jpeg"); }
.teaser-card-video,
.teaser-card-shade { position:absolute; inset:0; width:100%; height:100%; }
.teaser-card-video { z-index:0; object-fit:cover; }
.teaser-card-shade { z-index:1; background:linear-gradient(rgba(35,45,48,.16),rgba(35,45,48,.72)); }
.teaser-card-copy { position:relative; z-index:2; }
.teaser-card span { font-size: .72rem; letter-spacing: .14em; }
.teaser-card h3 { margin: 16px 0 10px; font-size: clamp(1.35rem,2vw,1.9rem); font-weight: 400; line-height: 1.5; }
.teaser-card p { margin: 0; font-size: .82rem; }

.events-page-main { padding-top: var(--header-height); }
.events-page-hero { padding: clamp(90px,12vw,180px) max(24px,calc((100vw - 1080px)/2)); background: var(--paper); }
.events-page-hero h1 { margin: 18px 0 28px; font-size: clamp(3rem,7vw,6.8rem); font-weight: 400; line-height: 1.2; }
.events-page-hero > p:last-child { max-width: 680px; color: var(--soft-ink); font-size: clamp(1rem,1.5vw,1.25rem); line-height: 2; }
.event-detail { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-height:680px; }
.event-detail > img,
.event-detail > video { width:100%; height:100%; min-height:680px; object-fit:cover; }
.event-detail-video { display:block; background:var(--soft-gray); }
.event-detail-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(54px,8vw,120px); background:var(--paper); }
.event-detail-copy h2 { margin:12px 0 24px; font-size:clamp(2.2rem,4.4vw,4.5rem); font-weight:400; line-height:1.35; }
.event-detail-copy h3 { margin:0 0 24px; font-size:clamp(1.15rem,1.6vw,1.45rem); font-weight:400; }
.event-detail-copy > p:not(.section-kicker) { margin:0 0 18px; color:var(--soft-ink); line-height:2; }
.event-detail-copy .event-date { color:var(--blue-gray-dark); letter-spacing:.08em; }
.event-detail-copy .event-note { padding-top:18px; border-top:1px solid var(--line); font-size:.9rem; }
.event-detail-copy .button { margin-top:14px; }
.event-detail-current,.event-detail-shodoshima { background:var(--mist); }
.event-detail-current .event-detail-copy,.event-detail-shodoshima .event-detail-copy { background:transparent; }
.button-row { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:8px; }
.event-archive { padding:clamp(80px,10vw,150px) max(24px,calc((100vw - var(--max))/2)); background:var(--paper); }
.archive-heading { margin-bottom:48px; }
.archive-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,4vw,56px); }
.archive-card-main { display:block; color:var(--ink); text-decoration:none; }
.archive-grid img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.archive-grid span { display:block; margin-top:20px; color:var(--blue-gray-dark); font-size:.74rem; letter-spacing:.12em; }
.archive-grid h3 { margin:10px 0; font-size:clamp(1.4rem,2vw,2rem); font-weight:400; }
.archive-grid p { margin:0; color:var(--soft-ink); font-size:.86rem; line-height:1.9; }
.archive-card-links { display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }
.archive-card-links a { color:var(--blue-gray-dark); font-size:.78rem; letter-spacing:.05em; text-underline-offset:5px; }

.feature-copy p:not(.section-kicker) {
  max-width: 620px;
  margin: 26px 0 34px;
  color: var(--soft-ink);
  font-size: clamp(1.05rem, 1.8vw, 1.32rem);
}

.event-list {
  display: grid;
  gap: clamp(22px, 3vw, 34px);
}

.event-card {
  display: grid;
  grid-template-columns: minmax(180px, 0.72fr) minmax(0, 1fr);
  gap: clamp(22px, 3vw, 38px);
  align-items: stretch;
  padding: clamp(18px, 2.4vw, 28px);
  background: rgba(255, 255, 255, 0.64);
  border: 1px solid rgba(89, 111, 119, 0.14);
  box-shadow: 0 20px 44px rgba(72, 84, 88, 0.08);
}

.event-card img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  object-position: 50% 50%;
}

.event-card:first-child img {
  object-position: 58% 50%;
}

.event-card-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.event-status {
  margin: 0 0 18px;
  color: var(--blue-gray-dark);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.event-card h3 {
  max-width: 620px;
  margin: 0;
  font-size: clamp(1.55rem, 2.8vw, 2.45rem);
  font-weight: 400;
  line-height: 1.38;
}

.event-subtitle {
  margin: 12px 0 22px;
  color: var(--soft-ink);
  font-size: 1rem;
}

.event-card dl {
  display: grid;
  gap: 8px;
  width: 100%;
  margin: 0 0 22px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.event-card dl div {
  display: grid;
  grid-template-columns: 4.5em 1fr;
  gap: 14px;
}

.event-card dt {
  color: var(--muted);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
}

.event-card dd {
  margin: 0;
  color: var(--ink);
  font-size: 0.92rem;
}

.event-card-body > p:not(.event-status):not(.event-subtitle) {
  margin: 0 0 24px;
  color: var(--ink);
  font-size: 0.96rem;
  line-height: 2;
}

.event-card a {
  margin-top: auto;
  color: var(--blue-gray-dark);
  font-size: 0.86rem;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

.journal {
  background: var(--paper);
}

.journal .section-head {
  margin-bottom: 50px;
}

.journal .button {
  margin-top: 30px;
}

.journal-categories {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 1000px;
  margin-inline: auto;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.journal-categories a {
  min-height: 118px;
  display: grid;
  place-items: center;
  padding: 18px;
  text-align: center;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--soft-ink);
}

.owner-words {
  color: var(--white);
  background:
    linear-gradient(rgba(35, 45, 48, 0.76), rgba(35, 45, 48, 0.78)),
    url("assets/optimized/shop-interior.jpg") center / cover;
}

.owner-inner {
  max-width: 760px;
  margin-left: max(20px, calc((100vw - var(--max)) / 2));
}

.owner-inner p {
  margin-bottom: 32px;
  font-size: clamp(1.22rem, 2.3vw, 2.1rem);
  line-height: 1.9;
}

.services {
  background: var(--paper);
}

.services .section-head {
  align-items: start;
}

.services .button {
  margin-top: 26px;
}

.service-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
}

.service-list p {
  min-height: 132px;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 20px 24px;
  border-bottom: 1px solid var(--line);
  color: var(--soft-ink);
}

.connect-list {
  max-width: var(--max);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.connect-list a {
  position: relative;
  display: block;
  min-width: 0;
  padding: 24px clamp(18px, 2.2vw, 30px) 26px;
}

.connect-list a + a {
  border-left: 1px solid var(--line);
}

.connect-list a::after {
  content: "\2192";
  position: absolute;
  right: clamp(18px, 2.2vw, 30px);
  bottom: 23px;
  color: var(--blue-gray-dark);
  font-size: 0.85rem;
}

.connect-list span {
  display: block;
  margin-bottom: 12px;
  color: var(--ink);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
}

.connect-icon {
  width: 32px;
  height: 32px;
  margin-bottom: 16px;
  fill: none;
  stroke: var(--blue-gray-dark);
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.connect-list p {
  max-width: 230px;
  margin-bottom: 0;
  padding-right: 22px;
  color: var(--soft-ink);
  font-size: 0.78rem;
  line-height: 1.75;
}

.connect {
  padding-top: clamp(52px, 6vw, 76px);
  padding-bottom: clamp(52px, 6vw, 76px);
}

.connect .section-head {
  margin-bottom: clamp(28px, 3vw, 38px);
}

.connect .section-head h2 {
  font-size: clamp(2rem, 3.5vw, 3.2rem);
}

.access {
  background: var(--paper);
}

.access-new-layout {
  max-width: var(--max);
  margin-inline: auto;
}

.access-design {
  position: relative;
  display: block;
  aspect-ratio: 1672 / 555;
  overflow: hidden;
  background: var(--pale);
  box-shadow: var(--shadow);
}

.access-design img {
  position: absolute;
  top: -16.6%;
  left: 0;
  width: 100%;
  height: auto;
  max-width: none;
  transition: filter 180ms ease;
}

.access-design:hover img {
  filter: brightness(0.96);
}

.access-new-layout .access-content {
  width: min(100%, 1080px);
  margin: clamp(42px, 5vw, 68px) 0 0 auto;
}

.access-layout {
  display: grid;
  grid-template-columns: minmax(240px, 0.45fr) minmax(0, 1fr);
  gap: clamp(38px, 7vw, 94px);
  align-items: start;
}

.access-intro {
  position: sticky;
  top: 110px;
}

.access-intro p:not(.section-kicker) {
  margin: 24px 0 30px;
  color: var(--soft-ink);
  line-height: 2;
}

.access-map {
  position: relative;
  display: block;
  margin-bottom: clamp(28px, 4vw, 44px);
  overflow: hidden;
  background: var(--mist);
  border: 1px solid rgba(89, 111, 119, 0.14);
  box-shadow: 0 20px 44px rgba(72, 84, 88, 0.08);
  cursor: pointer;
}

.access-map img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1075 / 650;
  object-fit: cover;
}

.access-map-photo img {
  aspect-ratio: 1075 / 650;
  object-fit: cover;
  object-position: center 72%;
  filter: none;
}

.access-map-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    112deg,
    rgba(55, 68, 67, 0.24) 0%,
    rgba(70, 82, 80, 0.18) 34%,
    rgba(82, 92, 89, 0.08) 54%,
    rgba(82, 92, 89, 0) 72%
  );
}

.access-map-photo .map-label,
.access-map-photo .map-address,
.access-map-photo .map-link {
  z-index: 2;
  right: auto;
  bottom: auto;
  padding: 0;
  color: var(--paper);
  background: none;
  text-shadow: 0 1px 6px rgba(20, 30, 28, 0.42);
}

.access-map-photo .map-label {
  top: 13%;
  left: 8%;
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
}

.access-map-photo strong {
  position: absolute;
  z-index: 2;
  top: 25%;
  left: 8%;
  color: var(--paper);
  text-shadow: 0 1px 8px rgba(20, 30, 28, 0.46);
  font-size: clamp(2rem, 4.4vw, 4.2rem);
  font-weight: 400;
  line-height: 1.35;
}

.access-map-photo .map-address {
  left: 8%;
  bottom: 17%;
  font-size: 0.9rem;
}

.access-map-photo .map-link {
  right: 7%;
  bottom: 9%;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  font-size: 0.78rem;
}

.access-map span {
  position: absolute;
  right: 18px;
  bottom: 18px;
  padding: 9px 14px;
  color: var(--paper);
  background: rgba(76, 96, 104, 0.84);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
}

.access-map-fallback {
  min-height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(28px, 5vw, 56px);
  color: var(--paper);
  background:
    linear-gradient(135deg, rgba(89, 111, 119, 0.95), rgba(120, 146, 155, 0.83)),
    repeating-linear-gradient(35deg, transparent 0 34px, rgba(255, 255, 255, 0.12) 35px 37px);
}

.access-map-fallback::before,
.access-map-fallback::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 50%;
}

.access-map-fallback::before {
  width: 240px;
  height: 240px;
  top: -80px;
  right: -40px;
}

.access-map-fallback::after {
  width: 110px;
  height: 110px;
  top: 42px;
  right: 76px;
}

.access-map-fallback .map-label,
.access-map-fallback .map-address,
.access-map-fallback .map-link {
  position: relative;
  right: auto;
  bottom: auto;
  padding: 0;
  color: inherit;
  background: none;
}

.access-map-fallback .map-label {
  margin-bottom: 18px;
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
}

.access-map-fallback strong {
  position: relative;
  max-width: 700px;
  font-size: clamp(2rem, 5vw, 4.4rem);
  font-weight: 400;
  line-height: 1.35;
}

.access-map-fallback .map-address {
  margin-top: 18px;
  font-size: 0.95rem;
  opacity: 0.8;
}

.access-map-fallback .map-link {
  align-self: flex-end;
  margin-top: 22px;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
}

.access-map:hover img {
  filter: brightness(0.96);
}

.access-map-photo:hover img {
  filter: none;
}

.info-list {
  display: grid;
  gap: 0;
  margin: 0;
}

.info-list div {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.info-list dt {
  color: var(--blue-gray-dark);
  font-size: 0.78rem;
}

.info-list dd {
  margin: 0;
  color: var(--soft-ink);
}

.info-list dd a {
  border-bottom: 1px solid rgba(89, 111, 119, 0.42);
}

.route-guide {
  margin-top: clamp(30px, 4vw, 44px);
  max-width: 760px;
  color: var(--soft-ink);
}

.route-guide h3 {
  margin: 0 0 14px;
  color: var(--ink);
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  font-weight: 400;
}

.route-guide p {
  margin: 0;
  line-height: 2;
}

.route-guide p + p {
  margin-top: 12px;
}

.access-english {
  max-width: 760px;
  margin-top: clamp(44px, 6vw, 72px);
  padding-top: clamp(30px, 4vw, 42px);
  border-top: 1px solid var(--line);
  color: var(--soft-ink);
}

.access-english h3 {
  margin: 12px 0 20px;
  color: var(--ink);
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(1.25rem, 2vw, 1.7rem);
}

.access-english > p {
  max-width: 680px;
  line-height: 1.9;
}

.access-english dl {
  margin: 28px 0;
}

.access-english dl div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 20px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.access-english dt {
  color: var(--blue-gray-dark);
}

.access-english dd {
  margin: 0;
}

.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 26px;
  padding: 34px clamp(20px, 5vw, 72px) 48px;
  color: var(--soft-ink);
  border-top: 1px solid var(--line);
  font-size: 0.88rem;
}

.site-footer p {
  margin: 0;
}

.site-footer a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(89, 111, 119, 0.42);
}

@media (max-width: 1080px) {
  .things-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .things-visual {
    min-height: min(72svh, 680px);
  }

  .things-heading h2,
  .things-heading .things-intro {
    max-width: 760px;
  }

  .service-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .collection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .collection-card:nth-child(2),
  .collection-card:nth-child(5) {
    transform: none;
  }

  .journal-categories {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 920px) {
  .site-header {
    min-height: 78px;
  }

  .menu-button {
    display: grid;
  }

  .site-nav {
    position: fixed;
    inset: 78px 14px auto;
    display: none;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 10px;
    color: var(--ink);
    background: var(--paper);
    box-shadow: var(--shadow);
  }

  .site-nav.is-open {
    display: grid;
  }

  .site-nav a {
    padding: 15px 10px;
    border-bottom: 1px solid var(--line);
  }

  .site-nav .nav-shop {
    justify-content: flex-start;
    padding-bottom: 30px;
  }

  .connect-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .connect-list a {
    border-bottom: 1px solid var(--line);
  }

  .connect-list a:nth-child(odd) {
    border-left: 0;
  }

  .connect-list a:nth-child(n + 3) {
    border-bottom: 0;
  }

  .things-illustrated-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .things-illustrated-grid article + article {
    border-left: 0;
  }

  .things-illustrated-grid article:not(:nth-child(3n + 1)) {
    border-left: 1px solid var(--line);
  }

  .things-illustrated-grid article:nth-child(n + 4) {
    border-top: 1px solid var(--line);
  }

  .things-illustrated-grid article:nth-child(4) {
    grid-column: 1 / 2;
    margin-left: 50%;
  }

  .things-illustrated-grid article:nth-child(5) {
    margin-left: 50%;
  }

  .hero-canva {
    display: block;
    min-height: 0;
    height: calc(78px + 67.82vw + 260px);
  }

  .hero-canva > img {
    top: calc(78px - 7.18vw);
  }

  .hero-canva-tagline {
    top: 78px;
    height: 47.38vw;
  }

  .hero-canva-interior {
    top: calc(78px + 33.36vw);
  }

  .hero-canva-tagline p {
    font-size: clamp(0.6rem, 1.9vw, 0.86rem);
    line-height: 1.8;
  }

  .hero-canva-copy {
    top: calc(78px + 67.82vw);
    width: 100%;
    height: 260px;
    padding: 28px 24px;
  }

  .hero-canva::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: calc(78px + 47.38vw);
    left: 0;
    width: 56.4%;
    height: 20.44vw;
    background: var(--paper);
  }

  .hero-canva-copy p {
    max-width: none;
    font-size: 0.88rem;
  }

  .hero-canva-actions a {
    font-size: 0.76rem;
  }

  .hero-composite {
    padding-top: 78px;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(520px, 67svh) auto auto;
  }

  .hero-composite-main {
    grid-column: 1;
  }

  .hero-composite-title {
    left: 26px;
    right: 26px;
    bottom: 38px;
  }

  .hero-composite-title h1 {
    font-size: clamp(3.7rem, 15vw, 6rem);
  }

  .hero-composite-side {
    grid-column: 1;
    min-height: 150px;
    padding: 30px 24px;
    border-bottom: 1px solid var(--line);
  }

  .hero-composite-side::after {
    display: none;
  }

  .hero-composite-side p {
    text-align: center;
    writing-mode: horizontal-tb;
  }

  .hero-composite-bottom {
    grid-column: 1;
    display: grid;
    grid-template-columns: 1fr;
    padding-bottom: 38px;
  }

  .hero-composite-copy {
    width: 100%;
    padding: 38px 24px 28px;
  }

  .hero-composite-interior {
    position: relative;
    top: auto;
    left: auto;
    grid-row: 1;
    width: calc(100% - 48px);
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 28px 24px 0;
  }

  .hero-composite-note {
    position: static;
    width: auto;
    margin: 0 24px;
    padding-left: 20px;
  }

  .statement-inner,
  .section-head.split,
  .feature-band,
  .access-layout,
  .connect-list a {
    grid-template-columns: 1fr;
  }

  .statement-content {
    min-height: 0;
  }

  .access-intro {
    position: static;
  }

  .statement-photo {
    grid-column: 1;
  }

  .statement-photo {
    grid-row: auto;
  }

  .statement-photo img {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 11;
  }

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

  .event-card img {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
  }

  .statement-copy {
    margin-top: 34px;
  }

  .owner-inner {
    margin-inline: auto;
  }

  .hero h1 {
    white-space: normal;
  }

  .hero {
    justify-items: start;
  }

  .events-teaser { grid-template-columns:1fr; }
  .events-teaser-grid { grid-template-columns:1fr; }
  .teaser-card { min-height:260px; }
  .teaser-card + .teaser-card { border-left:0; border-top:1px solid rgba(255,255,255,.42); }
  .event-detail { grid-template-columns:1fr; }
  .event-detail > img,
  .event-detail > video { min-height:440px; }
  .event-detail-current .event-detail-copy,.event-detail-shodoshima .event-detail-copy { order:2; }
}

@media (max-width: 640px) {
  .events-page-hero { padding-top:72px; }
  .event-detail > img,
  .event-detail > video { min-height:360px; }
  .event-detail-copy { padding:48px 24px; }
  .archive-grid { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .brand-sub {
    display: none;
  }

  .access-design {
    aspect-ratio: 16 / 9;
  }

  .access-design img {
    top: -10%;
    width: 100%;
  }

  .access-new-layout .access-content {
    margin-top: 34px;
  }

  .connect {
    padding-top: 46px;
    padding-bottom: 46px;
  }

  .connect-list {
    grid-template-columns: 1fr;
  }

  .connect-list a,
  .connect-list a:nth-child(n + 3) {
    padding: 20px 4px 22px;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .connect-list a:last-child {
    border-bottom: 0;
  }

  .connect-list a::after {
    right: 4px;
    bottom: 20px;
  }

  .hero {
    min-height: 94svh;
    padding: 110px 20px 48px;
  }

  .hero-composite {
    grid-template-rows: minmax(440px, 62svh) auto auto;
  }

  .hero-composite-main > img {
    object-position: 55% center;
  }

  .hero-composite-copy .hero-actions,
  .hero-composite-copy .button {
    width: 100%;
  }

  h1 {
    font-size: clamp(3.55rem, 17vw, 5.2rem);
  }

  #things-title {
    white-space: normal;
  }

  .things-illustrated {
    padding: 50px 20px 20px;
  }

  .things-illustrated h2 {
    margin-bottom: 30px;
    font-size: 2rem;
  }

  .collection {
    padding-top: 24px;
  }

  .things-illustrated-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .things-illustrated-grid article {
    padding: 30px 16px 34px;
  }

  .things-illustrated-grid article:not(:nth-child(3n + 1)) {
    border-left: 0;
  }

  .things-illustrated-grid article:nth-child(even) {
    border-left: 1px solid var(--line);
  }

  .things-illustrated-grid article:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }

  .things-illustrated-grid article:nth-child(4),
  .things-illustrated-grid article:nth-child(5) {
    margin-left: 0;
  }

  .things-illustrated-grid article:nth-child(5) {
    grid-column: 1 / -1;
    width: 50%;
    margin-inline: auto;
    border-left: 0;
  }

  .things-illustrated-grid svg {
    width: 48px;
    height: 48px;
    margin-bottom: 18px;
  }

  .things-illustrated-grid h3 {
    font-size: 1.3rem;
  }

  .things-visual {
    min-height: 540px;
  }

  .things-heading h2 {
    font-size: clamp(2.45rem, 12vw, 3.55rem);
  }

  .hero::after {
    background:
      linear-gradient(90deg, rgba(28, 36, 38, 0.66), rgba(28, 36, 38, 0.18)),
      linear-gradient(0deg, rgba(28, 36, 38, 0.54), rgba(28, 36, 38, 0.04) 64%);
  }

  .button,
  .hero-actions {
    width: 100%;
  }

  .current-stories-head {
    display: block;
  }

  .current-stories-head .section-kicker {
    margin-bottom: 14px;
  }

  .current-stories-grid {
    grid-template-columns: 1fr;
  }

  .current-story {
    min-height: 420px;
  }

  .event-card dl div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .event-card h3 {
    font-size: clamp(1.4rem, 9vw, 2rem);
  }

  .collection-grid,
  .journal-categories,
  .service-list {
    grid-template-columns: 1fr;
  }

  .things-grid article {
    min-height: 0;
    grid-template-columns: 42px 1fr;
    grid-template-rows: auto auto;
    gap: 14px 18px;
    padding: 26px 0;
  }

  .things-grid .thing-number {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .things-grid .thing-title,
  .things-grid p {
    grid-column: 2;
  }

  .collection-card,
  .collection-card img {
    min-height: 340px;
  }

  .info-list div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .access-english dl div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .site-footer {
    display: grid;
  }
}

/* Compact experience strip: keep these overrides after the legacy breakpoints. */
@media (max-width: 920px) {
  .things-illustrated-inner {
    display: block;
  }

  .things-illustrated-heading {
    padding: 30px 16px 26px;
  }

  .things-illustrated h2 {
    margin: 0;
    font-size: 1.9rem;
  }

  .things-illustrated-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .things-illustrated-grid article,
  .things-illustrated-grid article:nth-child(4),
  .things-illustrated-grid article:nth-child(5) {
    grid-column: auto;
    width: auto;
    margin: 0;
    min-height: 164px;
    padding: 28px 22px;
  }

  .things-illustrated-grid article:nth-child(odd) {
    border-left: 0;
  }

  .things-illustrated-grid article:nth-child(even) {
    border-left: 1px solid var(--line);
  }

  .things-illustrated-grid article:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }

  .things-illustrated-grid svg {
    width: 42px;
    height: 42px;
    margin: 0;
  }

  .things-illustrated-grid h3 {
    font-size: 1rem;
  }
}

@media (max-width: 640px) {
  .hero-canva {
    height: calc(78px + 67.82vw + 205px);
  }

  .hero-canva-copy {
    height: 205px;
    padding: 22px 24px 18px;
  }

  .hero-canva-copy p {
    margin-bottom: 14px;
  }

  .things-illustrated {
    padding: 16px 20px 34px;
  }

  .things-illustrated-heading {
    padding: 20px 16px 22px;
  }

  .things-illustrated h2 {
    margin: 0;
    font-size: 1.65rem;
  }

  .things-illustrated-grid {
    grid-template-columns: 1fr;
  }

  .things-illustrated-grid article,
  .things-illustrated-grid article:nth-child(even) {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .things-illustrated-grid article:first-child {
    border-top: 0;
  }

  .things-illustrated-grid article {
    min-height: 138px;
    padding: 24px 12px;
  }
}
/* Aji Stone Glass origin journey */
.teaser-link{display:block;margin-top:1.2rem;font-size:.78rem;letter-spacing:.08em;color:inherit}
.event-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:1.5rem}
.aji-page{background:#f7f9f9;color:var(--ink)}
.aji-page .site-header{background:rgba(255,255,255,.96)}
.aji-hero{position:relative;isolation:isolate;min-height:calc(100svh - 82px);display:flex;align-items:center;overflow:hidden;background:#29464d;border-bottom:1px solid var(--line);color:#fff}
.aji-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(17,35,39,.78) 0%,rgba(17,35,39,.52) 42%,rgba(17,35,39,.14) 76%,rgba(17,35,39,.06) 100%)}
.aji-hero-copy{display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1;width:min(760px,100%);padding:clamp(4rem,8vw,8rem)}.aji-eyebrow,.aji-page .section-kicker{font-family:Arial,sans-serif;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:#718b96}.aji-hero .aji-eyebrow{color:rgba(255,255,255,.78)}
.aji-hero h1{font-size:clamp(3.5rem,6.5vw,6.5rem);font-weight:400;line-height:1.06;margin:1.2rem 0 1.5rem}.aji-title-line{display:flex;align-items:baseline;gap:.16em;width:max-content}.aji-title-small{font-size:.43em;letter-spacing:.08em}.aji-hero-copy>p:not(.aji-eyebrow){font-size:clamp(1.05rem,2vw,1.35rem);line-height:2;color:rgba(255,255,255,.92)}
.aji-tags{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:2rem}.aji-tags span{padding:.48rem .9rem;border:1px solid rgba(255,255,255,.58);font-family:Arial,sans-serif;font-size:.7rem;letter-spacing:.08em;color:rgba(255,255,255,.92)}
.aji-hero-visual{position:absolute;inset:0;z-index:-2;margin:0;overflow:hidden}.aji-hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.aji-intro{text-align:center;padding:clamp(6rem,11vw,10rem) 1.5rem;background:#fff}.aji-intro h2,.aji-section-heading h2{font-size:clamp(2rem,4vw,3.3rem);font-weight:400;line-height:1.6;margin:1.5rem 0}.aji-intro>p:last-child{line-height:2.3;color:#637176}
.aji-story{display:grid;grid-template-columns:1fr 1fr;min-height:680px;background:#e9f0f2}.aji-story-image img{width:100%;height:100%;object-fit:cover}.aji-story-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,8vw,8rem)}.aji-story-copy h2{font-size:clamp(1.9rem,3.5vw,3rem);font-weight:400;line-height:1.65;margin:1.2rem 0 2rem}.aji-story-copy p:not(.section-kicker){line-height:2.2;color:#5e6b70}
.aji-encounters,.aji-people,.aji-info,.aji-notes{padding:clamp(5rem,10vw,9rem) clamp(1.5rem,8vw,8rem)}.aji-section-heading{text-align:center;margin-bottom:4rem}.aji-encounter-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #cfd5d5;border-bottom:1px solid #cfd5d5}.aji-encounter-grid article{padding:2.5rem 2rem;min-height:260px;border-right:1px solid #cfd5d5}.aji-encounter-grid article:last-child{border-right:0}.aji-encounter-grid span{font:600 .62rem/1 Arial,sans-serif;letter-spacing:.16em;color:#7793a0}.aji-encounter-grid h3{font-size:1.25rem;font-weight:400;margin:2rem 0 1rem}.aji-encounter-grid p{line-height:1.9;color:#687579}
.aji-people{background:#edf3f4}.aji-people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,380px));justify-content:center;gap:1px;background:#cfd9dc}.aji-people-grid article{background:#fff;padding:3rem}.aji-people-grid h3{font-size:1.6rem;font-weight:400;line-height:1.7;margin:1rem 0}.aji-people-grid p:last-child{line-height:2;color:#687579}
.aji-info{display:grid;grid-template-columns:minmax(240px,.7fr) 1.3fr;gap:clamp(3rem,8vw,8rem);background:#f2f5f5}.aji-info-lead h2{font-size:clamp(2.2rem,4vw,3.4rem);font-weight:400;line-height:1.5}.aji-info-lead p:last-child{line-height:2;color:#687579}.aji-info-list{margin:0;background:#fff;padding:1rem 3rem}.aji-info-list div{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:1.35rem 0;border-bottom:1px solid #d8dcda}.aji-info-list div:last-child{border-bottom:0}.aji-info-list dt{font-weight:600}.aji-info-list dd{margin:0;color:#5f6d71}
.aji-notes{max-width:1080px;margin:auto;background:#fff}.aji-notes h2{font-size:2rem;font-weight:400}.aji-notes p{line-height:2;color:#687579}.aji-cta{text-align:center;padding:clamp(6rem,11vw,10rem) 1.5rem;background:#58727d;color:#fff}.aji-cta .section-kicker{color:#dbe5e8}.aji-cta h2{font-size:clamp(2rem,4vw,3.5rem);font-weight:400;line-height:1.6}.aji-cta>p:not(.section-kicker){margin:1.5rem 0 2rem}.aji-cta .button-light{display:inline-flex;background:#fff;color:#29444e;padding:1rem 2rem;border-radius:2px}
@media(max-width:820px){.aji-hero{min-height:calc(100svh - 64px);align-items:flex-end}.aji-hero::after{background:linear-gradient(0deg,rgba(17,35,39,.86) 0%,rgba(17,35,39,.5) 54%,rgba(17,35,39,.12) 100%)}.aji-hero-copy{padding:5rem 1.5rem 3.5rem}.aji-hero-visual img{object-position:42% center}.aji-story{grid-template-columns:1fr;min-height:0}.aji-story-image{aspect-ratio:4/3}.aji-encounter-grid{grid-template-columns:1fr 1fr}.aji-encounter-grid article:nth-child(2){border-right:0}.aji-encounter-grid article:nth-child(-n+2){border-bottom:1px solid #cfd5d5}.aji-info{grid-template-columns:1fr}.aji-info-list{padding:1rem 1.5rem}}
@media(max-width:560px){.aji-hero h1{font-size:clamp(3.15rem,16vw,4.2rem)}.aji-title-small{font-size:.4em}.aji-encounter-grid{grid-template-columns:1fr}.aji-encounter-grid article{min-height:0;border-right:0;border-bottom:1px solid #cfd5d5}.aji-encounter-grid article:last-child{border-bottom:0}.aji-people-grid{grid-template-columns:1fr}.aji-info-list div{grid-template-columns:1fr;gap:.5rem}.aji-page .site-footer{gap:2rem}}
