/* Isolated render-only visuals. Parent controls navigation, focus, media, and timing. */
.ts-approach{--tsa-accent:#7bafd4;--tsa-bright:#c2d9e8;position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/10;width:100%;background:#091723;color:#f0ece0;font-family:Arial,Helvetica,sans-serif;border-radius:inherit;contain:layout paint}
.ts-approach *{box-sizing:border-box}.tsa-scene,.tsa-shade{position:absolute;inset:0}.tsa-scene{transform-origin:50% 66%;will-change:transform;transition:transform 2.1s cubic-bezier(.45,0,.23,1),filter 2.1s ease}.tsa-illustration,.tsa-media{display:block;width:100%;height:100%;object-fit:cover}.tsa-illustration{position:absolute;inset:0}.tsa-media{position:absolute;inset:0}.tsa-shade{z-index:1;pointer-events:none;background:linear-gradient(180deg,#020a1355,transparent 30%,transparent 58%,#020a1377)}
.tsa-stage-marker,.tsa-brand,.tsa-direction,.tsa-provenance{position:absolute;z-index:2;pointer-events:none;transition:opacity .4s ease}.tsa-stage-marker{top:5%;left:4.6%;display:flex;align-items:center;gap:12px;font-size:clamp(8px,.77vw,11px);letter-spacing:.18em;font-weight:600;color:#d6e0e3}.tsa-stage-marker>span{color:var(--tsa-bright)}.tsa-stage-marker>i{display:block;width:29px;height:1px;background:var(--tsa-accent)}.tsa-brand{left:4.6%;bottom:8%;display:flex;gap:15px;align-items:center;max-width:75%;text-shadow:0 2px 15px #000}.tsa-brand>img{height:clamp(32px,4.2vw,58px);width:clamp(32px,4.2vw,58px);object-fit:contain;filter:drop-shadow(0 2px 6px #0008)}.tsa-brand>div{display:flex;flex-direction:column;gap:7px}.tsa-brand span{font-size:clamp(9px,.85vw,12px);letter-spacing:.18em;text-transform:uppercase;color:var(--tsa-bright)}.tsa-brand strong{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(21px,2.8vw,41px);line-height:1.1;letter-spacing:-.025em}.tsa-direction{left:50%;top:82%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:clamp(6px,.65vw,9px);letter-spacing:.2em;color:#eee4ca;opacity:.78;white-space:nowrap}.tsa-direction>span{display:block;width:8px;height:8px;border-top:1px solid var(--tsa-bright);border-left:1px solid var(--tsa-bright);transform:rotate(45deg)}.tsa-provenance{bottom:2.6%;left:4.6%;font-size:clamp(7px,.7vw,10px);letter-spacing:.07em;color:#d0d7d7;opacity:.8}.ts-approach--tunnel .tsa-scene{transform-origin:50% 52%}.ts-approach--tunnel .tsa-direction{top:79%}.ts-approach.is-entering .tsa-scene{transform:scale(2.55);filter:brightness(.2)}.ts-approach--tunnel.is-entering .tsa-scene{transform:scale(2.7);filter:brightness(.18)}.ts-approach.is-entering .tsa-stage-marker,.ts-approach.is-entering .tsa-brand,.ts-approach.is-entering .tsa-direction,.ts-approach.is-entering .tsa-provenance{opacity:0}.ts-approach.is-arriving .tsa-scene{animation:tsa-arrive 1.2s ease-out both}.ts-approach.is-arriving .tsa-brand{animation:tsa-copy-in .8s .3s both}@keyframes tsa-arrive{from{transform:scale(.96);filter:brightness(.32)}to{transform:scale(1);filter:brightness(1)}}@keyframes tsa-copy-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:620px){.ts-approach{aspect-ratio:4/3}.tsa-illustration{width:100%;height:100%}.tsa-brand{bottom:10%;max-width:89%;gap:10px}.tsa-brand strong{font-size:21px}.tsa-brand span{font-size:8px}.tsa-brand>div{gap:5px}.tsa-direction{display:none}.tsa-stage-marker{font-size:7px;gap:8px}.tsa-stage-marker>i{width:18px}.tsa-provenance{font-size:7px;bottom:3%}}
@media(prefers-reduced-motion:reduce){.tsa-scene,.tsa-stage-marker,.tsa-brand,.tsa-direction,.tsa-provenance{transition:none!important;animation:none!important;will-change:auto}.ts-approach.is-entering .tsa-scene{transform:none;filter:none}.ts-approach.is-entering .tsa-stage-marker,.ts-approach.is-entering .tsa-brand,.ts-approach.is-entering .tsa-direction,.ts-approach.is-entering .tsa-provenance{opacity:1}}

/* The HTML caption replaces the standalone-SVG provenance caption. */
.ts-approach .tsa-svg-provenance{display:none}
.ts-approach--box .tsa-direction,.ts-approach--office .tsa-direction{display:none}.ts-approach--box .tsa-scene,.ts-approach--office .tsa-scene{transform-origin:50% 50%}
