/* The tour stage is artwork only. Navigation and narration belong to the player. */
.tour-art{position:relative;isolation:isolate;width:100%;height:100%;overflow:hidden;--accent:#efbe79;--magnet-offset:0px;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
.tour-art[data-interactive]{cursor:pointer}
.tour-art[data-interactive=magnet]{cursor:grab}
.tour-art.is-dragging{cursor:grabbing}
.tour-art:focus-visible{outline:1px solid #e6c392;outline-offset:-5px}
.tour-art-vaccines{--accent:#a2ddc5}
.ts-atmosphere{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 48%,#9f745323,transparent 63%);pointer-events:none}
.tour-art-vaccines .ts-atmosphere{background:radial-gradient(ellipse at 50% 48%,#4289772b,transparent 63%)}
.tour-art-power-grid .ts-atmosphere{background:radial-gradient(ellipse at 50% 60%,#f1a0511c,transparent 61%)}
.tour-art-svg{display:block;position:absolute;top:0;left:50%;transform:translateX(-50%);width:100%;height:100%;overflow:visible}
.tour-art-svg *{vector-effect:non-scaling-stroke}
.ts-camera{transform-origin:500px 355px;animation:ts-camera-enter 1600ms cubic-bezier(.16,.75,.22,1) both}
.ts-ground-shadow{fill:#000;opacity:.2;filter:blur(13px)}
.ts-dust-point{fill:#f0d19b;opacity:.27;animation:ts-dust 9s ease-in-out var(--delay,0s) infinite alternate}
.ts-metal,.ts-metal-light,.ts-lens-metal{fill:var(--metal);stroke:#a8b3af;stroke-width:1.1}
.ts-metal-light{stroke:#c9d2c7}
.ts-gold,.ts-brass,.ts-copper,.ts-pin,.ts-contact{fill:var(--gold);stroke:#dfb678;stroke-width:1.3}
.ts-pin,.ts-contact{fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}
.ts-pinpoint{fill:#f6d49b}
.ts-line,.ts-wire{fill:none;stroke:#7d755d;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ts-wire{stroke:#b2905b;opacity:.52}
.ts-flow{fill:none;stroke:#ffe0a4;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3 17;animation:ts-flow 3.2s linear var(--delay,0s) infinite;filter:drop-shadow(0 0 4px #ffc27866)}
.ts-glow{fill:var(--glow);stroke:none;pointer-events:none}
.ts-breathe{animation:ts-breathe 4.8s ease-in-out var(--delay,0s) infinite}
.ts-arrive{animation:ts-arrive 1.5s cubic-bezier(.16,.75,.22,1) var(--delay,0s) both}
.ts-draw{stroke-dasharray:100;stroke-dashoffset:100;animation:ts-draw 2.7s cubic-bezier(.2,.75,.2,1) var(--delay,0s) both}
.ts-glass{fill:var(--glass);stroke:#b3ded18c;stroke-width:1.6}
.ts-glass-shine{fill:none;stroke:#daf5e9;stroke-width:3;stroke-linecap:round;opacity:.55}
.ts-metal-shine{fill:none;stroke:#eaf0d5;stroke-width:2;opacity:.37}
.ts-bulb-base{fill:var(--metal);stroke:#bac7bf;stroke-width:1}
.ts-dark-line{fill:none;stroke:#172024;stroke-width:3}
.ts-filament{fill:none;stroke:#ffd693;stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 5px #ffa12a)}
.ts-lamp{animation:ts-lamp 6s ease-in-out infinite}
.ts-switch-arm{fill:none;stroke:#f0c991;stroke-width:5;stroke-linecap:round;transform-box:fill-box;transform-origin:0 100%;animation:ts-switch 7s ease-in-out var(--delay,0s) infinite}
.ts-battery{fill:var(--gold);stroke:#efd396;stroke-width:2}
.ts-logic-lamp .ts-lamp{animation:ts-logic-lamp 7s ease-in-out infinite}
.ts-logic-lamp .ts-glow{animation:ts-logic-lamp 7s ease-in-out infinite}
.ts-silicon,.ts-silicon-top{fill:var(--silicon);stroke:#718199;stroke-width:1.5}
.ts-silicon-side{fill:#151f2d;stroke:#718199;stroke-width:1.2}
.ts-silicon-front{fill:#23364b;stroke:#718199;stroke-width:1.2}
.ts-lattice{fill:#a4bbd4;opacity:.26}
.ts-junction-p{fill:#b49bd241;stroke:#d2b0eb;stroke-width:1}
.ts-junction-n{fill:#ac864239;stroke:#eed39a;stroke-width:1}
.ts-boundary{fill:none;stroke:#e1e7f0;stroke-width:2;opacity:.8}
.ts-hole{fill:#282a42;stroke:#e6baf7;stroke-width:1.7}
.ts-electron{fill:#fff0c1;filter:drop-shadow(0 0 4px #fff0c188)}
.ts-carrier{animation:ts-carrier 4.8s ease-in-out var(--delay,0s) infinite alternate}
.ts-transistor-shell{fill:var(--metal);stroke:#b2bcb5;stroke-width:1.2}
.ts-transistor-window{fill:#0d1921;stroke:#adbaad;stroke-width:1.3}
.ts-device-mark{fill:none;stroke:#d8bd80;stroke-width:2.6;stroke-linecap:round}
.ts-signal{fill:none;stroke:#ffdb96;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 8px #ffcf7355)}
.ts-signal-change{transform-box:fill-box;transform-origin:center;animation:ts-signal 6s ease-in-out infinite}
.ts-signal-output{stroke-width:4.5;animation-delay:.3s}
[data-interactive=signal].is-engaged .ts-signal-change{animation:none;transform:scaleY(.3)}
[data-interactive=signal].is-engaged .ts-output-wire.ts-flow{animation-duration:7s;opacity:.5}
.ts-crystal-top{fill:#4a5c74;stroke:#9faab7;stroke-width:1.2}
.ts-crystal-front{fill:var(--silicon);stroke:#8b9bb2;stroke-width:1.2}
.ts-hot-zone{fill:#fbc592;stroke:#ffe3ba;stroke-width:1;filter:drop-shadow(0 0 13px #ff9f3c)}
.ts-refine{animation:ts-refine 9s linear infinite}
.ts-impurity{fill:#f8c16d}
.ts-purity{animation:ts-purity 9s linear var(--delay,0s) infinite}
.ts-oxide{fill:#74b7c6;stroke:#b4e7f0;stroke-width:1}
.ts-layer-land{animation:ts-layer 6.5s ease-in-out infinite}
.ts-process-ray{fill:none;stroke:#ffdb96;stroke-width:2;stroke-linecap:round;stroke-dasharray:3 11}
.ts-falling-light{animation:ts-falling-light 2s linear var(--delay,0s) infinite}
.ts-doped{fill:#b990625c;stroke:#f0cd93;stroke-width:1}
.ts-doping{animation:ts-doping 6.5s ease-in-out infinite}
.ts-wafer{fill:#172a39;stroke:#adbdc9;stroke-width:1.7}
.ts-wafer-inner{fill:#2c3347;stroke:#626f89;stroke-width:1}
.ts-mask{fill:#283a48;stroke:#b5c4ca;stroke-width:1.5}
.ts-mask-window{fill:#e7d0aa;stroke:#f6dfb6;stroke-width:1}
.ts-mask-hover{animation:ts-mask 8s ease-in-out infinite}
.ts-light-cone{fill:var(--beam);stroke:none}
.ts-ray{fill:none;stroke:#ffe0a632;stroke-width:1}
.ts-exposure{animation:ts-exposure 7s ease-in-out infinite}
.ts-etched{fill:#d1aa6e;stroke:#ffdc9c;stroke-width:1}
.ts-print{animation:ts-print 7s ease-in-out var(--delay,0s) infinite}
.ts-device{fill:#0d1723;stroke:#a2a4bb;stroke-width:1.2}
.ts-chip-core{fill:#253244;stroke:#baa989;stroke-width:1.4}
.ts-field{fill:none;stroke:#ffd498;stroke-width:1.5;stroke-dasharray:3 5}
.ts-field-pulse{animation:ts-field-pulse 4s ease-in-out var(--delay,0s) infinite}
.ts-channel{fill:none;stroke:#eedbad;stroke-width:7;filter:drop-shadow(0 0 6px #ffd77a)}
.ts-channel-open{animation:ts-channel 6s ease-in-out infinite}
.ts-channel-flow{stroke:#fff8e0;stroke-width:2}
.ts-alignment{fill:none;stroke:#f7d291;stroke-width:1.5;stroke-dasharray:5 5;opacity:.7}
.ts-align-left{animation:ts-align-left 7s ease-in-out infinite}
.ts-align-right{animation:ts-align-right 7s ease-in-out infinite}
.ts-ceramic{fill:#cdc8b3;stroke:#e6dfbd;stroke-width:2}
.ts-micro-block{fill:#66787d;stroke:#9ea9a5;stroke-width:.6}
.ts-compute{animation:ts-compute 3s ease-in-out var(--delay,0s) infinite}
.ts-bond-wire{fill:none;stroke:#f5d291;stroke-width:1.2}
.ts-cell-membrane{fill:var(--cell);stroke:#a5e3be;stroke-width:2.7}
.ts-cell-interior{fill:#3b776523;stroke:#9bcc9c36;stroke-width:1}
.ts-cell-nucleus{fill:#7abc9e66;stroke:#afe4b6;stroke-width:1}
.ts-cell-detail{fill:#c8efc190}
.ts-cell-breathe{transform-box:fill-box;transform-origin:center;animation:ts-cell 7s ease-in-out var(--delay,0s) infinite}
.ts-antibody{fill:none;stroke:#f0d29a;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.ts-virus-body{fill:#60918955;stroke:#bce1c1;stroke-width:2}
.ts-virus-spike{fill:none;stroke:#8dc4ab;stroke-width:2.2;stroke-linecap:round}
.ts-virus-detail{fill:#b5d78e66;stroke:#ccdfa766;stroke-width:.7}
.ts-antibody-arrive{animation:ts-antibody 7.5s ease-in-out var(--delay,0s) infinite}
.ts-encounter{animation:ts-encounter 8s ease-in-out infinite}
.ts-encounter-reverse{animation:ts-encounter-reverse 8s ease-in-out 1.5s infinite}
.ts-immunity-ring{fill:none;stroke:#b6efc7;stroke-width:2;stroke-dasharray:3 10;opacity:.4}
.ts-protection{transform-origin:500px 347px;animation:ts-protection 8s ease-in-out infinite}
.ts-microscope-arm{fill:none;stroke:#9c986c;stroke-width:30;stroke-linecap:round}
.ts-stage-metal{fill:none;stroke:#c6cfb9;stroke-width:11}
.ts-slide{fill:none;stroke:#e6f5e8;stroke-width:5}
.ts-microscope-beam{fill:#b7e6ce26;stroke:#c3e6c93d;stroke-width:1}
.ts-dark-disc{fill:#202c2d;stroke:#bfba9b;stroke-width:1}
.ts-magnifier{fill:#173633;stroke:#c6d7c5;stroke-width:5}
.ts-lens-handle{fill:none;stroke:#d3b37c;stroke-width:14;stroke-linecap:round}
.ts-lens-float{animation:ts-lens 8s ease-in-out infinite}
.ts-liquid{fill:#96cfb957;stroke:#a8e5c19c;stroke-width:1}
.ts-liquid-bubble{fill:#d0edc359}
.ts-person-head{fill:#d2d5b5}
.ts-person-body{fill:none;stroke:#98b8a9;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.ts-person-light{animation:ts-person-light 6s ease-in-out var(--delay,0s) infinite}
.ts-community-ring,.ts-immune-orbit{fill:none;stroke:#aecaa681;stroke-width:1.3;stroke-dasharray:2 9}
.ts-ring-grow{transform-origin:500px 348px;animation:ts-ring 7s ease-in-out infinite}
.ts-dish{fill:#376f694f;stroke:#bbddd2;stroke-width:2}
.ts-dish-side{fill:#82b6a823;stroke:#8dc1b994;stroke-width:1.2}
.ts-tissue{fill:#6bb49a45;stroke:#b4e2ad;stroke-width:1.4}
.ts-culture-close{transform-origin:500px 354px;transition:transform 1.2s cubic-bezier(.16,.75,.22,1)}
[data-interactive=lens].is-engaged .ts-culture-close{transform:scale(1.48)}
.ts-orbit{fill:none;stroke:#9ab9a03d;stroke-width:1;stroke-dasharray:3 11}
.ts-type-halo{fill:#8cddb713;stroke:#afd5b545;stroke-width:1}
.ts-type-1 .ts-virus-body{fill:#b0a47744;stroke:#efdab4}
.ts-type-1 .ts-virus-spike{stroke:#d2b986}
.ts-type-2 .ts-virus-body{fill:#8598b63b;stroke:#bdcee7}
.ts-type-2 .ts-virus-spike{stroke:#9ebadb}
.ts-type-float{animation:ts-type 7s ease-in-out var(--delay,0s) infinite alternate}
.ts-inactivated{opacity:.8}
.ts-comparison-axis{fill:none;stroke:#b5c6ae;stroke-width:1;stroke-dasharray:3 11;opacity:.28}
.ts-cohort-edge{fill:none;stroke:#b3d8be;stroke-width:1;opacity:.4}
.ts-comparison-scan{fill:none;stroke:#e2ddad;stroke-width:1.5;filter:drop-shadow(0 0 9px #d4e9ab)}
.ts-study-scan{animation:ts-study 8s ease-in-out infinite}
.ts-evidence-point{fill:#c5e2bc}
.ts-evidence-gather{animation:ts-evidence 7s ease-in-out var(--delay,0s) infinite}
.ts-paper{fill:#bdc7b9;stroke:#e0e6cb;stroke-width:1.6}
.ts-paper-fold{fill:#6b8b7b;stroke:#dce9c9;stroke-width:1}
.ts-document-line{fill:none;stroke:#496b60;stroke-width:3;stroke-linecap:round}
.ts-finding{fill:none;stroke:#376654;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.ts-conveyor{fill:none;stroke:#b6c0b0;stroke-width:4}
.ts-conveyor-base{fill:none;stroke:#59665f;stroke-width:14}
.ts-roller{fill:#182a28;stroke:#a5c2b5;stroke-width:2}
.ts-production-vial{animation:ts-production 7s linear var(--delay,0s) infinite}
.ts-inspection-head{fill:var(--metal);stroke:#b8c9bd;stroke-width:1.2}
.ts-inspection-light{fill:#b4e2b520;stroke:#b7f0c525;stroke-width:1}
.ts-inspect{animation:ts-inspect 3.5s ease-in-out infinite}
.ts-street-ground,.ts-city-ground{fill:#152329;stroke:none}
.ts-building{fill:#26353b;stroke:#b2b1a078;stroke-width:1.2}
.ts-building-roof{fill:#364246;stroke:#bcb7a775;stroke-width:1.2}
.ts-window{fill:#ffe1a5;opacity:.14}
.ts-window-on{animation:ts-window 7s ease-in-out var(--delay,0s) infinite;filter:drop-shadow(0 0 4px #ffc56b55)}
.ts-street{fill:none;stroke:#9dafa54f;stroke-width:2}
.ts-community-path{fill:none;stroke:#c9eab8;stroke-width:2;opacity:.65}
.ts-delivery-arrive{animation:ts-delivery 8s ease-in-out infinite}
.ts-wood{fill:#53433a;stroke:#aa875e;stroke-width:1.5}
.ts-zinc{fill:var(--metal);stroke:#c5c9b9;stroke-width:1}
.ts-battery-edge{fill:none;stroke:#c7b286;stroke-width:1.5}
.ts-battery-rod{fill:none;stroke:#6f5d4d;stroke-width:10}
.ts-battery-crossbar{fill:none;stroke:#b1a082;stroke-width:8}
.ts-spark{fill:none;stroke:#fff2c2;stroke-width:3;filter:drop-shadow(0 0 7px #ffcf58)}
.ts-compass-case{fill:var(--gold);stroke:#efdbb6;stroke-width:1.5}
.ts-compass-face{fill:#d2caba;stroke:#6c675b;stroke-width:3}
.ts-compass-tick{fill:none;stroke:#635f53;stroke-width:1.4}
.ts-compass-cardinal{fill:none;stroke:#423e35;stroke-width:2}
.ts-needle-north{fill:#a95c48;stroke:#743f37;stroke-width:.8}
.ts-needle-south{fill:#d4d4c9;stroke:#68695e;stroke-width:.8}
.ts-needle{transform-origin:500px 371px;animation:ts-needle 7s ease-in-out infinite}
[data-interactive=current].is-engaged .ts-needle{animation:none;transform:rotate(-44deg)}
[data-interactive=current].is-engaged .ts-flow{animation-direction:reverse}
.ts-copper-wire{fill:none;stroke:#d6a16a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(1px 2px 1px #1c100d)}
.ts-magnetic-field{fill:none;stroke:#c8cda16b;stroke-width:1.1;stroke-dasharray:4 6}
.ts-magnet-north{fill:#b15c4f;stroke:#de9080;stroke-width:1.2}
.ts-magnet-south{fill:#abbab8;stroke:#d9e0d0;stroke-width:1.2}
.ts-magnet-shine{fill:none;stroke:#e5b8a3;stroke-width:2;opacity:.5}
.ts-moving-magnet{animation:ts-magnet 6s ease-in-out infinite}
[data-interactive=magnet].is-engaged .ts-moving-magnet,[data-interactive=magnet].is-dragging .ts-moving-magnet{animation:none;transform:translateX(var(--magnet-offset));transition:transform .5s ease}
[data-interactive=magnet].is-dragging .ts-moving-magnet{transition:none}
[data-interactive=magnet].is-engaged .ts-flow{opacity:.15;animation-play-state:paused}
[data-interactive=magnet].is-engaged .ts-bulb .ts-filament,[data-interactive=magnet].is-engaged .ts-bulb .ts-glow{animation:none;opacity:.2}
.ts-coil-foot{fill:none;stroke:#aca78d;stroke-width:9;stroke-linecap:round}
.ts-machine-frame{fill:none;stroke:#889492;stroke-width:19}
.ts-horseshoe{fill:none;stroke:#b97b59;stroke-width:34}
.ts-generator-disc{fill:var(--gold);stroke:#ecd0a0;stroke-width:1.7}
.ts-disc-spoke{fill:none;stroke:#776146;stroke-width:1.7}
.ts-generator-hub{fill:var(--metal);stroke:#d5d6c6;stroke-width:2}
.ts-shaft{fill:none;stroke:#b6bdae;stroke-width:8;stroke-linecap:round}
.ts-spin{transform-origin:500px 350px;animation:ts-spin 8s linear infinite}
.ts-disc-rotor{transform-origin:500px 354px;animation-duration:6s}
.ts-cable{fill:none;stroke:#756f60;stroke-width:12}
.ts-light-ray{fill:none;stroke:#eed49b;stroke-width:1;opacity:.3}
.ts-brick{fill:#765a44;stroke:#b39465;stroke-width:1}
.ts-station-baseline{fill:none;stroke:#c4b490;stroke-width:4}
.ts-iron-core{fill:#38474b;fill-rule:evenodd;stroke:#9facab;stroke-width:1.6}
.ts-flux{stroke:#cadcc5;opacity:.65}
.ts-alternating-wave{fill:none;stroke:#ecd3a1;stroke-width:2;opacity:.8}
.ts-motor-housing{fill:var(--metal);stroke:#b7bfb9;stroke-width:2}
.ts-motor-inner{fill:#142126;stroke:#e0c194;stroke-width:1.5}
.ts-motor-coil{fill:#5a4134;stroke:#d3a775;stroke-width:1}
.ts-rotor{fill:#718186;stroke:#c7d2c5;stroke-width:2}
.ts-rotor-slot{fill:#172b2f;stroke:#a8bcad;stroke-width:1}
.ts-rotating-field{fill:none;stroke:#ffd18d;stroke-width:4;stroke-dasharray:25 155;filter:drop-shadow(0 0 7px #f5ba6588)}
.ts-field-rotate{transform-origin:500px 350px;animation:ts-spin 5s linear infinite}
.ts-hill-far{fill:#263b432e;stroke:#6c929327;stroke-width:1}
.ts-hill-near{fill:#253e3c57;stroke:#83a29427;stroke-width:1}
.ts-tower{fill:none;stroke:#9aa69e;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.ts-land-contour{fill:none;stroke:#789a7440;stroke-width:1}
.ts-river{fill:#426e7866;stroke:#99c5bb6b;stroke-width:1}
.ts-falls{fill:#8bbbb980;stroke:#c2ded69c;stroke-width:1}
.ts-water-streak{fill:none;stroke:#d9efdfb0;stroke-width:3;stroke-dasharray:20 45;stroke-linecap:round}
.ts-water-fall{animation:ts-water 1.9s linear var(--delay,0s) infinite}
.ts-powerhouse-front{fill:#53625b;stroke:#bfb89a;stroke-width:1.2}
.ts-turbine{fill:#172f33;stroke:#9fc7bc;stroke-width:2}
.ts-turbine-blade{fill:#73968a;stroke:#bbdaca;stroke-width:1}
.ts-water-turbine{transform-origin:427px 426px;animation-duration:5s}
.ts-water-foam{fill:none;stroke:#c1ddd387;stroke-width:10;stroke-linecap:round}
.ts-city-light{fill:#ffe4a3}

@keyframes ts-camera-enter{from{transform:translateY(16px) scale(.9);opacity:.1}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes ts-dust{from{opacity:.1;transform:translateY(0)}to{opacity:.4;transform:translateY(-15px)}}
@keyframes ts-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes ts-flow{to{stroke-dashoffset:-100}}
@keyframes ts-breathe{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes ts-draw{to{stroke-dashoffset:0}}
@keyframes ts-lamp{0%,100%{opacity:.48}20%,75%{opacity:1}}
@keyframes ts-switch{0%,14%,92%,100%{transform:rotate(-29deg)}29%,77%{transform:rotate(0)}}
@keyframes ts-logic-lamp{0%,36%,89%,100%{opacity:.08}49%,78%{opacity:1}}
@keyframes ts-carrier{from{transform:translate(0,0);opacity:.4}to{transform:translate(10px,3px);opacity:1}}
@keyframes ts-signal{0%,100%{transform:scaleY(.22);opacity:.5}45%,66%{transform:scaleY(1);opacity:1}}
@keyframes ts-refine{0%,8%{transform:translate(0,0)}89%,100%{transform:translate(350px,-35px)}}
@keyframes ts-purity{0%,12%{transform:translateX(0);opacity:.9}80%,100%{transform:translateX(var(--travel));opacity:.5}}
@keyframes ts-layer{0%,7%{transform:translateY(-56px);opacity:.2}29%,100%{transform:translateY(0);opacity:1}}
@keyframes ts-falling-light{to{stroke-dashoffset:-56}}
@keyframes ts-doping{0%,27%{opacity:0}61%,100%{opacity:1}}
@keyframes ts-mask{0%,100%{transform:translateY(-12px)}50%{transform:translateY(3px)}}
@keyframes ts-exposure{0%,14%,89%,100%{opacity:.13}34%,65%{opacity:1}}
@keyframes ts-print{0%,21%{opacity:.12}55%,100%{opacity:1}}
@keyframes ts-field-pulse{0%,100%{opacity:.12}50%{opacity:.8}}
@keyframes ts-channel{0%,100%{opacity:.1;stroke-width:2}42%,73%{opacity:1;stroke-width:8}}
@keyframes ts-align-left{0%,12%{transform:translateX(-42px)}36%,89%{transform:translateX(0)}100%{transform:translateX(-42px)}}
@keyframes ts-align-right{0%,12%{transform:translateX(42px)}36%,89%{transform:translateX(0)}100%{transform:translateX(42px)}}
@keyframes ts-compute{0%,100%{fill:#415267}40%,58%{fill:#d9b66e}}
@keyframes ts-cell{0%,100%{transform:scale(1)}50%{transform:scale(1.035,.98)}}
@keyframes ts-antibody{0%,100%{opacity:.28;transform:translateY(6px)}45%,75%{opacity:1;transform:translateY(-3px)}}
@keyframes ts-encounter{0%,100%{transform:translateX(-36px);opacity:.65}55%{transform:translateX(32px);opacity:1}72%{transform:translateX(8px);opacity:.75}}
@keyframes ts-encounter-reverse{0%,100%{transform:translateX(30px);opacity:.65}55%{transform:translateX(-25px);opacity:1}72%{transform:translateX(-5px);opacity:.75}}
@keyframes ts-protection{0%,100%{transform:scale(.92);opacity:.18}55%,80%{transform:scale(1.02);opacity:.75}}
@keyframes ts-lens{0%,100%{transform:translate(-7px,7px)}50%{transform:translate(7px,-7px)}}
@keyframes ts-person-light{0%,100%{opacity:.47}35%,70%{opacity:1}}
@keyframes ts-ring{0%{transform:scale(.86);opacity:0}45%{opacity:.5}100%{transform:scale(1.17);opacity:0}}
@keyframes ts-type{from{transform:translateY(6px)}to{transform:translateY(-9px)}}
@keyframes ts-study{0%,100%{transform:translateY(-29px);opacity:.4}48%,58%{transform:translateY(231px);opacity:1}}
@keyframes ts-evidence{0%,100%{transform:translate(0,0);opacity:.25}48%,75%{transform:translate(var(--dx),var(--dy));opacity:.95}}
@keyframes ts-production{0%{transform:translateX(-59px);opacity:.15}15%,82%{opacity:1}100%{transform:translateX(60px);opacity:.15}}
@keyframes ts-inspect{0%,100%{opacity:.15}45%,75%{opacity:1}}
@keyframes ts-window{0%,100%{opacity:.2}36%,85%{opacity:1}}
@keyframes ts-delivery{0%,100%{transform:translateX(-25px);opacity:.3}50%,77%{transform:translateX(13px);opacity:1}}
@keyframes ts-needle{0%,100%{transform:rotate(-29deg)}30%,72%{transform:rotate(34deg)}}
@keyframes ts-magnet{0%,100%{transform:translateX(-45px)}49%,57%{transform:translateX(114px)}}
@keyframes ts-spin{to{transform:rotate(360deg)}}
@keyframes ts-water{to{stroke-dashoffset:-130}}

.is-paused .tour-art *, .tour-art.is-paused *{animation-play-state:paused!important}
.tour-art.is-reduced-motion *, .is-reduced-motion .tour-art *{animation:none!important;transition:none!important;stroke-dashoffset:0!important}
.tour-art.is-reduced-motion .ts-flow{stroke-dasharray:2 15;opacity:.8}
.tour-art.is-reduced-motion .ts-window{opacity:.85}
@media(prefers-reduced-motion:reduce){.tour-art *{animation:none!important;transition:none!important;stroke-dashoffset:0!important}.tour-art .ts-window{opacity:.85}}
@media(max-width:700px){
 .tour-art-svg{width:170%;max-width:none}
 .ts-camera{transform-origin:500px 355px}
 .tour-art[data-scene="power-grid/distance"] .tour-art-svg,.tour-art[data-scene="power-grid/niagara"] .tour-art-svg,.tour-art[data-scene="power-grid/shared-grid"] .tour-art-svg,.tour-art[data-scene="vaccines/delivery"] .tour-art-svg{width:152%}
 .ts-ground-shadow{opacity:.12}
}
/* A paused tour still opens on a readable, fully assembled composition. */
.is-paused .tour-art .ts-camera,.tour-art.is-paused .ts-camera,.is-paused .tour-art .ts-arrive,.tour-art.is-paused .ts-arrive{animation:none!important;opacity:1;transform:none}
.is-paused .tour-art .ts-draw,.tour-art.is-paused .ts-draw{stroke-dashoffset:0}
[data-scene="power-grid/induction"] .ts-flow{animation:ts-flow 3.2s linear infinite,ts-induced 6s linear infinite}
[data-scene="power-grid/induction"] .ts-lamp,[data-scene="power-grid/induction"] .ts-bulb .ts-glow{animation:ts-induced 6s linear infinite}
[data-interactive=magnet].is-dragging .ts-flow{opacity:1;animation-play-state:running}
[data-interactive=magnet].is-dragging .ts-bulb .ts-filament,[data-interactive=magnet].is-dragging .ts-bulb .ts-glow{opacity:1}
@keyframes ts-induced{0%,47%,58%,100%{opacity:.15}12%,35%,72%,90%{opacity:1}}
/* Large foreground artifacts keep the demonstration legible from across the screen. */
.tour-art{--scene-scale:1.38}
.ts-camera{transform:scale(var(--scene-scale));transform-origin:500px 355px}
.is-paused .tour-art .ts-camera,.tour-art.is-paused .ts-camera{transform:scale(var(--scene-scale))}
@keyframes ts-camera-enter{from{transform:translateY(14px) scale(calc(var(--scene-scale) * .93));opacity:.25}to{transform:translateY(0) scale(var(--scene-scale));opacity:1}}
.ts-wood-top{fill:#77634c;stroke:#b09972;stroke-width:1.3}
.ts-wood-side{fill:#322920;stroke:#9a7c50;stroke-width:1.1}
.ts-switch-base{fill:#d0b681;stroke:#f2d59b;stroke-width:1.2}
.ts-transistor-base{fill:#907b59;stroke:#d0b27d;stroke-width:1.4}
.ts-germanium{fill:#414d64;stroke:#a9bbd0;stroke-width:1.6}
.ts-crystal-facet{fill:none;stroke:#8ba0bc;stroke-width:1.1}
.ts-contact-frame{fill:none;stroke:#b9ad8f;stroke-width:14;stroke-linecap:round}
.ts-point-wedge{fill:#d1be94;stroke:#e8d8b6;stroke-width:1.5}
.ts-gold-foil{fill:none;stroke:#ffcc73;stroke-width:5;stroke-linecap:round}
.ts-contact-point{fill:none;stroke:#fff0bd;stroke-width:2}
.ts-wire{opacity:.8;stroke:#c09f69}
.ts-flow{stroke:#ffe8b1;stroke-width:3.8}
.tour-art[data-scene="power-grid/niagara"],.tour-art[data-scene="power-grid/shared-grid"],.tour-art[data-scene="power-grid/distance"],.tour-art[data-scene="vaccines/delivery"]{--scene-scale:1.18}
@media(max-width:700px){.tour-art{--scene-scale:1.15}.tour-art[data-scene="power-grid/niagara"],.tour-art[data-scene="power-grid/shared-grid"],.tour-art[data-scene="power-grid/distance"],.tour-art[data-scene="vaccines/delivery"]{--scene-scale:1.08}}
.ts-dynamo-frame{fill:none;stroke:#9ca69c;stroke-width:29;stroke-linecap:round;stroke-linejoin:round}
.ts-armature-shell{fill:#293a3b;stroke:#c8b798;stroke-width:2}
.ts-armature-coil{fill:#76513a;stroke:#d6a76e;stroke-width:1.2}
.ts-armature-winding{fill:none;stroke:#ecb578;stroke-width:2}
.ts-commutator{fill:#c19a68;stroke:#e7ca91;stroke-width:1.5}
.ts-chip-cavity{fill:#51483a;stroke:#d9bf84;stroke-width:1.4}
.is-paused .tour-art :is(.ts-draw,.ts-layer-land,.ts-doping,.ts-print,.ts-align-left,.ts-align-right),.tour-art.is-paused :is(.ts-draw,.ts-layer-land,.ts-doping,.ts-print,.ts-align-left,.ts-align-right){animation:none!important;opacity:1;transform:none;stroke-dashoffset:0}
.ts-niagara-transmission-mobile{display:none}
@media(max-width:700px){
 .tour-art[data-scene="power-grid/distance"] .tour-art-svg{width:110%}
 .tour-art[data-scene="power-grid/shared-grid"] .tour-art-svg,.tour-art[data-scene="vaccines/delivery"] .tour-art-svg{width:120%}
 .tour-art[data-scene="power-grid/distance"],.tour-art[data-scene="power-grid/shared-grid"],.tour-art[data-scene="vaccines/delivery"]{--scene-scale:1}
 .ts-niagara-city{transform:translate(-145px,70px)}
 .ts-niagara-transmission{display:none}
 .ts-niagara-transmission-mobile{display:inline}
}

/* Induced current follows motion, including when a pointer is held still. */
[data-interactive=magnet].is-engaged .ts-flow{animation:none!important;opacity:.15}
[data-interactive=magnet].is-changing .ts-flow,
[data-interactive=magnet].is-changing .ts-bulb .ts-filament,
[data-interactive=magnet].is-changing .ts-bulb .ts-glow{animation:none!important;opacity:1}
.tour-art.is-paused .ts-window-on{animation:none!important;opacity:.85}

/* Low-contrast settings give the artifacts a place, with the mechanism in front. */
.ts-setting{opacity:.55;pointer-events:none}
.ts-room-wall{fill:#13252d18;stroke:#7da4ab12;stroke-width:1}
.ts-room-window{fill:#91bedb07;stroke:#aed6d81c;stroke-width:2}
.ts-room-frame{fill:none;stroke:#80a7b01a;stroke-width:3}
.ts-room-light{fill:#9dccdc06}
.ts-room-shelf{fill:none;stroke:#819b9e20;stroke-width:4}
.ts-room-bottles{fill:#81cabb13;stroke:#ace0c22b;stroke-width:1.5}
.ts-room-equipment{fill:#eab78908;stroke:#b8997530;stroke-width:1.5}
.ts-room-table{fill:#44606a0d;stroke:#99b1b615;stroke-width:1}
.ts-room-table-edge{fill:#050c144d;stroke:#708c9414;stroke-width:1}
.ts-room-grain{fill:none;stroke:#adc0b30d;stroke-width:1}
.tour-art-vaccines .ts-room-light{fill:#95cba308}
.tour-art-power-grid .ts-room-window{fill:#d5ab800c;stroke:#dac1971c}
.tour-art-power-grid .ts-room-light{fill:#ecb57b07}
.ts-atmosphere{background:radial-gradient(ellipse at 57% 39%,#799dd31e,transparent 52%),radial-gradient(ellipse at 39% 65%,#cf9b5226,transparent 49%)}
.tour-art-vaccines .ts-atmosphere{background:radial-gradient(ellipse at 48% 43%,#60bca830,transparent 55%),radial-gradient(ellipse at 62% 67%,#dab77615,transparent 40%)}
.tour-art-power-grid .ts-atmosphere{background:radial-gradient(ellipse at 45% 46%,#bc7e4529,transparent 58%),radial-gradient(ellipse at 70% 27%,#578fb823,transparent 46%)}
.ts-coil-depth{fill:none;stroke:#442718;stroke-width:7;stroke-linecap:round}
.ts-coil-highlight{fill:none;stroke:#ffe2ac;stroke-width:1.5;stroke-dasharray:37 125 32 190;opacity:.8;stroke-linecap:round}
.ts-bulb-reflection{fill:#e3f5e81c;stroke:none}
.ts-bulb-glint{fill:none;stroke:#fff5d9;stroke-width:1.2;opacity:.8}
.ts-bulb-neck{fill:none;stroke:#c6ded255;stroke-width:1.2}
.ts-bulb-base{fill:var(--silver)}
.ts-ceramic{fill:var(--ceramic)}
.ts-wood{fill:var(--wood)}
.ts-copper{fill:var(--copper)}
.ts-ground-shadow{fill:var(--shadow);opacity:.7;filter:none}
@media(max-width:700px){.ts-setting{opacity:.32}}
