/* Lọ Mơ — deliberate editorial motion. No scroll hijacking or spring easing. */
:root {
  --editorial-ease: cubic-bezier(.16, 1, .3, 1);
  --editorial-color-ease: cubic-bezier(.4, 0, .2, 1);
  --editorial-header-height: 80px;
  --editorial-index-height: 0px;
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--editorial-header-height) + var(--editorial-index-height) + 24px); }
/* clip avoids creating the extra scroll container that breaks sticky headers. */
@supports (overflow: clip) {
  html { overflow-x: clip; }
  body { overflow-x: clip; }
}

.ed-reveal {
  opacity: 1;
  transform: none;
  transition: opacity 850ms var(--editorial-ease), transform 850ms var(--editorial-ease);
  transition-delay: var(--ed-delay, 0ms);
}
.ed-reveal.ed-pending { opacity: 0; transform: translate3d(0, 24px, 0); }
.ed-lines { opacity: 1; transform: none; }
.ed-line { display: block; }
.ed-line-inner {
  display: block;
  opacity: 1;
  transform: none;
  transition: opacity 900ms var(--editorial-ease), transform 900ms var(--editorial-ease);
  transition-delay: calc(var(--ed-line-index, 0) * 110ms);
}
.ed-lines.ed-pending .ed-line-inner { opacity: 0; transform: translate3d(0, .6em, 0); }
.ed-lines.ed-pending { opacity: 1; transform: none; }

.ed-media, .card-image-wrap { overflow: hidden; isolation: isolate; }
.ed-media > img, .card-image-wrap > img {
  transform: scale(1);
  transform-origin: center;
  transition: transform 800ms var(--editorial-ease);
}
.ed-media { border-radius: 6px; }
.pub-artwork-frame .ed-media > img { display: block; width: 100%; height: auto; }
@media (hover: hover) and (pointer: fine) {
  .ed-media:hover > img,
  .ed-media:focus-within > img,
  .lomo-product-card:hover .card-image-wrap > img,
  .lomo-product-card:focus-within .card-image-wrap > img { transform: scale(1.05); }
  .btn-lomo:not(:disabled):hover, .btn-header-icon:hover, .depth-nav-btn:hover { translate: none; }
  .lomo-product-card:hover, .pub-showcase-card:hover, .pending-pub-card:hover { transform: none; }
}
.lomo-product-card, .pub-showcase-card, .pending-pub-card {
  transition: box-shadow 700ms var(--editorial-ease), border-color 600ms var(--editorial-color-ease);
}
.ed-reveal:not(.ed-lines) {
  transition: opacity 850ms var(--editorial-ease), transform 850ms var(--editorial-ease), box-shadow 700ms var(--editorial-ease), border-color 600ms var(--editorial-color-ease);
  transition-delay: var(--ed-delay, 0ms), var(--ed-delay, 0ms), 0ms, 0ms;
}
.ed-reveal.ed-instant, .ed-instant .ed-line-inner { transition: none !important; }

