:root { --tte-ink: #120905; --tte-readable-ink: #120905; --tte-line: #2c1810; --tte-wood-dark: #27140c; --tte-wood: #5b2f1e; --tte-wood-warm: #8a4e2a; --tte-brass-dark: #7c4b1d; --tte-brass: #c6933c; --tte-brass-light: #f2cb67; --tte-cream: #fff0cb; --tte-paper: #f8e5b9; --tte-green: #314638; --tte-cyan: #83d6d3; --tte-sky-a: #f8d99a; --tte-sky-b: #badbd2; --tte-sky-c: #f4bbb0; --tte-heading: Georgia, "Times New Roman", serif; --tte-body: "Trebuchet MS", "Segoe UI", sans-serif; --tte-ride-duration: 12500ms; --tte-progress: 0; --body-background-fill: #150b07; --body-text-color: #fff0cb; --background-fill-primary: #150b07; --background-fill-secondary: #28140c; --block-background-fill: transparent; --block-border-color: transparent; --input-background-fill: rgba(255, 240, 203, 0.92); --input-text-color: var(--tte-readable-ink); --button-primary-background-fill: #c6933c; --button-primary-text-color: var(--tte-readable-ink); } html, body, .gradio-container, main { background: #150b07 !important; } .gradio-container { min-height: 100vh; padding: 0 !important; color: var(--tte-cream) !important; font-family: var(--tte-body) !important; } .gradio-container .contain { max-width: none !important; padding: 0 !important; } .gradio-container label, .gradio-container .label-wrap, .gradio-container .prose, .gradio-container .prose *, .gradio-container input, .gradio-container textarea, .gradio-container select, .gradio-container button { color: var(--tte-readable-ink) !important; } .gradio-container input::placeholder, .gradio-container textarea::placeholder { color: rgba(18, 9, 5, 0.72) !important; } footer, .footer { display: none !important; } #tm-realtime-session, #tm-immersive-payload, #tm-world-view-1, #tm-world-view-2 { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; } .tte-cockpit { position: relative; width: 100%; min-height: 100vh; overflow: hidden; isolation: isolate; color: var(--tte-readable-ink); background: radial-gradient(ellipse at 50% 20%, rgba(255, 209, 113, 0.18), transparent 42%), linear-gradient(180deg, #2b170f 0%, #140906 100%); font-family: var(--tte-body); letter-spacing: 0; --person-shirt: #ead9b9; --person-sash: #9d7045; --person-hair: #352116; --scene-haze: rgba(255, 229, 172, 0.38); } .tte-cockpit * { box-sizing: border-box; } .tte-reference-stage { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; background: #100804; transform-origin: 50% 45%; will-change: transform, filter; } .tte-reference-stage::after { content: ""; position: absolute; inset: -8%; z-index: 5; pointer-events: none; opacity: 0; background: radial-gradient(ellipse at 50% 43%, rgba(255, 244, 182, 0.6), transparent 24%), linear-gradient(90deg, transparent 0 28%, rgba(255, 244, 202, 0.28) 36%, transparent 47% 53%, rgba(126, 228, 225, 0.22) 64%, transparent 74%), repeating-linear-gradient(110deg, transparent 0 26px, rgba(255, 241, 194, 0.2) 27px 29px, transparent 30px 72px); mix-blend-mode: screen; } .tte-reference-stage__image, .tte-reference-stage__vortex { position: absolute; inset: 0; pointer-events: none; } .tte-reference-stage__image { background-position: center; background-size: cover; transform: scale(1.02); transition: opacity 520ms ease, filter 520ms ease, transform 520ms ease; } .tte-reference-stage__image--departure { opacity: calc(1 - var(--tte-arrival-opacity, 0)); background-image: url("/static/img/travel/reference_departure.png"); filter: saturate(0.98) contrast(1.04); } .tte-reference-stage__image--warp { opacity: var(--tte-warp-opacity, 0); background-image: url("/static/img/travel/reference_warp_blend.png"); filter: saturate(1.06) contrast(1.06) brightness(1.03); transform: scale(var(--tte-warp-scale, 1.04)); } .tte-reference-stage__image--arrival { opacity: var(--tte-arrival-opacity, 0); background-image: url("/static/img/travel/reference_arrival.png"); filter: saturate(0.98) contrast(1.06); } .tte-reference-stage__vortex { z-index: 4; opacity: 0; background: radial-gradient(circle at 50% 42%, rgba(255, 247, 198, 0.94) 0 4%, transparent 16%), conic-gradient(from 90deg at 50% 42%, transparent 0 12%, rgba(131, 214, 211, 0.34) 13% 16%, transparent 18% 32%, rgba(246, 204, 103, 0.42) 33% 38%, transparent 40% 100%), radial-gradient(ellipse at 50% 42%, transparent 0 20%, rgba(255, 238, 174, 0.24) 34%, transparent 58%); mix-blend-mode: screen; transform: scale(0.88) rotate(0deg); } .tm-state-launching .tte-reference-stage__image--departure, .tm-state-traveling .tte-reference-stage__image--departure, .tm-state-braking .tte-reference-stage__image--departure { filter: saturate(1.04) contrast(1.08); transform: scale(var(--tte-departure-scale, 1.02)); } .tm-state-launching .tte-reference-stage__vortex, .tm-state-traveling .tte-reference-stage__vortex, .tm-state-braking .tte-reference-stage__vortex { opacity: var(--tte-vortex-opacity, 0); animation: tte-vortex-turn 1300ms linear infinite; } .tm-state-launching .tte-reference-stage { animation: tte-reference-rumble 320ms ease-in-out infinite; } .tm-state-traveling .tte-reference-stage { animation: tte-reference-rumble 120ms ease-in-out infinite; filter: saturate(1.08) contrast(1.08); } .tm-state-braking .tte-reference-stage { animation: tte-reference-brake-shake 68ms linear infinite; filter: saturate(1.16) contrast(1.16) brightness(1.08); } .tm-state-launching .tte-reference-stage::after, .tm-state-traveling .tte-reference-stage::after { opacity: 0.22; animation: tte-transition-flash 620ms ease-in-out infinite alternate; } .tm-state-braking .tte-reference-stage::after { opacity: 0.52; animation: tte-transition-flash 110ms ease-in-out infinite alternate; } .tte-windscreen { position: absolute; left: clamp(46px, 16vw, 250px); right: clamp(46px, 16vw, 250px); top: clamp(30px, 5.5vh, 70px); bottom: clamp(205px, 27vh, 300px); z-index: 5; overflow: hidden; border-radius: 50% 50% 10% 10% / 34% 34% 9% 9%; background: transparent; clip-path: inset(0 round 48% 48% 9% 9% / 34% 34% 9% 9%); box-shadow: none; } .tte-skywash { position: absolute; inset: -10%; background: radial-gradient(circle at 48% 18%, rgba(255, 248, 218, 0.96), transparent 18%), radial-gradient(circle at 20% 42%, rgba(159, 204, 168, 0.42), transparent 20%), radial-gradient(circle at 78% 36%, rgba(221, 158, 168, 0.38), transparent 19%), linear-gradient(135deg, var(--tte-sky-a), var(--tte-sky-b) 54%, var(--tte-sky-c)); filter: saturate(0.94); opacity: 0; transform: scale(1.06); animation: tte-dream-drift 18s ease-in-out infinite alternate; } .tte-era-strip { position: absolute; inset: 0; display: flex; width: 600%; opacity: 0 !important; transform: translate3d(0, 0, 0); transition: opacity 700ms ease; } .tte-era-scene { position: relative; flex: 0 0 16.666%; height: 100%; overflow: hidden; background: radial-gradient(circle at var(--sun-x, 48%) 22%, rgba(255, 245, 205, 0.95), transparent 15%), linear-gradient(180deg, var(--sky-top), var(--sky-bottom) 62%, var(--ground) 63%); } .tte-era-scene::before, .tte-era-scene::after { content: ""; position: absolute; left: -10%; right: -10%; pointer-events: none; } .tte-era-scene::before { bottom: 30%; height: 23%; background: radial-gradient(ellipse at 20% 100%, var(--hill-a), transparent 62%), radial-gradient(ellipse at 58% 100%, var(--hill-b), transparent 64%), radial-gradient(ellipse at 88% 100%, var(--hill-c), transparent 58%); opacity: 0.72; } .tte-era-scene::after { bottom: 12%; height: 30%; background: var(--structures); opacity: 0.92; filter: drop-shadow(0 7px 0 rgba(95, 55, 29, 0.15)); } .tte-landmark-layer { position: absolute; inset: 0; z-index: 12; overflow: hidden; opacity: 0; pointer-events: none; } .tte-landmark { position: absolute; left: var(--x, 105%); bottom: var(--y, 30%); width: var(--w, 120px); height: var(--h, 130px); opacity: 0; transform: translate3d(0, 0, 0) scale(var(--scale, 1)); filter: drop-shadow(0 16px 12px rgba(73, 42, 21, 0.2)); animation: tte-landmark-future var(--speed, 2600ms) linear forwards; } .tte-cockpit[data-direction="past"] .tte-landmark { animation-name: tte-landmark-past; } .tte-landmark::before, .tte-landmark::after { content: ""; position: absolute; inset: auto; } .tte-landmark--tower::before { left: 34%; bottom: 0; width: 34%; height: 100%; border: 3px solid rgba(42, 24, 16, 0.7); border-radius: 46% 46% 12px 12px; background: linear-gradient(180deg, #d6ece8, #8fc8be); box-shadow: -36px 40px 0 -8px #b9ddd5, 42px 24px 0 -10px #a2d1ca; } .tte-landmark--arch::before { left: 4%; right: 4%; bottom: 0; height: 72%; border: 6px solid rgba(105, 70, 42, 0.72); border-bottom: 0; border-radius: 50% 50% 4px 4px / 76% 76% 4px 4px; box-shadow: 32px 0 0 -5px #d7bc8a, 64px 0 0 -5px #d7bc8a, 96px 0 0 -5px #d7bc8a; } .tte-landmark--cottage::before { left: 14%; bottom: 0; width: 72%; height: 54%; border: 3px solid rgba(72, 40, 22, 0.66); border-radius: 8px; background: linear-gradient(180deg, #f2d59d, #c99461); } .tte-landmark--cottage::after { left: 8%; bottom: 47%; width: 84%; height: 34%; border: 3px solid rgba(72, 40, 22, 0.66); border-radius: 12px 12px 4px 4px; background: linear-gradient(135deg, #7c3e26 0 50%, #9e5630 51%); transform: skewX(-8deg); } .tte-landmark--spire::before { left: 18%; bottom: 0; width: 64%; height: 92%; clip-path: polygon(50% 0, 88% 100%, 12% 100%); border: 3px solid rgba(34, 29, 45, 0.45); background: linear-gradient(180deg, #d4f5f0, #79b9c7 54%, #497596); box-shadow: 0 0 30px rgba(131, 214, 211, 0.38); } .tte-track-bed { position: absolute; left: 50%; bottom: -6%; z-index: 18; width: min(58vw, 700px); height: 68%; transform: translateX(-50%); perspective: 420px; pointer-events: none; opacity: 0; } .tte-rail { position: absolute; bottom: 0; width: 7px; height: 100%; border-radius: 999px; background: linear-gradient(90deg, rgba(68, 45, 29, 0.9), #f0c865 45%, rgba(91, 55, 23, 0.94)); box-shadow: 0 0 14px rgba(255, 223, 124, 0.45); transform-origin: bottom; } .tte-rail--left { left: 34%; transform: rotate(9deg); } .tte-rail--right { right: 34%; transform: rotate(-9deg); } .tte-sleepers { position: absolute; inset: 0; clip-path: polygon(38% 100%, 62% 100%, 52% 0, 48% 0); background: repeating-linear-gradient( 0deg, transparent 0 20px, rgba(82, 49, 28, 0.7) 21px 27px, rgba(240, 200, 101, 0.45) 28px 30px, transparent 31px 47px ); transform-origin: bottom; } .tm-state-traveling .tte-sleepers, .tm-state-launching .tte-sleepers, .tm-state-braking .tte-sleepers { animation: tte-sleeper-rush 420ms linear infinite; } .tte-era-signs { position: absolute; inset: 0; z-index: 24; opacity: 0; pointer-events: none; } .tte-era-sign { position: absolute; top: var(--sign-top, 42%); left: 104%; min-width: 204px; padding: 9px 18px 10px; border: 4px solid rgba(49, 30, 17, 0.9); border-radius: 5px; background: linear-gradient(90deg, rgba(255, 235, 166, 0.16), transparent 18% 82%, rgba(67, 37, 18, 0.18)), linear-gradient(180deg, #6a7a55 0%, #3b5039 42%, #243325 100%); color: #fff0cb; font: 900 14px/1.08 var(--tte-heading); letter-spacing: 0.05em; text-align: center; text-transform: uppercase; box-shadow: inset 0 0 0 2px rgba(246, 216, 145, 0.34), inset 0 0 0 5px rgba(24, 13, 7, 0.12), inset 0 12px 12px rgba(255, 239, 184, 0.12), inset 0 -13px 12px rgba(17, 9, 5, 0.28), 0 17px 18px rgba(57, 33, 20, 0.34); animation: tte-sign-future var(--sign-speed, 1500ms) linear forwards; } .tte-era-sign::before { content: ""; position: absolute; left: 10px; right: 10px; top: 7px; height: 2px; border-radius: 999px; background: rgba(255, 241, 194, 0.42); } .tte-era-sign::after { content: ""; position: absolute; left: 50%; top: 100%; width: 9px; height: 76px; transform: translateX(-50%); border: 2px solid rgba(45, 25, 14, 0.74); border-top: 0; background: linear-gradient(90deg, #5a3019, #d6a14a 45%, #6e3d20); box-shadow: 0 10px 10px rgba(46, 28, 18, 0.26); } .tte-era-sign.past { left: auto; right: 104%; animation-name: tte-sign-past; } .tte-window-glow, .tte-window-glass { position: absolute; inset: 0; z-index: 32; pointer-events: none; } .tte-window-glow { background: radial-gradient(ellipse at 50% 22%, rgba(255, 255, 235, 0.34), transparent 22%), linear-gradient(180deg, transparent 0 62%, rgba(90, 47, 23, 0.16) 100%); mix-blend-mode: screen; } .tte-window-glass { background: linear-gradient(112deg, transparent 0 27%, rgba(255, 255, 255, 0.24) 28%, transparent 31%), linear-gradient(103deg, transparent 0 68%, rgba(255, 248, 219, 0.18) 69%, transparent 72%), radial-gradient(ellipse at 50% 15%, rgba(255, 255, 255, 0.14), transparent 28%); opacity: 0.74; } .tte-generated-world { position: absolute; inset: -4%; z-index: 22; opacity: 0; pointer-events: none; background-position: center 42%; background-size: cover; filter: saturate(0.98) contrast(1.05); transform: scale(1.04); transition: opacity 800ms ease, transform 1200ms ease; } .tte-generated-world::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 10%, rgba(255, 246, 210, 0.2), transparent 30%), linear-gradient(180deg, transparent 0 68%, rgba(74, 39, 18, 0.2) 100%); pointer-events: none; } .tm-has-scene.tm-state-arrived .tte-generated-world, .tm-has-scene.tm-state-conversing .tte-generated-world { opacity: 0.92; transform: scale(1); } .tte-generated-person { position: absolute; left: 50%; bottom: 7%; z-index: 29; display: block; width: clamp(190px, 20vw, 330px); max-height: 80%; object-fit: contain; object-position: center bottom; opacity: 0; pointer-events: none; border-radius: 26px; transform: translateX(-50%) translateY(18px) scale(0.96); transform-origin: 50% 100%; filter: drop-shadow(0 24px 20px rgba(58, 31, 17, 0.28)); transition: opacity 900ms ease, transform 1200ms cubic-bezier(0.2, 0.9, 0.2, 1); } .tm-has-portrait.tm-state-arrived .tte-generated-person, .tm-has-portrait.tm-state-conversing .tte-generated-person { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); } .tte-steam-curtain { position: absolute; inset: -8%; z-index: 30; opacity: 0; pointer-events: none; background: radial-gradient(ellipse at 22% 76%, rgba(255, 248, 226, 0.82), transparent 43%), radial-gradient(ellipse at 52% 72%, rgba(255, 248, 226, 0.78), transparent 46%), radial-gradient(ellipse at 82% 78%, rgba(255, 248, 226, 0.68), transparent 40%); filter: blur(18px); } .tm-state-braking .tte-steam-curtain, .tm-state-arrived .tte-steam-curtain { animation: tte-steam-reveal 3200ms ease both; } .tte-person { position: absolute; right: 15%; bottom: 16%; z-index: 28; width: clamp(132px, 14vw, 210px); aspect-ratio: 0.58; opacity: 0; transform: translateY(24px) scale(0.88); transform-origin: 50% 100%; transition: opacity 900ms ease, transform 1200ms cubic-bezier(0.2, 0.9, 0.2, 1); filter: drop-shadow(0 20px 18px rgba(79, 45, 24, 0.28)); } .tm-state-arrived .tte-person, .tm-state-conversing .tte-person { opacity: 0; } .tte-person { display: none !important; } .tte-person__shadow, .tte-person__legs, .tte-person__body, .tte-person__sash, .tte-person__head, .tte-person__hair, .tte-person__arm { position: absolute; display: block; } .tte-person__shadow { left: 20%; right: 18%; bottom: -2%; height: 9%; border-radius: 50%; background: rgba(80, 45, 24, 0.18); } .tte-person__legs { left: 33%; bottom: 0; width: 35%; height: 36%; border: 3px solid rgba(43, 27, 18, 0.72); border-top: 0; border-radius: 0 0 22px 22px; background: linear-gradient(90deg, #6b523d 0 45%, #4f3a2c 46% 55%, #6b523d 56%); } .tte-person__body { left: 22%; bottom: 30%; width: 56%; height: 42%; border: 3px solid rgba(43, 27, 18, 0.72); border-radius: 38% 38% 18px 18px / 18% 18% 18px 18px; background: radial-gradient(ellipse at 38% 12%, rgba(255, 255, 255, 0.45), transparent 24%), linear-gradient(110deg, var(--person-shirt), #c9b38c); } .tte-person__sash { left: 24%; bottom: 32%; width: 54%; height: 41%; clip-path: polygon(0 0, 26% 0, 100% 100%, 70% 100%); background: var(--person-sash); opacity: 0.88; } .tte-person__head { left: 31%; top: 5%; width: 38%; height: 25%; border: 3px solid rgba(43, 27, 18, 0.72); border-radius: 48% 48% 45% 45%; background: radial-gradient(circle at 36% 45%, #2b1a14 0 3%, transparent 3.6%), radial-gradient(circle at 63% 45%, #2b1a14 0 3%, transparent 3.6%), radial-gradient(ellipse at 50% 68%, transparent 0 14%, rgba(76, 38, 25, 0.7) 15% 17%, transparent 18%), linear-gradient(180deg, #c98761, #a4674d); } .tte-person__hair { left: 29%; top: 2%; width: 42%; height: 17%; border-radius: 50% 50% 42% 42%; background: var(--person-hair); transform: rotate(-3deg); } .tte-person__arm { bottom: 42%; width: 16%; height: 30%; border: 3px solid rgba(43, 27, 18, 0.68); border-radius: 999px; background: #b87858; transform-origin: 50% 12%; } .tte-person__arm--left { left: 10%; transform: rotate(28deg); } .tte-person__arm--right { right: 4%; transform: rotate(-55deg); } .tte-person[data-person-kind="future"] { --person-shirt: #d9f3ed; --person-sash: #5ba8a7; --person-hair: #2b3440; } .tte-person[data-person-kind="past"] { --person-shirt: #ead7b4; --person-sash: #9b6b38; --person-hair: #322017; } .tte-cab-shell { position: absolute; inset: 0; z-index: 40; pointer-events: none; opacity: 0; } .tte-cab-shell__top, .tte-cab-shell__left, .tte-cab-shell__right, .tte-cab-shell__bottom, .tte-cab-shell__trim, .tte-side-window { position: absolute; display: block; } .tte-cab-shell__top { left: -4%; right: -4%; top: -4%; height: 27%; border-bottom: 4px solid rgba(43, 24, 14, 0.92); border-radius: 0 0 50% 50% / 0 0 44% 44%; background: repeating-linear-gradient(104deg, rgba(255, 214, 133, 0.05) 0 18px, transparent 19px 54px), radial-gradient(ellipse at 50% 94%, rgba(255, 204, 115, 0.16), transparent 45%), linear-gradient(180deg, #160a06, #4f2a19 46%, #2a150d); box-shadow: inset 0 -20px 28px rgba(255, 221, 141, 0.06); } .tte-cab-shell__left, .tte-cab-shell__right { top: 0; bottom: 0; width: clamp(52px, 15vw, 235px); background: repeating-linear-gradient(86deg, rgba(255, 217, 145, 0.06) 0 12px, transparent 13px 38px), linear-gradient(90deg, #170b07, #67371f 44%, #2a150d); box-shadow: inset -10px 0 18px rgba(255, 224, 158, 0.07); } .tte-cab-shell__left { left: 0; border-right: 5px solid rgba(36, 19, 11, 0.92); } .tte-cab-shell__right { right: 0; transform: scaleX(-1); border-right: 5px solid rgba(36, 19, 11, 0.92); } .tte-cab-shell__bottom { left: 0; right: 0; bottom: 0; height: clamp(218px, 30vh, 330px); background: radial-gradient(ellipse at 50% 0%, rgba(248, 206, 113, 0.2), transparent 36%), repeating-linear-gradient(90deg, rgba(255, 219, 142, 0.045) 0 20px, transparent 21px 70px), linear-gradient(180deg, #6b3b22 0, #33170e 36%, #130806 100%); border-top: 5px solid rgba(43, 24, 14, 0.94); box-shadow: inset 0 18px 20px rgba(255, 225, 153, 0.08); } .tte-cab-shell__trim { left: clamp(36px, 15vw, 238px); right: clamp(36px, 15vw, 238px); top: clamp(22px, 4.4vh, 58px); bottom: clamp(190px, 26vh, 286px); border: clamp(7px, 0.8vw, 12px) solid rgba(54, 28, 16, 0.96); border-radius: 50% 50% 10% 10% / 34% 34% 9% 9%; box-shadow: inset 0 0 0 4px rgba(214, 161, 72, 0.76), inset 0 0 0 8px rgba(84, 45, 24, 0.7), 0 12px 22px rgba(21, 9, 5, 0.55); } .tte-cab-shell__trim::before { content: ""; position: absolute; inset: 9px; border: 2px solid rgba(255, 220, 136, 0.46); border-radius: inherit; } .tte-side-window { top: 26%; width: clamp(34px, 9vw, 130px); height: 35%; border: 7px solid rgba(48, 25, 14, 0.9); border-radius: 42% 42% 12px 12px / 28% 28% 12px 12px; background: linear-gradient(115deg, transparent 0 38%, rgba(255, 255, 255, 0.28) 39%, transparent 43%), linear-gradient(180deg, rgba(219, 238, 214, 0.64), rgba(242, 184, 150, 0.34)); box-shadow: inset 0 0 0 3px rgba(211, 151, 69, 0.6); } .tte-side-window--left { left: clamp(8px, 2vw, 30px); } .tte-side-window--right { right: clamp(8px, 2vw, 30px); } .tte-cab-shine, .tte-vignette, .tte-film-grain, .tte-speed-field { position: absolute; inset: 0; pointer-events: none; } .tte-cab-shine { z-index: 42; background: radial-gradient(ellipse at 50% 6%, rgba(255, 221, 140, 0.17), transparent 32%), radial-gradient(ellipse at 50% 88%, rgba(255, 208, 111, 0.13), transparent 36%); mix-blend-mode: screen; } .tte-vignette { z-index: 58; background: radial-gradient(ellipse at 50% 40%, transparent 0 46%, rgba(30, 14, 8, 0.34) 74%, rgba(12, 5, 3, 0.76) 100%), linear-gradient(180deg, rgba(0, 0, 0, 0.18), transparent 20%, transparent 64%, rgba(0, 0, 0, 0.5)); } .tte-film-grain { z-index: 59; opacity: 0.13; background-image: linear-gradient(0deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.05) 1px, transparent 1px); background-size: 3px 3px; mix-blend-mode: overlay; } .tte-speed-field { z-index: 26; opacity: 0; transition: opacity 300ms ease; } .tte-speed-field span { position: absolute; left: 50%; top: 46%; width: 2px; height: 58vh; border-radius: 999px; background: linear-gradient(180deg, transparent, rgba(255, 249, 210, 0.86), transparent); transform-origin: 50% 0; filter: blur(0.5px); } .tte-speed-field span:nth-child(1) { transform: rotate(28deg) translateY(-12vh); } .tte-speed-field span:nth-child(2) { transform: rotate(-28deg) translateY(-10vh); } .tte-speed-field span:nth-child(3) { transform: rotate(52deg) translateY(-6vh); } .tte-speed-field span:nth-child(4) { transform: rotate(-52deg) translateY(-8vh); } .tte-speed-field span:nth-child(5) { transform: rotate(74deg) translateY(-12vh); } .tte-speed-field span:nth-child(6) { transform: rotate(-74deg) translateY(-11vh); } .tm-state-traveling .tte-speed-field, .tm-state-launching .tte-speed-field, .tm-state-braking .tte-speed-field { opacity: 0.82; animation: tte-speed-pulse 650ms ease-in-out infinite; } .tm-state-braking .tte-speed-field { opacity: 1; filter: brightness(1.3); } .tte-dashboard { position: absolute; left: 0; right: 0; bottom: 0; z-index: 50; height: clamp(218px, 30vh, 330px); pointer-events: none; opacity: 0; } .tte-gauge-bank { position: absolute; left: clamp(20px, 18vw, 280px); bottom: clamp(54px, 8vh, 86px); display: flex; gap: 14px; } .tte-gauge { position: relative; width: clamp(42px, 5vw, 62px); aspect-ratio: 1; border: 4px solid rgba(56, 31, 18, 0.9); border-radius: 50%; background: radial-gradient(circle at 50% 56%, #f4d488 0 8%, transparent 9%), radial-gradient(circle, #f4d488 0 52%, #8d5525 53% 100%); box-shadow: inset 0 0 0 3px rgba(255, 239, 183, 0.35), 0 10px 18px rgba(0, 0, 0, 0.28); } .tte-gauge i { position: absolute; left: 50%; top: 49%; width: 3px; height: 33%; border-radius: 999px; background: #361d11; transform-origin: 50% 100%; transform: translate(-50%, -100%) rotate(-24deg); } .tm-state-traveling .tte-gauge i, .tm-state-braking .tte-gauge i { animation: tte-needle-flick 560ms ease-in-out infinite; } .tte-throttle { position: absolute; left: 50%; bottom: clamp(12px, 2vh, 28px); width: clamp(220px, 24vw, 360px); height: clamp(220px, 24vw, 360px); transform: translateX(-50%); transform-origin: 50% 82%; transition: transform 700ms cubic-bezier(0.25, 1.6, 0.48, 1); } .tte-throttle__base { position: absolute; left: 16%; right: 16%; bottom: 2%; height: 44%; border: 4px solid rgba(57, 31, 18, 0.88); border-radius: 42% 42% 22% 22% / 35% 35% 18% 18%; background: radial-gradient(ellipse at 48% 15%, rgba(255, 244, 188, 0.88), transparent 28%), linear-gradient(90deg, #7a3f20, #d39a3c 26%, #f4cc69 46%, #bd782f 72%, #69351e); box-shadow: inset 0 -18px 28px rgba(82, 38, 14, 0.45), 0 22px 28px rgba(0, 0, 0, 0.34); } .tte-throttle__slot { position: absolute; left: 45%; bottom: 13%; width: 10%; height: 52%; border: 4px solid rgba(42, 22, 13, 0.86); border-radius: 999px; background: #170d09; } .tte-throttle__stem { position: absolute; left: 48%; bottom: 43%; width: 9%; height: 44%; border: 3px solid rgba(52, 29, 17, 0.72); border-radius: 999px; background: linear-gradient(90deg, #6c351e, #e4ad4d 48%, #6d351e); transform-origin: 50% 100%; } .tte-throttle__handle { position: absolute; left: 22%; right: 22%; bottom: 77%; height: 17%; border: 4px solid rgba(52, 29, 17, 0.86); border-radius: 999px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.18), transparent 45%), linear-gradient(90deg, #cf9b43 0 9%, #231712 10% 90%, #d5a348 91%); box-shadow: 0 14px 18px rgba(0, 0, 0, 0.28); } .tte-throttle__label { position: absolute; left: 50%; bottom: 7%; z-index: 2; transform: translateX(-50%); min-width: 108px; padding: 8px 12px 9px; border: 3px solid rgba(55, 30, 17, 0.78); border-radius: 8px; background: linear-gradient(180deg, #f2c965, #a96b2b); color: var(--tte-readable-ink); font: 900 clamp(12px, 1.3vw, 16px)/1 var(--tte-heading); letter-spacing: 0.08em; text-align: center; text-transform: uppercase; } .tte-cockpit[data-direction="future"] .tte-throttle { transform: translateX(-50%) rotate(-18deg); } .tte-cockpit[data-direction="past"] .tte-throttle { transform: translateX(-50%) rotate(18deg); } .tte-console-lights { position: absolute; right: clamp(26px, 17vw, 265px); bottom: clamp(66px, 9vh, 96px); display: flex; gap: 12px; } .tte-console-lights span { width: 20px; aspect-ratio: 1; border: 3px solid rgba(37, 20, 12, 0.8); border-radius: 50%; background: #51301d; box-shadow: inset 0 0 0 2px rgba(255, 236, 173, 0.12); } .tm-state-traveling .tte-console-lights span, .tm-state-braking .tte-console-lights span { background: #d9a342; box-shadow: 0 0 20px rgba(255, 218, 111, 0.5); animation: tte-light-blink 520ms linear infinite alternate; } .tte-start-signs { position: absolute; left: 0; right: 0; top: clamp(230px, 35vh, 390px); z-index: 64; pointer-events: none; } .tte-route-sign { position: absolute; min-width: clamp(126px, 13vw, 176px); padding: 12px 19px 13px; border: 5px solid rgba(45, 27, 15, 0.92); border-radius: 6px; background: linear-gradient(90deg, rgba(255, 233, 164, 0.18), transparent 18% 82%, rgba(57, 31, 15, 0.2)), repeating-linear-gradient(0deg, rgba(65, 35, 18, 0.18) 0 2px, transparent 3px 14px), linear-gradient(180deg, #f3cc69 0%, #c18835 48%, #7a4720 100%); color: var(--tte-readable-ink); font: 900 clamp(20px, 2.2vw, 34px)/1 var(--tte-heading); letter-spacing: 0.06em; text-transform: uppercase; text-shadow: none; cursor: pointer; pointer-events: auto; box-shadow: inset 0 0 0 2px rgba(255, 237, 175, 0.32), inset 0 13px 10px rgba(255, 235, 166, 0.16), inset 0 -15px 14px rgba(44, 22, 10, 0.3), 0 18px 24px rgba(46, 28, 18, 0.28); transform-origin: 50% 100%; transition: transform 160ms ease, filter 160ms ease, opacity 400ms ease; } .tte-route-sign span { position: relative; z-index: 2; } .tte-route-sign::before { content: ""; position: absolute; left: 50%; top: 100%; width: 12px; height: clamp(86px, 10vh, 132px); transform: translateX(-50%); border: 2px solid rgba(48, 28, 16, 0.86); border-top: 0; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, #4c2815, #d6a24a 46%, #62351b); box-shadow: 0 12px 14px rgba(35, 18, 9, 0.3); z-index: -1; } .tte-route-sign::after { content: ""; position: absolute; inset: 7px 9px; border: 2px solid rgba(71, 41, 20, 0.42); border-radius: 3px; background: radial-gradient(circle at 8px 8px, rgba(52, 29, 15, 0.72) 0 3px, transparent 3.5px), radial-gradient(circle at calc(100% - 8px) 8px, rgba(52, 29, 15, 0.72) 0 3px, transparent 3.5px), radial-gradient(circle at 8px calc(100% - 8px), rgba(52, 29, 15, 0.72) 0 3px, transparent 3.5px), radial-gradient(circle at calc(100% - 8px) calc(100% - 8px), rgba(52, 29, 15, 0.72) 0 3px, transparent 3.5px); pointer-events: none; } .tte-route-sign:hover, .tte-route-sign:focus-visible { outline: none; filter: brightness(1.1); transform: translateY(-2px) rotate(var(--tilt, 0deg)); } .tte-route-sign--future { left: clamp(26%, 31vw, 38%); --tilt: -3deg; transform: rotate(-4deg); } .tte-route-sign--past { right: clamp(24%, 28vw, 36%); --tilt: 3deg; transform: rotate(4deg); } .tm-state-launching .tte-start-signs, .tm-state-traveling .tte-start-signs, .tm-state-braking .tte-start-signs, .tm-state-arrived .tte-start-signs, .tm-state-conversing .tte-start-signs { opacity: 0; pointer-events: none; } .tte-back-button { position: absolute; left: clamp(18px, 4vw, 54px); top: clamp(18px, 4vh, 46px); z-index: 74; min-height: 42px; padding: 8px 15px; border: 3px solid rgba(54, 31, 18, 0.82); border-radius: 999px; background: rgba(255, 238, 196, 0.9); color: var(--tte-readable-ink); font: 900 12px/1 var(--tte-heading); letter-spacing: 0.05em; text-transform: uppercase; cursor: pointer; opacity: 0; pointer-events: none; box-shadow: 0 12px 22px rgba(34, 17, 9, 0.22); transition: opacity 260ms ease, transform 160ms ease; } .tte-back-button:hover, .tte-back-button:focus-visible { outline: none; transform: translateY(-1px); } .tm-state-launching .tte-back-button, .tm-state-traveling .tte-back-button, .tm-state-braking .tte-back-button, .tm-state-arrived .tte-back-button, .tm-state-conversing .tte-back-button { opacity: 1; pointer-events: auto; } .tte-destination-plaque { position: absolute; left: clamp(18px, 4vw, 54px); bottom: clamp(32px, 4.5vh, 62px); z-index: 70; display: grid; gap: 4px; width: min(310px, calc(45vw - 28px)); padding: 12px 14px 13px; border: 3px solid rgba(54, 31, 18, 0.86); border-radius: 8px; background: linear-gradient(180deg, rgba(255, 238, 195, 0.95), rgba(214, 164, 84, 0.9)); color: var(--tte-readable-ink); box-shadow: 0 16px 28px rgba(25, 10, 5, 0.32); transition: opacity 240ms ease, transform 240ms ease; } .tte-destination-plaque span { font: 900 10px/1.15 var(--tte-body); letter-spacing: 0.12em; text-transform: uppercase; opacity: 1; } .tte-destination-plaque strong { overflow-wrap: anywhere; font: 900 clamp(20px, 2vw, 28px)/1.02 var(--tte-heading); } #tm-route-atmosphere { display: -webkit-box; overflow: hidden; font-size: 12px; line-height: 1.28; letter-spacing: 0; text-transform: none; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .tte-year-module { position: absolute; left: 50%; top: clamp(18px, 4vh, 48px); z-index: 72; min-width: clamp(120px, 13vw, 190px); transform: translateX(-50%); padding: 9px 14px 11px; border: 3px solid rgba(54, 31, 18, 0.86); border-radius: 8px; background: rgba(255, 240, 203, 0.92); color: #21130d; color: var(--tte-readable-ink); text-align: center; box-shadow: 0 14px 22px rgba(34, 17, 9, 0.2); transition: opacity 240ms ease, transform 240ms ease; } .tm-state-dormant .tte-destination-plaque, .tm-state-dormant .tte-year-module { opacity: 0; pointer-events: none; } .tm-state-dormant .tte-year-module { transform: translateX(-50%) translateY(-8px); } .tte-year-label { display: block; font: 900 10px/1 var(--tte-body); letter-spacing: 0.14em; text-transform: uppercase; } .tte-year-counter { display: block; margin-top: 2px; font: 900 clamp(30px, 4vw, 56px)/0.95 var(--tte-heading); letter-spacing: 0; } .tte-narration { position: absolute; left: 50%; bottom: clamp(196px, 27vh, 292px); z-index: 68; width: min(700px, calc(100% - 48px)); margin: 0; padding: 11px 18px 13px; border: 3px solid rgba(54, 31, 18, 0.78); border-radius: 999px; background: rgba(255, 239, 203, 0.88); color: var(--tte-readable-ink); font: 800 clamp(15px, 1.5vw, 19px)/1.25 var(--tte-heading); text-align: center; box-shadow: 0 16px 24px rgba(43, 22, 12, 0.22); transform: translateX(-50%); transition: opacity 400ms ease, transform 400ms ease; } .tm-state-conversing .tte-narration { opacity: 0; transform: translateX(-50%) translateY(12px); pointer-events: none; } .tte-conversation-panel { position: absolute; right: clamp(18px, 4vw, 56px); bottom: clamp(20px, 4vh, 54px); z-index: 76; display: grid; gap: 10px; width: min(420px, calc(100% - 36px)); opacity: 0; transform: translateY(18px); pointer-events: none; transition: opacity 440ms ease, transform 520ms cubic-bezier(0.2, 0.9, 0.2, 1); } .tm-state-arrived .tte-conversation-panel, .tm-state-conversing .tte-conversation-panel { opacity: 1; transform: translateY(0); pointer-events: auto; } .tte-contact-card { display: grid; gap: 3px; justify-items: end; padding: 10px 14px 12px; border: 3px solid rgba(45, 27, 18, 0.72); border-radius: 8px; background: rgba(255, 247, 222, 0.93); color: var(--tte-readable-ink); text-align: right; box-shadow: 0 12px 20px rgba(33, 17, 9, 0.22); } .tte-contact-card span { font: 900 10px/1 var(--tte-body); letter-spacing: 0.16em; text-transform: uppercase; } .tte-contact-card strong { font: 900 clamp(20px, 2.2vw, 30px)/1 var(--tte-heading); } .tte-contact-card em { max-width: 320px; font: 700 13px/1.25 var(--tte-body); opacity: 1; } .tte-dialogue-bubbles { display: grid; gap: 10px; max-height: min(260px, 30vh); overflow-y: auto; padding: 4px 4px 8px; } .tte-speech-bubble { position: relative; max-width: 84%; padding: 11px 14px 12px; border: 3px solid rgba(45, 27, 18, 0.82); border-radius: 20px; background: rgba(255, 247, 222, 0.96); color: var(--tte-readable-ink); font: 800 14px/1.28 var(--tte-body); box-shadow: 0 10px 18px rgba(38, 19, 10, 0.22); } .tte-speech-bubble::after { content: ""; position: absolute; bottom: -13px; width: 22px; height: 22px; border-right: 3px solid rgba(45, 27, 18, 0.82); border-bottom: 3px solid rgba(45, 27, 18, 0.82); background: inherit; transform: rotate(38deg); } .tte-speech-bubble.user { justify-self: end; background: rgba(224, 248, 244, 0.96); } .tte-speech-bubble.user::after { right: 28px; } .tte-speech-bubble.character { justify-self: start; } .tte-speech-bubble.character::after { left: 28px; } .tte-dialogue-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; } .tte-dialogue-form input { min-height: 44px; width: 100%; border: 3px solid rgba(45, 27, 18, 0.78); border-radius: 999px; background: rgba(255, 247, 222, 0.96); color: var(--tte-readable-ink); padding: 0 16px; font: 800 14px/1 var(--tte-body); } .tte-dialogue-form button, .tm-live-button { min-height: 44px; border: 3px solid rgba(45, 27, 18, 0.82); border-radius: 999px; background: linear-gradient(180deg, #f0c966, #bf7b32); color: var(--tte-readable-ink); font: 900 12px/1 var(--tte-heading); letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; } .tte-dialogue-form input:focus, .tte-dialogue-form button:focus-visible, .tm-live-button:focus-visible { outline: 3px solid rgba(131, 214, 211, 0.68); outline-offset: 2px; } .tm-live-voice { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 7px 9px; align-items: center; } .tm-live-button[disabled] { opacity: 0.56; cursor: not-allowed; } .tm-live-button.tm-live-on { background: linear-gradient(180deg, #a9ebe4, #54a5a6); } .tm-live-meter { height: 12px; overflow: hidden; border: 3px solid rgba(45, 27, 18, 0.62); border-radius: 999px; background: rgba(255, 247, 222, 0.82); } .tm-live-meter span { display: block; width: 0%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #d39a3c, #83d6d3); transition: width 80ms linear; } .tm-live-status { grid-column: 1 / -1; justify-self: center; padding: 5px 10px 6px; border: 2px solid rgba(45, 27, 18, 0.64); border-radius: 999px; background: rgba(255, 247, 222, 0.9); color: var(--tte-readable-ink); font: 900 11px/1.1 var(--tte-body); letter-spacing: 0.08em; text-align: center; text-transform: uppercase; } .tm-live-transcript { display: none; } .tte-artifact-panel, .tm-dev-warning { position: absolute; z-index: 78; } .tte-artifact-panel { left: clamp(18px, 4vw, 56px); top: clamp(76px, 12vh, 124px); display: none; width: min(330px, calc(100% - 36px)); padding: 12px 14px; border: 3px solid rgba(45, 27, 18, 0.78); border-radius: 8px; background: rgba(255, 247, 222, 0.92); color: var(--tte-readable-ink); } .tte-artifact-panel[data-artifact-state="visible"] { display: block; } .tm-dev-warning { left: 50%; top: 84px; width: min(560px, calc(100% - 36px)); transform: translateX(-50%); padding: 10px 14px; border: 3px solid rgba(45, 27, 18, 0.78); border-radius: 8px; background: #fff0cb; color: var(--tte-readable-ink); font: 800 13px/1.25 var(--tte-body); } .tm-state-launching .tte-cockpit, .tm-state-traveling .tte-cockpit, .tm-state-braking .tte-cockpit { animation: none; } .tm-state-launching .tte-era-strip, .tm-state-traveling .tte-era-strip, .tm-state-braking .tte-era-strip { opacity: 0 !important; } .tm-state-traveling .tte-era-strip, .tm-state-launching .tte-era-strip { animation: tte-panorama-future var(--tte-ride-duration) linear infinite; } .tte-cockpit[data-direction="past"].tm-state-traveling .tte-era-strip, .tte-cockpit[data-direction="past"].tm-state-launching .tte-era-strip { animation-name: tte-panorama-past; } .tm-state-launching .tte-cab-shell, .tm-state-launching .tte-dashboard { animation: tte-cab-sway 360ms ease-in-out infinite; } .tm-state-traveling .tte-cab-shell, .tm-state-traveling .tte-dashboard { animation: tte-cab-sway 150ms ease-in-out infinite; } .tm-state-braking .tte-cab-shell, .tm-state-braking .tte-dashboard, .tm-state-braking .tte-windscreen { animation: tte-violent-shake 92ms linear infinite; } .tm-state-arrived .tte-era-strip, .tm-state-conversing .tte-era-strip { opacity: 0 !important; animation-play-state: paused; } .tm-state-arrived .tte-track-bed, .tm-state-conversing .tte-track-bed { opacity: 0 !important; } .tm-state-conversing[data-speech-state="replying"] .tte-generated-person, .tm-state-conversing[data-speech-state="processing"] .tte-generated-person { filter: drop-shadow(0 24px 20px rgba(58, 31, 17, 0.28)) drop-shadow(0 0 16px rgba(131, 214, 211, 0.34)); } @keyframes tte-dream-drift { from { transform: scale(1.06) translate3d(-0.8%, -0.4%, 0); } to { transform: scale(1.1) translate3d(0.8%, 0.5%, 0); } } @keyframes tte-vortex-turn { from { transform: scale(0.88) rotate(0deg); } to { transform: scale(1.08) rotate(360deg); } } @keyframes tte-reference-rumble { 0%, 100% { transform: translate3d(0, 0, 0) scale(1.012); } 25% { transform: translate3d(2px, -1px, 0) scale(1.018); } 50% { transform: translate3d(-2px, 1px, 0) scale(1.014); } 75% { transform: translate3d(1px, 2px, 0) scale(1.02); } } @keyframes tte-reference-brake-shake { 0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1.025); } 20% { transform: translate3d(5px, -3px, 0) rotate(0.35deg) scale(1.035); } 40% { transform: translate3d(-4px, 4px, 0) rotate(-0.45deg) scale(1.03); } 60% { transform: translate3d(4px, 2px, 0) rotate(0.28deg) scale(1.038); } 80% { transform: translate3d(-3px, -2px, 0) rotate(-0.3deg) scale(1.032); } } @keyframes tte-transition-flash { from { transform: translate3d(-1.5%, 0, 0) scale(1.02); filter: brightness(0.9); } to { transform: translate3d(1.5%, 0, 0) scale(1.06); filter: brightness(1.32); } } @keyframes tte-panorama-future { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-83.333%, 0, 0); } } @keyframes tte-panorama-past { from { transform: translate3d(-83.333%, 0, 0); } to { transform: translate3d(0, 0, 0); } } @keyframes tte-sleeper-rush { from { background-position-y: 0; } to { background-position-y: 47px; } } @keyframes tte-sign-future { from { transform: translateX(0) scale(0.72); opacity: 0; } 12% { opacity: 1; } to { transform: translateX(-145vw) scale(1.12); opacity: 0; } } @keyframes tte-sign-past { from { transform: translateX(0) scale(0.72); opacity: 0; } 12% { opacity: 1; } to { transform: translateX(145vw) scale(1.12); opacity: 0; } } @keyframes tte-landmark-future { from { transform: translateX(0) scale(var(--scale, 1)); opacity: 0; } 10%, 72% { opacity: 1; } to { transform: translateX(-132vw) scale(calc(var(--scale, 1) * 1.28)); opacity: 0; } } @keyframes tte-landmark-past { from { transform: translateX(0) scale(var(--scale, 1)); opacity: 0; } 10%, 72% { opacity: 1; } to { transform: translateX(132vw) scale(calc(var(--scale, 1) * 1.28)); opacity: 0; } } @keyframes tte-speed-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } } @keyframes tte-steam-reveal { 0% { opacity: 0; transform: translateY(12%) scale(0.92); } 22%, 62% { opacity: 0.94; } 100% { opacity: 0; transform: translateY(-12%) scale(1.16); } } @keyframes tte-person-breathe { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } } @keyframes tte-cab-sway { 0%, 100% { transform: translate3d(0, 0, 0); } 35% { transform: translate3d(1px, -1px, 0); } 70% { transform: translate3d(-1px, 1px, 0); } } @keyframes tte-violent-shake { 0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); } 25% { transform: translate3d(3px, -2px, 0) rotate(0.2deg); } 50% { transform: translate3d(-2px, 2px, 0) rotate(-0.25deg); } 75% { transform: translate3d(2px, 1px, 0) rotate(0.18deg); } } @keyframes tte-needle-flick { 0%, 100% { transform: translate(-50%, -100%) rotate(-42deg); } 50% { transform: translate(-50%, -100%) rotate(48deg); } } @keyframes tte-light-blink { from { opacity: 0.55; } to { opacity: 1; } } @media (max-width: 900px) { .tte-windscreen { left: 32px; right: 32px; bottom: 260px; } .tte-cab-shell__left, .tte-cab-shell__right, .tte-side-window { display: none; } .tte-cab-shell__trim { left: 22px; right: 22px; bottom: 244px; } .tte-start-signs { top: 34vh; } .tte-route-sign--future { left: 15%; } .tte-route-sign--past { right: 15%; } .tte-destination-plaque { width: min(270px, calc(48vw - 22px)); } } @media (max-width: 640px) { .tte-cockpit { min-height: 780px; } .tte-windscreen { top: 72px; left: 18px; right: 18px; bottom: 320px; } .tte-cab-shell__trim { top: 62px; left: 12px; right: 12px; bottom: 304px; } .tte-cab-shell__bottom, .tte-dashboard { height: 330px; } .tte-start-signs { top: 250px; } .tte-route-sign { min-width: 112px; padding: 9px 12px 10px; font-size: 21px; } .tte-route-sign--future { left: 8%; } .tte-route-sign--past { right: 8%; } .tte-year-module { left: auto; right: 14px; transform: none; min-width: 112px; } .tte-destination-plaque { display: none; } .tte-narration { bottom: 300px; width: calc(100% - 28px); border-radius: 18px; font-size: 14px; } .tte-gauge-bank, .tte-console-lights { display: none; } .tte-throttle { width: 210px; height: 210px; bottom: 120px; } .tte-conversation-panel { left: 14px; right: 14px; bottom: 16px; width: auto; } .tte-dialogue-form { grid-template-columns: 1fr; } .tte-person { right: 7%; bottom: 13%; width: 126px; } .tte-generated-person { left: 50%; bottom: 10%; width: min(210px, 42vw); } } @media (prefers-reduced-motion: reduce) { .tte-cockpit *, .tte-cockpit *::before, .tte-cockpit *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; } }