/* Homepage composition, consolidated from the approved hero patches.
   Scene layers stay in lp-hero-cinematic.css; shared guides stay in
   lp-hero-alignment.css. Keep specificity while the template base remains. */
.tmp-banner-one-area.moody-hero .hero-static-portrait {
    pointer-events: none;
    z-index: 3 !important;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 97%, rgba(0,0,0,.85) 99%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 97%, rgba(0,0,0,.85) 99%, transparent 100%);
    filter: brightness(.94) contrast(1.03);
}
.tmp-banner-one-area.moody-hero > .container { position: relative; z-index: 5 !important; }
.tmp-banner-one-area.moody-hero #mouse-scroll { z-index: 6 !important; }
.tmp-banner-one-area.moody-hero .lp-v50-proof {
    color: #fff !important;
    font-size: 1.55rem !important;
    line-height: 1.7 !important;
    font-weight: 500 !important;
    letter-spacing: .004em !important;
    width: 560px !important;
    max-width: 560px !important;
    padding-left: 22px !important;
    border-left: 3px solid #FF9800 !important;
    text-align: left !important;
    text-shadow: 0 2px 14px rgba(0,0,0,.78) !important;
}
/* Live rotating words; old pill and DOM-based meteor selectors are unused. */
.tmp-banner-one-area.moody-hero .cd-words-wrapper > b.theme-gradient {
    color: #FF9800 !important;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    -webkit-text-fill-color: #FF9800 !important;
    text-shadow: none !important;
}
@media (min-width: 992px) {
    .tmp-banner-one-area.moody-hero .moody-hero-headline {
        font-size: clamp(3.9rem, 5.25vw, 5.5rem) !important;
        line-height: 1.06 !important;
        letter-spacing: -1.8px !important;
    }
    .tmp-banner-one-area.moody-hero .moody-hero-headline .driven-by { margin-top: 18px !important; }
    .tmp-banner-one-area.moody-hero .lp-v50-proof {
        margin: 22px 0 0 0 !important;
        font-style: normal !important;
    }
    .tmp-banner-one-area.moody-hero .lp-v50-proof-spacer { pointer-events: none !important; }
    .tmp-banner-one-area.moody-hero .hero-static-portrait {
        max-height: none !important;
        filter: brightness(.92) contrast(1.04) saturate(.96) !important;
        -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 97%, rgba(0,0,0,.85) 99%, transparent 100%) !important;
        mask-image: linear-gradient(to bottom, #000 0%, #000 97%, rgba(0,0,0,.85) 99%, transparent 100%) !important;
    }
}
@media (min-width: 1200px) {
    .tmp-banner-one-area.moody-hero .banner-one-main-wrapper .inner { transform: translateY(-108px) !important; }
    .tmp-banner-one-area.moody-hero .moody-hero-headline {
        font-size: clamp(4rem, 5.35vw, 5.65rem) !important;
        line-height: 1.005 !important;
    }
    .tmp-banner-one-area.moody-hero .moody-hero-headline .driven-by { margin-top: 14px !important; }
    .tmp-banner-one-area.moody-hero .button-area { margin-top: 20px !important; }
    .tmp-banner-one-area.moody-hero .lp-v50-proof {
        width: 590px !important;
        max-width: 590px !important;
        margin-top: 26px !important;
        font-size: 1.7rem !important;
    }
    .tmp-banner-one-area.moody-hero .hero-static-portrait {
        left: 70% !important;
        height: 75vh !important;
        bottom: -1.5vh !important;
        filter: brightness(.94) contrast(1.05) saturate(.98) !important;
    }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .tmp-banner-one-area.moody-hero .banner-one-main-wrapper .inner { transform: translateY(-72px) !important; }
    .tmp-banner-one-area.moody-hero .button-area { margin-top: 19px !important; }
    .tmp-banner-one-area.moody-hero .lp-v50-proof {
        width: 510px !important;
        max-width: 510px !important;
        padding-left: 22px !important;
        font-size: 1.22rem !important;
    }
    .tmp-banner-one-area.moody-hero .hero-static-portrait { left: 68.5% !important; height: 71vh !important; bottom: -1vh !important; }
}
@media (max-width: 991px) {
    /* Let the mobile composition reserve its own document height. The desktop
       absolute hero and spacer remain unchanged. */
    #home.moody-hero {
        position: relative !important;
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        padding-top: 140px !important;
        padding-bottom: calc(var(--lp-mobile-portrait-height) + 24px) !important;
        --lp-mobile-portrait-height: clamp(380px, 116vw, 660px);
    }
    #home.moody-hero + .hero-scroll-spacer { height: 0; }
    .tmp-banner-one-area.moody-hero .banner-one-main-wrapper .inner { transform: none !important; }
    .tmp-banner-one-area.moody-hero .button-area { margin-top: 18px !important; }
    .tmp-banner-one-area.moody-hero .lp-v50-proof {
        width: min(100%, 470px) !important;
        max-width: 470px !important;
        margin-top: 25px !important;
        font-size: 1.18rem !important;
        line-height: 1.58 !important;
        padding-left: 18px !important;
    }
    .tmp-banner-one-area.moody-hero .hero-static-portrait {
        left: 50% !important;
        height: var(--lp-mobile-portrait-height) !important;
        max-height: none !important;
        max-width: none;
        width: auto !important;
        bottom: 0 !important;
        object-position: bottom center !important;
        opacity: 1 !important;
    }
}
@media (max-width: 575px) {
    .tmp-banner-one-area.moody-hero .lp-v50-proof {
        width: min(100%, 390px) !important;
        max-width: 390px !important;
        font-size: 1.10rem !important;
        line-height: 1.60 !important;
        padding-left: 16px !important;
    }
}
@media (min-width: 768px) and (max-width: 991px) {
    #home.moody-hero {
        min-height: max(900px, 100svh) !important;
        padding-top: 180px !important;
        padding-bottom: 100px !important;
        --lp-mobile-portrait-height: min(76svh, 760px);
    }
    #home .lp-hero-copy { max-width: 46%; }
    #home.moody-hero .hero-static-portrait { left: 75% !important; }
}

