/* GTV Lab inner-page layer. Loads after lab.css + home.css on every page except the homepage. */

/* Page stage: a shorter take on the homepage's WebGL hero. */
.stage--page{min-height:min(82svh,780px)}
.stage--page .stage-shade{background:linear-gradient(90deg,rgb(12 15 13 / .9) 0%,rgb(12 15 13 / .62) 45%,rgb(12 15 13 / .2) 80%),linear-gradient(to top,var(--bg) 0%,transparent 30%)}
.page-hero{align-self:end;padding-top:170px;padding-bottom:46px;max-width:1320px}
.page-hero h1{font-size:clamp(4.2rem,8vw,8.6rem);line-height:.9;margin-bottom:30px;max-width:1050px;text-wrap:balance}
.page-hero h1 .line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.1em}
.page-hero h1 .line>*{display:inline-block;animation:rise 1.1s var(--ease-out) both}
.page-hero h1 .line:nth-child(2)>*{animation-delay:.12s}
.page-hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--lime) 20%,#f4ffd2 45%,var(--lime) 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rise 1.1s .12s var(--ease-out) both,sheen 6s 1.4s ease-in-out infinite}
.page-hero>*:not(h1){animation:fade-up .9s var(--ease-out) both}
.page-hero>.intro{animation-delay:.3s;color:var(--ink);max-width:640px;margin-top:0}
.page-hero>.hero-actions{animation-delay:.45s;margin-top:34px}

