/* Homepage-only composition. Physical offsets also support older embedded browsers. */
#productHome .eason-hero { min-height: 760px; min-height: max(760px, calc(100svh - 72px)); }
#productHome .hero-stage-photo { top: 0; right: 0; bottom: 0; left: auto; width: min(59vw, 1020px); }
#productHome .hero-stage-photo img { object-position: center 22%; filter: saturate(.87) contrast(1.04) brightness(.94); }
#productHome .hero-stage-photo::after { top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(90deg, #11120f 0%, rgba(17,18,15,.97) 8%, rgba(17,18,15,.82) 23%, rgba(17,18,15,.28) 43%, rgba(17,18,15,.04) 68%), linear-gradient(0deg, #11120f 0%, rgba(17,18,15,.58) 10%, transparent 33%); }
#productHome .eason-hero::before { top: 0; right: 0; bottom: 0; left: 0; opacity: .4; }
#productHome .hero-content { width: 100%; max-width: none; margin: 0; padding: 108px clamp(32px, 4vw, 72px) 108px clamp(40px, 11.3vw, 230px); }
#productHome .hero-content h1 { width: 650px; max-width: 58%; font-size: clamp(48px, 4.2vw, 66px); line-height: 1.17; letter-spacing: -.055em; }
#productHome .hero-content > p { width: 540px; max-width: 49%; text-wrap: balance; }
#productHome .hero-principle { width: 600px; max-width: 58%; margin-top: 38px; padding-left: 0; border-left: 0; gap: 14px; }
#productHome .hero-principle::before { content: ""; display: block; width: 40px; height: 2px; background: var(--orange); }
#productHome .hero-principle strong { font-size: 20px; line-height: 1.8; text-wrap: initial; }
#productHome .hero-principle strong > span { display: block; }

#productHome .home-resource-section { margin-top: 116px; margin-bottom: 180px; padding: 0; overflow: visible; background: none; border: 0; border-radius: 0; box-shadow: none; }
#productHome .home-resource-section::after { display: none; }
#productHome .resource-library { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; border: 0; }
#productHome .resource-line { min-width: 0; min-height: 450px; display: flex; flex-direction: column; gap: 0; align-items: stretch; padding: 32px 30px 26px; background: linear-gradient(145deg, #353631, #2a2b27); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; box-shadow: 0 18px 40px rgba(0,0,0,.12); }
#productHome .resource-number { margin-bottom: 34px; font-size: 16px; letter-spacing: .08em; }
#productHome .resource-main > span { font-size: 14px; letter-spacing: .04em; font-weight: 750; }
#productHome .resource-main h3 { max-width: none; min-height: 2.6em; margin: 14px 0 18px; font-size: clamp(27px, 2.25vw, 32px); line-height: 1.3; letter-spacing: -.035em; }
#productHome .resource-main h3 > span { display: block; white-space: nowrap; }
#productHome .resource-main p { font-size: 16px; line-height: 1.85; }
#productHome .resource-actions { grid-column: auto; margin-top: auto; padding-top: 30px; display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
#productHome .resource-actions .home-primary-button { width: auto; padding: 0 16px; gap: 10px; }
#productHome .resource-actions .home-text-button { width: auto; padding: 0; gap: 8px; }

#productHome .home-member-section { padding: 230px 0 220px; }
#productHome .home-member-section::after { top: 120px; }
#productHome .speech-ornament small { font-size: 13px; color: rgba(255,255,255,.5); letter-spacing: .1em; }

@media (min-width: 701px) and (max-width: 1050px) {
  #productHome .home-section-shell { width: calc(100% - 64px); }
  #productHome .hero-content { width: 100%; padding-right: 32px; padding-left: 32px; }
  #productHome .hero-stage-photo { width: 60%; }
  #productHome .hero-content h1 { max-width: 64%; font-size: clamp(35px,4.4vw,46px); }
  #productHome .hero-content > p { max-width: 51%; font-size: 17px; }
  #productHome .hero-principle { max-width: 58%; }
  #productHome .hero-principle strong { font-size: 18px; }
  #productHome .resource-library { gap: 16px; }
  #productHome .resource-line { padding: 28px 20px 24px; }
  #productHome .resource-main h3 { font-size: 25px; }
  #productHome .resource-main h3 > span { white-space: normal; }
}