/* Expand the composition around the approved copy; keep the portrait anchored
   to the usable canvas instead of drifting toward an ultrawide screen edge. */
@media(min-width:1600px) {
 .tmp-banner-one-area.moody-hero .banner-one-main-wrapper .inner { max-width:760px; }
 .tmp-banner-one-area.moody-hero .hero-static-portrait {
  left:calc(50% + min(20vw,calc(var(--lp-content-max) * .28))) !important;
  height:calc(75vh * var(--lp-portrait-scale,1)) !important;
 }
}
@media(min-width:1800px) {
 #home.moody-hero .moody-hero-headline { font-size:clamp(6.8rem,calc(6.8rem + (100vw - 1600px) * .003),7.4rem) !important; }
}
@media(min-width:2560px) { #home { --lp-portrait-scale:1.08; } }
@media(min-width:3200px) { #home { --lp-portrait-scale:1.12; } }
@media(min-width:2560px) and (max-height:1500px) {
 #home { --lp-portrait-scale:1.08; }
}

/* A single, settled message. Scene and portrait framing are unchanged. */
.lp-work-first #home .lp-hero-copy .moody-hero-headline {
    margin: 0 !important;
    font-size: clamp(44px, 4.7vw, 76px) !important;
    line-height: 1.06 !important;
    letter-spacing: -.045em !important;
    text-transform: none !important;
    font-weight: 700 !important;
}
.lp-work-first #home .lp-hero-line { display: block; }
.lp-work-first #home .lp-hero-accent { color: #ff9800; }
.lp-work-first #home .home-hero-kicker {
    margin: 0 0 26px;
    font-size: 11px;
    letter-spacing: .16em;
}
.lp-work-first #home .lp-hero-summary {
    margin: 26px 0 0 !important;
    max-width: 520px;
    font-size: clamp(16px, 1.35vw, 20px) !important;
    line-height: 1.65 !important;
    color: #c6c6c9;
    font-style: normal !important;
    text-shadow: 0 2px 14px #000;
}
.lp-work-first #home .lp-hero-copy .button-area { margin-top: 30px !important; }
.lp-work-first #home .lp-hero-line {
    animation: lp-hero-arrive .65s cubic-bezier(.2,.65,.3,1) both;
}
.lp-work-first #home .lp-hero-line:nth-child(2) { animation-delay: .08s; }
.lp-work-first #home .lp-hero-line:nth-child(3) { animation-delay: .16s; }
@keyframes lp-hero-arrive {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (min-width: 992px) {
    .lp-work-first #home .banner-one-main-wrapper .lp-hero-copy { top: 24px; }
}
@media (min-width: 768px) and (max-width: 991px) {
    .lp-work-first #home .lp-hero-copy { max-width: 58%; }
    .lp-work-first #home .lp-hero-copy .moody-hero-headline { font-size: 48px !important; }
}
@media (max-width: 575px) {
    .lp-work-first #home .lp-hero-copy .moody-hero-headline { font-size: clamp(36px, 9.3vw, 52px) !important; }
    .lp-work-first #home .home-hero-kicker { margin-bottom: 22px; }
    .lp-work-first #home .lp-hero-summary { margin-top: 22px !important; font-size: 16px !important; }
    .lp-work-first #home .lp-hero-copy .button-area { margin-top: 24px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .lp-work-first #home .lp-hero-line { animation: none; }
}

/* Editorial portrait composition: identity behind the subject, a clear reading plane. */
#home .lp-hero-name { position:absolute; z-index:3; top:22%; left:var(--lp-content-start); right:var(--lp-content-start); color:#e5d6bf18; font:600 clamp(100px,12.2vw,280px)/.9 Poppins,Arial,sans-serif; letter-spacing:-.065em; white-space:nowrap; pointer-events:none; user-select:none; }
.lp-work-first #home.moody-hero .hero-static-portrait { left:69% !important; height:82vh !important; bottom:-2vh !important; filter:brightness(.88) contrast(1.02) saturate(.8) !important; }
#home .lp-hero-environment { filter:saturate(.45); }
#home .planet-canvas { filter:brightness(.55) saturate(.65); }
#home .cosmic-static { filter:brightness(.6); }
#home .meteor-canvas { opacity:.35; }
@media(min-width:992px) {
 #home.moody-hero > .container.lp-hero-shell { position:absolute !important; inset:0 var(--lp-content-start); width:auto !important; max-width:none !important; height:100%; padding:0; margin:0; }
 .lp-work-first #home .banner-one-main-wrapper .inner.lp-hero-copy { position:absolute !important; top:46% !important; left:0; width:49%; max-width:660px; margin:0; transform:none !important; }
 .lp-work-first #home .lp-hero-copy .moody-hero-headline { font-size:clamp(44px,4.15vw,72px) !important; line-height:1.08 !important; letter-spacing:-.05em !important; }
 .lp-work-first #home .lp-hero-summary { font-size:clamp(16px,1.1vw,20px) !important; line-height:1.7 !important; margin-top:26px !important; }
 .lp-work-first #home .lp-hero-copy .button-area { margin-top:26px !important; }
}
@media(max-width:991px) {
 #home.moody-hero { padding-top:155px !important; padding-bottom:calc(var(--lp-mobile-portrait-height) + 36px) !important; --lp-mobile-portrait-height:clamp(360px,100vw,620px); }
 .lp-work-first #home.moody-hero .hero-static-portrait { left:56% !important; height:var(--lp-mobile-portrait-height) !important; bottom:0 !important; }
 #home .lp-hero-name { top:auto; bottom:calc(var(--lp-mobile-portrait-height) * .65); left:24px; right:24px; font-size:14.7vw; color:#e5d6bf1c; }
 .lp-work-first #home .lp-hero-copy { width:100%; max-width:620px; }
 .lp-work-first #home .lp-hero-copy .moody-hero-headline { font-size:clamp(36px,7vw,56px) !important; line-height:1.08 !important; }
 #home .planet-canvas { filter:brightness(.38) saturate(.5); }
}
@media(min-width:992px) and (max-height:760px) {
 .lp-work-first #home .banner-one-main-wrapper .inner.lp-hero-copy { top:40% !important; }
 #home .lp-hero-name { top:25%; }
}

#home .lp-hero-environment { opacity:calc(var(--space-opacity,1) * .5); }
#home .cosmic-static { opacity:calc(var(--space-opacity,1) * .4); }

/* Foreground signature: compact, anchored to the portrait rather than the backdrop. */
#home .lp-hero-name {
 top:auto; bottom:10%; left:69%; right:auto; z-index:6;
 transform:translateX(-50%); color:#eae4da;
 font-size:clamp(30px,3.6vw,68px); line-height:1.15;
 font-weight:500; letter-spacing:.08em;
 padding:14px 20px; pointer-events:auto;
 text-shadow:0 2px 24px #000,0 1px 5px #000;
}
#home .lp-hero-name::after {
 content:""; position:absolute; left:20px; right:20px; bottom:5px;
 height:1px; background:linear-gradient(90deg,transparent,#ffad45,transparent);
 opacity:0; transform:scaleX(.65);
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 #home .lp-hero-name { transition:color .35s ease,transform .35s ease,text-shadow .35s ease; }
 #home .lp-hero-name::after { transition:opacity .35s ease,transform .35s ease; }
 #home .lp-hero-name:hover { color:#ffc47d; transform:translate(-50%,-3px); text-shadow:0 2px 24px #000,0 0 25px #ff980030; }
 #home .lp-hero-name:hover::after { opacity:.85; transform:scaleX(1); }
}
@media(max-width:991px) {
 #home .lp-hero-name { left:56%; right:auto; bottom:42px; font-size:clamp(24px,6vw,44px); letter-spacing:.07em; padding:12px; }
}

