/* The Lantern — site-wide continuity & polish v0.18
   Additive only. This layer deliberately avoids hero geometry, page-specific
   spacing, imagery, and the deeper Landscape/Hall experience. */

/* Small typographic refinements that help the different page families feel
   as though they belong to the same editorial system. */
main[class*="lantern-"]:not(.lantern-depth) :where(h1,h2,h3,blockquote){
  text-wrap:balance;
  font-kerning:normal;
}

main[class*="lantern-"]:not(.lantern-depth) :where(p,li){
  text-wrap:pretty;
}

:where(
  .lantern-kicker,
  .lantern-home-kicker,
  .lantern-begin-kicker,
  .lantern-books-kicker,
  .lantern-identity-kicker,
  .lantern-mountains-kicker,
  .lantern-about-kicker,
  .lantern-letters-kicker,
  .lantern-press-kicker,
  .lantern-utility-kicker
){
  line-height:1.45;
}

::selection{
  background:rgba(200,155,85,.30);
  color:#fff8e9;
}

/* v0.16's keyboard treatment originally reached the homepage shell most
   directly. Extend that same language to every public page family. */
main[class*="lantern-"]:not(.lantern-depth) :where(
  a,
  button,
  summary,
  input,
  select,
  textarea
):focus-visible{
  outline:2px solid var(--lantern-pale,#e0bd7a);
  outline-offset:4px;
}

/* One interaction rhythm for navigation and CTAs. */
.lantern-nav a,
.lantern-footer nav a,
.lantern-brand,
.lantern-btn{
  transition:color .20s ease,
             background-color .20s ease,
             border-color .20s ease,
             box-shadow .20s ease,
             transform .20s ease;
}

.lantern-btn{
  box-sizing:border-box;
}

@media (hover:hover) and (pointer:fine){
  .lantern-btn:hover{
    transform:translateY(-1px);
  }

  .lantern-btn--solid:hover{
    background:#d5aa66;
    border-color:#d5aa66;
    box-shadow:0 10px 28px rgba(200,155,85,.12);
  }

  .lantern-btn--ghost:hover{
    border-color:rgba(224,189,122,.72);
    background:rgba(200,155,85,.055);
  }

  .lantern-footer nav a:hover,
  .lantern-brand:hover{
    color:#f4ead6;
  }
}

/* The homepage volume cards are informational, not clickable. Do not make
   their artwork rise on desktop hover as though the whole card were a link. */
.lantern-home .lantern-book:hover img{
  transform:none;
}

/* Give recurring arrow-style text links a shared, restrained response. */
:where(
  .lantern-volume__link,
  .lantern-identity-textlink,
  .lantern-press-textlink,
  .lantern-utility-textlink,
  .lantern-mountain-card__link
) span[aria-hidden="true"]{
  display:inline-block;
  transition:transform .20s ease;
}

@media (hover:hover) and (pointer:fine){
  :where(
    .lantern-volume__link,
    .lantern-identity-textlink,
    .lantern-press-textlink,
    .lantern-utility-textlink,
    .lantern-mountain-card__link
  ):hover span[aria-hidden="true"]{
    transform:translateX(3px);
  }
}

/* Footer polish: preserve the existing architecture while improving the
   reading relationship between the imprint and utility navigation. */
.lantern-footer strong{
  text-wrap:balance;
}

.lantern-footer nav a{
  position:relative;
}

@media (min-width:901px){
  .lantern-footer nav a::after{
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:-7px;
    height:1px;
    background:rgba(224,189,122,.52);
    transition:right .20s ease;
  }

  .lantern-footer nav a:hover::after,
  .lantern-footer nav a:focus-visible::after,
  .lantern-footer nav a[aria-current="page"]::after{
    right:0;
  }
}

/* Keep the interface steady for readers who request reduced motion. */
@media (prefers-reduced-motion:reduce){
  .lantern-nav a,
  .lantern-footer nav a,
  .lantern-footer nav a::after,
  .lantern-brand,
  .lantern-btn,
  :where(
    .lantern-volume__link,
    .lantern-identity-textlink,
    .lantern-press-textlink,
    .lantern-utility-textlink,
    .lantern-mountain-card__link
  ) span[aria-hidden="true"]{
    transition:none!important;
    transform:none!important;
  }
}