@media (max-width: 700px) {
  #productHome .eason-hero { min-height: 0; display: flex; flex-direction: column; align-items: stretch; }
  #productHome .hero-stage-photo { position: relative; top: auto; right: auto; bottom: auto; left: auto; order: 2; width: 100%; height: clamp(330px,100vw,510px); margin-top: -14px; }
  #productHome .hero-stage-photo img { object-position: center 22%; }
  #productHome .hero-stage-photo::after { background: linear-gradient(180deg,#11120f 0%,rgba(17,18,15,.32) 17%,transparent 38%,rgba(17,18,15,.08) 75%,#11120f 100%), linear-gradient(90deg,rgba(17,18,15,.32),transparent 30%,transparent 80%,rgba(17,18,15,.2)); }
  #productHome .hero-content { order: 1; width: 100%; padding: 56px 24px 36px; }
  #productHome .hero-content h1 { width: 100%; max-width: none; font-size: clamp(26px,7.15vw,45px); line-height: 1.26; }
  #productHome .hero-content > p { width: 100%; max-width: 30em; margin-top: 26px; font-size: 16px; line-height: 1.85; }
  #productHome .hero-principle { width: 100%; max-width: 32em; margin-top: 28px; }
  #productHome .hero-principle strong { font-size: 16px; line-height: 1.9; }
  #productHome .home-resource-section { width: calc(100% - 40px); margin-top: 72px; margin-bottom: 112px; }
  #productHome .resource-library { grid-template-columns: 1fr; gap: 20px; }
  #productHome .resource-line { min-height: 0; padding: 30px 26px 26px; }
  #productHome .resource-number { margin-bottom: 28px; }
  #productHome .resource-main h3 { min-height: 0; margin-top: 12px; font-size: clamp(25px,7vw,29px); }
  #productHome .resource-actions { margin-top: 0; padding-top: 28px; gap: 10px 20px; }
  #productHome .home-member-section { padding: 170px 0 150px; }
  #productHome .home-member-section::after { top: 80px; }
}