/* Brand-colour signature with restrained desktop interaction. */
#home .lp-hero-name { color:var(--color-primary,#ff9800); text-shadow:0 2px 18px #000b; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 #home .lp-hero-name { transition:color .4s ease,transform .4s ease,text-shadow .4s ease,letter-spacing .4s ease; }
 #home .lp-hero-name:hover { color:#ffd29a; letter-spacing:.105em; transform:translate(-50%,-4px); text-shadow:0 2px 18px #000b,0 0 28px #ff980047; }
 #home .lp-hero-name:hover::after { opacity:1; transform:scaleX(1); }
}

/* Keep the signature above the full-height copy shell for pointer hit testing. */
#home .lp-hero-name { z-index:7; }

/* Handwritten portrait signature, self-hosted with its open font licence. */
@font-face {
 font-family:LP Allura;
 src:url('../fonts/performance/lp-signature.woff2') format('woff2');
 font-weight:400;
 font-style:normal;
 font-display:swap;
}
#home .lp-hero-name {
 font-family:"LP Allura",cursive;
 font-weight:600;
 font-size:clamp(38px,4vw,72px);
 line-height:1.15;
 letter-spacing:-.025em;
 color:#e9a64f;
 text-transform:none;
}
#home .lp-hero-name::after { display:none; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 #home .lp-hero-name { transition:color .35s ease,text-shadow .35s ease; }
 #home .lp-hero-name:hover {
  letter-spacing:-.025em;
  transform:translateX(-50%);
  color:#ffd29a;
  text-shadow:0 2px 18px #000b,0 0 24px #ff980047;
 }
}
@media(max-width:991px) {
 #home .lp-hero-name { font-size:clamp(32px,8vw,48px); letter-spacing:-.025em; }
}

