:root {
            --font-sans: "Rubik", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
            --brand: #1e4ed8;
            --brand-hover: #3b6fe0;
            --ink: #f1f5f9;
            --body: #cbd5e1;
            --muted: #94a3b8;
            --line: rgba(255,255,255,0.12);
            --surface: #142c54;
            --surface-soft: #0a1930;
            --canvas: var(--pwi-canvas-bottom);
        }
        body {
            font-family: var(--font-sans);
            overflow-x: hidden;
            background: var(--canvas);
            color: var(--body);
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        .bg-canvas  { background: var(--canvas)  !important; }
        .bg-surface { background: var(--surface) !important; }
        .bg-surface-soft { background: var(--surface-soft) !important; }
        .text-ink   { color: var(--ink)   !important; }
        .text-body  { color: var(--body)  !important; }
        .text-muted { color: var(--muted) !important; }
        .border-line { border-color: var(--line) !important; }
        .stc-data-header {
            max-width: 42rem;
            margin-bottom: 1.35rem;
        }
        .stc-data-kicker {
            display: block;
            margin-bottom: 0.7rem;
            font-size: 0.68rem;
            font-weight: 600;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: #94a3b8;
        }
        .stc-data-note {
            margin: 0;
            font-size: 0.92rem;
            line-height: 1.55;
            color: #cbd5e1;
        }
        /* Scoped to the PMA number specifically — smaller and more muted
           than a regular subtitle so it doesn't read as a description of
           the whole results list (most of which are STCs, not PMAs). */
        .stc-data-note--pma {
            margin-top: 0.35rem;
            font-size: 0.8rem;
            color: var(--muted);
        }
        .stc-hero-tools {
            max-width: 54rem;
        }
        .stc-hero-tools-label {
            display: block;
            margin-bottom: 0.75rem;
            font-size: 0.68rem;
            font-weight: 600;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: #94a3b8;
        }
        .stc-hero-tool-row {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 0.9rem;
        }
        .stc-hero-search-wrap {
            width: 100%;
            max-width: 34rem;
        }
        .stc-hero-tool-divider {
            display: none;
        }
        .soft-elev {
            box-shadow: none;
        }
        #model-grid { align-items: start; }
        .model-card {
            position: relative;
            background: rgba(147, 197, 253, 0.10) !important;
            border: 1px solid rgba(147, 197, 253, 0.26) !important;
            box-shadow: none !important;
            border-radius: 1.25rem;
            overflow: hidden !important;
        }
        .model-card:hover {
            border-color: rgba(147, 197, 253, 0.4) !important;
        }
summary { list-style: none; }
        summary::-webkit-details-marker { display: none; }
        summary::marker { content: ""; }
        .model-card, .model-card:focus, .model-card summary,
        .model-card summary:focus, .model-card summary:focus-visible {
            outline: none !important;
        }
        .chev { display: inline-block; line-height: 1; transition: transform 0.2s ease; }
        .rowlike { text-decoration: none; font-weight: 500; }
        .rowlink {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            color: #93c5fd;
            text-decoration: none;
            font-weight: 500;
            line-height: 1.4;
            padding: 0.9rem 0.75rem;
            margin: 0 -0.75rem;
            border-radius: 0.6rem;
            border-bottom: 1px solid rgba(255,255,255,0.08);
            transition: color 160ms ease, border-color 160ms ease, background-color 220ms ease, transform 220ms cubic-bezier(.2,.8,.3,1.2), box-shadow 220ms ease;
        }
        .rowlink::after {
            content: '';
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;
            width: 2.25rem;
            height: 2.25rem;
            flex-shrink: 0;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393c5fd' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5%2014.25v-2.625a3.375%203.375%200%2000-3.375-3.375h-1.5A1.125%201.125%200%200113.5%207.125v-1.5a3.375%203.375%200%2000-3.375-3.375H8.25m2.25%200H5.625c-.621%200-1.125.504-1.125%201.125v17.25c0%20.621.504%201.125%201.125%201.125h12.75c.621%200%201.125-.504%201.125-1.125V11.25a9%209%200%2000-9-9z'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: center;
            background-color: rgba(147,197,253,0.22);
            background-size: 1rem 1rem;
            border-radius: 10px;
            border: 1px solid rgba(147,197,253,0.28);
            opacity: 0.7;
            color: transparent;
            font-size: 0;
            font-weight: 700;
            letter-spacing: 0.04em;
            white-space: nowrap;
            overflow: hidden;
            transition: width 240ms cubic-bezier(.22,1,.36,1), opacity 0.2s ease, background-color 0.2s ease, background-image 0.2s ease, background-position 240ms cubic-bezier(.22,1,.36,1), transform 0.2s cubic-bezier(.2,.8,.3,1.2), box-shadow 0.2s ease;
        }
        .rowlink:last-child { border-bottom: none; }
        .rowlink:focus-visible {
            color: #eaf2ff;
            border-color: rgba(147,197,253,0.24);
            background-color: rgba(30,78,216,0.12);
            transform: translateY(-2px);
            box-shadow: 0 10px 22px rgba(2, 8, 23, 0.22);
        }
        .rowlink:focus-visible::after {
            content: 'VIEW PDF';
            width: 5.35rem;
            justify-content: flex-start;
            padding: 0 1.55rem 0 0.7rem;
            opacity: 1;
            color: #ffffff;
            font-size: 0.62rem;
            background-color: rgba(30,78,216,0.52);
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7%2017L17%207M17%207H8M17%207V16'/%3E%3C/svg%3E");
            background-size: 0.95rem 0.95rem;
            background-position: calc(100% - 0.5rem) center;
            transform: none;
            box-shadow: none;
        }
        @media (hover: hover) and (pointer: fine) {
            .rowlink:hover {
                color: #f8fbff;
                border-color: rgba(147,197,253,0.16);
                background-color: transparent;
                transform: none;
                box-shadow: none;
            }
            .rowlink:hover::after {
                content: 'VIEW PDF';
                width: 5.35rem;
                justify-content: flex-start;
                padding: 0 1.55rem 0 0.7rem;
                opacity: 1;
                color: #ffffff;
                font-size: 0.62rem;
                background-color: rgba(30,78,216,0.52);
                background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7%2017L17%207M17%207H8M17%207V16'/%3E%3C/svg%3E");
                background-size: 0.95rem 0.95rem;
                background-position: calc(100% - 0.5rem) center;
                transform: none;
                box-shadow: none;
            }
        }
        .rowlink:focus-visible {
            outline: 2px solid rgba(30,78,216,0.4);
            outline-offset: 2px;
        }
        details.model-card > div {
            margin-top: 0;
            padding: 0 1.35rem 0.5rem !important;
            background: transparent;
            border: none;
        }

        details.model-card > div > div {
            padding-left: 0 !important;
            padding-right: 0 !important;
        }
        .card-headline {
            color: #f1f5f9 !important;
            font-weight: 500 !important;
            font-size: 0.9375rem !important;
            letter-spacing: 0em;
            line-height: 1.35;
            transition: color 180ms ease;
        }
        /* Accordion affordance: blue title is reserved for the open state only.
           Hover/focus get the chevron treatment below instead, so a collapsed
           card never looks open after a click or keyboard focus passes through. */
        details[data-open="true"] .card-headline { color: #93c5fd !important; }
        .model-card:hover .card-sub,
        .model-card:focus-within .card-sub,
        details[data-open="true"] .card-sub {
            color: #94a3b8;
        }
        .model-card:hover .approval-badge,
        .model-card:focus-within .approval-badge,
        details[data-open="true"] .approval-badge {
            color: #93c5fd;
            background: transparent;
        }
        .model-card > summary {
            display: flex !important;
            flex-direction: row !important;
            align-items: stretch !important;
            justify-content: flex-start;
            padding-left: 0 !important;
            padding-right: 0 !important;
            min-height: 112px;
            background: transparent;
            text-decoration: none;
        }
        .model-card > summary:hover {
            background: transparent;
            text-decoration: none;
        }
        .model-card .model-header-bar {
            flex: 1 1 auto;
            min-width: 0;
            padding: 1.1rem 1.35rem !important;
            background: transparent;
            border: none;
            transition: border-color 180ms ease;
        }
        details[data-open="true"].model-card .model-header-bar {
            border-bottom: 1px solid rgba(255,255,255,0.08);
        }

        .model-card .model-card-thumb {
            position: relative !important;
            flex: 0 0 auto;
            align-self: stretch;
            width: 180px;
            height: auto !important;
            border: none !important;
            border-right: 1px solid rgba(148,163,184,0.14) !important;
            overflow: hidden;
        }
        .model-card .model-card-thumb img {
            position: absolute; inset: 0;
            width: 100%; height: 100%;
            object-fit: cover; display: block;
        }
        @media (min-width: 1024px) {
            .model-card .model-card-thumb { width: 200px; }
            .model-card .model-header-bar { padding: 1.1rem 1.1rem !important; }
            details.model-card > div { padding: 0 1.1rem 0.5rem !important; }
        }
        @media (max-width: 639px) {
            .model-card .model-card-thumb { width: clamp(104px, calc(104px + (100vw - 320px) * 0.1636), 122px); }
        }
        .stc-hero-inner { padding-top: 1.35rem; padding-bottom: 1.15rem; }
.stc-hero { padding: 0; }
.stc-hero-eyebrow { color: #60a5fa; }
.stc-hero-title {
  font-size: clamp(2.55rem, 10.5vw, 3.75rem);
  font-weight: 300;
  line-height: 0.93;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.4);
  margin: 0;
}
.stc-hero-accent { color: #60a5fa; }
.stc-hero-lede { color: #cbd5e1; }
.stc-browse-btn {
  gap: 0.625rem;
  min-height: 44px;
  box-sizing: border-box;
  white-space: nowrap;
}
.stc-browse-icon {
  width: 1rem;
  height: 1rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.stc-data-section { padding: 0; }
.stc-cta-btn {
  min-height: 44px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
}
.stc-cta-icon {
  width: 1rem;
  height: 1rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.model-card-summary {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  padding: 0;
}
.card-text {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}
.card-sub {
  font-size: 0.75rem;
  font-weight: 400;
  color: #94a3b8;
  letter-spacing: 0.01em;
}
.card-sub:empty {
  display: none;
}
.model-card-thumb img,
.model-card-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.model-card-thumb--product-photo {
  background: #eef1f4;
}
/* Give every studio product shot a matching light-gray mat so the tile
   reads as one consistent family instead of edge-to-edge white squares. */
.model-card .model-card-thumb--product-photo img {
  inset: 8px;
  width: calc(100% - 16px);
  height: calc(100% - 16px);
}
.model-card-thumb-img--ice-light {
  object-position: 50% 50%;
  transform: scale(1.18);
  transform-origin: 93% 77%;
}
.model-card:hover > summary > span:first-child .model-card-thumb-img--ice-light,
.model-card:focus-within > summary > span:first-child .model-card-thumb-img--ice-light {
  transform: scale(1.22);
}
.model-card-thumb-img--logo-light {
  object-position: 48% 46%;
  transform: scale(1.55) translateX(6%);
  transform-origin: 50% 50%;
}
.model-card:hover > summary > span:first-child .model-card-thumb-img--logo-light,
.model-card:focus-within > summary > span:first-child .model-card-thumb-img--logo-light {
  transform: scale(1.59) translateX(6%);
}
.model-card-thumb-img--citation-step-light {
  object-position: 50% 50%;
  transform: scale(1.55) translateX(2%);
  transform-origin: 50% 50%;
}
.model-card:hover > summary > span:first-child .model-card-thumb-img--citation-step-light,
.model-card:focus-within > summary > span:first-child .model-card-thumb-img--citation-step-light {
  transform: scale(1.59) translateX(2%);
}
.model-card-thumb-img--reading-light {
  object-position: 50% 62%;
  transform: scale(1.08);
  transform-origin: 50% 68%;
}
.model-card:hover > summary > span:first-child .model-card-thumb-img--reading-light,
.model-card:focus-within > summary > span:first-child .model-card-thumb-img--reading-light {
  transform: scale(1.10);
}
.model-card-thumb-img--seat-belt-backlight {
  object-position: 50% 40%;
  transform: scale(1.45);
  transform-origin: 50% 50%;
}
.model-card:hover > summary > span:first-child .model-card-thumb-img--seat-belt-backlight,
.model-card:focus-within > summary > span:first-child .model-card-thumb-img--seat-belt-backlight {
  transform: scale(1.49);
}
.model-card-thumb-img--smoking-sign-graphic {
  object-position: 46% 55%;
  transform: scale(1.5);
  transform-origin: 46% 55%;
}
.model-card:hover > summary > span:first-child .model-card-thumb-img--smoking-sign-graphic,
.model-card:focus-within > summary > span:first-child .model-card-thumb-img--smoking-sign-graphic {
  transform: scale(1.54);
}
.model-card-thumb-img--ice-light-window {
  object-position: 58% 60%;
  transform: scale(1.02);
  transform-origin: 58% 60%;
}
.model-card:hover > summary > span:first-child .model-card-thumb-img--ice-light-window,
.model-card:focus-within > summary > span:first-child .model-card-thumb-img--ice-light-window {
  transform: scale(1.04);
}
@media (max-width: 767px) {
  .model-card-thumb-img,
  .model-card > summary > span:first-child img,
  .model-card:hover > summary > span:first-child img,
  .model-card:focus-within > summary > span:first-child img {
    transform: none !important;
  }
}
/* Tablet only (640-767px): individual product photos keep the same
   cover-crop zoom treatment as desktop. True mobile (<=639px) switches
   these to the contain treatment below instead. */
@media (min-width: 640px) and (max-width: 767px) {
  .model-card-thumb-img--reading-light,
  .model-card > summary > span:first-child .model-card-thumb-img--reading-light {
    object-position: 50% 58%;
    transform: scale(1.3) !important;
    transform-origin: 50% 62%;
  }
  .model-card-thumb-img--ice-light,
  .model-card > summary > span:first-child .model-card-thumb-img--ice-light {
    object-position: 62% 55%;
    transform: scale(1.35) !important;
    transform-origin: 62% 55%;
  }
  .model-card-thumb-img--seat-belt-backlight,
  .model-card > summary > span:first-child .model-card-thumb-img--seat-belt-backlight {
    object-position: 50% 40%;
    transform: scale(1.2) !important;
    transform-origin: 50% 42%;
  }
  .model-card-thumb-img--logo-light,
  .model-card > summary > span:first-child .model-card-thumb-img--logo-light {
    object-position: 48% 46%;
    transform: scale(1.65) translateX(6%) !important;
    transform-origin: 50% 50%;
  }
  .model-card-thumb-img--citation-step-light,
  .model-card > summary > span:first-child .model-card-thumb-img--citation-step-light {
    object-position: 50% 50%;
    transform: scale(1.65) translateX(2%) !important;
    transform-origin: 50% 50%;
  }
  .model-card-thumb-img--smoking-sign-graphic,
  .model-card > summary > span:first-child .model-card-thumb-img--smoking-sign-graphic {
    object-position: 46% 55%;
    transform: scale(1.4) !important;
    transform-origin: 46% 55%;
  }
}
/* True mobile (<=639px): the thumb column is narrow (96-104px, see above),
   close to the pre-redesign baseline, so product photography goes back to a
   cropped cover fill (like every other thumbnail) instead of a fully-visible
   contain mat -- contain at this width left products looking tiny inside a
   mostly-empty tile. Position/scale per product is tuned so the crop lands
   on the product, not empty background. Aircraft interior/installation/
   exterior photos are untouched and keep their cover crop via the blanket
   reset above. */
@media (max-width: 639px) {
  .model-card .model-card-thumb-img.thumbnail--product,
  .model-card > summary > span:first-child .model-card-thumb-img.thumbnail--product {
    object-fit: cover;
    inset: 0;
    width: 100%;
    height: 100%;
  }
  .model-card .model-card-thumb-img--ice-light.thumbnail--product {
    object-position: 70% 52% !important;
    transform: scale(1.5) !important;
    transform-origin: center !important;
  }
  .model-card .model-card-thumb-img--citation-step-light.thumbnail--product {
    object-position: 50% 50% !important;
    transform: scale(1.7) !important;
    transform-origin: center !important;
  }
  /* Logo Light's source photo has its wire leads running to the very edge
     of the frame (no background margin to spare), so it gets a smaller
     boost than its landscape siblings to avoid cropping the leads. */
  .model-card .model-card-thumb-img--logo-light.thumbnail--product {
    object-position: 48% 46% !important;
    transform: scale(1.35) !important;
    transform-origin: center !important;
  }
  .model-card .model-card-thumb-img--smoking-sign-graphic.thumbnail--product {
    object-position: 46% 55% !important;
    transform: scale(1.35) !important;
    transform-origin: center !important;
  }
  .model-card .model-card-thumb-img--seat-belt-backlight.thumbnail--product {
    object-position: 50% 38% !important;
    transform: scale(1.6) !important;
    transform-origin: center !important;
  }
  .model-card .model-card-thumb-img--reading-light.thumbnail--product {
    object-position: 50% 58% !important;
    transform: scale(1.55) !important;
    transform-origin: center !important;
  }
  .model-card .model-card-thumb-img--ice-light-window.thumbnail--product {
    object-position: 58% 58% !important;
    transform: scale(1.25) !important;
    transform-origin: center !important;
  }
}
@media (min-width: 768px) {
  .model-card-thumb-img--ice-light {
    object-position: 68% 58%;
    transform: scale(1.55);
    transform-origin: 68% 58%;
  }
  .model-card:hover > summary > span:first-child .model-card-thumb-img--ice-light,
  .model-card:focus-within > summary > span:first-child .model-card-thumb-img--ice-light {
    transform: scale(1.59);
  }
  .model-card-thumb-img--seat-belt-backlight {
    object-position: 50% 42%;
    transform: scale(1.12);
    transform-origin: 50% 42%;
  }
  .model-card:hover > summary > span:first-child .model-card-thumb-img--seat-belt-backlight,
  .model-card:focus-within > summary > span:first-child .model-card-thumb-img--seat-belt-backlight {
    transform: scale(1.16);
  }
}
.model-card-thumb--muted {
  background: rgba(255, 255, 255, 0.04);
}
.approval-search-input {
            min-height: 44px;
            box-sizing: border-box;
            background: rgba(255,255,255,0.06) !important;
            border-color: rgba(255,255,255,0.14) !important;
            box-shadow: none !important;
            color: #f1f5f9 !important;
        }
        .approval-search-input::placeholder { color: rgba(203,213,225,0.45) !important; }
        .approval-search-input:focus {
            background: rgba(255,255,255,0.08) !important;
            border-color: #3b6fe0 !important;
            box-shadow: 0 0 0 3px rgba(30,78,216,0.22) !important;
        }
        #search-status { color: #94a3b8 !important; }
        .model-header-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.625rem;
            width: 100%;
            padding: 0.875rem 1.125rem 1rem;
            min-height: 2.75rem;
            background: transparent;
            border-top: none;
        }
        .card-chev {
            flex-shrink: 0;
            width: 18px;
            height: 18px;
            color: #94a3b8;
            stroke: #94a3b8;
            transition: color 220ms ease, transform 220ms ease;
            margin-left: 0.25rem;
        }
        .model-card:hover .card-chev,
        .model-card:focus-within .card-chev { color: #93c5fd; stroke: #93c5fd; transform: translateX(2px); }
        details[data-open="true"] .card-chev { color: #93c5fd; stroke: #93c5fd; transform: rotate(180deg); }
        .approval-title-wrap {
            display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; min-width: 0; flex: 1 1 auto;
        }
        .approval-title-wrap .card-headline { flex: 1 1 auto; min-width: 0; }
        .approval-badge {
            display: inline-flex; align-items: center; gap: 0.35rem;
            flex: 0 0 auto; margin-top: 0.02rem;
            padding: 0; border-radius: 0;
            background: transparent;
            border: none;
            color: #93c5fd;
            font-size: 0.875rem; font-weight: 600; line-height: 1;
            letter-spacing: 0.12em; text-transform: uppercase;
        }
        .approval-badge svg {
            width: 16px !important;
            height: 16px !important;
        }
        .category-label {
            display: flex; align-items: center; gap: 0.4rem;
            font-size: 0.7rem; font-weight: 600; text-transform: uppercase;
            letter-spacing: 0.1em; color: #94a3b8 !important;
            margin-bottom: 0.5rem; padding: 0; border: none;
            background: transparent; line-height: 1;
        }
        @media (min-width: 768px) {
            .stc-hero-tool-row {
                flex-direction: row;
                align-items: flex-start;
            }
            .stc-browse-btn {
                margin-top: 0;
            }
            .stc-hero-tool-divider {
                display: flex;
                min-height: 44px;
                align-items: center;
                font-size: 0.7rem;
                font-weight: 600;
                text-transform: uppercase;
                letter-spacing: 0.08em;
                color: var(--muted);
            }
        }
        div.space-y-2 > .category-label + .category-label,
        div.space-y-2 > * + .category-label {
            margin-top: 0.75rem;
            border-top: 1px solid var(--line);
            padding-top: 0.75rem;
        }
        @media (max-width: 639px) {
            .hero-dark.stc-hero .stc-hero-inner,
            .hero-dark.stc-hero .utility-hero-inner {
                padding-top: 1.25rem !important;
                padding-bottom: 1.05rem !important;
            }
            .stc-hero-inner .reveal { opacity: 1 !important; transform: none !important; animation: none !important; }
            .stc-hero-title { font-size: 2.55rem !important; line-height: 1.02 !important; }
            .stc-hero-lede { margin-top: 0.75rem !important; font-size: 0.92rem !important; line-height: 1.45 !important; }
            .stc-hero-inner .max-w-md { margin-top: 0.8rem !important; }
            .stc-hero-inner label { margin-bottom: 0.45rem !important; }
            .model-card > summary { min-height: 104px; }
            .model-card > summary > .model-card-thumb { height: auto !important; }
            .model-card .model-header-bar { padding: 0.85rem 1rem !important; min-height: 0 !important; }
            .approval-badge { gap: 0.42rem; font-size: 0.78rem; letter-spacing: 0.13em; }
            .approval-badge svg { width: 1rem !important; height: 1rem !important; }
            .rowlink { padding-top: 0.82rem; padding-bottom: 0.82rem; font-size: 0.98rem; }
            .category-label { font-size: 0.68rem !important; }
        }

        .reveal {
            opacity:0;
            transform:translateY(10px);
            animation:fade-up 520ms ease-out forwards
        }
        .reveal-1 {
            animation-delay:60ms
        }
        .reveal-2 {
            animation-delay:140ms
        }
        .reveal-3 {
            animation-delay:220ms
        }
        @keyframes fade-up {
            to {
                opacity:1;
                transform:translateY(0)
            }
        }
        @media(prefers-reduced-motion:reduce) {
            .reveal {
                opacity:1;
                transform:none;
                animation:none
            }
        }
        /* ---- Scroll reveal ---- */
        .scroll-reveal {
            opacity: 0;
            transform: translateY(24px);
            transition: opacity 600ms cubic-bezier(.22,1,.36,1), transform 600ms cubic-bezier(.22,1,.36,1);
        }
        .scroll-reveal.in-view {
            opacity: 1;
            transform: translateY(0);
        }
        #model-grid > .scroll-reveal:nth-child(3n+1) { transition-delay: 0ms; }
        #model-grid > .scroll-reveal:nth-child(3n+2) { transition-delay: 60ms; }
        #model-grid > .scroll-reveal:nth-child(3n+3) { transition-delay: 120ms; }
        @media (prefers-reduced-motion: reduce) {
            .rowlink,
            .rowlink::after {
                transition: none;
            }
            .rowlink:hover,
            .rowlink:focus-visible {
                transform: none;
            }
            .scroll-reveal { opacity: 1; transform: none; transition: none; }
        }

        /* Match homepage: CTA band flows into footer */
        .pwi-site-bottom {
            background: var(--pwi-canvas-bottom) !important;
        }
        .pwi-site-bottom > .site-cta.led-cta {
            background: transparent !important;
            border-top: none !important;
            border-bottom: none !important;
        }
        @media (min-width: 768px) {
            .pwi-site-bottom .pwi-footer-grid {
                padding-top: 1.5rem;
            }
        }
