/* Factory tour. Shared Shenzhen site header, footer, backgrounds and type remain authoritative. */
.ftx-hero,.ftx-overview,.ftx-workflow,.ftx-analytics,.ftx-oem,.ftx-visits,.ftx-planning,.ftx-book,.ftx-faq,.ftx-film{position:relative;isolation:isolate}
.ftx-hero{padding:clamp(9rem,13vw,13rem) 0 clamp(4rem,8vw,8rem);overflow:hidden;min-height:min(760px,90svh);background:radial-gradient(ellipse at 78% 48%,rgba(116,238,218,.11),transparent 33%),radial-gradient(ellipse at 50% 85%,rgba(173,142,252,.09),transparent 38%),#0e0e15}
.ftx-hero-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:clamp(2rem,6vw,7rem)}
.ftx-hero h1{font-size:clamp(3.2rem,6.9vw,7.9rem);line-height:.96;letter-spacing:-.075em;margin:.95rem 0 2rem;max-width:12ch}
.ftx-hero h1 em{font-style:normal;color:#91eedb}
.ftx-hero p:not(.eyebrow){font-size:clamp(1.03rem,1.25vw,1.22rem);line-height:1.75;max-width:55ch}
.ftx-hero .actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.ftx-proof-pills,.ftx-step-pills{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2rem}
.ftx-proof-pills span,.ftx-step-pills span{border:1px solid rgba(255,255,255,.17);border-radius:99px;color:#d6d4e4;background:rgba(255,255,255,.045);padding:.55rem .85rem;font-size:.76rem;line-height:1.25}
.ftx-hero-visual{position:relative;aspect-ratio:1/1;max-width:460px;width:100%;margin-inline:auto;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(124,232,225,.14);background:radial-gradient(circle,rgba(98,213,203,.1),transparent 57%);overflow:hidden}
.ftx-hero-visual::before{content:"";position:absolute;width:55%;height:55%;border-radius:50%;background:radial-gradient(circle,rgba(122,233,219,.19),rgba(130,117,220,.03) 64%,transparent 65%);box-shadow:0 0 100px rgba(71,156,175,.13)}
.ftx-hero-visual>span{position:relative;font-size:.8rem;font-weight:750;letter-spacing:.18em;color:#b8d7d7;text-align:center}
.ftx-orbit{position:absolute;border:1px solid rgba(140,226,231,.18);border-radius:50%;inset:12%;animation:ftxOrbit 28s linear infinite}
.ftx-orbit::after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;top:7%;left:21%;background:#8fe6d7;box-shadow:0 0 30px rgba(118,240,197,.3)}
.ftx-orbit-b{inset:22%;animation-duration:38s;animation-direction:reverse;border-color:rgba(185,156,255,.23)}
.ftx-orbit-c{inset:35%;animation-duration:44s;opacity:.7}
@keyframes ftxOrbit{to{transform:rotate(360deg)}}
.ftx-anchor-bar{position:relative;border-block:1px solid rgba(255,255,255,.09);background:#13131c}
.ftx-anchor-bar>.container{display:flex;align-items:center;flex-wrap:nowrap;gap:clamp(1rem,2.4vw,3rem);overflow-x:auto;scrollbar-width:thin}
.ftx-anchor-bar a{flex:none;color:#c0bdce;display:inline-flex;padding:1rem 0;font-size:.84rem;font-weight:760;text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.ftx-anchor-bar a:hover,.ftx-anchor-bar a:focus-visible{color:#a0f3d9;border-color:#86ecd7}
.ftx-film,.ftx-analytics,.ftx-book{background:linear-gradient(135deg,#15131f,#0c0c13)}
.ftx-film-grid,.ftx-overview-grid,.ftx-analytics-grid,.ftx-oem-grid,.ftx-planning-grid,.ftx-faq-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,6rem);align-items:center}
.ftx-film h2,.ftx-overview h2,.ftx-analytics h2,.ftx-oem h2,.ftx-planning h2{font-size:clamp(2.6rem,4.2vw,5rem);line-height:1.08;letter-spacing:-.058em;margin:.6rem 0 1.4rem}
.ftx-film p,.ftx-overview p,.ftx-analytics p,.ftx-oem p,.ftx-planning p{line-height:1.75}
.ftx-video-card{border-radius:clamp(18px,2vw,28px);margin:0;padding:9px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.13);min-width:0}
.ftx-video-card video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:clamp(18px,2vw,28px);background:#0b0b10}
.ftx-video-card figcaption{font-size:.76rem;color:#a9a5b7;padding:1rem .4rem .35rem}
.ftx-overview,.ftx-visits{background:radial-gradient(ellipse at 95% 20%,rgba(118,240,197,.065),transparent 35%),#101016}
.ftx-overview-grid{align-items:start}
.ftx-overview-grid>div:last-child{padding-top:1rem}
.ftx-workflow{background:#0b0b11}
.ftx-workflow .section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.6fr);align-items:end;gap:2.2rem}
.ftx-workflow .section-head h2{max-width:17ch}
.ftx-workflow .section-head>p{max-width:50ch;line-height:1.7}
.ftx-stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,1.3vw,1.35rem);margin-top:clamp(2rem,4vw,4rem)}
.ftx-stage{min-width:0;overflow:hidden;border-radius:clamp(18px,2vw,28px);border:1px solid rgba(255,255,255,.13);background:linear-gradient(145deg,#1c1b25,#13131c);transition:transform .28s ease,border-color .28s ease}
.ftx-stage:hover{transform:translateY(-5px);border-color:rgba(154,235,218,.4)}
.ftx-stage figure{aspect-ratio:16/10;min-width:0;margin:0;overflow:hidden;background:#11151e}
.ftx-stage img{display:block;width:100%;height:100%;object-fit:cover;border-radius:24px 24px 0 0}
.ftx-stage-content{padding:clamp(1.2rem,2vw,1.8rem)}
.ftx-stage-index,.ftx-number,.ftx-small-label{color:#85e9ca;font-size:.68rem;letter-spacing:.11em;font-weight:800}
.ftx-stage h3{color:#f5f3fa;margin:.65rem 0 .75rem;font-size:clamp(1.2rem,1.6vw,1.6rem);letter-spacing:-.035em;line-height:1.2}
.ftx-stage p{line-height:1.67;font-size:.9rem;color:#b7b3c3;margin:0}
.ftx-analytics-grid{align-items:start}
.ftx-evidence-grid{display:grid;grid-template-columns:1fr;gap:.75rem}
.ftx-evidence-grid article{padding:clamp(1.15rem,2vw,1.6rem);border:1px solid rgba(255,255,255,.12);border-radius:22px;background:rgba(255,255,255,.045)}
.ftx-evidence-grid span{color:#93ecd5;font-size:.75rem;font-weight:700}
.ftx-evidence-grid h3{color:#f5f4f8;margin:.5rem 0;font-size:1.2rem}
.ftx-evidence-grid p{margin:0}
.ftx-oem{background:radial-gradient(ellipse at 80% 50%,rgba(162,131,230,.10),transparent 39%),#101018}
.ftx-oem-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr)}
.ftx-oem-demo{--ftx-accent:#3775cf;min-width:0;text-align:center;background:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.16);border-radius:clamp(18px,2vw,28px);padding:2rem;overflow:hidden}
.ftx-vial-art{position:relative;width:210px;height:290px;margin:2rem auto 1rem}
.ftx-vial-cap{height:41px;width:146px;margin:auto;border-radius:25px 25px 8px 8px;background:linear-gradient(105deg,color-mix(in srgb,var(--ftx-accent) 85%,white),var(--ftx-accent) 42%,color-mix(in srgb,var(--ftx-accent) 70%,black));box-shadow:0 10px 15px #0002;position:relative;z-index:3;transition:background .25s}
.ftx-vial-neck{width:120px;height:25px;margin:-3px auto -4px;background:linear-gradient(90deg,#dceff4,#a0c5d7,#e9f8ff);border-radius:5px;position:relative;z-index:2}
.ftx-vial-body{height:230px;width:182px;margin:auto;border-radius:25px 25px 48px 48px;border:3px solid rgba(215,241,250,.53);background:linear-gradient(110deg,rgba(235,250,255,.28),rgba(196,222,236,.07) 30%,rgba(210,244,249,.24) 72%,rgba(245,253,255,.33));box-shadow:inset 11px 0 20px rgba(255,255,255,.25),0 26px 60px rgba(0,0,0,.18);display:grid;place-items:center}
.ftx-vial-label{width:100%;height:98px;background:linear-gradient(180deg,rgba(250,252,255,.97) 0%,rgba(238,246,250,.98) 75%,var(--ftx-accent) 76%,var(--ftx-accent) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:background .25s}
.ftx-vial-label span{display:block;width:50%;height:6px;background:#becdd4;border-radius:10px}
.ftx-vial-label span:nth-child(2){width:65%;height:4px}
.ftx-vial-label span:nth-child(3){width:42%;height:4px}
.ftx-swatches{border:0;padding:0;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.ftx-swatches legend{margin:0 auto 1rem;font-size:.82rem;color:#bfc1cd}
.ftx-swatches button{width:36px;height:36px;border:2px solid rgba(255,255,255,.47);border-radius:50%;background:var(--swatch);cursor:pointer;transition:box-shadow .2s,transform .2s}
.ftx-swatches button.is-active{box-shadow:0 0 0 3px #11111a,0 0 0 5px #8ef0d6;transform:scale(1.05)}
.ftx-illustration-note{margin:1.3rem 0 0!important;font-size:.75rem!important}
.ftx-visits .section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.65fr);gap:2rem;align-items:end}
.ftx-visit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:3rem}
.ftx-visit-grid article{border-radius:clamp(18px,2vw,28px);padding:clamp(1.5rem,3vw,3rem);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;align-items:flex-start}
.ftx-visit-grid h3{font-size:clamp(1.8rem,2.5vw,2.7rem);letter-spacing:-.048em;margin:.65rem 0 1rem}
.ftx-visit-grid p{max-width:55ch;line-height:1.75}
.ftx-visit-grid dl{margin:1rem 0 2rem;width:100%}
.ftx-visit-grid dl>div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgba(255,255,255,.12);padding:.75rem 0;font-size:.86rem}
.ftx-visit-grid dt{color:#90e8d5;font-weight:700;flex:0 0 100px}
.ftx-visit-grid dd{margin:0;text-align:right;color:#c0bccc}
.ftx-visit-grid .button{margin-top:auto}
.ftx-planning{background:#121119}
.ftx-planning-grid{align-items:start}
.ftx-planning ol{padding:0;margin:0;list-style:none;counter-reset:tourstep}
.ftx-planning li{position:relative;counter-increment:tourstep;border-bottom:1px solid rgba(255,255,255,.15);padding:1.1rem 0 1.3rem 3.4rem}
.ftx-planning li::before{content:counter(tourstep,decimal-leading-zero);position:absolute;top:1.15rem;left:0;color:#9ff0dc;font-weight:850;font-size:.75rem}
.ftx-planning li strong{display:block;color:#f3f1f8;font-size:1.08rem}
.ftx-planning li span{display:block;color:#b9b5c4;font-size:.9rem;margin-top:.4rem}
.ftx-book-card{display:flex;justify-content:space-between;gap:3rem;align-items:center;padding:clamp(2rem,5vw,5rem);background:radial-gradient(circle at 95% 5%,rgba(159,135,243,.12),transparent 45%),rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);border-radius:clamp(18px,2vw,28px)}
.ftx-book h2{font-size:clamp(2.7rem,4.5vw,5rem);letter-spacing:-.06em;margin:.5rem 0 1rem}
.ftx-book-actions{display:flex;flex-direction:column;align-items:stretch;flex:none;gap:1rem}
.ftx-caution{font-size:.83rem!important;color:#9da2b3!important}
.ftx-faq{background:#0d0c12}
.ftx-faq-grid{align-items:start}
.ftx-faq .faq-list{margin:0}
@media(max-width:1000px){.ftx-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ftx-hero-layout,.ftx-film-grid,.ftx-overview-grid,.ftx-analytics-grid,.ftx-oem-grid,.ftx-planning-grid,.ftx-faq-grid{grid-template-columns:1fr}.ftx-hero-visual{max-width:310px}.ftx-hero{min-height:0}.ftx-book-card{flex-direction:column;align-items:flex-start}.ftx-book-actions{flex-direction:row;flex-wrap:wrap}}
@media(max-width:640px){.ftx-stage-grid,.ftx-visit-grid,.ftx-workflow .section-head,.ftx-visits .section-head{grid-template-columns:1fr}.ftx-hero{padding-block:8rem 4rem}.ftx-hero h1{font-size:clamp(3rem,12vw,5rem)}.ftx-hero-visual{display:none}.ftx-oem-demo{padding:1rem}.ftx-book-actions{flex-direction:column}.ftx-visit-grid dl>div{display:block}.ftx-visit-grid dd{text-align:left;margin-top:.3rem}}
@media(prefers-reduced-motion:reduce){.ftx-orbit{animation:none!important}.ftx-stage{transition:none}}
