/* hlw-home.css — homepage-only sections. Loaded before hlw.css, after the
   GH foundation. .section/.s-head/.wrap/.grid/.label/.reveal live in
   v4-global.css; @keyframes float-b is defined here (HLW has no hero.css).
   Hero canvases (.hero__field/.hero__ribbon) are drawn by assets/js/hlw-hero.js. */

@keyframes float-b{0%,100%{transform:translateY(0)}50%{transform:translateY(13px)}}

/* ---------- hero (centered typographic, cover-field canvases behind) ---------- */
.hero{position:relative;overflow:hidden;text-align:center;
  min-height:calc(100svh - 82px);display:grid;place-items:center;
  padding-block:clamp(48px,8vh,110px);}
.hero__field,.hero__ribbon{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;}
.hero__ribbon{z-index:1;}
/* veil keeps the type legible over the canvases; center stays clear */
.hero__veil{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    radial-gradient(120% 95% at 50% 44%, transparent 40%, color-mix(in srgb,var(--bg) 70%,transparent) 100%),
    linear-gradient(180deg, color-mix(in srgb,var(--bg) 45%,transparent), transparent 24%, transparent 72%, var(--bg));}
.hero__center{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;
  padding-inline:var(--pad);}
.hero__kicker{font-size:clamp(11px,1vw,14px);letter-spacing:.5em;margin-left:.5em;
  color:var(--accent);margin-bottom:clamp(22px,3.4vh,42px);}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,8.6vw,100px);
  line-height:1;letter-spacing:-.03em;margin:0;color:var(--text);white-space:nowrap;}
.hero__title .i{font-style:italic;color:var(--accent);}
.hero__rule{width:clamp(60px,8vw,108px);height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  margin:clamp(26px,4vh,46px) 0 clamp(22px,3.2vh,36px);}
.hero__sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,2.3vw,1.9rem);
  color:var(--text);margin:0;line-height:1.35;max-width:28ch;}
.hero__author{font-family:var(--ui);font-size:clamp(12px,1vw,14px);font-weight:600;
  letter-spacing:.34em;margin-left:.34em;text-transform:uppercase;color:var(--text-2);
  margin-top:clamp(28px,4.4vh,52px);}
.hero__scroll{position:absolute;left:50%;bottom:clamp(18px,4vh,38px);transform:translateX(-50%);
  z-index:4;font-family:var(--ui);font-size:11px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--text);display:flex;flex-direction:column;
  align-items:center;gap:10px;transition:color .2s;}
.hero__scroll:hover{color:var(--accent);}
.hero__scroll .bar{width:1.5px;height:42px;border-radius:1px;
  background:linear-gradient(var(--accent),transparent);
  transform-origin:top;animation:scroll-bob 2.2s ease-in-out infinite;}
@keyframes scroll-bob{0%,100%{transform:scaleY(.5);opacity:.6}50%{transform:scaleY(1);opacity:1}}

/* ---------- "In print" book feature (GH .book .grid) ---------- */
.book{align-items:center;padding-block:clamp(56px,8vh,104px);}
.book__cover{grid-column:1/6;transform:translateY(var(--py,0px));will-change:transform;}
.book__cover img{height:500px;width:auto;max-width:100%;display:block;filter:drop-shadow(var(--shadow));animation:float-b 10s ease-in-out infinite;}
.book__main{grid-column:7/13;padding-top:6px;}
.book__folio{display:flex;align-items:center;gap:14px;margin-bottom:22px;color:var(--accent);}
.book__folio .n{font-family:var(--ui);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;}
.book__title{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.2vw,62px);line-height:1.02;letter-spacing:-.02em;color:var(--text);}
.book__sub{font-family:var(--serif);font-style:italic;color:var(--text-2);font-size:clamp(18px,2vw,24px);margin-top:12px;line-height:1.2;}
.book__by{font-family:var(--serif);letter-spacing:.02em;font-size:19px;color:var(--text-2);margin-top:22px;}
.book__desc{font-family:var(--serif);font-size:clamp(16px,1.5vw,18.5px);line-height:1.64;max-width:52ch;margin-top:24px;color:var(--text-2);}
.book__colophon{display:flex;margin-top:24px;}
.book__colophon>div{padding:18px 52px;border-right:1px solid var(--line);min-width:150px;}
.book__colophon>div:first-child{padding-left:0;}
.book__colophon>div:last-child{border-right:0;padding-right:0;}
.book__colophon .k{font-family:var(--ui);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:16px;}
.book__colophon .v{font-family:var(--ui);font-size:16px;letter-spacing:.02em;color:var(--text);}
.book__buy{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px;}

