/* Homepage-only masthead: normal document flow, never over the banner. */
body > header > nav[aria-label] { position: relative !important; inset: auto !important; background: #fff; }
body > header > nav[aria-label] > div:first-child { border-radius: 0 !important; box-shadow: none !important; border: 0 !important; background: #fff !important; }
.home-hero { padding: 0; color: #18243a; }
.home-carousel { width: 100%; position: relative; overflow: hidden; touch-action: pan-y; background: #eff1f9; }
.home-slide { display: grid; grid-template-columns: 1fr 1fr; height: clamp(360px,28vw,480px); padding: 26px max(64px,calc((100vw - 1180px)/2)) 46px; gap: 48px; background: radial-gradient(ellipse at 78% 50%,#dcdff8 0, #eef1fa 44%,#f5f6fa 80%); }
.home-slide[data-slide="1"] { background: radial-gradient(ellipse at 78% 50%,#f2e4d4,#faf5ef 60%,#fcfaf7); }
.home-slide[data-slide="2"] { background: radial-gradient(ellipse at 78% 50%,#cfe9e5,#edf6f4 60%,#f5f9f8); }
.home-slide[hidden], .home-controls[hidden] { display: none; }
.home-slide-copy { align-self: center; min-width: 0; }
.home-slide h2 { font-size: clamp(28px,2.8vw,42px); font-weight: 750; line-height: 1.2; margin: 0 0 18px; letter-spacing: -.025em; }
.home-slide-copy p { color: #526075; line-height: 1.7; font-size: 16px; margin-bottom: 24px; max-width: 470px; }
.home-detail { display: inline-flex; gap: 28px; border: 1px solid #334155; color: #18243a; padding: 10px 22px; font-size: 14px; font-weight: 600; }
.home-detail:hover { background: #18243a; color: #fff; }
.home-visual { margin: 0; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.home-image-stage { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 30px; }
.home-image-stage img { display: block; width: auto; height: 100%; max-width: 70%; object-fit: contain; filter: drop-shadow(0 9px 14px #18243a20); }
.home-image-stage .home-watch { max-width: 28%; height: auto; max-height: 140px; border-radius: 20px; }
.home-visual figcaption { font-size: 10px; line-height: 1.4; color: #526075; text-align: center; padding-top: 8px; }
.home-visual-esp32-ai-device img { max-width: 100%; width: 100%; filter: none; }
.home-controls { position: absolute; inset: auto 0 0; height: 40px; display: flex; align-items: center; justify-content: center; }
.home-controls button { cursor: pointer; min-height: 40px; min-width: 44px; background: transparent; color: #334155; border: 0; }
.home-controls [data-prev], .home-controls [data-next] { position: absolute; bottom: calc(clamp(360px,28vw,480px)/2 - 20px); font-size: 26px; opacity: .35; }
.home-controls [data-prev] { left: 12px; }
.home-controls [data-next] { right: 12px; }
.home-carousel:hover .home-controls button, .home-carousel:focus-within .home-controls button { opacity: 1; }
.home-dots { display: flex; }
.home-dots button { display: grid; place-items: center; }
.home-dots span { width: 26px; height: 2px; background: #adb5c5; }
.home-dots [aria-current="true"] span { background: #4338ca; }
.home-hero a:focus-visible, .home-hero button:focus-visible { outline: 3px solid #0f766e; outline-offset: -3px; }
.home-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.home-intro { max-width: 1180px; margin: auto; padding: 48px 24px 0; color: #18243a; }
.home-eyebrow { font-size: 12px; color: #64748b; }
.home-intro h1 { font-size: clamp(23px,2.2vw,32px); line-height: 1.3; font-weight: 700; margin: 10px 0 16px; }
.home-intro > p:not(.home-eyebrow) { max-width: 940px; color: #64748b; font-size: 14px; line-height: 1.8; }
.home-company-links { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 16px; font-size: 13px; color: #4338ca; }
@media (max-width: 700px) {
    .home-slide { height: 570px; grid-template-columns: 1fr; grid-template-rows: 205px minmax(0,1fr); padding: 22px 28px 45px; gap: 8px; }
    .home-slide-copy { align-self: center; }
    .home-slide h2 { font-size: 28px; margin-bottom: 12px; }
    .home-slide-copy p { font-size: 13px; line-height: 1.6; margin-bottom: 16px; }
    .home-detail { padding: 9px 18px; font-size: 13px; }
    .home-image-stage { gap: 28px; }
    .home-image-stage .home-watch { max-height: 110px; }
    .home-visual figcaption { font-size: 9px; }
    .home-controls [data-prev], .home-controls [data-next] { bottom: 0; font-size: 20px; opacity: .65; }
    .home-intro { padding: 32px 24px 0; }
}
