/* home hero carousel — compact banner with distinct slides */
        .hero-home {
            position: relative;
            min-height: 0;
            height: clamp(520px, 66vh, 624px);
            overflow: hidden;
        }
        .hslide {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            opacity: 0;
            transition: opacity 1s ease;
            z-index: 0;
        }
        .hslide.active { opacity: 1; z-index: 2; }
        .hslide img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: 0;
        }
        /* gradient scrim — strong on the left for text, fades so the photo stays vivid on the right (no boxy card) */
        .hslide .ov {
            position: absolute;
            inset: 0;
            z-index: 1;
            background:
                linear-gradient(94deg, rgba(248, 242, 233, .95) 0%, rgba(248, 242, 233, .82) 28%, rgba(248, 242, 233, .42) 50%, rgba(248, 242, 233, .08) 70%, transparent 100%),
                linear-gradient(180deg, rgba(248, 242, 233, .16), transparent 26%, rgba(248, 242, 233, .72) 100%);
        }
        /* per-slide copy — text directly on the scrim, entrance animation */
        .hcopy {
            position: relative;
            z-index: 3;
            max-width: 540px;
            opacity: 0;
            transform: translateY(22px);
            transition: opacity .8s cubic-bezier(.16,1,.3,1) .15s, transform .8s cubic-bezier(.16,1,.3,1) .15s;
        }
        .hslide.active .hcopy { opacity: 1; transform: none; }
        .hero-home .display { font-size: clamp(34px, 4.7vw, 62px); text-shadow: 0 2px 18px rgba(248, 242, 233, .6); }
        .hero-home .display .o { color: var(--amber-deep); }
        .hero-home .hero-sub { font-size: 16px; max-width: 460px; color: var(--fg); }

        /* Nexus-OP slide — generated illustration background */
        .hslide.nx .nx-bg {
            position: absolute;
            inset: 0;
            z-index: 0;
            background: linear-gradient(120deg, #fffaf3, #fde7d6);
        }
        .hslide.nx img { object-position: center right; }
        .hslide.nx .ov {
            background:
                linear-gradient(90deg, rgba(250, 245, 238, .8) 0%, rgba(250, 245, 238, .35) 34%, rgba(250, 245, 238, .04) 56%, transparent 100%),
                linear-gradient(180deg, transparent 66%, rgba(248, 242, 233, .55) 100%);
        }
        .hslide.nx .hcopy {
            background: none;
            border: 0;
            box-shadow: none;
            padding: 0;
            max-width: 500px;
        }
        .hdots {
            position: absolute;
            bottom: 24px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 6;
            display: flex;
            gap: 9px;
        }
        .hdot {
            width: 30px; height: 4px; border-radius: 4px;
            background: var(--line2); cursor: pointer; transition: background .3s, width .3s;
        }
        .hdot.active { background: var(--amber); width: 46px; }
        .harr {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 6;
            width: 46px; height: 46px;
            border-radius: 50%;
            border: 1px solid var(--line2);
            background: rgba(255, 255, 255, .85);
            color: var(--amber-deep);
            font-size: 19px;
            display: grid; place-items: center;
            cursor: pointer;
            box-shadow: 0 8px 20px -10px rgba(80, 50, 20, .4);
            transition: border-color .25s, transform .25s;
        }
        .harr:hover { border-color: var(--amber); transform: translateY(-50%) scale(1.07); }
        .harr.prev { left: 16px; }
        .harr.next { right: 16px; }
        @media (max-width: 760px) {
            .harr { display: none; }
            .hero-home { height: clamp(460px, 72vh, 540px); }
            .hslide .ov { background:
                linear-gradient(180deg, rgba(248,242,233,.92) 0%, rgba(248,242,233,.7) 45%, rgba(248,242,233,.5) 100%),
                radial-gradient(70% 60% at 50% 30%, rgba(249,115,22,.14), transparent 60%); }
        }