.atelier-home .visual-essay {
  --ve-ink: #102025;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(68px, 7vw, 112px) max(var(--gutter), calc((100vw - 1440px) / 2)) 92px;
  color: #f3f0e7;
  background: radial-gradient(circle at 78% 50%, #223a40 0, #15262b 31%, #0b171b 70%);
}
.visual-essay .ve-rail {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(243,240,231,.34);
  color: #d6ff56;
  font: 700 10px/1.4 "Courier New", monospace;
  letter-spacing: .14em;
}
.visual-essay .ve-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr);
  gap: clamp(24px, 6vw, 90px);
  align-items: end;
  padding: clamp(42px, 5vw, 76px) 0 46px;
}
.visual-essay .ve-kicker { color: #d6ff56; font: 700 11px/1.4 "Courier New", monospace; letter-spacing: .14em; }
.visual-essay h2 {
  max-width: 940px;
  margin: 18px 0 0;
  font-size: clamp(52px, 7vw, 108px);
  line-height: .98;
  letter-spacing: -.065em;
  color: #f3f0e7;
}
.visual-essay h2 em { color: #d6ff56; font-family: Georgia, serif; font-weight: 400; letter-spacing: -.045em; }
.visual-essay .ve-intro p { max-width: 385px; margin: 0 0 8px; color: #d3ddd9; font-size: clamp(16px, 1.35vw, 20px); line-height: 1.6; }
.visual-essay .ve-gallery {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr);
  gap: clamp(14px, 2.4vw, 34px);
  align-items: start;
  justify-items: center;
}
.visual-essay .ve-gallery::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 16% -5% 4%;
  border: 1px solid rgba(214,255,86,.16);
  border-radius: 50%;
  transform: rotate(-12deg);
  pointer-events: none;
}
.visual-essay .ve-piece { min-width: 0; width: 100%; max-width: 390px; margin: 0; }
.visual-essay .ve-piece-space { margin-top: clamp(54px, 8vw, 112px); }
.visual-essay .ve-piece a {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 2 / 3;
  background: #0c181b;
  border: 1px solid rgba(241,238,227,.5);
  border-radius: 10px;
  box-shadow: 0 24px 58px rgba(0,0,0,.23);
}
.visual-essay .ve-piece img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2,.65,.25,1), filter .7s ease;
}
.visual-essay .ve-piece a:hover img,
.visual-essay .ve-piece a:focus-visible img { transform: scale(1.045); filter: saturate(1.09); }
.visual-essay .ve-piece a:focus-visible { outline: 3px solid #d6ff56; outline-offset: 5px; }
.visual-essay .ve-open {
  position: absolute;
  right: 16px;
  bottom: 16px;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid #f3f0e7;
  border-radius: 50%;
  background: rgba(8,19,22,.78);
  color: #f3f0e7;
  font-size: 24px;
  line-height: 1;
}
.visual-essay .ve-piece figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-top: 17px; }
.visual-essay .ve-piece figcaption small { color: #d6ff56; white-space: nowrap; font: 700 10px/1.4 "Courier New", monospace; letter-spacing: .1em; }
.visual-essay .ve-piece figcaption strong { font-size: clamp(17px, 1.6vw, 23px); font-weight: 600; line-height: 1.25; text-align: right; }
.visual-essay .ve-axis { display: flex; flex-direction: column; align-items: center; gap: 16px; min-height: 78%; color: #d6ff56; }
.visual-essay .ve-axis span { writing-mode: vertical-rl; font: 700 10px/1.3 "Courier New", monospace; letter-spacing: .18em; }
.visual-essay .ve-axis i { display: block; width: 1px; flex: 1; min-height: 160px; background: linear-gradient(#d6ff56, transparent); }
.visual-essay .ve-axis b { font: 700 11px/1 "Courier New", monospace; letter-spacing: .16em; }
.visual-essay .ve-foot { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-top: clamp(46px, 7vw, 100px); padding-top: 18px; border-top: 1px solid rgba(243,240,231,.34); }
.visual-essay .ve-foot p { max-width: 600px; margin: 0; color: #b8c9c4; font-size: 13px; line-height: 1.55; }
.visual-essay .ve-foot a { display: inline-flex; align-items: center; gap: 20px; min-height: 44px; color: #d6ff56; font-weight: 700; text-decoration: none; white-space: nowrap; border-bottom: 1px solid currentColor; }
.visual-essay .ve-foot a:hover { color: #f3f0e7; }
.visual-essay .ve-foot a:focus-visible { outline: 3px solid #d6ff56; outline-offset: 4px; }
@media (prefers-reduced-motion: no-preference) {
  .visual-essay .ve-rail { background-image: linear-gradient(90deg, transparent 0%, rgba(214,255,86,.24) 48%, transparent 100%); background-repeat: no-repeat; background-size: 24% 1px; background-position: -35% bottom; animation: ve-glide 15s ease-in-out infinite; }
  @keyframes ve-glide { 0%,18% { background-position: -35% bottom; } 82%,100% { background-position: 135% bottom; } }
}
@media (max-width: 760px) {
  .atelier-home section.visual-essay { padding: 64px 22px 70px; }
  .visual-essay .ve-rail span:last-child { display: none; }
  .visual-essay .ve-intro { grid-template-columns: 1fr; gap: 24px; padding: 42px 0 32px; }
  .visual-essay h2 { font-size: clamp(43px, 10vw, 69px); line-height: 1.03; }
  .visual-essay .ve-intro p { font-size: 15px; margin: 0; }
  .visual-essay .ve-gallery { grid-template-columns: 1fr; gap: 40px; }
  .visual-essay .ve-gallery::before, .visual-essay .ve-axis { display: none; }
  .visual-essay .ve-piece, .visual-essay .ve-piece-space { width: 100%; max-width: 320px; margin: 0 auto; }
  .visual-essay .ve-piece a { aspect-ratio: 2 / 3; }
  .visual-essay .ve-foot { display: block; margin-top: 48px; }
  .visual-essay .ve-foot a { margin-top: 18px; }
}
@media (max-width: 340px) {
  .atelier-home .hero h1 { font-size: 41px; letter-spacing: -.055em; }
  .visual-essay h2 { font-size: 39px; }
  .visual-essay .ve-piece figcaption { display: block; }
  .visual-essay .ve-piece figcaption strong { display: block; text-align: left; margin-top: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .visual-essay .ve-piece img { transition: none; }
  .visual-essay .ve-piece a:hover img, .visual-essay .ve-piece a:focus-visible img { transform: none; filter: none; }
}
