/* Compact native implementation diagrams; content remains in normal flow. */
.hero-visual.expertise-slideshow {
    display:flex;
    flex-direction:column;
    container-type:inline-size;
    container-name:expertise;
    isolation:isolate;
    aspect-ratio:auto;
    height:auto;
    min-height:0;
    max-height:none;
    overflow:visible;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--theme-surface,#fff);
}
.expertise-topline {
    order:0;
    position:static;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:11px 16px;
    border-bottom:1px solid var(--line);
    color:var(--theme-accent,var(--forest));
    font-size:.62rem;
    font-weight:700;
    line-height:1.5;
    letter-spacing:.1em;
    text-transform:uppercase;
    text-shadow:none;
}
.expertise-topline>span {font-size:1rem;flex-shrink:0;}
.expertise-slides {order:1;min-width:0;}
.expertise-slides,.expertise-slide {position:static;inset:auto;}
.expertise-slide {display:grid;min-width:0;}
.expertise-slide[hidden] {display:none!important;}
.expertise-slide::after {content:none;}
.expertise-slide.is-active {animation:expertise-reveal .2s ease both;}
/* Reserve the tallest slide's natural height without hard-coding a viewport size.
   Visibility hides inactive content from painting, keyboard focus, and accessibility. */
.is-enhanced .expertise-slides {display:grid;}
.is-enhanced .expertise-slide {grid-area:1/1;grid-template-rows:minmax(225px,1fr) auto;}
.is-enhanced .expertise-slide.architecture-slide {grid-template-rows:1fr;}
.is-enhanced .expertise-slide[hidden] {display:grid!important;visibility:hidden;pointer-events:none;}
@keyframes expertise-reveal {from {opacity:.5;} to {opacity:1;}}

.implementation-visual {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:8px;
    min-width:0;
    min-height:225px;
    padding:14px 16px;
    border-bottom:1px solid var(--line);
    background:var(--theme-soft,var(--tint));
    color:var(--ink);
    line-height:1.4;
    overflow-wrap:anywhere;
}
.implementation-visual p {margin:0;}
.implementation-visual strong {font-weight:650;}
.implementation-kicker {display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--theme-quiet,var(--muted));font-size:.68rem;font-weight:650;line-height:1.4;}
.implementation-kicker>span {font-size:.9rem;}
.implementation-note {font-size:.65rem;line-height:1.4;text-align:center;color:var(--muted);}