/* Multi-line text links: a background underline follows the actual text. */
.ed-text-link, .footer-links a.ed-text-link {
  text-decoration: none !important;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 1px;
  transition: background-size 600ms var(--editorial-ease), color 450ms var(--editorial-color-ease);
  padding-bottom: 3px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.ed-text-link:is(:hover, :focus-visible, [aria-current='location']) { background-size: 100% 1px; }
.ed-text-link:focus-visible { outline: 2px solid var(--color-orange); outline-offset: 5px; }
.footer-links a.ed-text-link:hover { padding-left: 0; }

.btn-lomo {
  transition: background-color 550ms var(--editorial-color-ease), color 550ms var(--editorial-color-ease), border-color 550ms var(--editorial-color-ease), box-shadow 550ms var(--editorial-ease);
}
.btn-lomo:not(:disabled):active, .btn-header-icon:active, .depth-nav-btn:active { scale: 1; translate: none; }
.btn-lomo.btn-primary:is(:hover, :focus-visible):not(:disabled):not([aria-disabled='true']) {
  background: var(--color-cream); color: var(--color-green) !important; border-color: var(--color-green);
}
.btn-lomo.btn-outline:is(:hover, :focus-visible):not(:disabled):not([aria-disabled='true']) {
  background: var(--color-green); color: var(--color-cream) !important; border-color: var(--color-green);
}
.btn-lomo.btn-accent:is(:hover, :focus-visible):not(:disabled):not([aria-disabled='true']) {
  background: var(--color-white); color: var(--color-orange-dark) !important; border-color: var(--color-orange-dark);
}
.btn-lomo.btn-outline-accent:is(:hover, :focus-visible):not(:disabled):not([aria-disabled='true']) {
  background: var(--color-orange-dark); color: var(--color-white) !important; border-color: var(--color-orange-dark);
}
.motion-pop { animation: editorial-feedback 600ms var(--editorial-ease); }
@keyframes editorial-feedback { from { opacity: .6; } to { opacity: 1; } }
.mobile-navigation:not([hidden]), .motion-filter[open] > .motion-filter-content {
  animation: lomo-enter 550ms var(--editorial-ease);
}
[data-threeui-tilt], [data-threeui-tilt].is-tilting { transition: transform 650ms var(--editorial-ease), box-shadow 650ms var(--editorial-ease); }
.depth-slide.is-active .depth-slide-figure-wrap,
.depth-stage-sunbeam, .depth-stage-arch { transition: transform 650ms var(--editorial-ease); }

/* Sticky chapter index: one row, keyboard accessible, horizontally scrollable on mobile. */
.editorial-scroll-nav {
  position: sticky;
  top: var(--editorial-header-height);
  z-index: 85;
  background: rgb(250 245 236 / 96%);
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  backdrop-filter: blur(12px);
}
.editorial-scroll-nav[hidden] { display: none; }
.editorial-scroll-nav-inner { display: flex; align-items: center; gap: 8px; overflow-x: auto; scrollbar-width: thin; padding-block: 10px; }
.editorial-scroll-nav a {
  white-space: nowrap;
  flex: 0 0 auto;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: 24px;
  color: var(--color-ink-muted);
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  transition: color 450ms var(--editorial-color-ease), background-color 450ms var(--editorial-color-ease), border-color 450ms var(--editorial-color-ease);
}
.editorial-scroll-nav a span { color: var(--color-orange-dark); font-family: var(--font-serif); margin-right: 6px; }
.editorial-scroll-nav a:is(:hover,:focus-visible) { border-color: var(--color-line-dark); color: var(--color-green); }
.editorial-scroll-nav a[aria-current='location'] { background: var(--color-green); color: var(--color-cream); border-color: var(--color-green); }
.editorial-scroll-nav a[aria-current='location'] span { color: inherit; }
.editorial-scroll-nav a:focus-visible { outline: 2px solid var(--color-orange); outline-offset: 2px; }
.editorial-chapter-pill { transition: background-color 500ms var(--editorial-color-ease), color 500ms var(--editorial-color-ease), border-color 500ms var(--editorial-color-ease); }
.editorial-chapter-pill[aria-current='location'] { background: var(--color-green); border-color: var(--color-green); color: var(--color-cream); }
.editorial-chapter-pill[aria-current='location'] span { color: inherit; }
.main-nav .nav-anchor-link[aria-current='location'] { color: var(--color-green); }
@media (max-width: 600px) {
  .editorial-scroll-nav-inner { gap: 2px; padding-block: 7px; }
  .editorial-scroll-nav a { padding: 8px 11px; font-size: 11px; }
}
@media print {
  .site-header { position: static; }
  .editorial-scroll-nav { display: none; }
  .ed-reveal, .ed-line-inner { opacity: 1 !important; transform: none !important; transition: none !important; }
}
