/* BMD Vision / homepage */
.home-experience { position: relative; color: var(--text); }
.home-hero, .home-section, .home-final, .home-signature { width: min(100%,var(--content-width)); margin-inline: auto; padding-inline: var(--page-gutter); }
.home-hero { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 24px; padding-top: calc(var(--header-height) + 76px); padding-bottom: 74px; min-height: min(820px,100svh); }
.home-hero__content { position: relative; z-index: 2; grid-column: 1; grid-row: 1; padding-block: 24px; }
.home-hero__content .section-index { max-width: 340px; font-size: .56rem; letter-spacing: .13em; }
.home-hero__content h1 { margin-top: 30px; max-width: 740px; font-size: clamp(3.2rem,5.45vw,5.8rem); font-weight: 500; line-height: 1.04; letter-spacing: -.065em; }
.home-hero__content h1 em { color: var(--accent-ink); font-style: normal; }
.home-hero__content > p { max-width: 380px; margin-top: 28px; font-size: .95rem; line-height: 1.8; color: var(--muted); }
.home-actions { margin-top: 34px; display: flex; align-items: center; flex-wrap: wrap; gap: 22px; }
.home-text-link { display: inline-flex; align-items: center; gap: 20px; font-size: .73rem; color: var(--text); min-height: 44px; border-bottom: 1px solid transparent; }
.home-text-link:hover { border-color: var(--accent); }
.home-text-link span { color: var(--accent-ink); font-size: 1rem; }
.home-hero__photograph { grid-column: 2; grid-row: 1; position: relative; min-width: 0; align-self: stretch; display: flex; flex-direction: column; justify-content: center; margin-left: -35px; }
.home-hero__photograph::before { content: "1:64"; position: absolute; top: -12px; right: 0; font-size: clamp(6rem,15vw,15rem); font-weight: 700; letter-spacing: -.09em; color: color-mix(in srgb,var(--text) 4%,transparent); line-height: 1; pointer-events: none; }
.home-hero__photograph img { width: 100%; height: auto; aspect-ratio: 1.15; object-fit: cover; object-position: center; position: relative; }
.home-hero__photograph figcaption { position: relative; display: grid; grid-template-columns: 1fr; gap: 8px; padding-top: 16px; border-top: 1px solid var(--line); margin-top: 18px; }
.home-hero__photograph figcaption > span { color: var(--muted); font-size: .5rem; letter-spacing: .15em; }
.home-hero__photograph figcaption a { display: flex; justify-content: space-between; gap: 15px; font-size: .72rem; }
.home-hero__photograph figcaption b { color: var(--accent-ink); font-weight: 400; }
.home-hero__aside { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 16px; }
.home-hero__aside--quiet { display: none; }
.home-hero__note { display: none; }
.home-giveaway { display: grid; flex: 1 1 300px; gap: 8px; padding: 20px 24px; border: 1px solid var(--line); border-left: 2px solid var(--accent); background: var(--surface); }
.home-giveaway > span { color: var(--accent-ink); font-size: .55rem; letter-spacing: .1em; }
.home-giveaway strong { font-size: 1rem; font-weight: 500; }
.home-giveaway small { color: var(--muted); font-size: .72rem; }
.home-giveaway b { font-size: .7rem; font-weight: 400; margin-top: 6px; }
.home-giveaway i { font-style: normal; color: var(--accent-ink); }
.home-signature { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding-block: 26px; border-block: 1px solid var(--line); }
.home-signature > span { color: var(--muted); font-size: .65rem; }
.home-signature > span:first-child { color: var(--text-strong); font-size: .73rem; letter-spacing: -.02em; font-weight: 700; }
.home-signature i { color: var(--accent-ink); font-style: normal; }
.home-signature b { color: var(--text-strong); font-weight: 500; margin-right: 8px; }
.home-signature a { font-size: .65rem; display: flex; gap: 25px; }
.home-signature a b { color: var(--accent-ink); }
.home-section { padding-block: 94px; border-bottom: 1px solid var(--line); }
.home-section__head h2 { margin-top: 22px; max-width: 700px; font-size: clamp(2rem,3.4vw,3.6rem); line-height: 1.13; font-weight: 500; letter-spacing: -.05em; white-space: pre-line; }
.home-section__head--split { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 50px; margin-bottom: 40px; }
.home-section__head--split > p, .home-section__aside > p { color: var(--muted); font-size: .87rem; line-height: 1.75; max-width: 380px; }
.home-section__aside { display: grid; gap: 12px; }
.home-live__status { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .58rem; }
.home-live__status i { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.home-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 50px 80px; }
.home-intro__copy { color: var(--muted); font-size: .93rem; line-height: 1.85; padding-top: 35px; }
.home-intro__copy p + p { margin-top: 18px; }
.home-pillars { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); gap: 32px; }
.home-pillars article { padding-top: 25px; }
.home-pillars article > span { font-size: .58rem; color: var(--accent-ink); }
.home-pillars strong { display: block; font-size: 1.1rem; font-weight: 500; letter-spacing: -.025em; margin-top: 18px; }
.home-pillars p { font-size: .81rem; line-height: 1.8; color: var(--muted); margin-top: 12px; max-width: 340px; }
.home-projects { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px 24px; }
.home-project { position: relative; min-width: 0; display: grid; grid-template-rows: auto 90px; }
.home-project__number { display: none; }
.home-project__visual { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg-alt); }
.home-project__visual img { width: 100%; height: 100%; object-fit: contain; transition: transform .6s var(--ease-out),opacity .3s; }
.home-project:hover img { transform: scale(1.025); }
.home-project__meta { display: grid; grid-template-columns: 1fr auto; gap: 10px 20px; align-content: start; padding-top: 20px; }
.home-project__meta small { grid-column: 1; color: var(--accent-ink); font-size: .54rem; letter-spacing: .12em; text-transform: uppercase; }
.home-project__meta strong { grid-column: 1; color: var(--text-strong); font-size: clamp(.93rem,1.3vw,1.25rem); font-weight: 500; line-height: 1.4; letter-spacing: -.02em; }
.home-project__meta i { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--accent-ink); font-size: 1.3rem; font-style: normal; }
.home-section-link { display: flex; width: fit-content; align-items: center; gap: 50px; min-height: 46px; margin-top: 36px; border-bottom: 1px solid var(--line-strong); font-size: .74rem; }
.home-section-link span { color: var(--accent-ink); }
.home-section-link:hover { border-color: var(--accent); }
.home-featured-products { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; }
.home-featured-product { position: relative; min-width: 0; display: grid; grid-template-rows: auto auto; align-content: start; }
.home-featured-product__number { display: none; }
.home-featured-product__visual { display: block; position: relative; aspect-ratio: 4 / 3; background: var(--bg-alt); overflow: hidden; }
.home-featured-product__visual img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s,opacity .3s; }
.home-featured-product:hover img { transform: scale(1.025); }
.home-featured-product__meta { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding-top: 18px; }
.home-featured-product__meta small { grid-column: 1 / -1; color: var(--muted); font-size: .54rem; letter-spacing: .1em; text-transform: uppercase; }
.home-featured-product__meta strong { grid-column: 1 / -1; font-size: .92rem; font-weight: 500; line-height: 1.45; min-height: 2.9em; }
.home-featured-product__meta > b { color: var(--accent-ink); font-weight: 500; font-size: .8rem; }
.home-featured-product__meta > i { justify-self: end; color: var(--muted); font-style: normal; }
.is-swapping img, .is-swapping .home-project__meta, .is-swapping .home-featured-product__meta { opacity: 0; }
.home-process__steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; }
.home-process__steps li { border-top: 1px solid var(--line-strong); padding-top: 22px; }
.home-process__steps li > span { color: var(--accent-ink); font-size: .58rem; }
.home-process__steps strong { display: block; margin-top: 30px; font-weight: 500; font-size: 1rem; }
.home-process__steps p { color: var(--muted); font-size: .81rem; line-height: 1.8; margin-top: 13px; }
.home-builder-grid { display: grid; grid-template-columns: 1fr; }
.home-builder-card { position: relative; overflow: hidden; display: grid; padding: clamp(28px,5vw,65px); border: 1px solid var(--line); background: var(--bg-alt); }
.home-builder-card::after { content: "DESIGN\A LAB"; white-space: pre; position: absolute; right: 4%; top: 10%; font-size: clamp(3rem,9vw,9rem); font-weight: 700; line-height: .85; letter-spacing: -.08em; color: color-mix(in srgb,var(--text) 5%,transparent); pointer-events: none; }
.home-builder-card > span { font-size: .57rem; letter-spacing: .1em; color: var(--accent-ink); }
.home-builder-card > span b { font-size: .45rem; border: 1px solid var(--line-strong); padding: 4px; margin-left: 10px; }
.home-builder-card h3 { max-width: 600px; margin-top: 45px; font-size: clamp(1.8rem,3vw,3rem); position: relative; z-index: 1; }
.home-builder-card p { max-width: 560px; color: var(--muted); font-size: .87rem; line-height: 1.8; margin-top: 22px; position: relative; z-index: 1; }
.home-builder-card > strong { margin-top: 30px; font-weight: 500; font-size: .75rem; display: flex; justify-content: space-between; }
.home-builder-card i { font-style: normal; color: var(--accent-ink); }
.home-numbers { display: grid; grid-template-columns: 1fr; gap: 40px; }
.home-stats { margin: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; }
.home-stats div { border-top: 1px solid var(--line-strong); padding-top: 22px; }
.home-stats dt { font-size: .65rem; color: var(--muted); }
.home-stats dd { margin: 20px 0 6px; font-size: clamp(2.4rem,4vw,4rem); font-weight: 500; line-height: 1; letter-spacing: -.06em; }
.home-stats small { font-size: .6rem; color: var(--muted); }
.home-final { padding-block: 100px; display: grid; justify-items: center; text-align: center; }
.home-final blockquote { max-width: 920px; font-size: clamp(2.2rem,4.6vw,4.7rem); line-height: 1.13; font-weight: 500; letter-spacing: -.055em; margin-top: 30px; }
.home-final > p { max-width: 540px; color: var(--muted); font-size: .91rem; line-height: 1.8; margin-top: 26px; }
.home-actions--center { justify-content: center; }
@media(min-width:1560px) { .home-hero__content h1 { font-size: 5.4rem; } }
@media(max-width:1000px) {
    .home-hero { padding-top: calc(var(--header-height) + 45px); min-height: 0; padding-bottom: 50px; }
    .home-hero__content h1 { font-size: clamp(2.9rem,6vw,4rem); }
    .home-hero__photograph { margin-left: -20px; }
    .home-hero__photograph img { aspect-ratio: .8; }
    .home-hero__content .section-index { font-size: .48rem; }
    .home-actions { gap: 12px 20px; }
    .home-hero__content > p { font-size: .85rem; max-width: 310px; }
    .home-intro { gap: 36px; }
    .home-section { padding-block: 65px; }
    .home-featured-products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 20px; }
    .home-process__steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
    .home-section__head--split { gap: 30px; }
}
@media(max-width:640px) {
    .home-hero { display: flex; flex-direction: column; align-items: stretch; gap: 30px; padding-top: calc(var(--header-height) + 34px); padding-bottom: 34px; }
    .home-hero__content { padding-block: 0; }
    .home-hero__content h1 { font-size: clamp(2.8rem,10.5vw,4.2rem); margin-top: 25px; }
    .home-hero__content .section-index { font-size: .45rem; }
    .home-hero__content > p { font-size: .88rem; max-width: 360px; margin-top: 20px; }
    .home-actions { margin-top: 25px; gap: 10px 22px; }
    .home-hero__photograph { margin: 0; }
    .home-hero__photograph img { aspect-ratio: 4 / 3; }
    .home-hero__photograph::before { display: none; }
    .home-hero__photograph figcaption { margin-top: 12px; padding-top: 12px; }
    .home-hero__photograph figcaption a { font-size: .64rem; }
    .home-hero__aside { flex-direction: column; }
    .home-giveaway { flex-basis: auto; }
    .home-signature { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding-block: 22px; }
    .home-signature > span:first-child { grid-column: 1 / -1; }
    .home-signature > span { font-size: .59rem; }
    .home-signature a { grid-column: 1 / -1; margin-top: 4px; }
    .home-section { padding-block: 50px; }
    .home-section__head h2 { font-size: 2rem; margin-top: 18px; }
    .home-intro { grid-template-columns: 1fr; gap: 26px; }
    .home-intro__copy { padding-top: 0; font-size: .86rem; }
    .home-pillars { grid-template-columns: 1fr; gap: 22px; border-top: 0; }
    .home-pillars article { border-top: 1px solid var(--line); padding-top: 18px; display: grid; grid-template-columns: 25px 1fr; gap: 10px 14px; }
    .home-pillars article > span { padding-top: 5px; }
    .home-pillars strong { margin-top: 0; }
    .home-pillars p { grid-column: 2; margin-top: 0; max-width: none; }
    .home-section__head--split { grid-template-columns: 1fr; gap: 24px; margin-bottom: 30px; }
    .home-section__head--split > p, .home-section__aside > p { font-size: .83rem; }
    .home-projects { grid-template-columns: 1fr; gap: 28px; }
    .home-project { grid-template-rows: auto auto; }
    .home-project__meta { padding-top: 14px; }
    .home-project__meta strong { font-size: 1rem; }
    .home-featured-products { gap: 28px 14px; }
    .home-featured-product__meta strong { font-size: .8rem; }
    .home-process__steps { gap: 28px 18px; }
    .home-process__steps strong { margin-top: 22px; font-size: .92rem; }
    .home-process__steps p { font-size: .77rem; }
    .home-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px; }
    .home-stats dt { font-size: .59rem; }
    .home-stats dd { font-size: 2.7rem; }
    .home-final { padding-block: 65px; }
    .home-final blockquote { font-size: 2.35rem; }
    .home-final > p { font-size: .85rem; }
}