/* ---------- authors band (GH .authors / .author; tint-on-scroll) ---------- */
.authors{border-top:1px solid var(--line);}
.authors__intro{text-align:center;margin:0 auto clamp(48px,8vh,84px);}
.authors__intro .label{display:block;margin-bottom:26px;color:var(--text-3);}
.authors__intro h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5.4vw,70px);line-height:1.02;letter-spacing:-.02em;}
.authors__intro p{font-family:var(--serif);font-style:italic;color:var(--text-2);font-size:clamp(17px,1.8vw,21px);margin:22px auto 0;max-width:34ch;line-height:1.4;}
.authors__rule{width:64px;height:var(--hair);background:var(--hair-color);margin:26px auto 0;display:block;}
.author{align-items:center;padding-top:clamp(8px,2vh,24px);}
.author__portrait{grid-column:1/5;display:flex;justify-content:center;transform:translateY(var(--py,0px));will-change:transform;}
.author__portrait img{width:min(82%,300px);height:auto;aspect-ratio:1;object-fit:cover;object-position:50% 35%;
  border-radius:50%;border:1px solid var(--line-2);background:var(--bg-2);filter:drop-shadow(0 24px 48px rgba(0,0,0,.4));}
.author__main{grid-column:6/13;}
.author__eyebrow{font-family:var(--ui);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;}
.author__name{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,48px);line-height:1.04;letter-spacing:-.018em;}
.author__role{font-family:var(--serif);font-style:italic;color:var(--text-2);font-size:clamp(16px,1.6vw,19px);margin-top:8px;}
.author__bio{font-family:var(--serif);font-size:clamp(16px,1.5vw,18px);line-height:1.66;color:var(--text);max-width:54ch;margin-top:22px;}
.author__bio p+p{margin-top:1em;}
.author__meta{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:28px;}
.author__titles{font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);}
.author__link{font-family:var(--ui);font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:10px;border-bottom:var(--hair) solid var(--hair-color);padding-bottom:4px;}
.author__link .arrow{transition:transform .25s;}
.author__link:hover .arrow{transform:translateX(5px);}

/* ---------- manifesto + about (GH) ---------- */
.manifesto{background:var(--bg-2);}
.manifesto__label{display:block;text-align:center;margin-bottom:26px;}
.manifesto__title{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.6vw,62px);line-height:1.08;letter-spacing:-.02em;text-align:center;}
.manifesto__title em{font-style:italic;color:var(--accent);}
.manifesto__body{font-family:var(--serif);max-width:62ch;margin:clamp(34px,5vh,52px) auto 0;text-align:center;font-size:clamp(17px,1.65vw,20px);line-height:1.62;color:var(--text-2);}
.manifesto__body p+p{margin-top:1.1em;}

/* ---------- responsive (home) ---------- */
@media (max-width:860px){
  .book__cover,.book__main{grid-column:1/13;}
  .book__cover img{height:auto;width:100%;max-width:360px;}
  .author__portrait,.author__main{grid-column:1/13;}
  .author__portrait{margin-bottom:34px;}
}
@media (max-width:600px){
  .book__colophon{flex-wrap:wrap;}
  .book__colophon>div{padding:12px 22px;min-width:0;}
}

@media (prefers-reduced-motion: reduce){
  .book__cover img{animation:none;}
  .hero__scroll .bar{animation:none;transform:none;}
}