/* Section heads on inner pages. */
.section.flush{padding-top:40px}
.section.flush .section-head{margin-bottom:22px}
.section-head h2{text-wrap:balance}
.section-count{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Featured entry: wide glass card. */
.feature-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:46px;align-items:center;padding:14px 46px 14px 14px;border-radius:28px}
.feature-card .card-art{border-radius:18px;aspect-ratio:1.5;background:#ced0cc}
.feature-card .card-art img{width:100%;height:100%;object-fit:cover}
.feature-card:hover .card-art img{transform:scale(1.04)}
.feature-card .card-meta{margin-top:0}
.feature-card h2{font-size:clamp(2.6rem,3.8vw,4rem);line-height:.98;margin-block:6px 18px;text-wrap:balance}
.feature-card h2 a{text-decoration:none}
.feature-card h2 a:hover{color:var(--lime)}
.feature-card .feature-copy>p:not(.eyebrow){font-size:15px;line-height:1.7}
.feature-card .button{margin-top:30px}
.feature-card .eyebrow{margin-bottom:14px}

/* Entry cards: reuse the homepage project-card, with h2 headings and full-frame art. */
.project-card .card-art.full{aspect-ratio:1.5;background:#ced0cc}
.project-card h2{font-size:2.1rem;padding-inline:10px}
.project-card h2 a{display:flex;justify-content:space-between;gap:16px;text-decoration:none}
.project-card h2 span{font-size:23px;color:var(--lime);transition:transform .35s var(--ease-out)}
.project-card:hover h2 span{transform:translate(4px,-4px)}
.project-card h2 a:hover{color:var(--lime)}
.card-meta time{color:inherit}

/* Follow band: closing call-to-action, sibling of the homepage music banner. */
.follow-band{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;padding:60px 70px;margin-bottom:100px;border-radius:28px;border:1px solid var(--line);background:radial-gradient(70% 140% at 90% 50%,rgb(214 239 127 / .12),transparent 60%),var(--panel);position:relative;overflow:hidden}
.follow-band h2{line-height:.95}
.follow-band p:not(.eyebrow){font-size:14px;max-width:460px;margin-top:18px}
.follow-band .eyebrow{margin-bottom:16px}
.follow-band::after{content:'';position:absolute;right:-60px;top:50%;width:340px;height:340px;translate:0 -50%;border-radius:50%;border:1px solid var(--glass-line);box-shadow:0 0 0 40px rgb(214 239 127 / .025),0 0 0 80px rgb(214 239 127 / .02);pointer-events:none}
.follow-band .button{position:relative;z-index:1}

@media(max-width:1100px){
  .feature-card{gap:30px;padding-right:30px}
  .follow-band{padding:50px}
}
@media(max-width:760px){
  .stage--page{min-height:auto}
  .page-hero{padding-top:120px;padding-bottom:30px}
  .page-hero h1{font-size:clamp(3.8rem,15vw,6rem)}
  .section.flush{padding-top:30px}
  .feature-card{grid-template-columns:1fr;gap:22px;padding:10px 10px 26px;border-radius:20px}
  .feature-card .feature-copy{padding-inline:10px}
  .feature-card .button{width:100%;margin-top:24px}
  .project-card h2{font-size:1.9rem}
  .follow-band{grid-template-columns:1fr;gap:26px;padding:35px 25px;margin-bottom:60px;border-radius:22px}
  .follow-band .button{justify-self:stretch}
  .follow-band::after{display:none}
}
@media(prefers-reduced-motion:reduce){.feature-card{transform:none}}

/* ---------- Shared inner-page components ---------- */
.stage--compact{min-height:min(62svh,600px)}
.stage--compact .page-hero h1{font-size:clamp(3.8rem,6.6vw,7rem)}
.stage+.section.tight,.stage+.project-body,.stage+.tracks{padding-top:50px}
.stage+.music-intro{margin-top:50px}

/* Filters become pills. */
.filter{border-radius:999px;font-family:var(--mono);letter-spacing:.06em;transition:border-color .2s,color .2s,background .2s}
.filter:hover{border-color:var(--lime);color:var(--ink)}
.filter.active:hover{color:var(--bg)}

/* Feature split: framed image with depth. */
.feature-split>div:first-child{border-radius:22px;overflow:hidden;border:1px solid var(--glass-line);box-shadow:0 40px 100px -40px #000;position:relative}
.feature-split>div:first-child img{transition:transform .9s var(--ease-out)}
.feature-split:hover>div:first-child img{transform:scale(1.04)}
.feature-split .text-link.block-link{margin-top:22px}
.section.tight+.section.tight{padding-top:60px}

/* Article and project bodies. */
.project-body>figure>a,.render-pair figure>a{display:block;border-radius:20px;overflow:hidden;border:1px solid var(--glass-line);background:var(--panel);box-shadow:0 40px 110px -45px #000}
.project-body>figure img,.render-pair img{transition:transform .9s var(--ease-out);border:0}
.project-body>figure>a:hover img,.render-pair figure>a:hover img{transform:scale(1.025)}
.project-body figcaption,.render-pair figcaption{font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;line-height:1.7;padding-inline:4px}
.editorial h2{position:relative;text-wrap:balance}
.editorial h2::before{content:'';display:block;width:34px;height:2px;margin-bottom:18px;background:var(--lime);box-shadow:0 0 18px rgb(214 239 127 / .5)}
.editorial h2:first-child::before{margin-top:0}
.editorial .article-intro{font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.6}
.editorial a:not(.button):not(.text-link){text-decoration-color:rgb(214 239 127 / .45)}
.editorial .button{margin-top:26px}
.editorial ul{list-style:none;padding-left:0}
.editorial li{position:relative;padding-left:24px}
.editorial li::before{content:'✦';position:absolute;left:0;top:.1em;font-size:.7rem;color:var(--lime)}
.editorial code{font-family:var(--mono);font-size:.9em;background:var(--panel);border:1px solid var(--line);padding:1px 7px;border-radius:6px;color:var(--ink)}
.source-note{font-family:var(--mono);letter-spacing:.02em}
.section-note{font-family:var(--mono);letter-spacing:.02em}

/* Facts strip as a glass instrument panel. */
.project-facts{border:1px solid var(--glass-line);border-radius:20px;padding:26px 30px;gap:0;background:linear-gradient(180deg,rgb(255 255 255 / .03),transparent),var(--panel)}
.project-facts>div{padding-inline:22px;border-left:1px solid var(--glass-line)}
.project-facts>div:first-child{border-left:0;padding-left:0}
.project-facts span{font-family:var(--mono);letter-spacing:.14em}
.project-facts strong{font-family:var(--display);font-size:1.5rem;font-weight:600;letter-spacing:.01em;line-height:1.1}

/* Release panel: same family as the homepage music banner. */
.release-panel{position:relative;border-radius:28px;border:1px solid var(--line);background:radial-gradient(70% 120% at 0% 0%,rgb(214 239 127 / .1),transparent 60%),var(--panel);transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s var(--ease-out)}
.release-panel::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%),rgb(214 239 127 / .6),transparent 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s;pointer-events:none}
.release-panel:hover::before{opacity:1}
.release-panel>div+div{border-left:1px solid var(--glass-line);padding-left:40px}

/* Next / related project. */
.next-project{align-items:center;border-top-color:var(--glass-line)}
.next-project span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;font-size:11px}
.next-project a{transition:color .2s,translate .35s var(--ease-out)}
.next-project a:hover{color:#f4ffd2;translate:6px 0}

/* About: toolkit list. */
.tool-list>div{border-top-color:var(--glass-line);transition:padding .4s var(--ease-out),background .4s}
.tool-list>div:hover{padding-left:14px;background:linear-gradient(90deg,rgb(214 239 127 / .06),transparent 70%)}
.tool-list dt{font-family:var(--display);font-size:1.45rem;font-weight:600;line-height:1.2}

/* Music: intro banner + track cards. */
.music-intro{border-radius:28px;border:1px solid var(--line);background:radial-gradient(80% 120% at 15% 50%,rgb(214 239 127 / .1),transparent 60%),var(--panel);overflow:hidden}
.music-intro .wave-large i{border-radius:4px;transform-origin:center;animation:eq 1.6s ease-in-out infinite alternate;animation-delay:calc(var(--i,0) * -.13s);box-shadow:0 0 18px rgb(214 239 127 / .25)}
.track{border-radius:24px!important;border:1px solid var(--line);overflow:hidden;transition:border-color .3s,box-shadow .4s}
.track:hover{border-color:rgb(214 239 127 / .35);box-shadow:0 30px 80px -35px #000}
.track-art img{transition:transform .9s var(--ease-out)}
.track:hover .track-art img{transform:scale(1.04)}
.track-art figcaption{border-radius:999px;font-family:var(--mono);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.track-meta{font-family:var(--mono)}
.track summary{font-family:var(--mono)}
.usage{border-radius:0 12px 12px 0;background:linear-gradient(90deg,rgb(214 239 127 / .06),transparent);padding-block:12px}

@media(max-width:760px){
  .stage--compact{min-height:auto}
  .stage+.section.tight,.stage+.project-body,.stage+.tracks{padding-top:34px}
  .stage+.music-intro{margin-top:34px}
  .feature-split>div:first-child{border-radius:16px}
  .project-body>figure>a,.render-pair figure>a{border-radius:14px}
  .project-facts{padding:20px;gap:20px 0}
  .project-facts>div{border-left:0;padding-left:0}
  .project-facts>div:nth-child(even){border-left:1px solid var(--glass-line);padding-left:18px}
  .project-facts strong{font-size:1.25rem}
  .release-panel{border-radius:22px}
  .release-panel>div+div{border-left:0;padding-left:0;border-top:1px solid var(--glass-line);padding-top:22px}
  .music-intro{border-radius:22px}
  .track{border-radius:20px!important}
  .tool-list>div:hover{padding-left:0;background:none}
}
@media(prefers-reduced-motion:reduce){.release-panel{transform:none}}