/* The opening slide uses the whole canvas for one connected architecture. */
.architecture-overview {
    --overview-gap:18px;
    --overview-first:calc((100% - 2 * var(--overview-gap)) / 6);
    margin:0;
    min-width:0;
    padding:15px 18px 0;
    background:var(--theme-soft,var(--tint));
    color:var(--ink);
    line-height:1.4;
}
.overview-summary {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.overview-heading {margin-bottom:12px;}
.overview-heading>span {display:block;margin-bottom:3px;color:var(--theme-quiet,var(--muted));font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;}
.overview-heading h2 {font-size:1.4rem;letter-spacing:-.035em;line-height:1.2;}
.overview-sources {position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 12px;padding:6px 10px;margin-bottom:16px;border:1px solid var(--line);border-radius:5px;background:var(--theme-surface,#fff);font-size:.75rem;}
.overview-sources>span {color:var(--muted);}
.overview-sources::after {content:"";position:absolute;left:var(--overview-first);top:100%;height:16px;border-left:1px solid var(--theme-connector,#91a575);}
.overview-medallion {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--overview-gap);list-style:none;margin:0;padding:0;}
.overview-stage {position:relative;min-width:0;padding:9px 8px;border:1px solid;border-radius:6px;}
.overview-bronze {background:var(--theme-bronze-bg,#f2e2d1);border-color:var(--theme-bronze-border,#d9bea1);}
.overview-silver {background:var(--theme-silver-bg,#e6ebe7);border-color:var(--theme-silver-border,#c9d1ca);}
.overview-gold {background:var(--theme-gold-bg,#f1e6b2);border-color:var(--theme-gold-border,#ddcd87);}
.overview-stage-heading {display:flex;align-items:center;gap:7px;margin-bottom:7px;}
.overview-stage-heading svg {width:25px;height:25px;flex-shrink:0;}
.overview-stage-heading strong {font-size:.85rem;font-weight:650;}
.overview-stage>span {display:block;font-size:.75rem;}
.overview-stage:not(:last-child)::after {content:"";position:absolute;left:100%;top:22px;width:var(--overview-gap);border-top:1px solid var(--theme-connector,#91a575);}
.overview-stage:not(:last-child)::before {content:"";position:absolute;left:calc(100% + var(--overview-gap) - 5px);top:19px;width:6px;height:6px;border-top:1px solid var(--theme-connector,#91a575);border-right:1px solid var(--theme-connector,#91a575);transform:rotate(45deg);}
.overview-model {position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:18px;padding:10px 8px;border:1px solid var(--forest);border-radius:6px;background:var(--forest);color:#f8f8f3;text-align:center;}
.overview-model::before {content:"";position:absolute;bottom:100%;right:var(--overview-first);height:18px;border-left:1px solid var(--theme-connector,#91a575);}
.overview-model::after {content:"";position:absolute;bottom:calc(100% + 2px);right:calc(var(--overview-first) - 3px);width:6px;height:6px;border-right:1px solid var(--theme-connector,#91a575);border-bottom:1px solid var(--theme-connector,#91a575);transform:rotate(45deg);}
.overview-model>strong {font-size:.91rem;font-weight:650;}
.overview-model>span {font-size:.75rem;color:#d5e2d8;}
.overview-outcomes {position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px;}
.overview-outcomes::before {content:"";position:absolute;bottom:calc(100% + 11px);left:50%;height:11px;border-left:1px solid var(--theme-connector,#91a575);}
.overview-outcomes::after {content:"";position:absolute;bottom:100%;left:calc(25% - 3px);right:calc(25% - 3px);height:11px;border:1px solid var(--theme-connector,#91a575);border-bottom:0;border-radius:3px 3px 0 0;}
.overview-outcome {display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:8px;align-content:center;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--theme-surface,#fff);}
.overview-outcome svg {grid-row:1/3;width:22px;height:22px;align-self:center;color:var(--theme-accent,var(--forest));}
.overview-outcome>strong {font-size:.79rem;font-weight:650;}
.overview-outcome>span {font-size:.75rem;color:var(--muted);}
.overview-foundation {margin-top:12px;padding:8px 0 5px;border-top:1px dashed var(--line);}
.overview-foundation>strong {display:block;margin-bottom:4px;color:var(--theme-quiet,var(--muted));font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;}
.overview-foundation ul {display:flex;flex-wrap:wrap;gap:3px 12px;list-style:none;margin:0;padding:0;color:var(--muted);font-size:.75rem;}
.overview-foundation li {display:flex;align-items:center;gap:5px;}
.overview-foundation li::before {content:"";width:3px;height:3px;flex-shrink:0;border-radius:50%;background:var(--theme-connector,#91a575);}
.architecture-overview .expertise-slide-link {margin-top:0;}

/* Source capture, Data Vault, and dimensional models form a connected sequence. */
.implementation-node {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 8px;padding:5px 10px;border:1px solid var(--line);border-radius:4px;font-size:.67rem;}
.implementation-node strong {font-size:.74rem;}
.implementation-node-muted {background:var(--theme-bronze-bg,#f2e2d1);border-color:var(--theme-bronze-border,#d9bea1);}
.implementation-node-gold {background:var(--theme-gold-bg,#f1e6b2);border-color:var(--theme-gold-border,#ddcd87);}
.implementation-vault {position:relative;padding:8px 10px;border:1px solid var(--theme-silver-border,#c9d1ca);border-radius:4px;background:var(--theme-silver-bg,#e6ebe7);}
.implementation-vault::before,.implementation-vault::after {content:"";position:absolute;left:50%;width:1px;height:8px;background:var(--theme-connector,#91a575);}
.implementation-vault::before {bottom:100%;}
.implementation-vault::after {top:100%;}
.implementation-vault>p {font-size:.72rem;font-weight:650;color:var(--ink);margin-bottom:4px;}
.implementation-vault-entities {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.implementation-vault-entities>span {position:relative;text-align:center;padding:6px 4px;border:1px solid var(--line);border-radius:4px;background:var(--theme-surface,#fff);font-size:.76rem;font-weight:650;}
.implementation-vault-entities>span:not(:last-child)::after {content:"";position:absolute;top:50%;left:100%;width:8px;height:1px;background:var(--theme-connector,#91a575);}
.implementation-vault-entities small {display:block;margin-top:2px;font-size:.67rem;font-weight:400;color:var(--muted);}
.implementation-node-note {display:block;text-align:center;margin-top:4px;font-size:.65rem;color:var(--muted);}

/* A shared model feeds separate tools without duplicating definitions. */
.implementation-model {display:flex;flex-direction:column;align-items:center;gap:3px;padding:11px 10px;text-align:center;background:var(--forest);color:#f8f8f3;border:1px solid var(--forest);border-radius:5px;}
.implementation-model svg {width:28px;height:24px;color:var(--lime);}
.implementation-model strong {font-size:.86rem;}
.implementation-model>span {font-size:.68rem;color:#d5e2d8;}
.implementation-branches {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;position:relative;margin-top:7px;}
.implementation-branches::before {content:"";position:absolute;height:8px;width:50%;left:25%;bottom:100%;border-top:1px solid var(--theme-connector,#91a575);border-left:1px solid var(--theme-connector,#91a575);border-right:1px solid var(--theme-connector,#91a575);}
.implementation-branches::after {content:"";position:absolute;height:7px;left:50%;width:1px;bottom:calc(100% + 8px);background:var(--theme-connector,#91a575);}
.implementation-branches>div {display:flex;flex-direction:column;gap:2px;align-items:center;text-align:center;padding:7px 8px;background:var(--theme-surface,#fff);border:1px solid var(--line);border-radius:4px;}
.implementation-branches strong {font-size:.8rem;}
.implementation-branches span {font-size:.67rem;color:var(--muted);}

/* Ground a business question in prepared context and permissions. */
.implementation-context {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.implementation-context>div {display:flex;flex-direction:column;gap:2px;padding:6px 8px;text-align:center;background:var(--theme-surface,#fff);border:1px solid var(--line);border-radius:4px;}
.implementation-context strong {font-size:.74rem;}
.implementation-context span {font-size:.66rem;color:var(--muted);}
.implementation-agent {position:relative;display:grid;grid-template-columns:25px minmax(0,1fr);gap:2px 9px;align-items:center;padding:6px 12px;border:1px solid var(--forest);border-radius:5px;background:var(--forest);color:#f8f8f3;}
.implementation-agent::before {content:"";position:absolute;left:50%;bottom:100%;height:8px;width:1px;background:var(--theme-connector,#91a575);}
.implementation-agent svg {grid-row:1/3;width:25px;height:25px;color:var(--lime);}
.implementation-agent strong {font-size:.81rem;}
.implementation-agent>span {font-size:.66rem;color:#d5e2d8;}
.implementation-question {display:flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--line);border-radius:4px 4px 4px 0;background:var(--theme-surface,#fff);font-size:.74rem;font-weight:500;}
.implementation-question>span {font-family:Georgia,serif;font-size:1.3rem;line-height:1;color:var(--theme-accent,var(--forest));}

/* Business needs shape extensions connected to the WhereScape product foundation. */
.wherescape-mini {gap:18px;padding:18px;}
.wherescape-needs {display:flex;align-items:center;gap:12px;padding:0 4px;}
.wherescape-needs>svg {width:30px;height:30px;flex-shrink:0;color:var(--theme-accent,var(--forest));}
.wherescape-needs strong {display:block;font-size:.91rem;}
.wherescape-needs div>span {display:block;margin-top:3px;font-size:.75rem;color:var(--muted);}
.wherescape-environment {position:relative;}
.wherescape-environment::before {content:"";position:absolute;left:50%;bottom:100%;height:14px;border-left:1px solid var(--theme-connector,#91a575);}
.wherescape-environment::after {content:"";position:absolute;left:calc(50% - 3px);bottom:calc(100% + 2px);width:6px;height:6px;border-bottom:1px solid var(--theme-connector,#91a575);border-right:1px solid var(--theme-connector,#91a575);transform:rotate(45deg);}
.wherescape-product {display:grid;grid-template-columns:34px minmax(0,1fr);gap:3px 12px;align-items:center;padding:12px 14px;border:1px solid var(--theme-connector,#91a575);border-radius:8px;background:var(--forest);color:#f8f8f3;}
.wherescape-product>svg {grid-row:1/3;width:34px;height:34px;color:var(--lime);}
.wherescape-product strong {font-size:1.12rem;}
.wherescape-product strong>span {display:inline-block;margin-left:7px;font-size:.75rem;font-weight:400;color:#d5e2d8;}
.wherescape-product p {margin-top:2px;font-size:.75rem;color:#d5e2d8;}
.wherescape-foundation-label {grid-column:2;font-size:.56rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--lime);}
.wherescape-extensions {position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;list-style:none;margin:24px 0 0;padding:0;}
.wherescape-extensions::before {content:"";position:absolute;bottom:calc(100% + 12px);left:50%;height:12px;border-left:1px solid var(--theme-connector,#91a575);}
.wherescape-extensions::after {content:"";position:absolute;bottom:100%;left:calc((100% - 20px) / 6);right:calc((100% - 20px) / 6);height:12px;border:1px solid var(--theme-connector,#91a575);border-bottom:0;border-radius:3px 3px 0 0;}
.wherescape-extensions li {position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:15px 8px 10px;text-align:center;border:1px solid var(--line);border-radius:6px;background:var(--theme-surface,#fff);}
.wherescape-extensions li>svg {width:26px;height:26px;color:var(--theme-accent,var(--forest));}
.wherescape-extensions strong {font-size:.78rem;line-height:1.35;}
.wherescape-extensions li>span:not(.wherescape-extension-port) {font-size:.75rem;line-height:1.4;color:var(--muted);}
.wherescape-extensions .wherescape-extension-port {position:absolute;z-index:1;top:-9px;left:calc(50% - 8px);display:grid;place-items:center;width:16px;height:16px;border:1px solid var(--theme-connector,#91a575);border-radius:50%;background:var(--theme-surface,#fff);color:var(--theme-accent,var(--forest));font-size:.85rem;line-height:1;}
.wherescape-extensions li:nth-child(2)::before {content:"";position:absolute;left:50%;bottom:100%;height:12px;border-left:1px solid var(--theme-connector,#91a575);}

/* Concise captions and 44px controls share the same content flow. */
.expertise-caption {position:static;min-width:0;min-height:165px;padding:13px 16px 8px;background:var(--theme-surface,#fff);border:0;border-radius:0;box-shadow:none;}
.expertise-caption .expertise-caption-index {color:var(--theme-quiet,var(--muted));font-size:.58rem;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin:0 0 7px;}
.expertise-caption h2 {font-size:1.4rem;line-height:1.2;letter-spacing:-.035em;}
.expertise-caption h2+p {font-size:.78rem;line-height:1.55;margin-top:8px;}
.expertise-slide-link {display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin-top:3px;color:var(--theme-accent,var(--forest));font-size:.73rem;font-weight:650;text-decoration:none;line-height:1.4;}
.expertise-slide-link:hover {text-decoration:underline;}
.expertise-slide-link>span {font-size:1.05rem;flex-shrink:0;}
.expertise-controls {order:2;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:0 4px;padding:4px 12px;border-top:1px solid var(--line);}
.expertise-controls button {display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:5px;color:var(--theme-accent,var(--forest));background:transparent;}
.expertise-controls button:hover {background:var(--theme-hover,#e6edda);}
.expertise-navigation {display:contents;}
.expertise-rotation {position:relative;grid-column:2;grid-row:2;justify-self:center;width:44px;font-size:.85rem;line-height:1;}
.expertise-rotation [data-slideshow-rotation-label] {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.expertise-arrow {grid-row:2;font-size:1.15rem;}
.expertise-arrow:first-child {grid-column:1;}
.expertise-arrow:last-child {grid-column:3;}
.expertise-dots {grid-column:1/-1;grid-row:1;display:flex;align-items:center;justify-content:center;min-width:0;}
.expertise-dots button {flex:0 0 44px;}
.expertise-dots button>span {display:block;height:6px;width:6px;border-radius:50%;background:var(--theme-dot,#8b9b85);transition:width .2s,background .2s;}
.expertise-dots button[aria-current=true]>span {width:20px;border-radius:4px;background:var(--theme-accent,var(--forest));}

@container expertise (min-width:400px) {
    .expertise-controls {grid-template-columns:44px 44px minmax(220px,1fr) 44px;}
    .expertise-rotation {grid-column:1;grid-row:1;}
    .expertise-arrow:first-child {grid-column:2;grid-row:1;}
    .expertise-dots {grid-column:3;grid-row:1;}
    .expertise-arrow:last-child {grid-column:4;grid-row:1;}
}
@container expertise (max-width:359px) {
    .expertise-topline {padding-inline:13px;letter-spacing:.06em;}
    .implementation-visual {padding:12px;}
    .implementation-vault {padding-inline:7px;}
    .implementation-vault-entities {gap:5px;}
    .implementation-vault-entities>span {padding-inline:3px;}
    .implementation-vault-entities>span:not(:last-child)::after {width:6px;}
    .implementation-context>div {padding-inline:5px;}
    .expertise-caption {padding-inline:13px;}
    .expertise-caption h2 {font-size:1.25rem;}
    .expertise-controls {padding-inline:10px;}
}
@container expertise (max-width:399px) {
    .architecture-overview {--overview-first:50%;padding:13px 12px 0;}
    .overview-heading h2 {font-size:1.25rem;}
    .overview-medallion {grid-template-columns:minmax(0,1fr);gap:12px;}
    .overview-stage {display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;padding:7px 10px;}
    .overview-stage-heading {gap:6px;margin:0;}
    .overview-stage-heading svg {width:22px;height:22px;}
    .overview-stage:not(:last-child)::after {left:50%;top:100%;width:0;height:12px;border-top:0;border-left:1px solid var(--theme-connector,#91a575);}
    .overview-stage:not(:last-child)::before {left:calc(50% - 3px);top:calc(100% + 6px);transform:rotate(135deg);}
    .overview-model {margin-top:14px;}
    .overview-model::before {height:14px;}
    .overview-outcome {grid-template-columns:minmax(0,1fr);justify-items:center;gap:3px;padding:8px 4px;text-align:center;}
    .overview-outcome svg {grid-row:auto;}
    .wherescape-mini {padding:14px 12px;}
    .wherescape-extensions {grid-template-columns:minmax(0,1fr);gap:10px;margin-top:14px;padding-left:16px;}
    .wherescape-extensions::before {left:0;bottom:0;top:-14px;height:auto;}
    .wherescape-extensions::after {left:0;right:50%;bottom:calc(100% + 14px);height:0;border:0;border-top:1px solid var(--theme-connector,#91a575);border-radius:0;}
    .wherescape-extensions li {display:grid;grid-template-columns:26px minmax(0,1fr);gap:2px 10px;align-items:center;padding:8px 10px;text-align:left;}
    .wherescape-extensions li>svg {grid-row:1/3;}
    .wherescape-extensions .wherescape-extension-port {left:-9px;top:calc(50% - 8px);}
    .wherescape-extensions li::before,.wherescape-extensions li:nth-child(2)::before {left:-17px;bottom:50%;width:16px;height:0;border-left:0;border-top:1px solid var(--theme-connector,#91a575);}
    .wherescape-extensions li::before {content:"";position:absolute;}
}
@media(max-width:950px) {
    .hero-visual.expertise-slideshow {width:100%;max-width:640px;justify-self:center;}
}
@media(prefers-reduced-motion:reduce) {
    .expertise-slide.is-active {animation:none;}
    .expertise-dots button>span {transition:none;}
}
@media print {
    .hero-visual.expertise-slideshow {container-type:normal;height:auto;max-height:none;aspect-ratio:auto;break-inside:avoid;}
    .expertise-controls {display:none!important;}
    .is-enhanced .expertise-slides,.is-enhanced .expertise-slide {display:block;}
    .is-enhanced .expertise-slide[hidden] {display:none!important;}
    .implementation-visual,.expertise-caption {min-height:0;}
    .overview-model,.implementation-model,.implementation-agent {background:#fff;color:#17362e;border-color:#9da797!important;}
    .overview-model>span,.implementation-model>span,.implementation-agent>span {color:#586860;}
    .implementation-model svg,.implementation-agent svg {color:#17362e;}
    .wherescape-product {background:#fff;color:#17362e;border-color:#9da797;}
    .wherescape-product p,.wherescape-product strong>span {color:#586860;}
    .wherescape-product>svg,.wherescape-foundation-label {color:#17362e;}
    .expertise-slide.is-active {animation:none;}
}