/* Connected autograph strokes retain their natural joins and flourishes. */
#home .lp-hero-name {
 font-weight:400;
 font-size:clamp(52px,5vw,90px);
 letter-spacing:0;
 -webkit-text-stroke:.25px currentColor;
 transform:translateX(-50%) rotate(-5deg);
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 #home .lp-hero-name:hover { letter-spacing:0; transform:translateX(-50%) rotate(-5deg); }
}
@media(max-width:991px) {
 #home .lp-hero-name { font-size:clamp(42px,10vw,60px); letter-spacing:0; }
}

/* Autograph follows an uneven rising baseline instead of a typeset line. */
#home .lp-hero-name { width:clamp(250px,24vw,390px); padding:0; line-height:0; transform:translateX(-50%) rotate(-7deg); }
#home .lp-autograph { display:block; width:100%; height:auto; overflow:visible; transform:skewX(-10deg); }
#home .lp-autograph text { font-family:"LP Allura",cursive; font-size:92px; font-weight:400; letter-spacing:-1.7px; fill:currentColor; stroke:currentColor; stroke-width:.3px; }
#home .lp-autograph-flourish { fill:none; stroke:currentColor; stroke-width:1.2px; stroke-linecap:round; opacity:.85; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 #home .lp-hero-name:hover { transform:translateX(-50%) rotate(-7deg); }
}
@media(max-width:991px) { #home .lp-hero-name { width:clamp(200px,54vw,280px); } }

/* Selected signature option 01: Allura, preserving its natural letterforms. */
#home .lp-hero-name {
 width:auto;
 padding:14px 20px;
 font-family:"LP Allura",cursive;
 font-size:clamp(46px,4.4vw,80px);
 font-weight:400;
 line-height:1.2;
 letter-spacing:0;
 -webkit-text-stroke:0;
 transform:translateX(-50%) rotate(-7deg);
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 #home .lp-hero-name:hover { letter-spacing:0; transform:translateX(-50%) rotate(-7deg); }
}
@media(max-width:991px) {
 #home .lp-hero-name { width:auto; padding:12px; font-size:clamp(36px,9vw,54px); }
}

#home .lp-hero-name { opacity:var(--signature-opacity,1); }

/* Hero CTA: a legible vector cue aligned with the label's visual centre. */
.lp-work-first #home a.moody-cta-btn { display:inline-flex; align-items:center; justify-content:center; gap:14px; }
.lp-work-first #home a.moody-cta-btn > span { display:inline-flex; align-items:center; justify-content:center; flex:0 0 20px; width:20px; height:20px; padding:0; margin:0; line-height:1; }
.lp-work-first #home a.moody-cta-btn svg { display:block; width:20px; height:20px; overflow:visible; transition:transform .2s ease; }
@media(hover:hover) and (pointer:fine) { .lp-work-first #home a.moody-cta-btn:hover svg { transform:translate(2px,-2px); } }
@media(prefers-reduced-motion:reduce) { .lp-work-first #home a.moody-cta-btn svg { transition:none;transform:none!important; } }