/* Motion is enabled by the small homepage script; content stays visible without it. */
#productHome.home-motion-ready .hero-content > .home-section-index,
#productHome.home-motion-ready .hero-content > h1,
#productHome.home-motion-ready .hero-content > p,
#productHome.home-motion-ready .hero-content > .hero-principle {
  animation: home-hero-enter 850ms cubic-bezier(.22,1,.36,1) both;
}
#productHome.home-motion-ready .hero-content > .home-section-index { animation-delay: 60ms; }
#productHome.home-motion-ready .hero-content > h1 { animation-delay: 160ms; }
#productHome.home-motion-ready .hero-content > p { animation-delay: 290ms; }
#productHome.home-motion-ready .hero-content > .hero-principle { animation-delay: 420ms; }
#productHome .hero-stage-effects {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1;
  overflow: hidden; pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 27% 44% at 50% 39%, transparent 55%, rgba(0,0,0,.35) 78%, #000 100%);
  mask-image: radial-gradient(ellipse 27% 44% at 50% 39%, transparent 55%, rgba(0,0,0,.35) 78%, #000 100%);
}
#productHome .stage-beam { position: absolute; top: -14%; width: 42%; height: 140%; transform-origin: 50% 0; mix-blend-mode: screen; -webkit-mask-image: linear-gradient(90deg, transparent, #000 42%, #000 58%, transparent); mask-image: linear-gradient(90deg, transparent, #000 42%, #000 58%, transparent); filter: blur(16px); }
#productHome .stage-beam-warm { left: 60%; background: linear-gradient(180deg, rgba(255,223,166,.65), rgba(255,174,85,.2) 42%, rgba(255,174,85,0) 86%); animation: home-warm-beam 7s ease-in-out infinite alternate; }
#productHome .stage-beam-violet { left: 1%; background: linear-gradient(180deg, rgba(177,155,255,.58), rgba(128,100,255,.19) 48%, rgba(128,100,255,0) 88%); animation: home-violet-beam 9s ease-in-out infinite alternate; }
#productHome .stage-halo { position: absolute; top: 10%; right: -10%; width: 44%; height: 50%; border-radius: 50%; background: radial-gradient(ellipse, rgba(255,182,95,.22), rgba(255,182,95,.08) 36%, transparent 70%); animation: home-stage-halo 8s ease-in-out infinite alternate; }
#productHome .stage-spark { position: absolute; left: var(--spark-x); top: var(--spark-y); width: var(--spark-size, 4px); height: var(--spark-size, 4px); border-radius: 50%; background: #ffcf9a; box-shadow: 0 0 12px rgba(255,188,111,.75); animation: home-stage-spark var(--spark-time, 6s) ease-in-out var(--spark-delay, 0s) infinite alternate; }
#productHome .stage-spark:nth-of-type(1) { --spark-x: 16%; --spark-y: 24%; --spark-time: 5s; }
#productHome .stage-spark:nth-of-type(2) { --spark-x: 86%; --spark-y: 34%; --spark-time: 7s; --spark-delay: -2s; --spark-size: 5px; }
#productHome .stage-spark:nth-of-type(3) { --spark-x: 73%; --spark-y: 16%; --spark-time: 6s; --spark-delay: -3s; --spark-size: 3px; }
#productHome .stage-spark:nth-of-type(4) { --spark-x: 24%; --spark-y: 64%; --spark-time: 8s; --spark-delay: -1s; }
#productHome .stage-spark:nth-of-type(5) { --spark-x: 91%; --spark-y: 68%; --spark-time: 6s; --spark-delay: -4s; --spark-size: 3px; }
#productHome .stage-spark:nth-of-type(6) { --spark-x: 7%; --spark-y: 45%; --spark-time: 7s; --spark-delay: -3s; --spark-size: 5px; }
#productHome .stage-spark:nth-of-type(7) { --spark-x: 64%; --spark-y: 84%; --spark-time: 9s; --spark-delay: -5s; --spark-size: 3px; }
#productHome .stage-spark:nth-of-type(8) { --spark-x: 38%; --spark-y: 12%; --spark-time: 6s; --spark-delay: -2s; }
#productHome.home-motion-ready:not(.hero-in-view) .hero-stage-effects > * { animation-play-state: paused; }
#productHome .hero-stage-photo::after { z-index: 2; }
#productHome.home-motion-ready .home-reveal { opacity: 0; transform: translateY(18px); transition: opacity 650ms ease, transform 750ms cubic-bezier(.22,1,.36,1); transition-delay: var(--home-reveal-delay, 0ms); }
#productHome.home-motion-ready .home-reveal.is-visible,
#productHome.home-motion-ready .home-reveal:focus-within { opacity: 1; transform: none; }
@keyframes home-hero-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes home-warm-beam { from { opacity: .65; transform: rotate(12deg); } to { opacity: 1; transform: rotate(36deg); } }
@keyframes home-violet-beam { from { opacity: .75; transform: rotate(-27deg); } to { opacity: .95; transform: rotate(-5deg); } }
@keyframes home-stage-halo { from { opacity: .5; transform: translate(6%, -8%) scale(.9); } to { opacity: 1; transform: translate(-12%, 8%) scale(1.12); } }
@keyframes home-stage-spark { from { opacity: .2; transform: translate(0, 16px); } to { opacity: .85; transform: translate(24px, -42px); } }
@media (prefers-reduced-motion: reduce) {
  #productHome.home-motion-ready .hero-content > *,
  #productHome.home-motion-ready .home-reveal { animation: none; transition: none; opacity: 1; transform: none; }
  #productHome .hero-stage-effects > * { animation: none; opacity: .2; }
}

/* Four free guides retain the existing card style; mobile stays in one column. */
@media (min-width: 701px) {
  #productHome .resource-library.resource-library-expanded { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
