/* September 2026 specification. Extends the existing Inter, black and blue system.
   Framework rows adapt BYQ Supply /sections/avenir-structured-data-2. */
.spec-skip { position:fixed; top:-100px; left:20px; z-index:9999; background:#fff; color:#050401; padding:16px; }
.spec-skip:focus { top:16px; }
:focus-visible { outline:2px solid #739cff; outline-offset:6px; }
.spec-section { padding:100px 40px; background:#0a0a0a; color:#fff; border-top:1px solid #292929; }
.spec-section-head { display:grid; grid-template-columns:1fr 2fr; gap:40px; margin-bottom:48px; }
.spec-section h2 { font-size:clamp(30px,3.5vw,56px); font-weight:400; line-height:1.1; letter-spacing:-.045em; max-width:1000px; }
.spec-section .section-label, .spec-number { color:#aaa; font-size:12px; font-weight:400; line-height:1.5; letter-spacing:.04em; text-transform:uppercase; }
.spec-copy > p { margin:0 0 24px auto; width:66.666%; max-width:850px; font-size:18px; line-height:1.65; color:#bcbcbc; }
.spec-link { display:inline-flex; gap:24px; align-items:center; border-bottom:1px solid currentColor; padding:10px 0; font-size:15px; font-weight:500; }
.spec-link:hover { color:#739cff; }
.spec-copy > .spec-link { margin-top:32px; }
.spec-model { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:56px; }
.spec-model article { padding:28px 28px 48px 0; border-top:1px solid #444; }
.spec-model h3 { font-size:clamp(23px,2vw,32px); font-weight:400; letter-spacing:-.035em; line-height:1.18; margin:24px 0 18px; max-width:330px; }
.spec-model p { color:#bcbcbc; line-height:1.6; max-width:330px; }
.spec-row { display:grid; grid-template-columns:2fr 5fr 5fr; gap:24px; padding:30px 0 64px; border-top:1px solid #343434; }
.spec-row h3 { font-size:clamp(24px,2.5vw,36px); font-weight:400; line-height:1.15; letter-spacing:-.035em; }
.spec-row p { color:#bcbcbc; font-size:17px; line-height:1.6; }
.spec-questions { list-style:none; margin:48px 0 0 auto; width:66.666%; }
.spec-questions li { padding:18px 0; border-top:1px solid #343434; font-size:20px; letter-spacing:-.02em; }
.spec-page-header { padding-bottom:80px; }
.spec-page-header .section-label { color:#739cff; }
.spec-page-title { font-size:clamp(38px,5.8vw,88px); font-weight:400; line-height:1.04; letter-spacing:-.055em; max-width:1300px; margin:30px 0; }
.spec-page-header .page-intro { max-width:780px; font-size:19px; line-height:1.6; }
.spec-service { display:grid; grid-template-columns:1fr 1fr; gap:60px; border-top:1px solid #444; padding:40px 0 70px; }
.spec-service h3 { font-size:clamp(30px,4vw,58px); font-weight:400; line-height:1.08; letter-spacing:-.04em; margin-top:28px; }
.spec-service p, .spec-service li { color:#bcbcbc; font-size:17px; line-height:1.65; }
.spec-service ul { margin:26px 0; padding-left:20px; }
.spec-blueprint { margin:40px 0; border-top:1px solid #444; padding-top:28px; }
.spec-blueprint h4 { font-size:26px; font-weight:400; margin:16px 0; }
.spec-founder { padding:40px 40px 100px; display:grid; grid-template-columns:1fr 1fr; gap:80px; background:#0a0a0a; color:#fff; }
.spec-founder > img { width:100%; height:auto; max-height:820px; object-fit:cover; border-radius:16px; }
.spec-founder h2 { font-size:clamp(36px,5vw,72px); letter-spacing:-.04em; font-weight:400; margin:24px 0; }
.spec-founder p { font-size:17px; color:#bcbcbc; line-height:1.7; margin-bottom:24px; }
.spec-actions { display:flex; flex-wrap:wrap; gap:16px 36px; }
.dark-theme .hero { height:auto; min-height:720px; padding-top:175px; padding-bottom:80px; }
.dark-theme .hero-content, .dark-theme .hero-left { display:block; position:static; width:100%; max-width:none; }
.dark-theme .hero-headline { font-size:clamp(40px,6.3vw,96px); line-height:1.06; font-weight:400; letter-spacing:-.055em; max-width:1500px; }
.spec-rotation { display:grid; color:var(--primary); }
.spec-rotation > span { grid-area:1/1; opacity:0; transition:opacity .45s ease, transform .45s ease; transform:translateY(8px); }
.spec-rotation > .is-active { opacity:1; transform:none; }
.spec-hero-second { display:block; margin-top:16px; max-width:1400px; }
.spec-hero-support { max-width:730px; margin:40px 0 0 auto; }
.spec-hero-support > p { font-size:17px; line-height:1.65; color:#bcbcbc; }
.spec-hero-support .spec-discipline { font-size:13px; margin:18px 0 22px; }
.spec-work-intro { padding:50px 40px 40px; display:grid; grid-template-columns:1fr 1fr; gap:24px 60px; }
.work-card-image > img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.project-gallery .project-image video { display:block; width:100%; height:auto; }
.project-case-section { margin-top:32px; padding-top:24px; border-top:1px solid #ddd; }
.project-case-section h2 { font-family:var(--font-body); font-size:12px; font-weight:500; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; margin:0 0 16px; }
.work-card:hover .work-card-image > img { transform:scale(1.05); }
/* Match the personal site's 50-second, 4:3 work marquee. */
.buildcraft-home .work-strip-marquee { overflow:hidden; width:100%; background:#000; }
.buildcraft-home .work-strip-track { display:flex; width:max-content; animation:buildcraft-work-scroll 50s linear infinite; }
.buildcraft-home .work-strip-set { display:flex; flex-shrink:0; }
.buildcraft-home .work-strip-marquee .work-strip-item { flex:none; width:calc(100vw / 3); aspect-ratio:4 / 3; }
.buildcraft-home .work-strip-marquee:hover .work-strip-track { animation-play-state:paused; }
/* Only keyboard focus enables manual scrolling; pointer/restored focus must not reset the marquee. */
.buildcraft-home .work-strip-marquee:has(.work-strip-item:focus-visible) { overflow-x:auto; }
.buildcraft-home .work-strip-marquee:has(.work-strip-item:focus-visible) .work-strip-track { animation:none; }
.buildcraft-home .work-strip-item:focus-visible { outline:2px solid white; outline-offset:-4px; }
.buildcraft-home .work-strip-marquee .work-strip-content { display:block; position:absolute; bottom:0; left:0; right:0; padding:40px; background:linear-gradient(to top,rgba(0,0,0,.8),transparent); opacity:0; transition:opacity .3s ease; }
.buildcraft-home .work-strip-marquee .work-strip-title { display:none; }
.buildcraft-home .work-strip-marquee .work-strip-subtitle { max-width:none; color:rgba(255,255,255,.7); font-size:14px; line-height:1.5; opacity:1; }
.buildcraft-home .work-strip-item:is(:hover,:focus-visible) .work-strip-content { opacity:1; }
@keyframes buildcraft-work-scroll { to { transform:translateX(-50%); } }
@media(max-width:991px) {
 .buildcraft-home .work-strip-marquee .work-strip-item { width:50vw; }
}
@media(max-width:767px) {
 .buildcraft-home .work-strip-marquee .work-strip-item { width:85vw; aspect-ratio:16 / 10; }
}
@media(max-width:767px), (hover:none), (pointer:coarse) {
 .buildcraft-home .work-strip-marquee .work-strip-content { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 .buildcraft-home .work-strip-track { animation:none; }
 .buildcraft-home .work-strip-marquee { overflow-x:auto; }
 .buildcraft-home .work-strip-set[aria-hidden="true"] { display:none; }
}
.spec-work-intro h2 { font-size:32px; font-weight:400; letter-spacing:-.035em; max-width:650px; }
.spec-work-intro p { font-size:16px; line-height:1.6; color:#bcbcbc; }
.spec-work-intro .spec-link { justify-self:start; }
.spec-footer-note { margin-top:32px; color:#aaa; font-size:16px; line-height:1.6; }
.spec-contact { padding:20px 40px 100px; display:grid; grid-template-columns:1fr 2fr; gap:80px; }
.spec-contact aside { line-height:1.7; }
.spec-contact aside p { margin-top:18px; color:#aaa; }
.spec-form { max-width:900px; width:100%; }
.spec-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.spec-form label { display:block; font-size:14px; margin-bottom:26px; }
.spec-form label small { color:#aaa; font-size:12px; }
.spec-form input, .spec-form textarea { display:block; width:100%; background:transparent; border:0; border-bottom:1px solid #666; color:inherit; font:inherit; border-radius:0; padding:14px 0; margin-top:5px; }
.spec-form textarea { resize:vertical; }
.spec-submit { display:flex; justify-content:space-between; width:100%; background:var(--primary); color:#fff; padding:24px; font-size:18px; border-radius:4px; }
.spec-form-status { margin:20px 0; line-height:1.6; }
.spec-menu-cta { font-size:22px!important; margin-top:20px; color:#739cff; }
.menu .menu-link { font-size:clamp(28px,4.8vh,56px); }
.menu { overflow-y:auto; }
.spec-section [id], [id="model"], [id="human-ai-index"] { scroll-margin-top:110px; }
@media (max-width:900px) {
 .spec-section-head { grid-template-columns:1fr; gap:24px; }
 .spec-copy > p, .spec-questions { width:100%; max-width:none; }
 .spec-founder { gap:36px; }
 .spec-contact { grid-template-columns:1fr; gap:40px; }
 .spec-model { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
 .spec-section { padding:64px 20px; }
 .spec-section-head { margin-bottom:32px; }
 .spec-row { grid-template-columns:1fr; gap:18px; padding-bottom:40px; }
 .spec-model { grid-template-columns:1fr; }
 .spec-model article { padding-right:0; }
 .spec-model h3, .spec-model p { max-width:none; }
 .spec-service, .spec-founder { grid-template-columns:1fr; gap:32px; }
 .spec-founder, .spec-contact { padding:20px 20px 64px; }
 .spec-form-grid { grid-template-columns:1fr; gap:0; }
 .spec-work-intro { padding:32px 20px; grid-template-columns:1fr; }
 .dark-theme .hero { padding-top:140px; min-height:0; padding-bottom:60px; }
 .dark-theme .hero-headline { font-size:clamp(36px,9vw,54px); }
 .spec-hero-support { margin-top:32px; }
 .nav .nav-cta { display:inline-flex!important; font-size:12px; padding:10px 12px; }
 .nav .nav-logo { width:125px; }
 .nav-right { gap:10px; }
 .nav .nav-toggle { width:42px; height:42px; }
}
/* Shared twelve-column alignment: 40px page edges, 24px gutters. */
body { --spec-columns:repeat(12,minmax(0,1fr)); --spec-gap:24px; }
.dark-theme .hero { min-height:0; padding-top:160px; padding-bottom:64px; }
.dark-theme .hero-content { padding:0; }
.dark-theme .hero-left { display:grid; grid-template-columns:var(--spec-columns); column-gap:var(--spec-gap); }
.dark-theme .hero-headline { grid-column:1 / 11; font-size:64px; font-weight:300; line-height:1.02; letter-spacing:-.04em; max-width:none; }
.spec-hero-second { margin-top:0; }
.spec-hero-support { grid-column:1 / 7; margin:28px 0 0; max-width:none; }
.spec-hero-support > p { font-size:16px; line-height:1.55; }
.spec-hero-support .spec-discipline { margin:16px 0; }
.spec-section { padding:80px 40px; }
.spec-section-head, .spec-copy { display:grid; grid-template-columns:var(--spec-columns); column-gap:var(--spec-gap); }
.spec-section-head { margin-bottom:28px; }
.spec-section-head > .section-label { grid-column:1 / 3; padding-top:6px; }
.spec-section-head > h2 { grid-column:3 / 11; font-size:clamp(28px,2.8vw,40px); font-weight:400; line-height:1.12; letter-spacing:-.035em; max-width:none; }
.spec-copy > p { grid-column:3 / 9; width:auto; max-width:none; margin:0 0 20px; font-size:16px; line-height:1.6; }
.spec-copy > .spec-link { grid-column:3 / 9; justify-self:start; margin-top:12px; }
.spec-questions { grid-column:3 / 11; width:auto; margin:20px 0 0; }
.spec-questions li { font-size:18px; }
.spec-model, .spec-rows, .spec-service { grid-column:1 / -1; }
.spec-model { grid-template-columns:var(--spec-columns); gap:var(--spec-gap); margin-top:24px; }
.spec-model article { grid-column:span 4; padding:24px 0 32px; }
.spec-model h3 { font-size:26px; margin:20px 0 14px; line-height:1.15; }
.spec-model p { font-size:15px; }
.spec-row { grid-template-columns:var(--spec-columns); gap:var(--spec-gap); padding:28px 0 40px; }
.spec-row > .spec-number { grid-column:1 / 3; }
.spec-row > h3 { grid-column:3 / 7; font-size:28px; }
.spec-row > p { grid-column:7 / 12; font-size:16px; }
.spec-service { grid-template-columns:var(--spec-columns); gap:var(--spec-gap); padding:32px 0 56px; }
.spec-service > div:first-child { grid-column:1 / 6; }
.spec-service > div:last-child { grid-column:7 / 12; }
.spec-service h3 { font-size:36px; margin-top:20px; }
.spec-service p, .spec-service li { font-size:16px; }
.spec-page-header { padding:160px 40px 64px; }
.spec-page-header .page-header-inner { display:grid; grid-template-columns:var(--spec-columns); column-gap:var(--spec-gap); max-width:none; }
.spec-page-header .section-label { grid-column:1 / -1; }
.spec-page-title { grid-column:1 / 10; font-size:56px; font-weight:300; line-height:1.06; letter-spacing:-.04em; margin:24px 0; max-width:none; }
.spec-page-header .page-intro { grid-column:1 / 7; max-width:none; font-size:17px; line-height:1.55; }
.spec-work-intro { grid-template-columns:var(--spec-columns); gap:20px var(--spec-gap); padding:40px 40px 32px; }
.spec-work-intro h2 { grid-column:1 / 7; grid-row:1; font-size:28px; max-width:none; }
.spec-work-intro p { grid-column:7 / 12; grid-row:1 / 3; }
.spec-work-intro .spec-link { grid-column:1 / 7; }
.spec-founder { grid-template-columns:var(--spec-columns); gap:var(--spec-gap); padding:24px 40px 80px; }
.spec-founder > img { grid-column:1 / 6; }
.spec-founder > div { grid-column:7 / 12; }
.spec-founder h2 { font-size:40px; }
.spec-founder p { font-size:16px; line-height:1.6; }
.spec-contact { grid-template-columns:var(--spec-columns); gap:var(--spec-gap); }
.spec-contact > aside { grid-column:1 / 5; }
.spec-contact > form { grid-column:5 / 12; }
.spec-form-grid { gap:var(--spec-gap); }
/* Bring retained homepage sections onto the same column lines. */
.founder-callout__intro, .founder-callout__grid { display:grid; grid-template-columns:var(--spec-columns); gap:var(--spec-gap); }
.founder-callout__intro > .section-label { grid-column:1 / 3; }
.founder-callout__intro > .founder-callout__heading { grid-column:3 / 11; margin:0; }
.founder-callout__grid > .founder-callout__image { grid-column:1 / 6; }
.founder-callout__grid > .founder-callout__right { grid-column:7 / -1; }
.buildcraft-home .founder-callout__montage { max-width:480px; aspect-ratio:16 / 9; }
.buildcraft-home .founder-callout__montage video { object-fit:contain; }
.spec-founder > img[src$="carl-brunson.webp"] { max-width:336px; height:auto; aspect-ratio:1; border-radius:0; }
@media(max-width:1000px) {
 .dark-theme .hero-headline { grid-column:1 / -1; font-size:52px!important; }
 .spec-hero-support { grid-column:1 / 9; }
 .spec-page-title { grid-column:1 / -1; font-size:46px; }
 .spec-page-header .page-intro { grid-column:1 / 9; }
 .spec-section-head > h2 { grid-column:3 / -1; }
 .spec-copy > p { grid-column:3 / 11; }
 .spec-model article { grid-column:span 6; }
 .spec-row > p { grid-column:7 / -1; }
}
@media(max-width:600px) {
 body { --spec-gap:16px; }
 .dark-theme .hero { padding-top:132px; padding-bottom:48px; }
 .dark-theme .hero-headline { font-size:32px!important; line-height:1.04; }
 .spec-hero-support { grid-column:1 / -1; margin-top:24px; }
 .spec-section { padding:48px 20px; }
 .spec-section-head { row-gap:16px; margin-bottom:24px; }
 .spec-section-head > .section-label, .spec-section-head > h2,
 .spec-copy > p, .spec-copy > .spec-link, .spec-questions { grid-column:1 / -1; }
 .spec-section-head > h2 { font-size:28px; }
 .spec-model article { grid-column:1 / -1; }
 .spec-row > .spec-number, .spec-row > h3, .spec-row > p { grid-column:1 / -1; }
 .spec-row > h3 { font-size:25px; }
 .spec-service > div:first-child, .spec-service > div:last-child { grid-column:1 / -1; }
 .spec-service h3 { font-size:30px; }
 .spec-page-header { padding:132px 20px 48px; }
 .spec-page-title { font-size:36px; }
 .spec-page-header .page-intro { grid-column:1 / -1; }
 .spec-work-intro { padding:32px 20px; }
 .spec-work-intro h2, .spec-work-intro p, .spec-work-intro .spec-link { grid-column:1 / -1; grid-row:auto; }
 .spec-founder, .spec-contact { padding:20px 20px 48px; }
 .spec-founder > img, .spec-founder > div, .spec-contact > aside, .spec-contact > form { grid-column:1 / -1; }
 .founder-callout__intro > .section-label, .founder-callout__intro > .founder-callout__heading,
 .founder-callout__grid > .founder-callout__image, .founder-callout__grid > .founder-callout__right { grid-column:1 / -1; }
}
/* Section hierarchy: each title starts on the page's left grid line. */
.spec-section-head { row-gap:24px; }
.spec-section-head > .section-label { grid-column:1 / -1; padding-top:0; }
.spec-section-head > h2 { grid-column:1 / 9; }
.spec-copy > p { grid-column:1 / 7; }
.spec-copy > .spec-link { grid-column:1 / 7; }
.spec-questions { grid-column:1 / 9; }
.founder-callout__intro > .section-label { grid-column:1 / -1; }
.founder-callout__intro > .founder-callout__heading { grid-column:1 / 9; }
.parallax-footer__col--intro { gap:40px; justify-content:flex-start; }

/* Adapted from the supplied ValueFeaturesSection: sticky introduction + six cards. */
.model-feature-section { position:relative; padding:120px 40px 144px; background:#0a0a0a; color:#fff; border-top:1px solid #292929; scroll-margin-top:96px; }
.model-feature-grid { display:grid; grid-template-columns:var(--spec-columns); gap:var(--spec-gap); align-items:start; }
.model-feature-intro { grid-column:1 / 6; position:sticky; top:120px; }
.model-feature-label { display:inline-flex; border:1px solid #555; border-radius:24px; padding:8px 16px; font-size:11px; line-height:1.4; text-transform:uppercase; letter-spacing:.1em; }
.model-feature-intro h2 { font-size:clamp(36px,3.8vw,56px); line-height:1.04; letter-spacing:-.04em; font-weight:400; margin:28px 0; }
.model-feature-intro > p { color:#bcbcbc; font-size:16px; line-height:1.6; max-width:470px; margin-bottom:24px; }
.model-feature-list { grid-column:7 / -1; display:flex; flex-direction:column; gap:24px; }
.model-feature-card { display:flex; flex-direction:column; justify-content:space-between; min-height:400px; padding:32px; gap:48px; background:#202020; border:1px solid #303030; border-radius:16px; }
.model-feature-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.model-feature-icon { color:#739cff; width:64px; height:64px; flex-shrink:0; }
.model-feature-card-top .spec-number { padding-top:4px; text-align:right; }
.model-feature-card h3 { font-size:36px; font-weight:400; line-height:1.08; letter-spacing:-.035em; max-width:520px; margin:0 0 16px; }
.model-feature-card p { color:#c7c7c7; font-size:18px; line-height:1.5; max-width:500px; margin:0; }
[data-model-reveal] { transition:opacity .7s ease-out, translate .7s ease-out; }
[data-model-reveal="pending"] { opacity:0; translate:0 32px; }

/* Full-bleed studio image gives the positioning statement its own visual chapter. */
.spec-image-section { position:relative; isolation:isolate; overflow:hidden; padding-top:120px; padding-bottom:120px; min-height:640px; display:flex; flex-direction:column; justify-content:center; }
.spec-section-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.spec-image-section::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.76) 48%,rgba(0,0,0,.15) 100%); }
.spec-image-section .spec-section-head > h2 { grid-column:1 / 8; font-size:44px; }
.spec-image-section .spec-copy > p { color:#e0e0e0; }
.spec-image-section .section-label { color:#d5d5d5; }

/* Research uses a light editorial spread and a real product artifact. */
.spec-research-section { display:grid; grid-template-columns:var(--spec-columns); column-gap:var(--spec-gap); background:#eeede9; color:#171717; padding-top:100px; padding-bottom:100px; border:0; }
.spec-research-section .spec-section-head { grid-column:1 / 7; display:block; align-self:end; margin:0 0 28px; }
.spec-research-section .section-label { color:#555; display:block; margin-bottom:28px; }
.spec-research-section .spec-section-head > h2 { font-size:44px; line-height:1.1; }
.spec-research-section .spec-copy { grid-column:1 / 7; display:block; }
.spec-research-section .spec-copy > p { color:#4b4b4b; margin-bottom:20px; max-width:550px; }
.spec-research-section .spec-copy > .spec-link { margin-top:12px; }
.spec-research-image { grid-column:8 / -1; grid-row:1 / 3; margin:0; }
.spec-research-image > a { display:block; background:#deddd9; border-radius:12px; overflow:hidden; }
.spec-research-image img { display:block; width:100%; height:560px; object-fit:cover; object-position:50% 30%; transition:transform .5s ease; }
.spec-research-image a:hover img { transform:scale(1.025); }
.spec-research-image > img { object-position:center; }
.spec-research-image figcaption { font-size:11px; line-height:1.5; letter-spacing:.04em; text-transform:uppercase; color:#555; margin-top:16px; }
.dark-theme #services.spec-section { background:#141414; }
@media(max-width:991px) {
 .model-feature-section { padding:80px 40px; }
 .model-feature-intro { position:static; grid-column:1 / -1; max-width:600px; }
 .model-feature-list { grid-column:1 / -1; margin-top:40px; }
 .model-feature-card { min-height:0; gap:64px; }
 .model-feature-card h3, .model-feature-card p { max-width:600px; }
 .spec-section-head > h2, .founder-callout__intro > .founder-callout__heading { grid-column:1 / 11; }
 .spec-copy > p { grid-column:1 / 9; }
 .spec-image-section .spec-section-head > h2 { grid-column:1 / 10; font-size:38px; }
 .spec-research-section .spec-section-head > h2 { font-size:36px; }
 .spec-research-section .spec-section-head, .spec-research-section .spec-copy { grid-column:1 / 8; }
 .spec-research-image { grid-column:9 / -1; }
 .spec-research-image img { height:460px; }
}
@media(max-width:600px) {
 .spec-section-head > h2, .spec-copy > p, .spec-copy > .spec-link, .spec-questions,
 .founder-callout__intro > .founder-callout__heading { grid-column:1 / -1; }
 .model-feature-section { padding:56px 20px 64px; }
 .model-feature-intro h2 { font-size:36px; }
 .model-feature-list { gap:16px; margin-top:24px; }
 .model-feature-card { padding:24px; gap:40px; }
 .model-feature-icon { width:48px; height:48px; }
 .model-feature-card h3 { font-size:28px; }
 .model-feature-card p { font-size:16px; }
 .model-feature-card-top .spec-number { font-size:10px; }
 .spec-image-section { padding-top:80px; padding-bottom:80px; min-height:0; }
 .spec-image-section::before { background:rgba(0,0,0,.78); }
 .spec-image-section .spec-section-head > h2 { grid-column:1 / -1; font-size:32px; }
 .spec-research-section { padding:56px 20px; }
 .spec-research-section .spec-section-head, .spec-research-section .spec-copy, .spec-research-image { grid-column:1 / -1; grid-row:auto; }
 .spec-research-section .spec-section-head > h2 { font-size:32px; }
 .spec-research-image { margin-top:32px; }
 .spec-research-image img { height:400px; }
 .parallax-footer__col--intro { gap:32px; }
}
.buildcraft-home .video-testimonial__video-wrap { background:#1b2624 url('/images/testimonial-bg-poster.jpg') center / cover no-repeat; }
/* Service gallery: one tall image tile, two stacked companions. */
.services-gallery { padding:80px 0; background:#0a0a0a; }
.services-gallery-master { padding:64px 40px; background:#141414; color:#fff; }
.services-gallery-master .spec-section-head { margin-bottom:64px; }
.services-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(360px,auto)); gap:24px; }
.services-gallery-tile { position:relative; isolation:isolate; overflow:hidden; min-width:0; padding:32px; background:#202020; }
.services-gallery-tile--tall { grid-row:span 2; }
.services-gallery-media { position:absolute; inset:0; overflow:hidden; z-index:-2; }
.services-gallery-media img { position:absolute; width:100%; height:calc(100% + 80px); top:-40px; left:0; object-fit:cover; transform:translateY(var(--model-parallax-y,0px)); }
.services-gallery-tile::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,.6),rgba(0,0,0,.1) 42%,rgba(0,0,0,.82)); }
.services-gallery-copy { height:100%; display:flex; flex-direction:column; justify-content:space-between; gap:80px; }
.services-gallery-copy .spec-number { display:block; color:#ccc; margin-bottom:16px; }
.services-gallery-copy h3 { font:400 var(--home-card-size)/1.15 var(--font-display); letter-spacing:-.025em; max-width:460px; }
.services-gallery-copy p { font:400 16px/1.6 var(--font-body); color:#eee; max-width:480px; }
@media(max-width:991px) { .services-gallery-master { padding-top:48px; padding-bottom:48px; } }
@media(max-width:767px) {
 .services-gallery { padding:48px 0; }
 .services-gallery-master { padding:48px 20px; }
 .services-gallery-master .spec-section-head { margin-bottom:32px; }
 .services-gallery-grid { grid-template-columns:1fr; grid-template-rows:none; gap:16px; }
 .services-gallery-tile { padding:24px; min-height:360px; }
 .services-gallery-tile--tall { grid-row:auto; }
}
/* BYQ centered quote block: retain the site's bold quote treatment and shared grid. */
.buildcraft-home .founder-quote { position:relative; isolation:isolate; overflow:hidden; min-height:520px; align-items:center; padding:120px 40px; background:#111; color:#fff; border-top:1px solid #292929; border-bottom:1px solid #292929; display:grid; grid-template-columns:var(--spec-columns); gap:var(--spec-gap); }
.buildcraft-home .founder-quote__film { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.buildcraft-home .founder-quote::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.48),rgba(0,0,0,.62)); z-index:-1; }
.buildcraft-home .founder-quote__dither { position:absolute; inset:0; width:100%; height:100%; z-index:-1; pointer-events:none; image-rendering:pixelated; opacity:0; transition:opacity 140ms linear; }
.buildcraft-home .founder-quote__dither.is-burst { opacity:.24; }
@media(prefers-reduced-motion:reduce) { .buildcraft-home .founder-quote__dither { display:none; } }
.buildcraft-home .founder-quote__inner { grid-column:2 / 12; text-align:center; }
.buildcraft-home .founder-quote blockquote { margin:0 auto; max-width:920px; font-family:var(--font-body, Inter, sans-serif); font-size:48px; font-weight:800; line-height:1.14; letter-spacing:-.04em; text-shadow:0 2px 24px rgba(0,0,0,.35); }
@media(max-width:991px) {
 .buildcraft-home .founder-quote { padding-top:96px; padding-bottom:96px; }
 .buildcraft-home .founder-quote__inner { grid-column:1 / -1; }
 .buildcraft-home .founder-quote blockquote { font-size:40px; }
}
@media(max-width:767px) {
 .buildcraft-home .founder-quote { padding:72px 20px; min-height:440px; }
 .buildcraft-home .founder-quote blockquote { font-size:32px; }
}
@media(max-width:479px) {
 .buildcraft-home .founder-quote { padding-top:56px; padding-bottom:56px; }
 .buildcraft-home .founder-quote blockquote { font-size:28px; }
}

/* Homepage type system. Explicit selectors deliberately leave testimonial quotes alone. */
.buildcraft-home {
 --home-section-size:40px;
 --home-card-size:28px;
 --home-label-gap:24px;
}
.buildcraft-home .hero-headline { font-weight:300; }
@media(min-width:1001px) {
 .buildcraft-home .hero-headline { grid-column:1 / -1; font-size:clamp(40px,4.45vw,64px); }
 .buildcraft-home .spec-hero-first { display:block; white-space:nowrap; }
 .buildcraft-home .spec-rotation { display:inline-grid; vertical-align:baseline; }
}
.buildcraft-home :is(.spec-section-head > h2, .spec-work-intro h2, .model-feature-intro h2, .founder-callout__heading, .parallax-footer__title) {
 font-family:var(--font-display);
 font-size:var(--home-section-size);
 font-weight:400;
 line-height:1.12;
 letter-spacing:-.035em;
}
.buildcraft-home :is(.model-feature-card h3, .spec-row > h3, .work-strip-title) {
 font-family:var(--font-display);
 font-size:var(--home-card-size);
 font-weight:400;
 line-height:1.15;
 letter-spacing:-.025em;
}
.buildcraft-home :is(.section-label, .model-feature-label, .spec-number, .parallax-footer__label, .parallax-footer__links-label, .spec-research-image figcaption) {
 font-family:var(--font-body);
 font-size:12px;
 font-weight:500;
 line-height:1.5;
 letter-spacing:.1em;
 text-transform:uppercase;
}
.buildcraft-home :is(.spec-hero-support > p, .spec-work-intro p, .spec-copy > p, .spec-row > p, .model-feature-intro > p, .model-feature-card p, .founder-callout__body, .parallax-footer__text) {
 font-family:var(--font-body);
 font-size:16px;
 font-weight:400;
 line-height:1.6;
 letter-spacing:0;
}
.buildcraft-home :is(.spec-hero-support .spec-discipline, .founder-callout__previously, .work-strip-subtitle, .spec-footer-note) {
 font-size:14px;
 font-weight:400;
 line-height:1.6;
 letter-spacing:0;
}
.buildcraft-home .spec-section-head { row-gap:var(--home-label-gap); }
.buildcraft-home .spec-section-head > .section-label { margin-bottom:0; }
.buildcraft-home .spec-research-section .section-label { margin-bottom:var(--home-label-gap); }
.buildcraft-home .founder-callout__intro { max-width:none; row-gap:var(--home-label-gap); }
.buildcraft-home .founder-callout .section-label { margin-bottom:0; }
.buildcraft-home .founder-callout .spec-link { color:var(--dark); align-self:flex-start; }
.buildcraft-home .founder-callout__body > a { color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; transition:color .2s ease; }
.buildcraft-home .founder-callout__body > a:is(:hover,:focus-visible) { color:var(--primary); text-decoration-thickness:2px; }
.buildcraft-home .model-feature-intro h2 { margin:var(--home-label-gap) 0 28px; }
.buildcraft-home .model-feature-card p { color:#bcbcbc; }
.buildcraft-home :is(.section-label, .model-feature-label, .parallax-footer__label, .parallax-footer__links-label) {
 border:0;
 border-radius:0;
 background:none;
 padding:0;
 color:#aaa;
}
.buildcraft-home :is(.founder-callout, .spec-research-section) .section-label { color:#555; }
.buildcraft-home .spec-image-section .section-label { color:#d5d5d5; }
.buildcraft-home :is(img, .work-strip-item, .founder-callout__image, .spec-research-image > a) { border-radius:0; }
/* Model: editorial heading followed by six image-and-caption cards. */
.buildcraft-home .model-feature-section { padding-top:80px; padding-bottom:80px; }
.buildcraft-home .model-feature-grid { row-gap:48px; }
.buildcraft-home .model-feature-intro { grid-column:1 / 7; position:static; max-width:none; }
.buildcraft-home .model-feature-intro > p { max-width:none; margin-bottom:0; }
.buildcraft-home .model-feature-list { grid-column:1 / -1; display:grid; grid-template-columns:var(--spec-columns); gap:48px var(--spec-gap); margin-top:0; }
.buildcraft-home .model-feature-card { grid-column:span 4; display:flex; flex-direction:column; justify-content:flex-start; min-width:0; min-height:0; padding:0; gap:0; background:none; border:0; border-radius:0; }
.model-feature-media { position:relative; overflow:hidden; height:380px; width:100%; margin-bottom:20px; background:#202020; }
.model-feature-background { position:absolute; left:0; top:-40px; width:100%; height:calc(100% + 80px); object-fit:cover; transform:translateY(var(--model-parallax-y,0px)); }
.buildcraft-home .model-feature-card-top { margin-bottom:12px; }
.buildcraft-home .model-feature-card-top .spec-number { color:#aaa; padding:0; text-align:left; }
.buildcraft-home .model-feature-card-copy { color:#fff; }
.buildcraft-home .model-feature-card h3 { margin-bottom:10px; max-width:none; }
.buildcraft-home .model-feature-card p { color:#bcbcbc; max-width:none; }
.buildcraft-home .model-feature-card:nth-child(3n + 2) { transition-delay:100ms; }
.buildcraft-home .model-feature-card:nth-child(3n) { transition-delay:200ms; }
@media(max-width:991px) {
 .buildcraft-home .model-feature-section { padding-top:64px; padding-bottom:64px; }
 .buildcraft-home .model-feature-intro { grid-column:1 / -1; }
 .buildcraft-home .model-feature-card { grid-column:1 / -1; transition-delay:0ms; }
 .model-feature-media { height:320px; }
}
@media(max-width:767px) {
 .buildcraft-home .model-feature-section { padding-top:48px; padding-bottom:48px; }
 .buildcraft-home .model-feature-grid { row-gap:32px; }
 .model-feature-media { height:260px; }
}
.buildcraft-home :is(main, section[id], #footer) { scroll-margin-top:100px; }
@media(max-width:991px) {
 .buildcraft-home { --home-section-size:36px; }
}
@media(max-width:600px) {
 .buildcraft-home { --home-section-size:30px; --home-card-size:24px; }
 .buildcraft-home :is(main, section[id], #footer) { scroll-margin-top:88px; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
