/* ============================================================
 * YITONG 一通线艺 · 全站样式（电影感 · 工艺叙事）
 * ------------------------------------------------------------
 *  - 主色：科技蓝 #3B82F6 + 纯黑 #07090d + 银灰 #cdd2dc（蓝光 + 流光特效）
 *  - 字体：Inter / Noto Sans SC / Barlow Condensed
 *  - 章节：开场 / Hero / About / Craft / Products / Quality / Contact
 * ============================================================ */:root{/* 科技蓝主色（黑底 + 蓝字体特效） */--brand:#3B82F6;--brand-soft:#7FB2FF;--brand-deep:#1E4FA3;--ink:#f5f6fa;--ink-soft:#cdd2dc;--ink-mute:#8a90a0;--bg:#07090d;--bg-2:#0c1118;--bg-3:#141a24;--line:rgba(255,255,255,0.08);--line-strong:rgba(255,255,255,0.16);--accent-blue:#4a8cff;--accent-red:#d14545;--accent-copper:#c2763a;--shadow-1:0 2px 12px rgba(0,0,0,0.20);--shadow-2:0 8px 32px rgba(0,0,0,0.36);--shadow-3:0 24px 64px rgba(0,0,0,0.48);--ease:cubic-bezier(.65, .05, .36, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--container:1240px;--pad:clamp(20px, 4vw, 56px)}/* -------- reset -------- */*,*::before,*::after{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:'Inter','Noto Sans SC',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,'Microsoft Yahei',sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,canvas{display:block;max-width:100%}a{color:inherit;text-decoration:none;transition:color .3s var(--ease)}a:hover{color:var(--brand-soft)}button{font:inherit;cursor:pointer}::selection{background:var(--brand);color:#1a1208}/* ============================================================
 *  开场（intro）
 * ============================================================ */#intro{position:fixed;inset:0;z-index:100;pointer-events:none;/* 开场期间不接受任何点击 - 没有 skip */background:radial-gradient(ellipse at center, #0e141d 0%, #050709 80%);transition:opacity 1.2s var(--ease),filter 1.2s var(--ease)}#intro-canvas,#intro-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;/* video 元素：保持 16:9 裁切填充 */display:block;z-index:1}#intro-final{position:absolute;inset:0;background:#050709 url('../media/intro-final.png') center/cover no-repeat;opacity:0;/* 默认隐藏，finalize 时渐显 */z-index:2;transition:opacity .8s var(--ease);pointer-events:none}#intro.final-frame #intro-video{opacity:0}#intro.final-frame #intro-final{opacity:1}/* 末帧之上的虚化 scrim：让 hero 文字清晰浮出 */#intro-scrim{position:absolute;inset:0;z-index:3;opacity:0;transition:opacity 1.2s var(--ease);pointer-events:none;/* v3: lighter vignette — particles/video remain visible through glass */background:radial-gradient(ellipse at 30% 40%, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.28) 55%, rgba(0,0,0,0.42) 100%),linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.06) 40%, rgba(0,0,0,0.32) 100%);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}#intro.final-frame #intro-scrim{opacity:1;transition:opacity 1.2s var(--ease)}/* 视频降为铺底背景层时：scrim 立刻生效（不淡入），避免浮现瞬间视频过亮刺眼 */#intro.bg-layer:not(.final-frame) #intro-scrim{opacity:1;transition:none}/* 末帧轻微虚化（呼应"虚化等效果"），让文字浮于其上 */#intro.final-frame #intro-final{filter:blur(2.5px) brightness(0.6) saturate(0.9);transform:scale(1.04)}/* Showcase path: keep last frame sharp — no cinematic wash (showcase.css also overrides) */#intro.final-frame.showcase-mode #intro-final,#intro.showcase-mode #intro-final{filter:none;transform:scale(1.35)}.intro-chrome{position:absolute;z-index:2;pointer-events:none;opacity:1;transition:opacity .8s var(--ease)}#intro.chrome-fade .intro-chrome:not(.intro-scroll-hint){opacity:0}#intro.chrome-fade .intro-scroll-hint{opacity:1}/* stay until scroll *//* 顶部进度徽章（仅展示工艺阶段，无 skip） */.intro-stage{top:28px;left:50%;transform:translateX(-50%);padding:10px 22px;border-radius:100px;background:rgba(8, 12, 18, 0.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,0.08);font-size:13px;letter-spacing:.12em;color:var(--ink-soft);display:flex;align-items:center;gap:12px;font-weight:500;white-space:nowrap}.intro-stage .dot{width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 12px var(--brand);animation:dotPulse 1.4s infinite ease-in-out}@keyframes dotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.intro-stage .stage-zh{color:var(--brand-soft);font-weight:600;font-size:13px}.intro-stage .stage-en{font-family:'Barlow Condensed',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);font-size:11px}.intro-stage.flash{border-color:var(--brand);box-shadow:0 0 24px rgba(242,184,30,.4)}/* 左下角品牌 */.intro-brand{bottom:28px;left:32px;display:flex;flex-direction:column;gap:4px}.intro-brand .logo{font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:800;letter-spacing:.12em;color:var(--ink)}.intro-brand .sub{font-size:11px;letter-spacing:.32em;color:var(--ink-mute);text-transform:uppercase}/* 右下角时间戳 */.intro-timestamp{bottom:28px;right:32px;font-family:'Barlow Condensed',monospace;font-size:12px;color:var(--ink-mute);letter-spacing:.18em}.intro-timestamp span{color:var(--brand-soft)}/* v11.3 bottom-center scroll cue — elegant mouse + chevrons */.intro-scroll-hint{left:50%;right:auto;bottom:max(28px, env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 18px 10px;border:none;background:transparent;text-shadow:none;animation:hintBreath 2.8s ease-in-out infinite;transition:opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),visibility 0.55s,transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);will-change:opacity,transform}.intro-scroll-hint .hint-mouse{width:22px;height:34px;border:1.5px solid rgba(255, 255, 255, 0.55);border-radius:12px;position:relative;box-shadow:0 0 20px rgba(127, 233, 255, 0.18)}.intro-scroll-hint .hint-wheel{position:absolute;top:7px;left:50%;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:linear-gradient(180deg, #7fe9ff, rgba(127, 233, 255, 0.2));animation:hintWheel 1.8s cubic-bezier(0.45, 0, 0.2, 1) infinite}.intro-scroll-hint .hint-text{font-family:'Syne','Noto Sans SC','Barlow Condensed',sans-serif;font-size:11px;font-weight:600;letter-spacing:0.28em;text-transform:uppercase;color:rgba(245, 248, 255, 0.88);text-shadow:0 2px 16px rgba(0, 0, 0, 0.55)}.intro-scroll-hint .hint-text::after{content:none}.intro-scroll-hint .hint-line{display:none}.intro-scroll-hint .hint-chevs{display:flex;flex-direction:column;align-items:center;gap:2px;height:18px}.intro-scroll-hint .hint-chevs i{display:block;width:8px;height:8px;border-right:1.5px solid rgba(127, 233, 255, 0.85);border-bottom:1.5px solid rgba(127, 233, 255, 0.85);transform:rotate(45deg);opacity:0.25;animation:hintChev 1.6s ease-in-out infinite}.intro-scroll-hint .hint-chevs i:nth-child(2){animation-delay:0.22s}@keyframes hintBreath{0%,100%{transform:translateX(-50%) translateY(0);opacity:1}50%{transform:translateX(-50%) translateY(-6px);opacity:0.92}}@keyframes hintWheel{0%{transform:translateY(0);opacity:1}70%{transform:translateY(10px);opacity:0}100%{transform:translateY(10px);opacity:0}}@keyframes hintChev{0%,100%{opacity:0.2}40%{opacity:1}}/* Hide cue once user scrolls / chrome fades / past hero */#intro.chrome-fade .intro-scroll-hint,#intro.bg-layer .intro-scroll-hint,#intro.hint-gone .intro-scroll-hint,body.scrolled-past-hero .intro-scroll-hint,body.home-active .intro-scroll-hint,.intro-scroll-hint.is-gone{opacity:0 !important;visibility:hidden;pointer-events:none;animation:none;transform:translateX(-50%) translateY(12px)}/* top loader removed in v11.3 */.intro-stage,#hero-stage,#stage-label{display:none !important;visibility:hidden !important;height:0 !important;overflow:hidden !important}/* 开场到 hero 衔接：canvas/video 变背景层 */#intro.bg-layer{z-index:0;/* 落到内容层之下 */pointer-events:auto/* hero 启用鼠标拖拽 */}#intro.bg-layer .intro-chrome{display:none/* chrome 隐藏，但 canvas 还在 */}/* 12s 起视频降为背景但仍继续播：在文字底下加一层柔和暗化「遮罩」，
   让浮在之上的 hero 文字清晰（区别于定格后 final-frame 的重 scrim） */#intro.bg-layer:not(.final-frame) #intro-scrim{opacity:1;backdrop-filter:none;-webkit-backdrop-filter:none;/* v3: soft vignette only — keep intro video readable under hero glass */background:radial-gradient(ellipse at 50% 42%, rgba(5,8,12,0.12) 0%, rgba(5,8,12,0.28) 55%, rgba(5,8,12,0.45) 100%),linear-gradient(180deg, rgba(5,8,12,0.22) 0%, rgba(5,8,12,0.10) 30%, rgba(5,8,12,0.38) 100%)}/* ============================================================
 *  导航
 * ============================================================ */.site-nav{position:fixed;top:0;left:0;right:0;z-index:30;padding:18px var(--pad);display:flex;align-items:center;justify-content:space-between;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:0;transform:translateY(-12px);transition:opacity .8s var(--ease),transform .8s var(--ease),background .35s ease,backdrop-filter .35s ease,box-shadow .35s ease}body.hero-active .site-nav,body.home-active .site-nav{opacity:1;transform:translateY(0)}/* frosted only after scroll (wired in cinematic.js) */body.nav-solid .site-nav,.site-nav.is-solid{background:rgba(8, 12, 18, 0.52);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}.nav-brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.08em}.nav-brand .mark{width:36px;height:36px;background:var(--brand);color:#1a1208;display:grid;place-items:center;font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:800;border-radius:4px}.nav-brand .name{font-size:16px}.nav-brand .name small{display:block;font-size:10px;letter-spacing:.3em;color:var(--ink-mute);margin-top:2px}/* ---- 一通官方 LOGO 图标（PDF 提取、去背、重染为深底可见的蓝 ZY 标记） ---- */.brand-mark{display:block;height:24px;/* 完整锁标（J + 一通线艺 + YI TONG），小而精 */width:auto;flex:0 0 auto;/* 深底上提亮 + 轻微蓝色光晕，与站点科技蓝主色统一 */filter:drop-shadow(0 0 8px rgba(59,130,246,.35)) drop-shadow(0 2px 8px rgba(0,0,0,.55))}.hero-brand .brand-mark{height:40px;/* 首屏海报：中等，不喧宾夺主 */margin:0 auto 10px;filter:drop-shadow(0 0 14px rgba(59,130,246,.40)) drop-shadow(0 4px 16px rgba(0,0,0,.6))}.intro-brand .brand-mark{height:26px;/* 开场视频左下角：小水印级，高级感 */filter:drop-shadow(0 0 10px rgba(59,130,246,.38)) drop-shadow(0 2px 10px rgba(0,0,0,.55))}.nav-list{display:flex;gap:32px}.nav-list a{font-size:14px;letter-spacing:.04em;color:var(--ink-soft);position:relative;padding:4px 0}.nav-list a::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left center;transition:transform .3s var(--ease)}.nav-list a:hover::after,.nav-list a.active::after{transform:scaleX(1)}.nav-list a.active{color:var(--brand-soft)}.nav-toggle{display:none;background:none;border:0;color:var(--ink);font-size:22px;padding:8px}/* 右侧：语言切换 + 移动端菜单 */.nav-right{display:flex;align-items:center;gap:12px}.lang-toggle{display:inline-flex;align-items:center;gap:0;padding:4px;border-radius:999px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);font-family:'Inter','Noto Sans SC',sans-serif;font-size:12px;font-weight:600;letter-spacing:.08em;cursor:pointer;transition:border-color .3s var(--ease),background .3s var(--ease)}.lang-toggle:hover{border-color:var(--brand)}.lang-toggle .opt{padding:6px 12px;border-radius:999px;color:var(--ink-mute);transition:color .3s var(--ease),background .3s var(--ease);line-height:1}.lang-toggle .opt.active{background:var(--brand);color:#1a1208}/* ============================================================
 *  Hero（背景层 + 浮于上方的文字）
 * ============================================================ */.hero{/* 首屏海报：定格冻结帧之上的着陆层 */position:relative;min-height:100vh;min-height:100svh;padding:96px var(--pad) 72px;display:flex;align-items:center;z-index:2;overflow:hidden;color:var(--ink)}/* 开场播放期间，.hero 文案作为文字浮现层浮在（视频降为 .bg-layer 背景后仍在播的）视频之上。
   不再把 hero 变 fixed —— 定格后它天然是文档流首屏，可滚动露出下一段；视频一直播到 ended 才定格。 *//* 细腻暗角遮罩：让视频/末帧不抢文字，同时留出通透感 */.hero::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;/* v3: light vignette — not a full-screen black wash */background:radial-gradient(ellipse at 50% 42%, rgba(7,9,13,0.06) 0%, rgba(7,9,13,0.14) 50%, rgba(7,9,13,0.38) 100%),linear-gradient(180deg, rgba(7,9,13,0.22) 0%, rgba(7,9,13,0.05) 28%, rgba(7,9,13,0.08) 66%, rgba(7,9,13,0.40) 100%)}.hero-inner{position:relative;z-index:2;width:100%;max-width:1000px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}/* ---- 品牌行：YITONG + 副标题（与 intro 角标同款文字锁标，避免与顶部 nav logo 重复） ---- */.hero-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:18px;opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease) .1s,transform 1s var(--ease-out) .1s}body.hero-active .hero-brand{opacity:1;transform:translateY(0)}.hero-brand .brand-mark-text{font-family:'Barlow Condensed',sans-serif;font-size:clamp(22px, 2.2vw, 28px);font-weight:800;letter-spacing:.32em;color:var(--ink);text-shadow:0 0 18px rgba(59,130,246,.35),0 2px 8px rgba(0,0,0,.5);padding-left:.32em/* compensate for letter-spacing right-shift */}.hero-brand .brand-mark-sub{font-family:'Barlow Condensed',sans-serif;font-size:clamp(9px, .8vw, 11px);letter-spacing:.42em;color:var(--brand-soft);text-transform:uppercase;font-weight:600;text-shadow:0 1px 10px rgba(0,0,0,.6)}/* ---- 标语：From one core wire to every scene of life. ---- */.hero-title{font-size:clamp(30px, 5.2vw, 66px);font-weight:800;line-height:1.1;margin:6px 0 18px;letter-spacing:-.015em;max-width:1000px;text-shadow:0 2px 34px rgba(0,0,0,.55)}.hero-title .line{display:block;overflow:hidden}.hero-title .line span{display:inline-block;transform:translateY(110%);opacity:0;transition:transform 1s var(--ease-out),opacity 1s var(--ease-out)}body.hero-active .hero-title .line:nth-child(1) span{transition-delay:.20s}body.hero-active .hero-title .line:nth-child(2) span{transition-delay:.34s}body.hero-active .hero-title .line:nth-child(3) span{transition-delay:.48s}body.hero-active .hero-title .line span{transform:translateY(0);opacity:1}.hero-title em{font-style:normal;color:var(--brand);position:relative;white-space:nowrap}.hero-title em::after{content:'';position:absolute;left:0;right:0;bottom:5px;height:8px;background:linear-gradient(90deg, var(--brand) 0%, transparent 100%);opacity:.28}/* ---- 使命文案（标语之后一小会浮现） ---- */.hero-sub{font-size:clamp(13px, 1.35vw, 16px);line-height:1.75;color:var(--ink-soft);max-width:560px;opacity:0;transform:translateY(18px);transition:opacity 1.05s var(--ease) .7s,transform 1.05s var(--ease-out) .7s;text-shadow:0 1px 10px rgba(0,0,0,.5)}body.hero-active .hero-sub{opacity:1;transform:translateY(0)}/* ---- CTA 按钮（使命之后浮现） ---- */.hero-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:34px;opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease) 1s,transform 1s var(--ease-out) 1s}body.hero-active .hero-actions{opacity:1;transform:translateY(0)}.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:4px;font-size:14px;letter-spacing:.08em;font-weight:600;text-transform:uppercase;font-family:'Barlow Condensed',sans-serif;border:0;transition:transform .3s var(--ease),background .3s var(--ease),color .3s var(--ease)}.btn-primary{background:var(--brand);color:#1a1208}.btn-primary:hover{transform:translateY(-2px);background:var(--brand-soft);color:#1a1208}.btn-ghost{background:rgba(255,255,255,0.05);color:var(--ink);border:1px solid var(--line-strong)}.btn-ghost:hover{background:rgba(255,255,255,0.10);color:var(--ink)}.btn-arrow::after{content:'→';font-size:18px;transition:transform .3s var(--ease)}.btn-arrow:hover::after{transform:translateX(4px)}/* 移动端窄屏：按钮纵排 */@media (max-width: 640px){.hero{padding:84px var(--pad) 56px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{justify-content:center}}/* ============================================================
 *  章节通用
 * ============================================================ */section{position:relative;z-index:2;padding:clamp(80px, 12vw, 160px) var(--pad);background:var(--bg)}.section-dark{background:linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%)}.container{max-width:var(--container);margin:0 auto}.section-head{margin-bottom:64px}.section-eyebrow{display:inline-block;font-family:'Barlow Condensed',sans-serif;font-size:13px;letter-spacing:.35em;color:var(--brand);text-transform:uppercase;margin-bottom:12px}.section-title{font-size:clamp(32px, 5vw, 56px);font-weight:800;line-height:1.15;margin:0 0 16px;letter-spacing:-.01em}.section-title em{font-style:normal;color:var(--brand)}.section-lead{font-size:17px;color:var(--ink-soft);max-width:720px}/* reveal */[data-reveal]{opacity:0;transform:translateY(40px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}[data-reveal].in{opacity:1;transform:none}[data-reveal][data-reveal-delay="1"]{transition-delay:.1s}[data-reveal][data-reveal-delay="2"]{transition-delay:.2s}[data-reveal][data-reveal-delay="3"]{transition-delay:.3s}[data-reveal][data-reveal-delay="4"]{transition-delay:.4s}[data-reveal][data-reveal-delay="5"]{transition-delay:.5s}/* ============================================================
 *  About 走进一通
 * ============================================================ */.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.about-media{position:relative;aspect-ratio:4/5;background:var(--bg-3);border-radius:8px;overflow:hidden}.about-media::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg, transparent 60%, rgba(242,184,30,.15) 100%)}.about-media .badge{position:absolute;bottom:24px;left:24px;background:rgba(7,9,13,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:16px 20px;border-radius:6px;border-left:3px solid var(--brand)}.about-media .badge .y{font-size:24px;font-weight:700;color:var(--brand)}.about-media .badge .t{font-size:12px;color:var(--ink-mute);letter-spacing:.15em}.about-text p{color:var(--ink-soft);margin:0 0 18px}.about-stats{display:grid;grid-template-columns:repeat(3, 1fr);gap:32px;margin-top:40px;padding-top:40px;border-top:1px solid var(--line)}.about-stats .item .v{font-family:'Barlow Condensed',sans-serif;font-size:44px;font-weight:700;color:var(--brand-soft);line-height:1}.about-stats .item .l{font-size:12px;color:var(--ink-mute);letter-spacing:.15em;text-transform:uppercase;margin-top:8px}/* ============================================================
 *  Craft 工艺流程（滚动驱动 3D 分层）
 * ============================================================ */#craft-section{background:radial-gradient(ellipse at 70% 30%, rgba(242,184,30,0.05) 0%, transparent 50%),var(--bg);position:relative}/* ============================================================== *//*  CRAFT · 滚动驱动工业动画舞台                                       *//*  左侧：7 步步骤 → 右侧：sticky 3D 画布（GSAP ScrollTrigger pin） *//* ============================================================== */#craft{/* v3: nearly transparent so craft-canvas screen-blends over particles */background:radial-gradient(ellipse 60% 50% at 50% 0%, rgba(94,234,255,.03) 0%, transparent 60%),transparent/* overflow 必须拿掉：GSAP ScrollTrigger pin 会在 #craft 后面插入 spacer div，
     overflow:hidden 会把它裁掉，导致 pin 不工作 */}/* ============================================================
 *  Craft 工艺 · 视频铺底 + 滚动驱动
 *  - .craft-pin 被 GSAP ScrollTrigger pin 在视口里
 *  - <video> 跟着滚轮 currentTime 前进/回滚
 *  - 7 个 .craft-step 节点随进度浮起
 * ============================================================ */#craft{position:relative}/* .craft-pin 去掉纯黑硬底，让粒子视频背景直接透出 → 视频工艺动画与背景无缝融合 */.craft-pin{position:relative;width:100%;height:100vh;min-height:640px;overflow:hidden;background:transparent}/* .craft-video：作为帧源存在（驱动 currentTime / 解码），
   但不再作为视觉显示 —— 用 .craft-canvas 替代以做实时黑色键控去黑底 */.craft-video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;left:-9999px;top:-9999px}/* .craft-canvas：实际显示层 —— 处理器把每帧视频的深底像素 alpha=0 抠掉，
   只保留发光的蓝色线条/蛛网/线束；再以 screen 混合模式叠加到粒子背景上 */.craft-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:0;transition:opacity .9s var(--ease);will-change:opacity,transform;/* screen 混合：底色像素透明后与粒子视频 screen 混合 → 工艺线条浮在背景上 */mix-blend-mode:screen;filter:brightness(1.45) contrast(1.20) saturate(1.35) drop-shadow(0 0 22px rgba(120,180,255,.35))}.craft-canvas.ready{opacity:1}/* 退场：末帧工艺线条保留余韵作为视觉锚点（与旧版 video 退场一致） */.craft-pin.exiting .craft-canvas{opacity:.55;transform:scale(1.05);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}/* .craft-pin.exiting 退场时底色保持透明（让粒子背景持续透出） */.craft-pin.exiting{background:transparent;transition:background .9s var(--ease)}/* #craft 段在退场期间也保持透明，让 pin 释放后仍承粒子背景 */body.craft-handoff #craft{background:transparent;transition:background .9s var(--ease)}.craft-pin.exiting .craft-video{opacity:.62;transform:scale(1.06);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}/* .craft-scrim 大幅削弱：原 .88 重暗遮罩压死了视频工艺线条；改为极轻环境光，
   仅左侧微压暗保证文字可读，视频画面不受压 */.craft-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg, rgba(4,6,10,.45) 0%, rgba(4,6,10,.15) 50%, rgba(4,6,10,0) 100%),linear-gradient(180deg, rgba(4,6,10,.30) 0%, rgba(4,6,10,0) 30%, rgba(4,6,10,0) 70%, rgba(4,6,10,.45) 100%)}.craft-pin.exiting .craft-scrim{background:linear-gradient(180deg, rgba(4,6,10,.20) 0%, rgba(4,6,10,0) 100%);transition:background .9s var(--ease)}.craft-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:44px 56px 36px;max-width:1440px;margin:0 auto;transition:opacity .7s var(--ease),transform .7s var(--ease)}.craft-pin.exiting .craft-content{/* 内容上飘 + 渐出 + 轻微缩放，像被卷轴轻轻推走 */opacity:0;transform:translateY(-44px) scale(.985);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}.craft-pin.exiting .craft-progress{opacity:0;transition:opacity .8s var(--ease)}.craft-head{max-width:580px}.craft-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--brand);margin-bottom:10px}.craft-title{font-size:clamp(26px, 3.4vw, 44px);font-weight:800;line-height:1.08;letter-spacing:-.015em;margin:0 0 10px;color:var(--ink);text-shadow:0 2px 24px rgba(0,0,0,.45)}.craft-lead{font-size:13px;line-height:1.6;color:var(--ink-soft);margin:0;max-width:44ch}/* 7 个阶段文字节点 —— 默认半透明下移，active 浮起 */.craft-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;max-width:620px}.craft-step{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:9px 0;border-top:1px solid rgba(255,255,255,.08);position:relative;/* 默认不可见：轮到它时才浮现，过去后淡出 */opacity:0;transform:translateY(20px) translateX(0);transition:opacity .85s var(--ease),transform .85s var(--ease)}.craft-step:last-child{border-bottom:1px solid rgba(255,255,255,.08)}.craft-step .idx{font-family:'Barlow Condensed',sans-serif;font-size:30px;font-weight:800;color:var(--ink-mute);line-height:1;letter-spacing:-.02em;transition:color .6s var(--ease),transform .6s var(--ease)}.craft-step .ct small{display:block;font-family:'Barlow Condensed',sans-serif;font-size:9px;color:var(--ink-mute);letter-spacing:.28em;text-transform:uppercase;margin-bottom:3px}.craft-step .ct h3{margin:0 0 4px;font-size:15.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em;transition:color .6s var(--ease)}.craft-step .ct p{font-size:11.5px;color:var(--ink-soft);line-height:1.45;margin:0;max-width:40ch}/* active：当前阶段文字浮现（渐入） */.craft-step.active{opacity:1;transform:translateY(0) translateX(14px)}.craft-step.active .idx{color:var(--brand);transform:scale(1.08)}.craft-step.active .ct h3{color:var(--brand-soft)}/* passed：走过之后向上淡出（渐出），不再占位留痕 */.craft-step.passed{opacity:0;transform:translateY(-12px) translateX(14px)}.craft-step.passed .idx{color:var(--ink-soft)}/* ── 尾声：视频末帧冻结，7 个步骤一条一条浮现并固定 ── */.craft-pin.finale .craft-step{opacity:1;transform:translateY(0) translateX(14px)}.craft-pin.finale .craft-step .idx{color:var(--ink-soft)}.craft-pin.finale .craft-step .ct h3{color:var(--ink)}/* 逐条延迟浮现（一条一条出现） */.craft-pin.finale .craft-step:nth-child(1){transition-delay:0s}.craft-pin.finale .craft-step:nth-child(2){transition-delay:.13s}.craft-pin.finale .craft-step:nth-child(3){transition-delay:.26s}.craft-pin.finale .craft-step:nth-child(4){transition-delay:.39s}.craft-pin.finale .craft-step:nth-child(5){transition-delay:.52s}.craft-pin.finale .craft-step:nth-child(6){transition-delay:.65s}.craft-pin.finale .craft-step:nth-child(7){transition-delay:.78s}/* 尾声时右侧锚点全部点亮 */.craft-pin.finale .craft-anchors li{opacity:1}.craft-pin.finale .craft-anchors li .dot{background:var(--brand);transform:scale(1)}/* 顶部进度：阶段编号 + 当前阶段名 */.craft-progress{position:absolute;top:72px;right:56px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;z-index:3;font-family:'Barlow Condensed',sans-serif}.craft-progress-text{font-size:26px;font-weight:800;color:var(--brand);letter-spacing:.04em;line-height:1;font-feature-settings:"tnum"}.craft-progress-stage{font-size:11px;color:var(--ink-soft);letter-spacing:.24em;text-transform:uppercase}/* 右侧时间锚点：7 个 dot 对应视频时间分界 */.craft-anchors{position:absolute;right:56px;top:50%;transform:translateY(-50%);list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;z-index:3}.craft-anchors li{display:flex;align-items:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-size:11px;color:var(--ink-mute);letter-spacing:.12em;transition:color .5s var(--ease)}.craft-anchors .dot{width:8px;height:8px;border-radius:50%;background:rgba(59,130,246,.30);transition:background .5s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease)}.craft-anchors li.done .dot{background:var(--brand);box-shadow:0 0 8px var(--brand)}.craft-anchors li.active .dot{background:var(--brand);transform:scale(1.4);box-shadow:0 0 12px var(--brand)}.craft-anchors li.active{color:var(--brand)}@media (max-width: 980px){.craft-content{padding:56px 24px}.craft-head{max-width:100%}.craft-steps{max-width:100%}.craft-progress{top:56px;right:24px}.craft-progress-text{font-size:20px}.craft-anchors{right:14px;gap:10px}.craft-step{grid-template-columns:54px 1fr;gap:16px;padding:18px 0}.craft-step .idx{font-size:32px}.craft-step .ct h3{font-size:16px}.craft-step .ct p{font-size:12px}}/* ============================================================
 *  Products 产品中心
 * ============================================================ */.product-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:60px;flex-wrap:wrap}.product-tab{background:none;border:0;padding:20px 32px;color:var(--ink-mute);font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-family:'Barlow Condensed',sans-serif;position:relative;cursor:pointer}.product-tab small{display:block;font-size:11px;color:var(--ink-mute);font-family:'Inter',sans-serif;font-weight:400;letter-spacing:0;text-transform:none;margin-top:4px}.product-tab.active{color:var(--brand)}.product-tab.active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand)}.product-panel{display:none}.product-panel.active{display:block;animation:fadeUp .6s var(--ease) both}@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.product-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));gap:24px}.product-card{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:transform .4s var(--ease),border-color .4s var(--ease)}.product-card:hover{transform:translateY(-4px);border-color:var(--brand)}.product-card .img{aspect-ratio:4/3;background:var(--bg-3);position:relative;overflow:hidden}.product-card .img::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg, transparent 70%, rgba(242,184,30,0.10) 100%)}.product-card .body{padding:20px}.product-card .name{font-size:16px;font-weight:700;margin:0 0 6px}.product-card .meta{font-size:12px;color:var(--ink-mute);letter-spacing:.1em;margin-bottom:8px}.product-card .desc{font-size:13px;color:var(--ink-soft);line-height:1.5;margin-bottom:16px}.product-card .specs{display:flex;flex-wrap:wrap;gap:6px}.product-card .specs span{font-size:11px;padding:3px 8px;background:rgba(242,184,30,0.10);color:var(--brand-soft);border-radius:3px;border:1px solid rgba(242,184,30,0.20)}/* ============================================================
 *  Quality 品质与认证
 * ============================================================ */.quality-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:24px}.quality-card{padding:32px 24px;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden;transition:border-color .4s var(--ease),transform .4s var(--ease)}.quality-card:hover{border-color:var(--brand);transform:translateY(-4px)}.quality-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--brand) 0%, transparent 100%)}.quality-card .icon{width:48px;height:48px;display:grid;place-items:center;background:rgba(242,184,30,0.10);color:var(--brand);border-radius:6px;font-size:22px;margin-bottom:20px}.quality-card h4{font-size:18px;margin:0 0 8px}.quality-card p{font-size:13px;color:var(--ink-soft);line-height:1.6;margin:0 0 16px}.quality-card .meta{font-family:'Barlow Condensed',sans-serif;font-size:12px;color:var(--ink-mute);letter-spacing:.2em;text-transform:uppercase;padding-top:16px;border-top:1px solid var(--line)}/* ============================================================
 *  Application 应用领域
 * ============================================================ */.app-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:16px}.app-card{padding:32px 24px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;text-align:center;transition:all .4s var(--ease)}.app-card:hover{border-color:var(--brand);background:linear-gradient(180deg, var(--bg-2) 0%, rgba(242,184,30,0.04) 100%)}.app-card .icon{font-size:32px;color:var(--brand);margin-bottom:16px}.app-card .name{font-size:15px;font-weight:700}.app-card .name small{display:block;font-size:11px;color:var(--ink-mute);font-weight:400;margin-top:4px;letter-spacing:.15em;text-transform:uppercase}/* ============================================================
 *  Contact 联系我们
 * ============================================================ */.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-info-item{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.contact-info-item:last-child{border-bottom:0}.contact-info-item .icon{width:40px;height:40px;flex-shrink:0;background:rgba(242,184,30,0.10);color:var(--brand);border-radius:4px;display:grid;place-items:center;font-size:16px}.contact-info-item .body .lbl{font-size:11px;color:var(--ink-mute);letter-spacing:.2em;text-transform:uppercase;margin-bottom:4px}.contact-info-item .body .val{font-size:16px;font-weight:600}.contact-info-item .body .val small{display:block;font-size:13px;font-weight:400;color:var(--ink-soft);margin-top:2px}.contact-form .field{margin-bottom:20px}.contact-form label{display:block;font-size:12px;color:var(--ink-mute);letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px}.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:14px 16px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-family:inherit;font-size:14px;transition:border-color .3s var(--ease)}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:none;border-color:var(--brand)}.contact-form textarea{resize:vertical;min-height:100px}.contact-form .submit-row{display:flex;align-items:center;gap:16px;margin-top:24px}#contact-ok{font-size:13px;color:var(--brand-soft);opacity:0;transition:opacity .4s var(--ease)}#contact-ok.show{opacity:1}/* ============================================================
 *  Footer
 * ============================================================ */.site-footer{position:relative;z-index:2;background:#04060a;padding:60px var(--pad) 30px;border-top:1px solid var(--line)}.footer-inner{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px}.footer-col h5{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--brand);margin:0 0 16px}.footer-col p,.footer-col li{font-size:13px;color:var(--ink-mute);line-height:1.8}.footer-col li{list-style:none}.footer-col a:hover{color:var(--brand)}.footer-bottom{max-width:var(--container);margin:40px auto 0;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-mute)}/* ============================================================
 *  响应式
 * ============================================================ */@media (max-width: 1024px){.craft-layered{grid-template-columns:1fr;gap:40px}.craft-canvas{position:relative;top:0;max-width:560px;margin:0 auto;width:100%}.quality-grid{grid-template-columns:repeat(2, 1fr)}.app-grid{grid-template-columns:repeat(3, 1fr)}.about-grid{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr 1fr}.about-media{max-width:480px;margin:0 auto}}@media (max-width: 720px){.hero{padding-top:100px}.nav-list{display:none}.nav-toggle{display:block}body.nav-open .nav-list{display:flex;flex-direction:column;gap:4px;position:absolute;top:100%;left:0;right:0;background:rgba(8, 12, 18, 0.88);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);padding:14px 18px 18px;border-bottom:1px solid rgba(255,255,255,0.1);z-index:50}body.nav-open .nav-list a{width:100%;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,0.06)}.craft-step{grid-template-columns:56px 1fr;gap:16px;padding:28px 0 28px 16px}.craft-step .idx{font-size:40px}.craft-step .name > span{font-size:18px}.quality-grid{grid-template-columns:1fr}.app-grid{grid-template-columns:repeat(2, 1fr)}.footer-inner{grid-template-columns:1fr}.intro-stage{padding:8px 14px;font-size:11px;gap:8px}.lang-toggle .opt{padding:5px 9px;font-size:11px}}/* 弱视动 */@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}/* 防止滚动穿透：开场期间锁滚动 */body.intro-lock{overflow:hidden;height:100vh}/* ============================================================
 *  v5 · 工业传输电缆广告（流光溢彩）
 *  - 12s 起 hero 文案（品牌/标语/使命/按钮）浮于视频生活场景之上
 *  - 视频结束后末帧冻结做主页固定背景（#intro.bg-layer）
 *  - #light-flow 主页全屏光流层（mix-blend-mode: screen）
 *  - 滚动时光流轻微视差
 * ============================================================ *//* ---- #light-flow：流光溢彩固定光流层（finalize 后激活） ---- */#light-flow{position:fixed;inset:-10%;z-index:1;pointer-events:none;opacity:0;transition:opacity 1.6s var(--ease);mix-blend-mode:screen;will-change:transform}body.light-flow #light-flow{opacity:1}#light-flow .ray{position:absolute;top:-20%;width:2px;height:140%;background:linear-gradient(180deg,
    transparent 0%,
    rgba(255,255,255,0) 8%,
    rgba(255,255,255,.72) 30%,
    rgba(255,255,255,.95) 50%,
    rgba(140,210,255,.55) 72%,
    transparent 90%);filter:blur(1px);opacity:.55;transform:rotate(20deg);animation:rayDrift 16s linear infinite}#light-flow .r1{left:15%;animation-duration:16s;animation-delay:-2s;opacity:.45}#light-flow .r2{left:35%;width:1px;animation-duration:22s;animation-delay:-7s;opacity:.35;filter:blur(2px)}#light-flow .r3{left:55%;width:3px;animation-duration:18s;animation-delay:-11s;opacity:.65}#light-flow .r4{left:72%;width:1px;animation-duration:24s;animation-delay:-4s;opacity:.30;filter:blur(2.5px)}#light-flow .r5{left:88%;animation-duration:20s;animation-delay:-9s;opacity:.50}@keyframes rayDrift{0%{transform:rotate(20deg) translateX(-30%)}50%{transform:rotate(22deg) translateX( 10%)}100%{transform:rotate(20deg) translateX(-30%)}}#light-flow .glow{position:absolute;width:56vmin;height:56vmin;border-radius:50%;filter:blur(60px);opacity:.35;animation:glowPulse 9s ease-in-out infinite}#light-flow .g1{top:8%;left:4%;background:radial-gradient(circle, rgba(255,120,200,.55) 0%, transparent 70%);animation-delay:-2s}#light-flow .g2{bottom:6%;right:6%;background:radial-gradient(circle, rgba(90,200,255,.50) 0%, transparent 70%);animation-delay:-5s;width:50vmin;height:50vmin}#light-flow .g3{top:42%;right:12%;background:radial-gradient(circle, rgba(170,130,255,.50) 0%, transparent 70%);animation-delay:-3s;width:46vmin;height:46vmin}#light-flow .g4{bottom:18%;left:15%;background:radial-gradient(circle, rgba(120,255,200,.42) 0%, transparent 70%);animation-delay:-7s;width:42vmin;height:42vmin}#light-flow .g5{top:16%;left:46%;background:radial-gradient(circle, rgba(255,210,120,.40) 0%, transparent 70%);animation-delay:-4s;width:40vmin;height:40vmin}@keyframes glowPulse{0%,100%{transform:scale(1) translate(0, 0);opacity:.28}50%{transform:scale(1.25) translate(4%, -3%);opacity:.48}}/* ---- 主页背景：视频铺底（hero-active 起即半透明，视频在后面几页也一直透出播放），
        末帧冻结后同一透明度承接冻结帧 → 无背景突变 ---- *//* v3: opaque slabs removed — glass treatment lives in premium.css
   (kept as ultra-light fallback if premium fails to load) */body.hero-active section,body.home-active section{background:rgba(7, 9, 13, 0.22)}body.hero-active #products,body.home-active #products{background:linear-gradient(180deg, rgba(7,9,13,0.28) 0%, rgba(12,17,24,0.32) 100%)}body.hero-active #craft,body.home-active #craft{background:transparent}/* 滚动揭示元素带一道金光流过（流光溢彩的"光"落在内容上） */.product-card.in,.quality-card.in,.app-card.in,.craft-step.in{animation:revealGlow 1.2s var(--ease) both}@keyframes revealGlow{0%{box-shadow:0 0 0 0 rgba(127,178,255,0);border-color:var(--line)}40%{box-shadow:0 0 40px 0 rgba(127,178,255,.20);border-color:rgba(127,178,255,.5)}100%{box-shadow:0 0 0 0 rgba(127,178,255,0);border-color:var(--line)}}.product-card.in,.quality-card.in,.app-card.in{border-color:rgba(127,178,255,.4)}/* ---- Wire Catalogue：18 张卡片密排 ---- */.catalogue-grid{grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:18px}.catalogue-grid .product-card{background:rgba(12,17,24,.82)}.catalogue-grid .product-card .img{aspect-ratio:16/7}.catalogue-grid .product-card .body{padding:16px}.catalogue-grid .product-card .name{font-size:13px;font-weight:700;color:var(--brand-soft);line-height:1.4;margin-bottom:8px;word-break:break-word}.catalogue-grid .product-card .desc{font-size:12px;color:var(--ink-soft);line-height:1.55;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.catalogue-grid .product-card .meta{font-size:11px}.catalogue-grid .product-card .specs span{font-size:11px;white-space:normal;line-height:1.45;padding:4px 10px}/* === redesign (2026-09-01): 线束工艺列表 + 目录图卡 === */.craft-list{display:grid;gap:0;border-top:1px solid var(--line);margin-top:8px}.craft-row{display:grid;grid-template-columns:92px 1fr;gap:24px;align-items:start;padding:30px 0;border-bottom:1px solid var(--line)}.craft-row .idx{font-family:'Barlow Condensed',sans-serif;font-size:42px;font-weight:800;color:var(--brand);line-height:1}.craft-row .cn{font-size:20px;font-weight:700;color:var(--ink);margin-bottom:8px}.craft-row .cd{font-size:15px;color:var(--ink-soft);line-height:1.65}@media (max-width:720px){.craft-row{grid-template-columns:64px 1fr;gap:16px;padding:22px 0}.craft-row .idx{font-size:32px}.craft-row .cn{font-size:17px}}.catalogue-grid .product-card .img{padding:0;background:#0c1118;overflow:hidden;aspect-ratio:16/10}.catalogue-grid .product-card .img img{width:100%;height:100%;object-fit:cover;display:block}/* v11.9.1 — intro video stays background, never native player UI */#intro-video,#intro-video.intro-bg-video{pointer-events:none !important;object-fit:cover !important;width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}#intro-video::-webkit-media-controls,#intro-video::-webkit-media-controls-enclosure,#intro-video::-webkit-media-controls-panel,#intro-video::-webkit-media-controls-start-playback-button{display:none !important;-webkit-appearance:none !important;opacity:0 !important;width:0 !important;height:0 !important}#intro{-webkit-tap-highlight-color:transparent}/* Hit layer above video: steals taps; pan-y lets page scroll */#intro-hitlayer{position:absolute;inset:0;z-index:8;pointer-events:auto;touch-action:pan-y;background:transparent;-webkit-tap-highlight-color:transparent}@media (hover: none),(max-width: 900px){/* Never trap the page behind a “front video” on phones */body.intro-lock{overflow:auto !important;height:auto !important;min-height:100dvh}#intro{position:fixed;inset:0;width:100vw;height:100dvh;height:100vh;pointer-events:none/* children hitlayer re-enables */}#intro-hitlayer{pointer-events:auto}#intro-video{width:100vw !important;height:100dvh !important;height:100vh !important;object-fit:cover !important}}/* v11.9.4 — remove homepage light-flow rays entirely */#light-flow,#light-flow .ray,#light-flow .glow{display:none !important;opacity:0 !important;visibility:hidden !important;pointer-events:none !important}/* ============================================================
 * YITONG 一通线艺 · 多页面扩展层 (pages.css)
 * ------------------------------------------------------------
 *  只新增、不覆盖：沿用 cinematic.css 的变量与组件，
 *  补充 ①顶部导航（分类页 + 资源下拉）②左侧竖向滚动进度轨道
 *  ③悬浮邮件球 ④子页面通用版式。
 * ============================================================ *//* ============================================================
 *  1. 顶部导航：多页面 + 资源下拉
 * ============================================================ *//* 子页面没有开场视频，导航直接常驻 */body.page-sub .site-nav{opacity:1;transform:none}.nav-item{position:relative}.nav-item > summary,.nav-trigger{list-style:none;cursor:pointer;font-size:14px;letter-spacing:.04em;color:var(--ink-soft);position:relative;padding:4px 18px 4px 0;background:none;border:0;transition:color .3s var(--ease)}.nav-item > summary::-webkit-details-marker{display:none}.nav-item > summary::before,.nav-trigger::after{content:'';position:absolute;right:2px;top:50%;width:5px;height:5px;margin-top:-3px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;transform:rotate(45deg);opacity:.55;transition:transform .3s var(--ease),opacity .3s var(--ease)}.nav-item.open > summary::before,.nav-item.open .nav-trigger::after{transform:rotate(-135deg);opacity:1}.nav-item > summary::after,.nav-trigger::after{content:'';position:absolute;left:0;right:18px;bottom:-2px;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left center;transition:transform .3s var(--ease)}.nav-item > summary:hover::after,.nav-item.active > summary::after,.nav-trigger:hover::after,.nav-item.active .nav-trigger::after{transform:scaleX(1)}.nav-item.active > summary,.nav-item.active .nav-trigger{color:var(--brand-soft)}/* 下拉面板：与导航同一套深底玻璃质感 */.nav-menu{position:absolute;top:calc(100% + 16px);left:50%;min-width:186px;padding:8px;border-radius:10px;background:rgba(8, 12, 18, .92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255, 255, 255, .10);box-shadow:var(--shadow-3);opacity:0;visibility:hidden;transform:translateX(-50%) translateY(-8px);transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;z-index:5}.nav-item:hover .nav-menu,.nav-item.open .nav-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.nav-menu::before{/* 隐形桥接区，防止移动时闪断 */content:'';position:absolute;left:0;right:0;top:-16px;height:16px}.nav-menu a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;font-size:13.5px;color:var(--ink-soft);white-space:nowrap;transition:background .25s var(--ease),color .25s var(--ease)}.nav-menu a:hover,.nav-menu a.active{background:rgba(59, 130, 246, .14);color:var(--brand-soft)}.nav-menu a i{width:16px;font-style:normal;font-size:12px;opacity:.7;text-align:center}/* 移动端：断点与原站导航抽屉保持一致（720px），抽屉内下拉改为内嵌 */@media (max-width: 720px){.nav-item > summary::before{display:none}.nav-menu{position:static;opacity:1;visibility:visible;transform:none;min-width:0;margin-top:6px;background:rgba(255, 255, 255, .04);box-shadow:none;display:none}.nav-item.open .nav-menu{display:block}}/* ============================================================
 *  2. 左侧竖向滚动进度轨道
 * ============================================================ */.rail{position:fixed;left:20px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;pointer-events:none;transition:opacity .8s var(--ease)}body.hero-active .rail,body.home-active .rail,body.page-sub .rail{opacity:1;pointer-events:auto}.rail-pct{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:600;letter-spacing:.16em;color:var(--ink-mute);font-variant-numeric:tabular-nums;transition:color .3s var(--ease)}.rail-pct.on{color:var(--brand-soft)}.rail-line{position:relative;width:2px;height:clamp(140px, 26vh, 240px);background:rgba(255, 255, 255, .12);border-radius:2px}.rail-fill{position:absolute;inset:0 auto auto 0;width:100%;height:0%;border-radius:2px;background:linear-gradient(180deg, var(--brand-soft) 0%, var(--brand) 100%);box-shadow:0 0 12px rgba(59, 130, 246, .55)}.rail-fill::after{/* 光点：进度头部 */content:'';position:absolute;left:50%;bottom:0;width:6px;height:6px;margin-left:-3px;margin-bottom:-3px;border-radius:50%;background:var(--brand-soft);box-shadow:0 0 10px var(--brand)}.rail-dot{position:absolute;left:50%;width:8px;height:8px;margin-left:-4px;margin-top:-4px;border-radius:50%;background:#0d1420;border:1px solid rgba(255, 255, 255, .28);cursor:pointer;transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}.rail-dot:hover{transform:scale(1.35);border-color:var(--brand)}.rail-dot.on{background:var(--brand);border-color:var(--brand);box-shadow:0 0 10px rgba(59, 130, 246, .8)}.rail-dot span{position:absolute;left:18px;top:50%;transform:translateY(-50%) translateX(-6px);padding:5px 10px;border-radius:6px;background:rgba(8, 12, 18, .94);border:1px solid rgba(255, 255, 255, .10);font-size:11.5px;letter-spacing:.06em;color:var(--ink);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease)}.rail-dot:hover span{opacity:1;transform:translateY(-50%) translateX(0)}.rail-dot.on span{opacity:.55;transform:translateY(-50%) translateX(0)}.rail-label{writing-mode:vertical-rl;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-mute);opacity:.55}@media (max-width: 1180px){.rail{display:none}}/* ============================================================
 *  3. 悬浮球 + 邮件联系卡片
 * ============================================================ */.fab{position:fixed;right:26px;bottom:26px;width:54px;height:54px;border:1px solid rgba(255, 255, 255, .18);border-radius:50%;background:linear-gradient(140deg, var(--brand) 0%, var(--brand-deep) 100%);box-shadow:0 12px 32px rgba(59, 130, 246, .38),0 2px 8px rgba(0, 0, 0, .4);color:#fff;display:grid;place-items:center;z-index:60;opacity:0;transform:translateY(14px) scale(.9);transition:opacity .7s var(--ease),transform .7s var(--ease),box-shadow .3s var(--ease)}body.hero-active .fab,body.home-active .fab,body.page-sub .fab{opacity:1;transform:none}.fab:hover{box-shadow:0 16px 40px rgba(59, 130, 246, .55),0 2px 8px rgba(0, 0, 0, .4)}.fab.open{background:linear-gradient(140deg, var(--brand-deep) 0%, #12233d 100%)}.fab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.fab .ico-close{display:none}.fab.open .ico-mail{display:none}.fab.open .ico-close{display:block}.fab::after{/* 呼吸光环 */content:'';position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(59, 130, 246, .45);animation:fabPulse 2.6s infinite var(--ease)}@keyframes fabPulse{0%{transform:scale(.92);opacity:.9}70%{transform:scale(1.25);opacity:0}100%{transform:scale(1.25);opacity:0}}.mail-card{position:fixed;right:26px;bottom:92px;width:336px;max-width:calc(100vw - 52px);padding:22px;border-radius:14px;background:rgba(9, 13, 20, .88);backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2);border:1px solid rgba(255, 255, 255, .12);box-shadow:var(--shadow-3);z-index:59;opacity:0;visibility:hidden;transform:translateY(14px) scale(.96);transform-origin:bottom right;transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}.mail-card.open{opacity:1;visibility:visible;transform:none}.mail-card h6{margin:0 0 4px;font-family:'Barlow Condensed',sans-serif;font-size:19px;font-weight:700;letter-spacing:.04em;color:var(--ink)}.mail-card .mc-sub{margin:0 0 16px;font-size:12px;color:var(--ink-mute);line-height:1.6}.mc-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.mc-row .k{flex:0 0 46px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}.mc-row .v{flex:1;font-size:13.5px;color:var(--ink);word-break:break-all}.mc-row .copy{flex:0 0 auto;padding:4px 9px;font-size:11px;border-radius:5px;border:1px solid var(--line-strong);background:rgba(255, 255, 255, .04);color:var(--ink-soft);transition:all .25s var(--ease)}.mc-row .copy:hover{border-color:var(--brand);color:var(--brand-soft)}.mc-row .copy.done{border-color:var(--brand);color:var(--brand);background:rgba(59, 130, 246, .16)}.mc-acts{margin-top:16px;display:flex;gap:8px}.mc-acts .btn{flex:1;justify-content:center;padding:11px 14px;font-size:13px}/* ============================================================
 *  5. 氛围背景层（v11.8.8：静态 WebP，替换 particles-bg.mp4）
 *  素材：media/bg-atmosphere.webp
 *  结构：body 下固定 <img class="particles-bg">，层级 z-index:-2
 * ============================================================ */.particles-bg{position:fixed;top:0;left:0;width:100vw;height:100vh;object-fit:cover;object-position:center;z-index:-2;opacity:0;pointer-events:none;will-change:opacity;display:block}/* 视频下方垫纯黑，避免极少数全透明瞬间露出文档白底 */body::before{content:'';position:fixed;inset:0;z-index:-3;background:#07090d}/* ---- 子页：进入即淡入粒子背景 ---- */body.page-sub .particles-bg{opacity:1}/* ---- 首页：hero 全屏循环 intro；滚过 hero 后 particles 接棒 ---- *//* particles ready under looping intro; visible as intro fades on home-active */body.home-active .particles-bg,body.hero-active .particles-bg,body.scrolled-past-hero .particles-bg{opacity:1;transition:opacity 0.55s cubic-bezier(.22, 1, .36, 1)}/* v7: hero-active alone keeps #intro full-bleed looping — do NOT fade yet */body.hero-active:not(.home-active):not(.scrolled-past-hero) #intro{opacity:1;pointer-events:none;transition:opacity 0.55s cubic-bezier(.22, 1, .36, 1)}/* 滚过 hero：#intro 快速淡出，particles-bg 承接 */body.home-active #intro,body.scrolled-past-hero #intro{opacity:0;pointer-events:none;transition:opacity 0.55s cubic-bezier(.22, 1, .36, 1)}body.home-active #intro.bg-layer,body.scrolled-past-hero #intro.bg-layer{z-index:-1}/* 粒子底遮罩：仅首屏全透明；滚过首屏后与其他章节统一压暗，保证文字可读 */.particles-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(110% 80% at 50% 6%, rgba(255,255,255,0) 0%, rgba(5,8,12,.22) 72%, rgba(5,8,12,.42) 100%),linear-gradient(180deg, rgba(5,8,12,.18) 0%, rgba(5,8,12,.32) 100%);opacity:1;pointer-events:none;transition:opacity 0.55s cubic-bezier(.22, 1, .36, 1)}/* 第一屏：遮罩完全透明（开屏视频 / hero 清晰） */body.hero-active:not(.scrolled-past-hero):not(.home-active) .particles-bg::after,body.showcase-active .particles-bg::after{opacity:0;background:none}/* 末帧定格帧逻辑：freeze 阶段仍显示 intro-final(定格)，home-active 后整个 intro 淡出让位给粒子视频 *//* 章节底：交给 premium 玻璃段统一；这里不再强制全透明 */section{background:transparent}/* base; premium glass overrides when past hero */.site-footer{background:transparent}/* 首页 hero 前的细腻暗角遮罩：随"放弃暗色遮罩"移除，改为极轻的渐变环境感 */.hero::before{background:linear-gradient(180deg,
    rgba(7,9,13,0) 0%,
    rgba(7,9,13,0) 55%,
    rgba(5,8,12,.30) 100%)}@media (prefers-reduced-motion: reduce){.particles-bg{opacity:0 !important}.particles-bg::after{display:none}}/* ============================================================
 *  4. 子页面通用版式
 * ============================================================ */.page-hero{position:relative;padding:148px 0 56px;overflow:hidden}.page-hero::before{content:'';position:absolute;top:-180px;left:50%;width:900px;height:480px;transform:translateX(-50%);background:radial-gradient(ellipse at center, rgba(59, 130, 246, .18) 0%, rgba(59, 130, 246, 0) 68%);pointer-events:none}.page-hero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg, transparent, rgba(255, 255, 255, .12) 30%, rgba(255, 255, 255, .12) 70%, transparent)}.crumb{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:18px}.crumb a:hover{color:var(--brand-soft)}.crumb i{font-style:normal;opacity:.5}.crumb b{color:var(--brand-soft);font-weight:600}.page-hero h1{margin:0 0 16px;font-family:'Barlow Condensed','Noto Sans SC',sans-serif;font-size:clamp(36px, 5.6vw, 68px);font-weight:700;line-height:1.06;letter-spacing:.01em}.page-hero h1 em{font-style:normal;color:var(--brand)}.page-hero .lead{max-width:720px;margin:0;font-size:15.5px;line-height:1.85;color:var(--ink-soft)}/* 章节头部的「查看详情」入口（首页 → 分类页） */.section-more{margin-top:26px}.section-more .btn{display:inline-flex;align-items:center}/* 通用内容栅格 */.grid-2,.grid-3,.grid-4{display:grid;gap:22px}.grid-2{grid-template-columns:repeat(2, 1fr)}.grid-3{grid-template-columns:repeat(3, 1fr)}.grid-4{grid-template-columns:repeat(4, 1fr)}@media (max-width: 980px){.grid-3,.grid-4{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.pcard{position:relative;padding:26px;border-radius:12px;background:rgba(255, 255, 255, .03);border:1px solid var(--line);transition:transform .5s var(--ease),border-color .5s var(--ease),background .5s var(--ease)}.pcard:hover{transform:translateY(-4px);border-color:rgba(59, 130, 246, .38);background:rgba(59, 130, 246, .06)}.pcard .n{font-family:'Barlow Condensed',sans-serif;font-size:13px;letter-spacing:.22em;color:var(--brand);margin-bottom:12px}.pcard h4{margin:0 0 10px;font-size:17px;font-weight:600;color:var(--ink)}.pcard p{margin:0;font-size:13.5px;line-height:1.85;color:var(--ink-mute)}.pcard .tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}.pcard .tags span{padding:4px 9px;border-radius:4px;background:rgba(255, 255, 255, .05);border:1px solid var(--line);font-size:11px;letter-spacing:.06em;color:var(--ink-soft)}/* 数据条 */.stat-row{display:grid;grid-template-columns:repeat(4, 1fr);gap:20px}@media (max-width: 780px){.stat-row{grid-template-columns:repeat(2, 1fr)}}.stat-row .cell{padding:22px 20px;border-radius:10px;background:rgba(255, 255, 255, .03);border:1px solid var(--line)}.stat-row .v{font-family:'Barlow Condensed',sans-serif;font-size:42px;font-weight:700;line-height:1;color:var(--brand)}.stat-row .v small{font-size:20px}.stat-row .k{margin-top:8px;font-size:12.5px;letter-spacing:.1em;color:var(--ink-mute)}/* 规格表 */.spec-table{width:100%;border-collapse:collapse;font-size:13.5px}.spec-table th,.spec-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line)}.spec-table th{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);font-weight:600}.spec-table td{color:var(--ink-soft)}.spec-table tbody tr:hover{background:rgba(59, 130, 246, .06)}.spec-table td:first-child{color:var(--ink);font-weight:500}/* 章节内小标题 */.sub-head{margin:0 0 26px}.sub-head h3{margin:0 0 8px;font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:600;letter-spacing:.02em}.sub-head p{margin:0;font-size:13.5px;color:var(--ink-mute)}/* 下一站 / 页面间导航 */.pager{display:grid;grid-template-columns:repeat(3, 1fr);gap:14px;margin-top:8px}@media (max-width: 780px){.pager{grid-template-columns:1fr}}.pager a{padding:20px 22px;border-radius:10px;border:1px solid var(--line);background:rgba(255, 255, 255, .03);transition:all .4s var(--ease)}.pager a:hover{border-color:var(--brand);background:rgba(59, 130, 246, .08);transform:translateY(-3px)}.pager a small{display:block;font-size:10.5px;letter-spacing:.2em;color:var(--ink-mute);margin-bottom:6px}.pager a strong{font-size:15px;font-weight:600;color:var(--ink)}/* 空态占位（素材待补） */.placeholder-box{display:grid;place-items:center;min-height:200px;border:1px dashed rgba(255, 255, 255, .16);border-radius:12px;background:rgba(255, 255, 255, .02);color:var(--ink-mute);font-size:13px;letter-spacing:.06em;text-align:center;padding:24px}/* ============================================================
 *  6. 页面转场（无帘子：内容淡出 → 新内容从左右两侧进入）
 * ------------------------------------------------------------
 *  离场：整页内容快速淡出（无任何遮挡板/帘子）
 *  进场：新页首帧由纯色 veil 盖住加载空隙（瞬间、非帘子动画），
 *        veil 淡出，同时新内容各 section 错峰从左右两侧滑入
 * ============================================================ *//* ---- 全屏转场 veil（head 内联注入，仅作为加载期防闪；非帘子） ---- */#pg-veil{position:fixed;inset:0;z-index:2147483000;background:#05070b;opacity:1;/* 转场进入时首帧不透明遮挡加载空隙 */pointer-events:none;transition:opacity .3s ease/* 淡出用 */}#pg-veil.out{opacity:0}/* ---- ① 离场：整页内容淡出（无帘子） ---- */body.pg-leave{overflow:hidden}body.pg-leave .site-nav,body.pg-leave .page-hero,body.pg-leave section,body.pg-leave .site-footer,body.pg-leave .rail,body.pg-leave .fab,body.pg-leave .mail-card{opacity:0;transition:opacity .28s ease}body.pg-leave #intro{opacity:0 !important;transition:opacity .28s ease}/* ---- ② 进场：veil 淡出，同时新内容从左右两侧错峰进入 ---- */body.pg-enter{overflow:hidden}/* veil 淡出（0.3s），露出底下新内容 */body.pg-enter #pg-veil{opacity:0}/* 新内容各 section 从下方/左右两侧浮现 —— 无帘子，纯内容动效 */body.page-sub.pg-enter .page-hero{animation:pgUp .55s cubic-bezier(.22,1,.36,1) both}body.page-sub.pg-enter section{animation:pgUp .55s cubic-bezier(.22,1,.36,1) both}body.page-sub.pg-enter section > .container > *:nth-child(odd){animation:pgFromL .55s cubic-bezier(.22,1,.36,1) both}body.page-sub.pg-enter section > .container > *:nth-child(even){animation:pgFromR .55s cubic-bezier(.22,1,.36,1) both}body.page-sub.pg-enter section:nth-of-type(1) > .container > *{animation-delay:.08s}body.page-sub.pg-enter section:nth-of-type(2) > .container > *{animation-delay:.16s}body.page-sub.pg-enter section:nth-of-type(3) > .container > *{animation-delay:.24s}body.page-sub.pg-enter section:nth-of-type(4) > .container > *{animation-delay:.32s}body.page-sub.pg-enter section:nth-of-type(5) > .container > *{animation-delay:.40s}/* 动画起点即 opacity 0，避免入场前内容闪现 */body.page-sub.pg-enter .page-hero,body.page-sub.pg-enter section,body.page-sub.pg-enter section > .container > *{opacity:0}@keyframes pgUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes pgFromL{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}@keyframes pgFromR{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}body.pg-lock{overflow:hidden}@media (prefers-reduced-motion: reduce){#pg-veil,body.pg-leave *,body.pg-enter *{animation-duration:.01ms !important;transition-duration:.01ms !important}}/* ============================================================
 *  7. 液态玻璃系统（Liquid Glass · 深色 frosted 版）
 * ------------------------------------------------------------
 *  放弃暗色遮罩 → 粒子视频以原生通透亮度全程流动；
 *  所有承载元素改为「半透明液态玻璃」：
 *    · 半透明白渐变底（偏深色 frosted，粒子在玻璃后透出流动）
 *    · backdrop-filter: blur + saturate（粒子被玻璃折射、柔化）
 *    · 顶部细高光缘 + 内阴影 → 液态厚度
 *    · 更大圆角、更柔投影
 *  本层置于 pages.css 末尾，覆盖 cinematic.css 同名组件。
 * ============================================================ */:root{/* 玻璃面板（深色粒子之上，模拟微光 frosted 玻璃） */--g1:linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02));--g1-hover:linear-gradient(165deg, rgba(255,255,255,.13),  rgba(255,255,255,.04));--g-border:rgba(255,255,255,.14);--g-border-hi:rgba(255,255,255,.30);--g-blur:blur(18px) saturate(150%);--g-blur-sm:blur(12px) saturate(150%);--g-rad:16px;--g-rad-sm:12px;/* 玻璃质感：外投影 + 顶部内高光缘（液态） */--g-shadow:0 18px 48px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.20);--g-shadow-hover:0 26px 60px rgba(0,0,0,.42),0 8px 22px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.32)}/* ---------- 通用玻璃基元 ---------- *//* 供手动调用：给任意块套液态玻璃 */.lg{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border:1px solid var(--g-border);border-radius:var(--g-rad);box-shadow:var(--g-shadow)}.lg-hover:hover{background:var(--g1-hover);border-color:var(--g-border-hi);box-shadow:var(--g-shadow-hover)}/* ============================================================
 *  首页组件液态玻璃化
 * ============================================================ *//* 首屏 hero 标题区：给标题/副标题/按钮一块收窄的玻璃带，
   粒子在其后清晰流动（替代原来的整屏暗角遮罩） */.hero-title,.hero-sub,.hero-actions{position:relative;z-index:3}/* hero 标题与副标题各自半透明玻璃，制造"文字浮在玻璃上"的层次 */.hero-title{text-shadow:0 2px 24px rgba(0,0,0,.45)}.hero-sub{background:var(--g1);-webkit-backdrop-filter:var(--g-blur-sm);backdrop-filter:var(--g-blur-sm);border:1px solid var(--g-border);border-radius:999px;box-shadow:0 8px 28px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.18);padding:14px 24px;max-width:720px}/* 产品卡：从深色实底 → 玻璃（图片区保留，body 区玻璃化于其下） */.product-card{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-color:var(--g-border);border-radius:var(--g-rad);box-shadow:var(--g-shadow)}.product-card:hover{background:var(--g1-hover);border-color:var(--brand);box-shadow:var(--g-shadow-hover)}.product-card .body{background:transparent}.product-card .img{background:rgba(10,14,20,.35)}/* Quality 品质卡 */.quality-card{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-color:var(--g-border);border-radius:var(--g-rad);box-shadow:var(--g-shadow)}.quality-card:hover{background:var(--g1-hover);border-color:var(--brand);box-shadow:var(--g-shadow-hover)}/* App 应用领域卡 */.app-card{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-color:var(--g-border);border-radius:var(--g-rad);box-shadow:var(--g-shadow)}.app-card:hover{background:var(--g1-hover);border-color:var(--g-border-hi);box-shadow:var(--g-shadow-hover)}/* About 段配图角的悬浮徽章 / 数据背板 */.about-media{background:rgba(10,14,20,.30);border-radius:var(--g-rad)}.about-media .badge{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border:1px solid var(--g-border);border-left:3px solid var(--brand);border-radius:var(--g-rad-sm);box-shadow:var(--g-shadow)}.about-stats{border-top-color:var(--g-border)}.about-stats .item .v{text-shadow:0 2px 16px rgba(0,0,0,.4)}/* section 标题行：为直浮在粒子上的大标题加一道极轻的玻璃晕 */.section-head{position:relative;z-index:2}.section-title{text-shadow:0 2px 26px rgba(0,0,0,.5)}/* ============================================================
 *  导航 / 页脚 / 邮件球 液态玻璃化
 * ============================================================ *//* 顶栏：默认全透明；滚动后 frosted（body.nav-solid / .is-solid） */.site-nav{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid transparent;transition:background .55s cubic-bezier(.22, 1, .36, 1),backdrop-filter .55s cubic-bezier(.22, 1, .36, 1),-webkit-backdrop-filter .55s cubic-bezier(.22, 1, .36, 1),box-shadow .55s cubic-bezier(.22, 1, .36, 1),border-color .55s cubic-bezier(.22, 1, .36, 1)}body.page-sub .site-nav{background:linear-gradient(180deg, rgba(8,12,18,.50) 0%, rgba(8,12,18,0) 100%);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%)}body.nav-solid .site-nav,.site-nav.is-solid{background:rgba(8, 12, 18, 0.52);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-bottom-color:rgba(255, 255, 255, 0.06);box-shadow:0 8px 28px rgba(0, 0, 0, 0.18)}/* 导航下拉：深色底 → 玻璃浮层 */.nav-menu{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-color:var(--g-border);border-radius:14px;box-shadow:var(--g-shadow)}.nav-menu a:hover,.nav-menu a.active{background:rgba(59,130,246,.20)}/* 悬浮邮件球 FAB：玻璃胶囊 */.fab{background:var(--g1);-webkit-backdrop-filter:var(--g-blur-sm);backdrop-filter:var(--g-blur-sm);border:1px solid var(--g-border);box-shadow:0 12px 30px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.25)}.fab:hover{background:var(--g1-hover);border-color:rgba(59,130,246,.6);box-shadow:0 18px 44px rgba(59,130,246,.45),inset 0 1px 0 rgba(255,255,255,.35)}/* 邮件卡：玻璃弹层 */.mail-card{background:linear-gradient(168deg, rgba(20,26,36,.72), rgba(10,14,20,.58));-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);border:1px solid var(--g-border);border-radius:18px;box-shadow:0 28px 70px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.18)}.mail-card .mc-row,.mail-card h6{text-shadow:0 1px 8px rgba(0,0,0,.5)}/* 页脚：深色实底 → 半透明玻璃面板 */.site-footer{background:linear-gradient(180deg, rgba(6,9,14,.45), rgba(6,9,14,.15));-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border-top:1px solid var(--g-border)}/* ============================================================
 *  子页组件 液态玻璃化
 * ============================================================ *//* 子页 hero 区：标题/面包屑加大字号深色投影，lead 收窄玻璃副标 */.page-hero{text-shadow:none}.page-hero h1{text-shadow:0 3px 28px rgba(0,0,0,.55)}.page-hero .lead{background:var(--g1);-webkit-backdrop-filter:var(--g-blur-sm);backdrop-filter:var(--g-blur-sm);border:1px solid var(--g-border);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.16);padding:18px 22px}/* 内容/产品特性卡 pcard */.pcard{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border-color:var(--g-border);border-radius:var(--g-rad);box-shadow:var(--g-shadow)}.pcard:hover{background:var(--g1-hover);border-color:rgba(59,130,246,.55);box-shadow:var(--g-shadow-hover)}.pcard .tags span{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);-webkit-backdrop-filter:var(--g-blur-sm);backdrop-filter:var(--g-blur-sm)}/* 数据条 stat */.stat-row .cell{background:var(--g1);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);border:1px solid var(--g-border);border-radius:var(--g-rad);box-shadow:var(--g-shadow)}/* 规格表：整表放进玻璃，行分隔透明化 */.spec-table{text-shadow:0 1px 6px rgba(0,0,0,.4)}.spec-table th,.spec-table td{border-color:rgba(255,255,255,.10)}/* 表单：玻璃输入框 */.contact-form input,.contact-form textarea,.contact-form select{background:rgba(255,255,255,.06);-webkit-backdrop-filter:var(--g-blur-sm);backdrop-filter:var(--g-blur-sm);border-color:rgba(255,255,255,.14)}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{background:rgba(255,255,255,.10);border-color:var(--brand)}/* 关于/联系页信息列表项悬浮玻璃底 */.contact-info-item{border-bottom-color:rgba(255,255,255,.10)}/* 通用按钮也可强调玻璃呼吸 */.btn{box-shadow:0 6px 20px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.18)}.btn-primary{box-shadow:0 10px 28px rgba(59,130,246,.35),inset 0 1px 0 rgba(255,255,255,.22)}@media (max-width: 720px){/* 移动抽屉内下拉无需外玻璃，改用浅内嵌 */.nav-menu{background:rgba(255,255,255,.05);box-shadow:none}}/* v11.5: rail removed — hide any leftover markup */.rail{display:none !important;opacity:0 !important;pointer-events:none !important}/* ============================================================
 * YITONG · Premium luminous layer (流光溢彩)
 * Additive overlays inspired by 21st.dev + integratedbio / bitkey
 * Does NOT alter particles-bg / intro video sources or timing.
 * Pseudo-safe: spot/shimmer layers are real DOM nodes from premium.js
 * so quality-card::before accent + .btn-arrow::after stay intact.
 * ============================================================ */:root{--prem-spot:rgba(127, 178, 255, 0.26);--prem-cyan:rgba(127, 233, 255, 0.45);--prem-violet:rgba(170, 130, 255, 0.35);--prem-ease:cubic-bezier(0.22, 1, 0.36, 1);--prem-ease-lux:cubic-bezier(0.16, 1, 0.3, 1);--spot-x:50%;--spot-y:50%}/* ---------- C) Fixed WebGL luminosity layer ---------- */#premium-shader{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;/* particles-bg:-2 · shader:0 · light-flow:1 · sections:2 · intro:100 */pointer-events:none;opacity:0;mix-blend-mode:soft-light;transition:opacity 2.2s var(--prem-ease-lux);will-change:opacity}body.home-active #premium-shader,body.hero-active #premium-shader,body.page-sub #premium-shader{opacity:0.22}body.intro-lock:not(.hero-active):not(.home-active) #premium-shader{opacity:0}@media (prefers-reduced-motion: reduce){#premium-shader{opacity:0 !important;visibility:hidden}}/* ---------- Hero aurora / mesh energy ---------- */.hero-aurora{position:absolute;inset:-18% -8% -8%;z-index:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1.8s var(--prem-ease-lux) 0.25s}body.hero-active .hero-aurora,body.home-active .hero-aurora{opacity:0.72}.hero-aurora .blob{position:absolute;border-radius:50%;filter:blur(64px);mix-blend-mode:screen;will-change:transform,opacity;animation:premBlobDrift 18s var(--prem-ease) infinite alternate}.hero-aurora .b1{width:55vmin;height:55vmin;top:8%;left:12%;background:radial-gradient(circle, rgba(59,130,246,.55) 0%, transparent 70%);animation-duration:22s}.hero-aurora .b2{width:48vmin;height:48vmin;top:28%;right:8%;background:radial-gradient(circle, rgba(127,233,255,.42) 0%, transparent 70%);animation-duration:26s;animation-delay:-4s}.hero-aurora .b3{width:42vmin;height:42vmin;bottom:6%;left:38%;background:radial-gradient(circle, rgba(170,130,255,.38) 0%, transparent 70%);animation-duration:20s;animation-delay:-8s}@keyframes premBlobDrift{0%{transform:translate(0, 0) scale(1);opacity:.7}50%{transform:translate(4%, -6%) scale(1.12);opacity:.95}100%{transform:translate(-5%, 5%) scale(0.94);opacity:.65}}.hero{isolation:isolate}.hero::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 50% 35%, rgba(59,130,246,.08) 0%, transparent 60%),radial-gradient(ellipse 50% 40% at 70% 60%, rgba(127,233,255,.05) 0%, transparent 55%),linear-gradient(180deg, rgba(7,9,13,.04) 0%, rgba(7,9,13,.16) 100%);opacity:0;transition:opacity 1.6s var(--prem-ease)}body.hero-active .hero::after,body.home-active .hero::after{opacity:0.7}.hero-title,.hero-sub,.hero-actions,.hero-brand,.hero-aurora{position:relative;z-index:1}.hero-aurora{z-index:0}.hero-title{text-shadow:0 0 40px rgba(59,130,246,.25),0 0 80px rgba(127,233,255,.12),0 2px 24px rgba(0,0,0,.55)}.hero-title em{filter:drop-shadow(0 0 18px rgba(127,178,255,.45))}/* Page / section accent washes */.page-hero{isolation:isolate}.page-hero::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 20% 40%, rgba(59,130,246,.18) 0%, transparent 55%),radial-gradient(ellipse 60% 50% at 85% 20%, rgba(127,233,255,.12) 0%, transparent 50%),radial-gradient(ellipse 50% 40% at 60% 90%, rgba(170,130,255,.10) 0%, transparent 50%);animation:premPageWash 14s ease-in-out infinite alternate}@keyframes premPageWash{0%{opacity:.75;filter:hue-rotate(0deg)}100%{opacity:1;filter:hue-rotate(12deg)}}.page-hero > *{position:relative;z-index:1}.section-head{position:relative}.section-head::before{content:'';position:absolute;left:-8%;top:-40%;width:40%;height:180%;background:radial-gradient(ellipse at center, rgba(59,130,246,.12) 0%, transparent 70%);pointer-events:none;filter:blur(20px);z-index:-1}/* ---------- A) Spotlight cards (DOM layer .spot-glow) ---------- */.product-card,.quality-card,.app-card,.spotlight-card{--spot-x:50%;--spot-y:50%;position:relative;isolation:isolate;overflow:hidden;transition:transform .55s var(--prem-ease-lux),border-color .45s var(--prem-ease),box-shadow .55s var(--prem-ease-lux) !important}.spot-glow{position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(
      420px circle at var(--spot-x) var(--spot-y),
      var(--prem-spot) 0%,
      transparent 55%
    ),radial-gradient(
      220px circle at var(--spot-x) var(--spot-y),
      rgba(127,233,255,.16) 0%,
      transparent 42%
    );box-shadow:inset 0 0 0 1px rgba(127,178,255,0);mix-blend-mode:soft-light;transition:opacity .4s var(--prem-ease),box-shadow .4s var(--prem-ease)}.product-card.is-spot .spot-glow,.quality-card.is-spot .spot-glow,.app-card.is-spot .spot-glow,.spotlight-card.is-spot .spot-glow,.product-card:hover .spot-glow,.quality-card:hover .spot-glow,.app-card:hover .spot-glow,.spotlight-card:hover .spot-glow{opacity:1;box-shadow:inset 0 0 0 1px rgba(127,178,255,.32)}.product-card > *:not(.spot-glow),.quality-card > *:not(.spot-glow),.app-card > *:not(.spot-glow),.spotlight-card > *:not(.spot-glow){position:relative;z-index:4}.product-card:hover,.quality-card:hover,.app-card:hover,.spotlight-card:hover{transform:translateY(-6px) scale(1.012);border-color:rgba(127,178,255,.55) !important;box-shadow:0 28px 64px rgba(0,0,0,.42),0 0 40px rgba(59,130,246,.18),inset 0 1px 0 rgba(255,255,255,.28) !important}/* Keep quality top accent bar above spot soft-light but under content */.quality-card::before{z-index:5}/* ---------- B) Gradient glow primary buttons ---------- */.btn-primary{position:relative;isolation:isolate;overflow:hidden;color:#f4f8ff !important;background:linear-gradient(135deg, #1e4fa3 0%, #3b82f6 40%, #5eb0ff 72%, #3b82f6 100%) !important;background-size:220% 220% !important;border:1px solid rgba(127,178,255,.5) !important;box-shadow:0 12px 36px rgba(59,130,246,.42),0 0 0 1px rgba(127,233,255,.12),inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(0,0,0,.12) !important;transition:transform .45s var(--prem-ease-lux),box-shadow .45s var(--prem-ease),filter .45s var(--prem-ease) !important;animation:premBtnShift 8s ease infinite}@keyframes premBtnShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}/* Animated gradient border ring — child from JS, not ::before */.btn-ring{position:absolute;inset:-1px;z-index:0;border-radius:inherit;padding:1px;background:conic-gradient(
    from var(--btn-angle, 0deg),
    #3b82f6,
    #7fe9ff,
    #a882ff,
    #3b82f6,
    #7fb2ff,
    #3b82f6
  );-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.9;animation:premConic 4s linear infinite;pointer-events:none}@property --btn-angle{syntax:'<angle>';initial-value:0deg;inherits:false}@keyframes premConic{to{--btn-angle:360deg}}/* Shimmer sweep — child from JS, preserves .btn-arrow::after */.btn-shimmer{position:absolute;top:0;left:-130%;width:55%;height:100%;z-index:1;pointer-events:none;background:linear-gradient(
    105deg,
    transparent 0%,
    rgba(255,255,255,.06) 35%,
    rgba(255,255,255,.4) 50%,
    rgba(255,255,255,.06) 65%,
    transparent 100%
  );transform:skewX(-18deg)}.btn-primary:hover .btn-shimmer{animation:premShimmer .85s var(--prem-ease) forwards}@keyframes premShimmer{from{left:-130%}to{left:140%}}.btn-primary:hover{transform:translateY(-3px) scale(1.02) !important;filter:brightness(1.08);box-shadow:0 18px 48px rgba(59,130,246,.55),0 0 32px rgba(127,233,255,.35),inset 0 1px 0 rgba(255,255,255,.45) !important}.btn.is-magnetic,.product-card.is-magnetic,.quality-card.is-magnetic,.app-card.is-magnetic{will-change:transform}/* ---------- E) Premium glass nav — transparent until scrolled ---------- */.site-nav{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;border-bottom:1px solid transparent !important;box-shadow:none !important;background:transparent !important}body.page-sub .site-nav{background:linear-gradient(180deg, rgba(8,12,18,.58) 0%, rgba(8,12,18,.22) 70%, rgba(8,12,18,0) 100%) !important;backdrop-filter:blur(18px) saturate(160%) !important;-webkit-backdrop-filter:blur(18px) saturate(160%) !important;border-bottom:1px solid rgba(255,255,255,.08) !important}body.nav-solid .site-nav,.site-nav.is-solid{background:rgba(8, 12, 18, 0.55) !important;backdrop-filter:blur(18px) saturate(160%) !important;-webkit-backdrop-filter:blur(18px) saturate(160%) !important;border-bottom:1px solid rgba(255,255,255,.08) !important;box-shadow:0 10px 40px rgba(0,0,0,.18),inset 0 -1px 0 rgba(127,178,255,.08) !important}/* hide bottom neon line until solid */body:not(.nav-solid):not(.page-sub) .site-nav::after{opacity:0 !important}body:not(.nav-solid):not(.page-sub) .site-nav::before{opacity:0 !important}.site-nav::after{content:'';position:absolute;left:10%;right:10%;bottom:0;height:1px;background:linear-gradient(90deg,
    transparent,
    rgba(127,178,255,.45),
    rgba(127,233,255,.55),
    rgba(127,178,255,.45),
    transparent);opacity:.7;pointer-events:none}.nav-list > a{position:relative;transition:color .35s var(--prem-ease),text-shadow .35s var(--prem-ease)}.nav-list > a::after{content:'';position:absolute;left:50%;bottom:-6px;width:0;height:2px;border-radius:2px;background:linear-gradient(90deg, #3b82f6, #7fe9ff);box-shadow:0 0 12px rgba(127,233,255,.6);transition:width .4s var(--prem-ease-lux),left .4s var(--prem-ease-lux)}.nav-list > a:hover::after,.nav-list > a.active::after{width:100%;left:0}.nav-list > a:hover,.nav-list > a.active{text-shadow:0 0 18px rgba(127,178,255,.45)}/* ---------- Smoother scroll reveals ---------- *//* Softer motion: avoid heavy blur that clips heading glyphs mid-transition */.section-head,.section-title,.section-lead,.section-eyebrow{overflow:visible}[data-reveal]{opacity:0;transform:translateY(28px);filter:none;transition:opacity 1.05s var(--prem-ease-lux),transform 1.15s var(--prem-ease-lux) !important}[data-reveal].in{opacity:1;transform:none}/* Cards can keep a whisper of blur without clipping body text much */.product-card[data-reveal],.quality-card[data-reveal],.app-card[data-reveal]{filter:blur(2px);transform:translateY(36px) scale(0.99);transition:opacity 1.05s var(--prem-ease-lux),transform 1.15s var(--prem-ease-lux),filter 1s var(--prem-ease-lux) !important}.product-card[data-reveal].in,.quality-card[data-reveal].in,.app-card[data-reveal].in{filter:blur(0);transform:none}/* Amplify #light-flow */#light-flow .ray{filter:blur(1.2px) drop-shadow(0 0 6px rgba(127,233,255,.35))}#light-flow .glow{filter:blur(2px);opacity:.55}#light-flow{opacity:0.72}.section-head{margin-bottom:clamp(56px, 8vw, 72px)}.hero-actions{gap:18px}.fab{box-shadow:0 12px 30px rgba(0,0,0,.35),0 0 0 1px rgba(127,178,255,.2),0 0 24px rgba(59,130,246,.2),inset 0 1px 0 rgba(255,255,255,.25) !important}.fab:hover{box-shadow:0 18px 44px rgba(59,130,246,.5),0 0 32px rgba(127,233,255,.35),inset 0 1px 0 rgba(255,255,255,.35) !important}@media (prefers-reduced-motion: reduce){.hero-aurora .blob,.btn-primary,.btn-ring,.page-hero::after{animation:none !important}[data-reveal]{filter:none !important;transform:none !important;opacity:1 !important}.product-card:hover,.quality-card:hover,.app-card:hover{transform:none !important}}/* ============================================================
 * Premium Motion v2 — Bitkey tilt · parallax · cursor · sheen
 * ============================================================ */:root{--prem-glare:rgba(255, 255, 255, 0.55);--prem-cursor:rgba(127, 233, 255, 0.55);--nav-lx:50%;--nav-ly:50%}/* ---------- 1) 3D tilt cards (replaces v1 magnetic on cards) ---------- */.product-card.is-tilt,.quality-card.is-tilt,.app-card.is-tilt,.spotlight-card.is-tilt{transform-style:preserve-3d;perspective:900px;will-change:transform;transition:transform .55s var(--prem-ease-lux),border-color .45s var(--prem-ease),box-shadow .55s var(--prem-ease-lux) !important}.product-card.is-tilt:hover,.quality-card.is-tilt:hover,.app-card.is-tilt:hover,.spotlight-card.is-tilt:hover{/* JS owns transform while tilting; soft lift only when idle */transform:none}.product-card.is-tilting,.quality-card.is-tilting,.app-card.is-tilting,.spotlight-card.is-tilting{transition:box-shadow .25s var(--prem-ease),border-color .25s var(--prem-ease) !important;z-index:3}.tilt-glare{position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(
    280px circle at var(--glare-x, 50%) var(--glare-y, 50%),
    rgba(255, 255, 255, 0.42) 0%,
    rgba(127, 233, 255, 0.18) 28%,
    transparent 58%
  );mix-blend-mode:soft-light;transition:opacity .35s var(--prem-ease)}.is-tilting .tilt-glare,.product-card:hover .tilt-glare,.quality-card:hover .tilt-glare,.app-card:hover .tilt-glare{opacity:1}/* Inner Z parallax — image deeper than text */.product-card.is-tilt .img,.product-card.is-tilt .body,.quality-card.is-tilt > *:not(.spot-glow):not(.tilt-glare):not(.border-beam),.app-card.is-tilt > *:not(.spot-glow):not(.tilt-glare):not(.border-beam){transform:translateZ(0);transition:transform .45s var(--prem-ease-lux);will-change:transform}.product-card.is-tilting .img{transform:translateZ(28px) scale(1.02)}.product-card.is-tilting .body{transform:translateZ(12px)}.quality-card.is-tilting > *:not(.spot-glow):not(.tilt-glare):not(.border-beam),.app-card.is-tilting > *:not(.spot-glow):not(.tilt-glare):not(.border-beam){transform:translateZ(14px)}/* Catalogue / product image idle + scroll spin lite */.catalogue-grid .product-card .img,.product-card[data-spin] .img{transform-style:preserve-3d;will-change:transform}.catalogue-grid .product-card .img img,.product-card[data-spin] .img img{transform:rotateY(var(--spin-y, 0deg)) scale(1.02);transition:transform .6s var(--prem-ease-lux);will-change:transform}.catalogue-grid .product-card.is-tilting .img img,.product-card[data-spin].is-tilting .img img{transition:none}/* Keep magnetic only on buttons */.btn.is-magnetic{will-change:transform}.product-card.is-magnetic,.quality-card.is-magnetic,.app-card.is-magnetic{/* legacy class noop — tilt owns motion */}/* ---------- 2) Scroll parallax layers ---------- */[data-parallax]{will-change:transform;backface-visibility:hidden}.prem-orbs{position:absolute;inset:-10% -5%;z-index:0;pointer-events:none;overflow:hidden}.prem-orbs .orb{position:absolute;border-radius:50%;filter:blur(48px);mix-blend-mode:screen;opacity:0.28;will-change:transform}.prem-orbs .orb.o1{width:28vmin;height:28vmin;top:12%;left:8%;background:radial-gradient(circle, rgba(59,130,246,.5), transparent 70%)}.prem-orbs .orb.o2{width:22vmin;height:22vmin;top:48%;right:10%;background:radial-gradient(circle, rgba(127,233,255,.4), transparent 70%)}.prem-orbs .orb.o3{width:18vmin;height:18vmin;bottom:10%;left:42%;background:radial-gradient(circle, rgba(170,130,255,.35), transparent 70%)}.prem-orbs .line{position:absolute;width:1px;height:40%;top:20%;background:linear-gradient(180deg, transparent, rgba(127,178,255,.35), transparent);opacity:0.5;will-change:transform}.prem-orbs .line.l1{left:18%}.prem-orbs .line.l2{right:22%;height:28%;top:40%}.section-dark,#products,#quality,#application,.page-hero{position:relative;isolation:isolate}.hero-aurora .blob{/* JS adds --ax/--ay parallax on top of CSS drift via translate3d */}.rail,.fab{will-change:transform}/* ---------- 3) Text stagger ---------- */.prem-word{display:inline-block;opacity:0;transform:translateY(0.55em);transition:opacity .7s var(--prem-ease-lux),transform .85s var(--prem-ease-lux);transition-delay:calc(var(--wi, 0) * 45ms)}.prem-stagger-ready .prem-word,.is-staggered .prem-word{opacity:1;transform:translateY(0)}.hero-title .line.prem-line-boost span{/* cinematic already reveals lines; soft boost glow only */}.section-title.prem-split{overflow:visible}/* Soft custom cursor */#prem-cursor{position:fixed;top:0;left:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;pointer-events:none;z-index:9998;background:radial-gradient(circle, rgba(127,233,255,.85) 0%, rgba(59,130,246,.35) 45%, transparent 70%);box-shadow:0 0 18px rgba(127,233,255,.45),0 0 40px rgba(59,130,246,.25);mix-blend-mode:screen;opacity:0;transform:translate3d(-100px, -100px, 0) scale(1);transition:opacity .35s ease,width .3s var(--prem-ease),height .3s var(--prem-ease),margin .3s var(--prem-ease);will-change:transform}#prem-cursor.on{opacity:0.9}#prem-cursor.grow{width:36px;height:36px;margin:-18px 0 0 -18px;background:radial-gradient(circle, rgba(127,233,255,.55) 0%, rgba(59,130,246,.2) 50%, transparent 72%)}@media (pointer: coarse),(max-width: 900px){#prem-cursor{display:none !important}}/* Section enter — grids */.product-grid.prem-enter,.quality-grid.prem-enter,.app-grid.prem-enter,.catalogue-grid.prem-enter{opacity:0;transform:perspective(1200px) translateY(28px) scale(0.985) rotateY(-2deg);transition:opacity 1.1s var(--prem-ease-lux),transform 1.25s var(--prem-ease-lux)}.product-grid.prem-enter.in,.quality-grid.prem-enter.in,.app-grid.prem-enter.in,.catalogue-grid.prem-enter.in{opacity:1;transform:perspective(1200px) translateY(0) scale(1) rotateY(0deg)}/* Horizontal sheen / border-beam */.border-beam{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:6;overflow:hidden;opacity:0;transition:opacity .4s var(--prem-ease)}.border-beam::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(
    110deg,
    transparent 30%,
    rgba(127,233,255,.05) 42%,
    rgba(255,255,255,.55) 50%,
    rgba(127,178,255,.15) 58%,
    transparent 70%
  );background-size:220% 100%;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:premBeam 2.8s linear infinite}@keyframes premBeam{0%{background-position:120% 0}100%{background-position:-120% 0}}.product-card:hover .border-beam,.quality-card:hover .border-beam,.app-card:hover .border-beam,.product-card.is-tilting .border-beam,.product-tab.active .border-beam{opacity:1}.product-tab{position:relative;isolation:isolate;overflow:hidden;transition:color .35s var(--prem-ease),text-shadow .35s var(--prem-ease),transform .4s var(--prem-ease-lux) !important}.product-tab.active{text-shadow:0 0 16px rgba(127,178,255,.4)}.product-tab .border-beam{border-radius:8px;opacity:0}.product-tab.active .border-beam{opacity:.85}/* Keyword marquee */.prem-marquee{position:relative;overflow:hidden;margin:18px 0 8px;mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);opacity:0.38;pointer-events:none}.prem-marquee .track{display:flex;width:max-content;gap:0;animation:premMarquee 42s linear infinite;will-change:transform}.prem-marquee .track span{flex:none;padding:0 1.6em;font-size:11px;letter-spacing:0.28em;text-transform:uppercase;color:rgba(180, 210, 255, 0.85);white-space:nowrap;font-family:'Barlow Condensed','DIN Alternate',sans-serif}@keyframes premMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}/* Nav glass pointer light */.site-nav{--nav-lx:50%;--nav-ly:40%}.site-nav::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(
    420px circle at var(--nav-lx) var(--nav-ly),
    rgba(127, 178, 255, 0.16) 0%,
    transparent 55%
  );opacity:0.85;transition:opacity .4s ease}.site-nav > *{position:relative;z-index:1}/* ---------- 4) Craft / products polish ---------- */.craft-step.active{/* v3: luminous edge only — no !important transform fighting craft-video scrub */box-shadow:-3px 0 0 0 rgba(127, 178, 255, 0.75),0 0 28px rgba(59, 130, 246, 0.22),inset 0 0 24px rgba(127, 233, 255, 0.06);filter:none;/* leave transform to cinematic.css (.craft-step.active) */border-radius:4px;background:linear-gradient(90deg, rgba(59,130,246,.08), transparent 70%)}.craft-pin.finale .craft-step.active{/* finale keeps list calm */box-shadow:none;filter:none;background:transparent}/* Product panel crossfade / slide */.product-panel{transition:opacity .45s var(--prem-ease-lux),transform .55s var(--prem-ease-lux)}.product-panel.active{animation:premPanelIn .65s var(--prem-ease-lux) both !important}@keyframes premPanelIn{from{opacity:0;transform:translateX(18px) scale(0.992)}to{opacity:1;transform:translateX(0) scale(1)}}/* Mobile: no 3D tilt / cursor; light CSS only */@media (pointer: coarse),(max-width: 900px){.product-card.is-tilt,.quality-card.is-tilt,.app-card.is-tilt{transform:none !important;perspective:none}.product-card.is-tilting .img,.product-card.is-tilting .body{transform:none !important}.tilt-glare{display:none}.product-grid.prem-enter,.quality-grid.prem-enter,.app-grid.prem-enter{transform:translateY(16px)}.product-grid.prem-enter.in,.quality-grid.prem-enter.in,.app-grid.prem-enter.in{transform:none}}@media (prefers-reduced-motion: reduce){.tilt-glare,#prem-cursor,.border-beam,.prem-marquee .track,.prem-orbs,.border-beam::before{animation:none !important;display:none !important}.prem-word{opacity:1 !important;transform:none !important;transition:none !important}.product-grid.prem-enter,.quality-grid.prem-enter,.app-grid.prem-enter,.catalogue-grid.prem-enter{opacity:1 !important;transform:none !important}.product-panel.active{animation:none !important}.craft-step.active{/* keep cinematic transform; luminous edge only */filter:none;box-shadow:-2px 0 0 0 rgba(127,178,255,.5)}[data-parallax],.hero-aurora .blob,.rail,.fab{transform:none !important}.catalogue-grid .product-card .img img{transform:none !important}}/* ============================================================
 * Premium Motion v2.1 extras — chips · conveyor · capsule · glitch
 * ============================================================ *//* ---------- Floating glass certification chips ---------- */.prem-chips{opacity:0;transition:opacity 1.2s var(--prem-ease-lux) 0.4s}body.hero-active .prem-chips,body.home-active .prem-chips,body.page-sub .prem-chips{opacity:1}.prem-chips{position:absolute;inset:0;z-index:0;/* under hero title/actions (z:1); decorative only */pointer-events:none;overflow:visible}.prem-chip{position:absolute;padding:8px 14px;border-radius:999px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;font-family:'Barlow Condensed','DIN Alternate',sans-serif;color:rgba(220, 235, 255, 0.92);background:linear-gradient(135deg, rgba(18, 28, 42, 0.55), rgba(12, 18, 28, 0.35));border:1px solid rgba(127, 178, 255, 0.28);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);box-shadow:0 10px 28px rgba(0, 0, 0, 0.28),inset 0 1px 0 rgba(255, 255, 255, 0.18),0 0 20px rgba(59, 130, 246, 0.12);white-space:nowrap;will-change:transform;opacity:0.55}.prem-chip::after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg, transparent 40%, rgba(127, 233, 255, 0.12) 50%, transparent 60%);pointer-events:none}.hero .prem-chips .prem-chip:nth-child(1){top:18%;left:6%}.hero .prem-chips .prem-chip:nth-child(2){top:32%;right:8%}.hero .prem-chips .prem-chip:nth-child(3){bottom:28%;left:10%}.hero .prem-chips .prem-chip:nth-child(4){top:58%;right:12%}.hero .prem-chips .prem-chip:nth-child(5){bottom:16%;right:22%}.hero .prem-chips .prem-chip:nth-child(6){top:22%;left:42%;opacity:0.55}#products .prem-chips{z-index:1}#products .prem-chips .prem-chip:nth-child(1){top:8%;right:4%}#products .prem-chips .prem-chip:nth-child(2){top:42%;left:2%}#products .prem-chips .prem-chip:nth-child(3){bottom:12%;right:8%}@media (max-width: 900px){.prem-chips{display:none}}/* ---------- Product-family conveyor ---------- */.prem-conveyor{position:relative;margin:10px 0 28px;overflow:hidden;border-radius:999px;border:1px solid rgba(127, 178, 255, 0.14);background:linear-gradient(90deg, rgba(8, 14, 22, 0.35), rgba(16, 28, 44, 0.45), rgba(8, 14, 22, 0.35));mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent)}.prem-conveyor .track{display:flex;width:max-content;gap:0;animation:premConveyor 38s linear infinite;will-change:transform;padding:10px 0}.prem-conveyor:hover .track{animation-play-state:paused}.prem-conveyor .track span{flex:none;padding:0 1.75em;font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(170, 205, 255, 0.78);font-family:'Barlow Condensed',sans-serif;white-space:nowrap;border-right:1px solid rgba(127, 178, 255, 0.12)}@keyframes premConveyor{from{transform:translateX(0)}to{transform:translateX(-50%)}}/* ---------- Sticky capsule mini-nav ---------- */#prem-capsule{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(24px);z-index:90;display:flex;gap:2px;padding:6px;border-radius:999px;background:rgba(10, 16, 24, 0.55);border:1px solid rgba(127, 178, 255, 0.28);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);box-shadow:0 16px 40px rgba(0, 0, 0, 0.35),inset 0 1px 0 rgba(255, 255, 255, 0.12),0 0 28px rgba(59, 130, 246, 0.15);opacity:0;pointer-events:none;transition:opacity .45s var(--prem-ease-lux),transform .55s var(--prem-ease-lux)}#prem-capsule.on{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}#prem-capsule a{padding:8px 16px;border-radius:999px;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;color:rgba(200, 220, 255, 0.72);transition:color .3s ease,background .3s ease,text-shadow .3s ease;font-family:'Barlow Condensed',sans-serif}#prem-capsule a:hover,#prem-capsule a.active{color:#eaf4ff;background:rgba(59, 130, 246, 0.22);text-shadow:0 0 14px rgba(127, 233, 255, 0.35)}@media (max-width: 900px),(pointer: coarse){#prem-capsule{display:none !important}}/* ---------- Section eyebrow glitch (restrained) ---------- */.section-eyebrow.prem-glitch{position:relative;display:inline-block}.section-eyebrow.prem-glitch::before,.section-eyebrow.prem-glitch::after{content:attr(data-glitch);position:absolute;left:0;top:0;width:100%;overflow:hidden;opacity:0;pointer-events:none;clip-path:inset(0 0 0 0)}.section-eyebrow.prem-glitch::before{color:rgba(127, 233, 255, 0.7);transform:translate(1px, 0);text-shadow:-1px 0 rgba(59, 130, 246, 0.5)}.section-eyebrow.prem-glitch::after{color:rgba(170, 130, 255, 0.55);transform:translate(-1px, 0);text-shadow:1px 0 rgba(255, 80, 120, 0.25)}.section-eyebrow.prem-glitch.is-glitching::before{opacity:0.55;animation:premGlitchA 0.45s steps(2, end) 1}.section-eyebrow.prem-glitch.is-glitching::after{opacity:0.4;animation:premGlitchB 0.45s steps(2, end) 1}@keyframes premGlitchA{0%{clip-path:inset(0 0 60% 0);transform:translate(1px, 0)}35%{clip-path:inset(30% 0 20% 0);transform:translate(2px, -0.5px)}70%{clip-path:inset(70% 0 0 0);transform:translate(-1px, 0.5px)}100%{clip-path:inset(0 0 0 0);opacity:0}}@keyframes premGlitchB{0%{clip-path:inset(40% 0 10% 0);transform:translate(-1px, 0)}40%{clip-path:inset(0 0 55% 0);transform:translate(-2px, 0.5px)}80%{clip-path:inset(55% 0 5% 0);transform:translate(1px, -0.5px)}100%{clip-path:inset(0 0 0 0);opacity:0}}/* Expand scroll spin to all product card images */.product-card .img{transform-style:preserve-3d;will-change:transform}.product-card .img.prem-spin-target{transform:rotateY(var(--spin-y, 0deg));transition:transform .5s var(--prem-ease-lux)}.product-card.is-tilting .img.prem-spin-target{transition:none}@media (prefers-reduced-motion: reduce){.prem-chips,.prem-conveyor .track,#prem-capsule,.section-eyebrow.prem-glitch::before,.section-eyebrow.prem-glitch::after{animation:none !important;display:none !important}.product-card .img.prem-spin-target,.product-card .img img{transform:none !important}}/* ============================================================
 * Premium Motion v3 — high-transparency glass · craft pin safe
 * ============================================================ *//* ---------- Glass sections (homepage + sub-pages) ---------- */body.hero-active section,body.home-active section,body.page-sub section{background:rgba(7, 9, 13, 0.34);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border-top:1px solid rgba(255, 255, 255, 0.06);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.05)}body.hero-active .section-dark,body.home-active .section-dark,body.page-sub .section-dark,body.hero-active #products,body.home-active #products,body.page-sub #products,body.hero-active #quality,body.home-active #quality,body.page-sub #quality,body.hero-active #application,body.home-active #application{background:rgba(7, 9, 13, 0.38);-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%)}/* Craft section uses the SAME page glass as other sections (v9.7).
   Beam/aurora lives inside .craft-collapsed glass frame — not the section wash. */body.hero-active #craft,body.home-active #craft,#craft{background:rgba(7, 9, 13, 0.26) !important;-webkit-backdrop-filter:blur(18px) saturate(140%) !important;backdrop-filter:blur(18px) saturate(140%) !important;border-top:1px solid rgba(255, 255, 255, 0.06);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.05);transform:none;filter:none;perspective:none;isolation:auto;will-change:auto}/* Hero / first screen stays fully clear */body.hero-active .hero,body.home-active .hero,.hero{background:transparent !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border-top:none !important;box-shadow:none !important}.craft-pin,#craftPin{/* Do NOT force transform:none — GSAP pin owns transform on this node */filter:none;perspective:none;isolation:auto;background:transparent !important}/* Soften craft left scrim further for particle bleed-through */.craft-scrim{background:linear-gradient(90deg, rgba(4,6,10,.28) 0%, rgba(4,6,10,.08) 48%, rgba(4,6,10,0) 100%),linear-gradient(180deg, rgba(4,6,10,.18) 0%, rgba(4,6,10,0) 28%, rgba(4,6,10,0) 72%, rgba(4,6,10,.28) 100%) !important}/* Stronger craft glass content panel (left text) */.craft-head{background:linear-gradient(165deg, rgba(255,255,255,.07), rgba(255,255,255,.02));-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border:1px solid rgba(255, 255, 255, 0.12);border-radius:16px;padding:18px 22px 16px;box-shadow:0 14px 40px rgba(0, 0, 0, 0.28),inset 0 1px 0 rgba(255, 255, 255, 0.16);max-width:580px}.craft-steps{background:linear-gradient(165deg, rgba(10,14,22,.28), rgba(10,14,22,.08));-webkit-backdrop-filter:blur(12px) saturate(130%);backdrop-filter:blur(12px) saturate(130%);border:1px solid rgba(255, 255, 255, 0.08);border-radius:14px;padding:6px 14px;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.08)}/* ---------- Hero: one clean glass panel (not stacked black washes) ---------- */.hero-sub{background:linear-gradient(165deg, rgba(255,255,255,.10), rgba(255,255,255,.03)) !important;-webkit-backdrop-filter:blur(20px) saturate(150%) !important;backdrop-filter:blur(20px) saturate(150%) !important;border:1px solid rgba(255, 255, 255, 0.16) !important;border-radius:18px !important;box-shadow:0 12px 36px rgba(0, 0, 0, 0.28),inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;padding:16px 28px !important;max-width:640px !important}/* Lighten cinematic hero::before further when premium is on *//* First-page hero: no dark wash — particles + cutouts stay sharp */body.hero-active .hero::before,body.home-active .hero::before{opacity:0 !important;background:none !important}/* Hero clarity: do NOT re-darken intro-scrim (showcase.css kills it) */body.hero-active #intro-scrim,body.home-active #intro-scrim,#intro.final-frame #intro-scrim,#intro.bg-layer #intro-scrim{opacity:0 !important;background:none !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important}/* ---------- Sub-page glass hero ---------- */body.page-sub .page-hero{background:rgba(7, 9, 13, 0.32);-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%);border-bottom:1px solid rgba(255, 255, 255, 0.06);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.05)}body.page-sub .page-hero::after{/* keep accent wash but softer */opacity:0.55;filter:none;animation:none;background:radial-gradient(ellipse 80% 60% at 20% 40%, rgba(59,130,246,.12) 0%, transparent 55%),radial-gradient(ellipse 60% 50% at 85% 20%, rgba(127,233,255,.08) 0%, transparent 50%) !important}/* Catalogue / dense cards stay glass, not solid */.catalogue-grid .product-card{background:linear-gradient(165deg, rgba(255,255,255,.08), rgba(255,255,255,.02)) !important;-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%)}/* Capsule above craft pin chrome; below mail/fab if needed */#prem-capsule{z-index:95}/* Fewer noisy chips on hero */.hero .prem-chips .prem-chip:nth-child(5),.hero .prem-chips .prem-chip:nth-child(6){display:none}@media (prefers-reduced-motion: reduce){body.hero-active section,body.home-active section,body.page-sub section,body.page-sub .page-hero{-webkit-backdrop-filter:none;backdrop-filter:none}.craft-head,.craft-steps,.hero-sub{-webkit-backdrop-filter:none !important;backdrop-filter:none !important}}/* ===== v3 rail anti-overlap ===== *//* Active rail labels were sitting on top of glass hero/body copy on subpages */body.page-sub .rail-dot.on span{opacity:0;pointer-events:none}body.page-sub .rail-dot:hover span{opacity:1;pointer-events:auto}body.page-sub .page-hero,body.page-sub main,body.page-sub section > .container{padding-left:max(var(--pad, 24px), 88px)}@media (max-width: 1180px){body.page-sub .page-hero,body.page-sub main,body.page-sub section > .container{padding-left:var(--pad, 24px)}}/* ============================================================
 * Premium v4 — Quiet premium redesign (少而贵)
 * Airform glass + Talkify craft rhythm + Isaac Fayemi hierarchy
 * Motion: pointer glow · horizontal light-sweep · glass-edge
 * ============================================================ */:root{--prem-glass:rgba(7, 9, 13, 0.28);--prem-glass-edge:rgba(255, 255, 255, 0.14);--prem-sweep:rgba(127, 233, 255, 0.35);--prem-type-display:clamp(2.4rem, 5.2vw, 4.2rem);--prem-type-lead:clamp(1.05rem, 1.6vw, 1.25rem)}/* Weaken full-screen shader / light-flow / aurora clutter */body.home-active #premium-shader,body.hero-active #premium-shader,body.page-sub #premium-shader{opacity:0.1 !important}#light-flow{opacity:0.32 !important}body.hero-active .hero-aurora,body.home-active .hero-aurora{opacity:0.38 !important}.hero-aurora .blob{filter:blur(72px) !important;opacity:0.55}.prem-orbs .orb{opacity:0.28 !important}.prem-orbs .line{opacity:0.18 !important}/* Weaken glitch */.section-eyebrow.prem-glitch::before,.section-eyebrow.prem-glitch::after{opacity:0 !important}.section-eyebrow.prem-glitch.is-glitching::before,.section-eyebrow.prem-glitch.is-glitching::after{opacity:0.18 !important}/* ---------- Nav: homepage fully clear until particles handoff ---------- *//* Do NOT force blur/gradient on hero — that fought transparent nav. */body:not(.page-sub):not(.nav-solid) .site-nav{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:none !important;background:transparent !important;border-bottom-color:transparent !important}body.page-sub .site-nav{background:linear-gradient(180deg, rgba(8, 12, 18, 0.42) 0%, rgba(8, 12, 18, 0.12) 75%, rgba(8, 12, 18, 0) 100%) !important;backdrop-filter:blur(14px) saturate(150%) !important;-webkit-backdrop-filter:blur(14px) saturate(150%) !important}body.nav-solid .site-nav,.site-nav.is-solid{background:rgba(8, 12, 18, 0.55) !important;backdrop-filter:blur(18px) saturate(160%) !important;-webkit-backdrop-filter:blur(18px) saturate(160%) !important;border-bottom:1px solid rgba(255,255,255,.08) !important;box-shadow:0 10px 40px rgba(0,0,0,.18),inset 0 -1px 0 rgba(127,178,255,.08) !important;transition:background .55s cubic-bezier(.22, 1, .36, 1),backdrop-filter .55s cubic-bezier(.22, 1, .36, 1),-webkit-backdrop-filter .55s cubic-bezier(.22, 1, .36, 1),box-shadow .55s cubic-bezier(.22, 1, .36, 1),border-color .55s cubic-bezier(.22, 1, .36, 1) !important}.site-nav .brand-mark{height:28px;width:auto;object-fit:contain;filter:drop-shadow(0 0 12px rgba(127, 178, 255, 0.15))}.intro-brand .brand-mark{height:clamp(36px, 5vw, 52px);width:auto;object-fit:contain}.site-footer .brand-mark{height:40px;width:auto;max-width:220px;object-fit:contain}/* Glass edge highlight on nav */.site-nav.prem-glass-edge{box-shadow:0 6px 24px rgba(0, 0, 0, 0.12),inset 0 1px 0 rgba(255, 255, 255, 0.16),inset 0 -1px 0 rgba(127, 178, 255, 0.08) !important}/* ---------- Capsule quieter ---------- */#prem-capsule{background:rgba(10, 16, 24, 0.38) !important;border-color:rgba(127, 178, 255, 0.16) !important;box-shadow:0 10px 28px rgba(0, 0, 0, 0.22),inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;padding:4px !important}#prem-capsule a{padding:6px 12px !important;font-size:11px !important;color:rgba(200, 220, 255, 0.58) !important}#prem-capsule a.active{background:rgba(59, 130, 246, 0.14) !important}/* ---------- Hero quieter: claim + sub glass; ≤2 chips ---------- */.hero-title{font-size:var(--prem-type-display);letter-spacing:-0.02em;line-height:1.08;text-shadow:0 0 28px rgba(59, 130, 246, 0.18),0 2px 20px rgba(0, 0, 0, 0.45) !important}.hero-sub{font-size:var(--prem-type-lead);max-width:36rem;padding:18px 22px !important;border-radius:16px !important;background:rgba(7, 9, 13, 0.22) !important;border:1px solid rgba(255, 255, 255, 0.08) !important;backdrop-filter:blur(18px) saturate(140%) !important;-webkit-backdrop-filter:blur(18px) saturate(140%) !important;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.12),0 12px 40px rgba(0, 0, 0, 0.18) !important}.hero .prem-chips .prem-chip:nth-child(n+3){display:none !important}.hero .prem-chips .prem-chip{opacity:0.4 !important;padding:6px 12px !important;font-size:10px !important}#products .prem-chips{display:none !important}/* Soft float / fade for hero lines */body.hero-active .hero-title,body.home-active .hero-title{animation:premHeroFloat 7s var(--prem-ease-lux) infinite alternate}@keyframes premHeroFloat{from{transform:translateY(0)}to{transform:translateY(-4px)}}.hero-title .prem-word,.hero-sub .prem-word{display:inline-block}/* ---------- Engineering grid texture (subtle) ---------- */.prem-eng-grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0.07;background-image:url('../media/generated/eng-grid.svg');background-size:240px 240px;mix-blend-mode:screen}#about .prem-eng-grid,#quality .prem-eng-grid,.page-hero .prem-eng-grid{opacity:0.09}#craft .prem-eng-grid{display:none !important}/* ---------- Horizontal light-sweep on section enter ---------- */.prem-light-sweep{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:inherit}.prem-light-sweep::before{content:'';position:absolute;top:-20%;bottom:-20%;left:-40%;width:38%;background:linear-gradient(
    105deg,
    transparent 0%,
    rgba(127, 233, 255, 0.0) 30%,
    rgba(127, 233, 255, 0.14) 48%,
    rgba(255, 255, 255, 0.18) 50%,
    rgba(127, 178, 255, 0.1) 55%,
    transparent 70%
  );transform:translateX(-120%) skewX(-12deg);opacity:0}.prem-light-sweep.is-sweeping::before{animation:premHSweep 1.15s var(--prem-ease-lux) forwards}@keyframes premHSweep{0%{transform:translateX(-120%) skewX(-12deg);opacity:0}15%{opacity:1}100%{transform:translateX(320%) skewX(-12deg);opacity:0}}/* ---------- Glass-edge highlight on cards / nav ---------- */.product-card.prem-glass-edge,.quality-card.prem-glass-edge,.app-card.prem-glass-edge,.spotlight-card.prem-glass-edge{box-shadow:0 16px 40px rgba(0, 0, 0, 0.28),inset 0 1px 0 rgba(255, 255, 255, 0.16),inset 0 0 0 1px rgba(127, 178, 255, 0.12) !important}.product-card.prem-glass-edge:hover,.quality-card.prem-glass-edge:hover,.app-card.prem-glass-edge:hover{box-shadow:0 22px 52px rgba(0, 0, 0, 0.34),0 0 28px rgba(59, 130, 246, 0.12),inset 0 1px 0 rgba(255, 255, 255, 0.22),inset 0 0 0 1px rgba(127, 233, 255, 0.22) !important}/* Lighter tilt / calmer card hover */.product-card:hover,.quality-card:hover,.app-card:hover,.spotlight-card:hover{transform:translateY(-3px) scale(1.006) !important}.product-card.is-tilting{/* tilt amplitude reduced via JS TILT_MAX */}/* Products: larger calmer cards + monospace-ish specs */.product-card{border-radius:18px !important;padding:clamp(18px, 2vw, 26px) !important;background:linear-gradient(165deg, rgba(255,255,255,.07), rgba(255,255,255,.015)) !important}.product-card .meta,.product-card .spec,.product-card .tags,.catalogue-grid .product-card .body small,.catalogue-grid .product-card .meta{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace !important;letter-spacing:0.04em;font-size:11px;color:rgba(170, 205, 255, 0.72) !important}/* Conveyor as quiet category guide */.prem-conveyor{margin:6px 0 18px !important;border-color:rgba(127, 178, 255, 0.08) !important;background:linear-gradient(90deg, rgba(8,14,22,0.15), rgba(16,28,44,0.22), rgba(8,14,22,0.15)) !important}.prem-conveyor .track span{font-size:11px !important;letter-spacing:0.18em !important;color:rgba(170, 205, 255, 0.55) !important;opacity:0.85}/* Category abstract cover wash on panels */.product-panel[data-cat-cover]{position:relative}.product-panel[data-cat-cover]::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:16px;background-image:var(--cat-cover);background-size:cover;background-position:center;opacity:0.14;mask-image:linear-gradient(180deg, rgba(0,0,0,.55), transparent 85%);-webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.55), transparent 85%)}.product-panel[data-cat-cover] > *{position:relative;z-index:1}/* ---------- Craft Talkify rhythm ---------- *//* Opacity only — never override transform (GSAP / cinematic scrub owns it) */#craft .craft-step,#craft .craft-step.passed{opacity:0.2;transition:opacity 0.55s var(--prem-ease-lux),box-shadow 0.55s var(--prem-ease-lux),background 0.55s var(--prem-ease-lux),filter 0.55s var(--prem-ease-lux)}#craft .craft-step.active{opacity:1 !important}#craft.craft-pin.finale .craft-step,#craft .craft-pin.finale .craft-step{opacity:0.55}.craft-step .idx{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.craft-step-ico{width:22px;height:22px;opacity:0.5;transition:opacity 0.45s var(--prem-ease),filter 0.45s var(--prem-ease)}.craft-step.active .craft-step-ico{opacity:1;filter:drop-shadow(0 0 8px rgba(127, 233, 255, 0.35))}.craft-step-ico img{width:100%;height:100%;display:block}.craft-progress{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;letter-spacing:0.14em;font-size:12px;color:rgba(200, 225, 255, 0.7);border:1px solid rgba(127, 178, 255, 0.16);border-radius:999px;padding:6px 12px;background:rgba(8, 14, 22, 0.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.08)}.craft-progress-text{color:#eaf4ff;font-weight:600}.craft-step.active .prem-ico-path{stroke-dasharray:120;animation:premIcoDraw 1.2s var(--prem-ease-lux) both}@keyframes premIcoDraw{from{stroke-dashoffset:120;opacity:0.4}to{stroke-dashoffset:0;opacity:1}}/* ---------- Quality: certificate glass + big numbers ---------- */.quality-card{border-radius:20px !important;padding:clamp(22px, 2.4vw, 32px) !important;background:linear-gradient(165deg, rgba(255,255,255,.09), rgba(255,255,255,.02)) !important;border:1px solid rgba(127, 178, 255, 0.16) !important;backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%)}.quality-card .icon.prem-badge-ico{width:64px;height:64px;margin-bottom:14px;display:flex;align-items:center;justify-content:center;background:none !important;font-size:0 !important}.quality-card .icon.prem-badge-ico img{width:64px;height:64px;display:block;filter:drop-shadow(0 0 12px rgba(127, 233, 255, 0.2))}.quality-card h4{font-size:clamp(1.25rem, 2vw, 1.65rem) !important;letter-spacing:-0.01em}.quality-card .meta{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;letter-spacing:0.12em;font-size:11px;margin-top:14px;color:rgba(127, 233, 255, 0.75) !important}/* Big number treatment for 415 card */.quality-card:has(h4) .prem-big-num,.quality-card h4{font-variant-numeric:tabular-nums}/* ---------- Subpages unified page-hero glass ---------- */body.page-sub .page-hero{background:rgba(7, 9, 13, 0.26) !important;backdrop-filter:blur(18px) saturate(140%) !important;-webkit-backdrop-filter:blur(18px) saturate(140%) !important;border-bottom:1px solid rgba(255, 255, 255, 0.06);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.08),0 20px 60px rgba(0, 0, 0, 0.12)}body.page-sub .page-hero h1{font-size:clamp(2rem, 4.5vw, 3.4rem);letter-spacing:-0.02em}/* Single-layer section glass (less muddy stacked scrims) */body.hero-active section,body.home-active section,body.page-sub section{background:rgba(7, 9, 13, 0.26) !important}body.hero-active section.hero,body.home-active section.hero,section.hero,.hero{background:transparent !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important}body.hero-active section::before,body.home-active section::before,body.page-sub section::before{opacity:0.35 !important}/* Craft pin-safe but same glass wash as other sections */#craft,#craft.craft-pin{background:rgba(7, 9, 13, 0.26) !important;backdrop-filter:blur(18px) saturate(140%) !important;-webkit-backdrop-filter:blur(18px) saturate(140%) !important;filter:none !important;perspective:none !important;isolation:auto !important}.craft-pin{background:transparent !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;filter:none !important;perspective:none !important;isolation:auto !important}/* Pointer glow stays subtle (spot-glow already present) */.spot-glow{mix-blend-mode:soft-light;opacity:0}.product-card.is-spot .spot-glow,.quality-card.is-spot .spot-glow,.app-card.is-spot .spot-glow{opacity:0.85}@media (prefers-reduced-motion: reduce){.prem-light-sweep::before,body.hero-active .hero-title,.craft-step.active .prem-ico-path{animation:none !important}.craft-step{opacity:1 !important}}/* ============================================================
 * v7: kill mouse-follow cursor glow + glass light-sweep streaks
 * ============================================================ */#prem-cursor{display:none !important;opacity:0 !important;visibility:hidden !important;pointer-events:none !important}.prem-light-sweep,.prem-light-sweep::before,.prem-light-sweep.is-sweeping::before{display:none !important;animation:none !important;opacity:0 !important}/* nav pointer spotlight off on homepage until solid (already dimmed above) */body:not(.page-sub) .site-nav::before{background:none !important}/* also kill card border-beam shine streaks + button shimmer sweeps */.border-beam,.border-beam::before{display:none !important;animation:none !important;opacity:0 !important}.btn-shimmer{display:none !important;animation:none !important;opacity:0 !important}.tilt-glare{display:none !important;opacity:0 !important}/* ===== v7.2 nav: transparent on looping intro; frost only with particles ===== */body:not(.page-sub):not(.nav-solid) .site-nav,body.hero-active:not(.nav-solid):not(.page-sub) .site-nav{background:transparent !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;border-bottom:1px solid transparent !important;box-shadow:none !important}body:not(.page-sub):not(.nav-solid) .site-nav::before,body:not(.page-sub):not(.nav-solid) .site-nav::after{opacity:0 !important;background:none !important}body.nav-solid .site-nav,body.home-active.nav-solid .site-nav,body.scrolled-past-hero.nav-solid .site-nav,.site-nav.is-solid{background:rgba(8, 12, 18, 0.55) !important;backdrop-filter:blur(18px) saturate(160%) !important;-webkit-backdrop-filter:blur(18px) saturate(160%) !important;border-bottom:1px solid rgba(255,255,255,.08) !important}/* v11.6.2 bottom capsule removed */#prem-capsule{display:none !important;visibility:hidden !important;pointer-events:none !important}/* v11.7.1 quality nested glass off — layout-polish owns cards */body.hero-active #quality,body.home-active #quality,body.page-sub #quality{background:transparent !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border:none !important;box-shadow:none !important}/* v11.9.4 light-flow off */#light-flow{display:none!important}/* ============================================================
 * Typography layer — Syne / Space Grotesk / Manrope / IBM Plex Mono
 * Quiet-premium (Isaac Fayemi × Airform × Talkify)
 * Linked after premium.css; overrides Barlow/Inter without rewriting cinematic.css
 * ============================================================ */:root{--font-display:'Syne','Noto Sans SC',sans-serif;--font-ui:'Space Grotesk','Noto Sans SC',sans-serif;--font-body:'Manrope','Noto Sans SC',sans-serif;--font-mono:'IBM Plex Mono',ui-monospace,monospace;--font-zh:'Noto Sans SC',sans-serif;--type-ink:#f4f6fa;--type-body:#9aa3b5;--type-eyebrow:rgba(127, 178, 255, 0.78);--prem-type-display:clamp(2.75rem, 6.2vw, 5rem);--prem-type-section:clamp(2.1rem, 4.6vw, 3.75rem);--prem-type-lead:clamp(1.05rem, 1.55vw, 1.22rem)}/* -------- Base -------- */body{font-family:var(--font-body) !important;color:var(--type-ink);font-weight:400;line-height:1.7;letter-spacing:0.005em}p,.lead,.section-lead,.hero-sub,.about-copy,.card-body,.product-card .body,.quality-card p,.app-card p,.page-hero .lead,.footer-copy,.footer p{font-family:var(--font-body) !important;font-weight:300;color:var(--type-body);line-height:1.7}.section-lead,.hero-sub,.page-hero .lead{font-weight:300 !important;color:#9aa3b5 !important;line-height:1.72 !important}/* -------- Display / titles -------- */.hero-title,.page-hero h1,.section-title,.craft-row .cn,.stat-num,.prem-big-num{font-family:var(--font-display) !important}.hero-title{font-size:var(--prem-type-display) !important;font-weight:800 !important;letter-spacing:-0.03em !important;line-height:1.05 !important;color:#f4f6fa !important;text-shadow:0 0 32px rgba(59, 130, 246, 0.16),0 2px 22px rgba(0, 0, 0, 0.5) !important}.hero-title em{color:var(--brand-soft, #7FB2FF) !important;font-style:normal;text-shadow:0 0 22px rgba(127, 233, 255, 0.45),0 0 48px rgba(59, 130, 246, 0.28);filter:drop-shadow(0 0 14px rgba(127, 178, 255, 0.4))}.section-title{font-family:var(--font-display) !important;font-size:var(--prem-type-section) !important;font-weight:700 !important;letter-spacing:-0.025em !important;line-height:1.12 !important;color:#f4f6fa !important}.section-title em{font-style:normal;color:var(--brand, #3B82F6);position:relative}body.page-sub .page-hero h1{font-family:var(--font-display) !important;font-weight:700 !important;letter-spacing:-0.03em !important;color:#f4f6fa !important}/* -------- UI: nav, buttons, eyebrows, tabs, craft idx -------- */.nav-list a,.nav-list > a,.nav-brand .name,.btn,.lang-switch,.lang-btn,.product-tabs button,.product-tab,.section-eyebrow,.craft-eyebrow,.craft-step .idx,.craft-row .idx,#prem-capsule a,.hero-brand .brand-mark-sub,.nav-brand .mark{font-family:var(--font-ui) !important}.nav-list a,.nav-list > a{font-weight:500 !important;letter-spacing:0.04em !important;font-size:13.5px}.btn{font-family:var(--font-ui) !important;font-weight:600 !important;letter-spacing:0.1em !important}.section-eyebrow,.craft-eyebrow,.hero-brand .brand-mark-sub{font-family:var(--font-ui) !important;font-weight:500 !important;font-size:12px !important;letter-spacing:0.32em !important;text-transform:uppercase;color:var(--type-eyebrow) !important}.product-tabs button,.product-tab{font-family:var(--font-ui) !important;font-weight:500 !important;letter-spacing:0.06em}.craft-step .idx,.craft-row .idx{font-family:var(--font-ui) !important;font-weight:700 !important;letter-spacing:-0.02em}/* -------- Mono: specs, chips, progress, technical -------- */.product-card .meta,.product-card .spec,.product-card .tags,.catalogue-grid .product-card .body small,.catalogue-grid .product-card .meta,.quality-card .meta,.craft-progress,.prem-chip,.prem-conveyor .track span,.prem-marquee .track span,.spec-chip,.tag{font-family:var(--font-mono) !important;letter-spacing:0.06em;font-size:11px;font-weight:400}.prem-marquee .track span,.prem-conveyor .track span{letter-spacing:0.2em !important}/* -------- Cards / headings that used Barlow -------- */.product-card h3,.product-card h4,.quality-card h4,.app-card h3,.app-card h4,.vitem h4,.ecard .co,.about-stat .num,.stat .num{font-family:var(--font-display) !important}/* Override inline Barlow on family codes / big numbers */[style*="Barlow"],[style*="Barlow Condensed"]{font-family:var(--font-display) !important}/* -------- zh mode: slightly looser tracking -------- */html[data-lang="zh"] body,html[data-lang="zh"] .section-lead,html[data-lang="zh"] .hero-sub,html[data-lang="zh"] .hero-title,html[data-lang="zh"] .section-title,html[data-lang="zh"] .page-hero h1{letter-spacing:0.02em;font-family:var(--font-zh),var(--font-body)}html[data-lang="zh"] .hero-title,html[data-lang="zh"] .section-title,html[data-lang="zh"] .page-hero h1{font-family:var(--font-display) !important;letter-spacing:0.01em !important}html[data-lang="zh"] .section-eyebrow,html[data-lang="zh"] .craft-eyebrow{letter-spacing:0.28em !important}html[data-lang="zh"] .nav-list a{letter-spacing:0.08em !important}/* ============================================================
 * Text motion styles (restrained; pairs with typography.js)
 * ============================================================ *//* Hero: opacity + blur→sharp on line spans */.hero-title .line.typo-line-boost span,.hero-title .line.prem-line-boost span{filter:blur(6px);transition:transform 1.05s cubic-bezier(0.22, 1, 0.36, 1),opacity 1.05s cubic-bezier(0.22, 1, 0.36, 1),filter 1.1s cubic-bezier(0.22, 1, 0.36, 1) !important}body.hero-active .hero-title .line.typo-line-boost span,body.hero-active .hero-title .line.prem-line-boost span,body.home-active .hero-title .line.typo-line-boost span,body.home-active .hero-title .line.prem-line-boost span{filter:blur(0)}/* Section title word stagger — better easing */.prem-word{transition:opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),transform 0.95s cubic-bezier(0.16, 1, 0.3, 1),filter 0.9s cubic-bezier(0.16, 1, 0.3, 1) !important;transition-delay:calc(var(--wi, 0) * 52ms) !important;filter:blur(3px)}.is-staggered .prem-word,.prem-stagger-ready .prem-word{filter:blur(0)}/* One-shot gradient shimmer on section-title em */.section-title em.typo-em-shimmer,.section-title .prem-word em.typo-em-shimmer,.section-title em .prem-word.typo-em-shimmer{background:linear-gradient(
    105deg,
    var(--brand, #3B82F6) 0%,
    var(--brand, #3B82F6) 35%,
    #e8f4ff 48%,
    var(--brand-soft, #7FB2FF) 55%,
    var(--brand, #3B82F6) 70%,
    var(--brand, #3B82F6) 100%
  );background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent !important;animation:typoEmShimmer 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.35s both}@keyframes typoEmShimmer{0%{background-position:100% 50%}100%{background-position:0% 50%}}.section-title.is-staggered em.typo-em-done,.section-title em.typo-em-done{background:none;-webkit-background-clip:unset;background-clip:unset;color:var(--brand, #3B82F6) !important;animation:none}/* Soft underline draw under em / key links */.section-title em.typo-underline,a.typo-underline{position:relative}.section-title em.typo-underline::after,a.typo-underline::after{content:'';position:absolute;left:0;right:0;bottom:0.08em;height:2px;background:linear-gradient(90deg, var(--brand-soft, #7FB2FF), transparent 90%);transform:scaleX(0);transform-origin:left center;opacity:0.55;transition:transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;pointer-events:none}.section-title.is-staggered em.typo-underline::after,a.typo-underline.is-drawn::after,.section-title em.typo-underline.is-drawn::after{transform:scaleX(1)}/* Eyebrow: tracking from wider → target + fade (no glitch) */.section-eyebrow.typo-track,.craft-eyebrow.typo-track{opacity:0;letter-spacing:0.55em !important;transition:opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),letter-spacing 1.05s cubic-bezier(0.16, 1, 0.3, 1),color 0.4s ease}.section-eyebrow.typo-track.is-in,.craft-eyebrow.typo-track.is-in{opacity:1;letter-spacing:0.32em !important}html[data-lang="zh"] .section-eyebrow.typo-track.is-in,html[data-lang="zh"] .craft-eyebrow.typo-track.is-in{letter-spacing:0.28em !important}/* Silence legacy glitch when typography track is active */.section-eyebrow.typo-track.prem-glitch::before,.section-eyebrow.typo-track.prem-glitch::after,.section-eyebrow.typo-track.prem-glitch.is-glitching::before,.section-eyebrow.typo-track.prem-glitch.is-glitching::after{display:none !important;content:none !important;animation:none !important}/* Craft idx / big counters: subtle scale-in when active */.craft-step .idx{transform-origin:left center;transition:color 0.45s ease,transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),opacity 0.45s ease}.craft-step.active .idx.typo-idx-pop{animation:typoIdxPop 0.55s cubic-bezier(0.22, 1, 0.36, 1) both}@keyframes typoIdxPop{0%{transform:scale(0.92);opacity:0.7}60%{transform:scale(1.06)}100%{transform:scale(1.08);opacity:1}}.typo-counter{display:inline-block;transform-origin:center}.typo-counter.is-in{animation:typoCounterIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) both}@keyframes typoCounterIn{from{transform:scale(0.88);opacity:0.4;filter:blur(4px)}to{transform:scale(1);opacity:1;filter:blur(0)}}/* -------- Reduced motion -------- */@media (prefers-reduced-motion: reduce){.hero-title .line.typo-line-boost span,.hero-title .line.prem-line-boost span,.prem-word,.section-eyebrow.typo-track,.craft-eyebrow.typo-track,.craft-step .idx,.typo-counter{transition:none !important;animation:none !important;filter:none !important;letter-spacing:inherit !important;opacity:1 !important;transform:none !important}.section-title em.typo-em-shimmer,.section-title em.typo-underline::after,a.typo-underline::after{animation:none !important;transform:none !important;background:none !important;color:var(--brand, #3B82F6) !important;-webkit-background-clip:unset !important;background-clip:unset !important}.section-eyebrow.typo-track,.craft-eyebrow.typo-track{letter-spacing:0.32em !important;opacity:1 !important}}/* YITONG products grid v11.4 */.yt-pg{margin-top:8px}.yt-pg-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px;padding:0}.yt-pg-tab{appearance:none;cursor:pointer;border:1px solid rgba(255,255,255,.14);background:rgba(255, 255, 255, 0.06);-webkit-backdrop-filter:blur(18px) saturate(155%);backdrop-filter:blur(18px) saturate(155%);color:rgba(234,244,255,.72);font:600 13px/1.2 "Space Grotesk",Manrope,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:10px 16px;border-radius:999px;box-shadow:0 8px 22px rgba(0,0,0,.18);transition:border-color .2s,color .2s,background .2s,box-shadow .2s}.yt-pg-tab:hover{color:#eaf4ff;border-color:rgba(127,233,255,.45)}.yt-pg-tab.is-active{color:#081018 !important;background:var(--brand, #3b82f6) !important;border-color:var(--brand, #3b82f6) !important;box-shadow:0 0 24px rgba(59, 130, 246, .35) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important}.yt-pg-grid{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:18px}.yt-pg-card{display:flex;flex-direction:column;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.10), rgba(255,255,255,.03)));-webkit-backdrop-filter:blur(18px) saturate(155%);backdrop-filter:blur(18px) saturate(155%);border:1px solid rgba(255,255,255,.10);border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.22);transition:transform .25s ease,border-color .25s,box-shadow .25s,background .25s;min-height:100%}.yt-pg-card:hover{transform:translateY(-4px);background:linear-gradient(165deg, rgba(255,255,255,.14), rgba(255,255,255,.045));border-color:rgba(127,178,255,.28);box-shadow:0 14px 36px rgba(0,0,0,.28)}.yt-pg-card.is-hidden{display:none}.yt-pg-media{aspect-ratio:4/3;background:rgba(255,255,255,.03);border-bottom:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.yt-pg-media img{width:100%;height:100%;object-fit:contain;padding:12px}.yt-pg-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1}.yt-pg-wire{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;line-height:1.45;font-weight:500;color:#5eb8ff;letter-spacing:.01em;word-break:break-word}.yt-pg-use{margin:0;font-size:15px;line-height:1.45;font-weight:600;color:#eaf4ff;letter-spacing:.01em}.yt-pg-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}.yt-pg-tags span{display:inline-block;font-size:11px;line-height:1.3;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:rgba(127,233,255,.9);background:rgba(127,233,255,.08);border:1px solid rgba(127,233,255,.18);border-radius:999px;padding:5px 10px}@media (max-width: 1100px){.yt-pg-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (max-width: 760px){.yt-pg-grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.yt-pg-body{padding:12px}.yt-pg-wire{font-size:11px}.yt-pg-use{font-size:13.5px}.yt-pg-tab{padding:8px 12px;font-size:12px}}@media (max-width: 420px){.yt-pg-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:8px;-webkit-overflow-scrolling:touch}.yt-pg-card{flex:0 0 78%;scroll-snap-align:start}.yt-pg-card.is-hidden{display:none}}/* v11.9.0 media-only product cards */.yt-pg-card--media{appearance:none;border:0;padding:0;cursor:zoom-in;text-align:left;width:100%;display:flex;flex-direction:column;overflow:hidden}.yt-pg-card--media .yt-pg-media{aspect-ratio:4/3;width:100%}.yt-pg-card--media .yt-pg-media img{width:100%;height:100%;object-fit:cover;display:block}.yt-pg-grid--media{grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:14px}@media (max-width: 600px){.yt-pg-grid--media{grid-template-columns:repeat(2, minmax(0, 1fr));gap:10px}}/* craft-aurora.css — v10.0 CRAFT collapsed aurora + hover accordion overlay
 * Overlay replaces ScrollTrigger pin expand path.
 * Beam (#craftAurora) stays visible behind semi-transparent overlay.
 *//* ── Section shell ─────────────────────────────────────────── */#craft.craft-section{position:relative}#craft.is-collapsed{min-height:100vh}/* Overlay open keeps collapsed frame (beam) in layout */#craft.is-overlay-open{min-height:100vh}/* Legacy pin expand — permanently unused in v9.4 */#craft.is-expanded{min-height:0}/* ── Collapsed aurora hero ─────────────────────────────────── */.craft-collapsed{position:relative;width:calc(100% - 48px);max-width:1280px;min-height:min(92vh, 860px);margin:28px auto 40px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--g-rad, 16px);background:rgba(10, 14, 22, 0.20);-webkit-backdrop-filter:blur(28px) saturate(170%);backdrop-filter:blur(28px) saturate(170%);border:1px solid rgba(255, 255, 255, 0.16);box-shadow:0 18px 48px rgba(0, 0, 0, 0.20),inset 0 1px 0 rgba(255, 255, 255, 0.09),inset 0 -1px 0 rgba(127, 233, 255, 0.04);opacity:1;transition:opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1)}/* When overlay is open: keep frame + beam; fade only the brief UI */#craft.is-overlay-open .craft-collapsed{/* stay visible so WebGL beam paints behind glass overlay */opacity:1;visibility:visible;pointer-events:none/* children opt-in */}#craft.is-overlay-open .craft-overlay.is-open{pointer-events:auto}#craft.is-overlay-open .craft-collapsed-ui{opacity:0;visibility:hidden;pointer-events:none;/* delay visibility until opacity finishes — avoids late pop */transition:opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1),visibility 0s linear 0.32s}#craft:not(.is-overlay-open) .craft-collapsed-ui{opacity:1;visibility:visible;transition:opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1) 0.05s,visibility 0s linear 0s}/* Legacy is-expanded path (if ever re-enabled) hides collapsed */#craft.is-expanded:not(.is-overlay-open) .craft-collapsed{position:absolute;inset:0;pointer-events:none;opacity:0;visibility:hidden;min-height:0;height:0;overflow:hidden}.craft-aurora{position:absolute;inset:0;z-index:0;pointer-events:none}.craft-aurora canvas{width:100% !important;height:100% !important;display:block}.craft-collapsed-ui{position:relative;z-index:2;width:min(920px, 92%);padding:48px 28px 56px;display:flex;flex-direction:column;gap:24px;background:transparent;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;text-shadow:0 1px 18px rgba(0, 0, 0, 0.35);transition:opacity 0.35s ease,visibility 0.35s}.craft-collapsed-ui::before{display:none}.craft-collapsed-head .craft-eyebrow{margin-bottom:12px}.craft-collapsed-head .craft-title{max-width:18ch}.craft-collapsed-head .craft-lead{max-width:52ch;font-size:14px;line-height:1.65;color:rgba(230, 236, 245, 0.82)}.craft-brief-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:10px 18px;max-width:760px}.craft-brief-steps li{display:flex;align-items:baseline;gap:10px;font-size:13.5px;letter-spacing:0.02em;color:rgba(235, 240, 250, 0.9);padding:8px 0;border-bottom:1px solid rgba(255, 255, 255, 0.08)}.craft-brief-steps .n{font-family:'IBM Plex Mono','Barlow Condensed',monospace;font-size:12px;font-weight:500;letter-spacing:0.12em;color:var(--brand, #7fe9ff);min-width:1.8em}#craftExpandBtn{align-self:flex-start;margin-top:8px;min-width:180px}/* ── Legacy expanded pin shell — forced off in v9.4 ────────── */.craft-expanded,#craftExpanded,#craft.is-collapsed .craft-expanded,#craft.is-overlay-open .craft-expanded,#craft.is-expanded .craft-expanded{display:none !important;visibility:hidden !important;pointer-events:none !important}/* ── Glass overlay (FLIP target) ───────────────────────────── */.craft-overlay{/* v9.9: absolute inside .craft-collapsed — locked to ray/glass frame, scrolls as one */position:absolute;inset:0;z-index:8;box-sizing:border-box;width:auto;height:auto;border-radius:var(--g-rad, 16px);background:rgba(10, 14, 22, 0.28);-webkit-backdrop-filter:blur(32px) saturate(175%);backdrop-filter:blur(32px) saturate(175%);border:1px solid rgba(255, 255, 255, 0.16);box-shadow:0 28px 72px rgba(0, 0, 0, 0.32),inset 0 1px 0 rgba(255, 255, 255, 0.1),inset 0 0 0 1px rgba(127, 233, 255, 0.04);overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transform-origin:center center;will-change:transform,opacity}.craft-overlay.is-collapsing .craft-overlay-shell{opacity:0;transition:opacity 0.22s cubic-bezier(0.22, 1, 0.36, 1)}.craft-overlay.is-opening .craft-overlay-shell{opacity:0}.craft-overlay.is-open:not(.is-opening):not(.is-collapsing) .craft-overlay-shell{opacity:1;transition:opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1) 0.12s}.craft-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}.craft-overlay[hidden]{display:none !important}.craft-overlay.is-open[hidden]{display:block !important}.craft-overlay-shell{position:relative;width:100%;height:100%;display:flex;flex-direction:column;min-height:0;opacity:1;transition:opacity 0.28s cubic-bezier(0.22, 1, 0.36, 1)}.craft-overlay-close{position:absolute;top:14px;right:14px;z-index:5;width:40px;height:40px;border-radius:999px;border:1px solid rgba(255, 255, 255, 0.16);background:rgba(8, 12, 18, 0.45);color:rgba(255, 255, 255, 0.9);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background 0.25s ease,border-color 0.25s ease}.craft-overlay-close:hover{background:rgba(20, 28, 40, 0.7);border-color:rgba(127, 233, 255, 0.35)}.craft-overlay-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0, 1.05fr) minmax(0, 0.95fr);gap:clamp(16px, 3vw, 36px);padding:clamp(28px, 4vw, 48px) clamp(20px, 3.5vw, 44px);align-items:stretch}.craft-overlay-copy{display:flex;flex-direction:column;gap:18px;min-height:0;overflow:hidden}.craft-overlay-head .craft-title{max-width:18ch}.craft-overlay-lead{max-width:46ch;font-size:13.5px;line-height:1.6;color:rgba(230, 236, 245, 0.78)}.craft-overlay-steps{list-style:none;margin:0;padding:0 2px 4px 0;overflow:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0;display:flex;flex-direction:column;gap:4px}.craft-overlay-step{display:grid;grid-template-columns:40px 1fr;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(255, 255, 255, 0.06);border-radius:10px;opacity:0.72;cursor:pointer;transition:opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),background 0.4s cubic-bezier(0.22, 1, 0.36, 1),border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1),box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1)}.craft-overlay-step .idx{font-family:'IBM Plex Mono','Barlow Condensed',monospace;font-size:18px;font-weight:500;letter-spacing:0.06em;color:rgba(200, 210, 225, 0.5);line-height:1.35;transition:color 0.4s cubic-bezier(0.22, 1, 0.36, 1),transform 0.4s cubic-bezier(0.22, 1, 0.36, 1)}.craft-overlay-step .ct small{display:none}.craft-overlay-step .ct h3{margin:0;font-size:14px;font-weight:600;color:rgba(235, 240, 250, 0.88);line-height:1.35;transition:color 0.4s cubic-bezier(0.22, 1, 0.36, 1)}/* Expand-below detail — CSS grid 0fr→1fr pushes siblings (no overlap) */.craft-overlay-step{flex:0 0 auto !important;align-self:stretch}.craft-overlay-step .ct{min-width:0;display:block}.craft-overlay-detail{display:grid;grid-template-rows:0fr;opacity:0;margin-top:0;transition:grid-template-rows 0.36s cubic-bezier(0.22, 1, 0.36, 1),opacity 0.28s ease,margin-top 0.36s cubic-bezier(0.22, 1, 0.36, 1)}.craft-overlay-detail-inner{overflow:hidden;min-height:0}.craft-overlay-detail-inner > p{margin:0;padding:0 0 6px;font-size:12.5px;line-height:1.55;color:rgba(200, 210, 225, 0.78)}.craft-overlay-step.is-open .craft-overlay-detail,.craft-overlay-step.active .craft-overlay-detail{grid-template-rows:1fr;opacity:1;margin-top:8px}.craft-overlay-step.active,.craft-overlay-step.is-open{opacity:1;background:rgba(127, 233, 255, 0.07);border-color:rgba(127, 233, 255, 0.2);box-shadow:inset 0 0 0 1px rgba(127, 233, 255, 0.06)}.craft-overlay-step.active .idx,.craft-overlay-step.is-open .idx{color:var(--brand, #7fe9ff);transform:scale(1.04)}.craft-overlay-step.active .ct h3,.craft-overlay-step.is-open .ct h3{color:var(--brand-soft, #b7f3ff)}.craft-overlay-step.passed{opacity:0.78}.craft-overlay-step:hover:not(.active):not(.is-open){opacity:0.92;background:rgba(255, 255, 255, 0.03)}.craft-overlay-hint{margin:0;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(180, 195, 215, 0.55)}.craft-overlay-stage{position:relative;align-self:center;width:min(100%, 420px);aspect-ratio:4/5;border-radius:var(--g-rad, 16px);overflow:hidden;background:rgba(4, 8, 14, 0.35);box-shadow:0 0 0 1px rgba(255, 255, 255, 0.08),0 24px 64px rgba(0, 0, 0, 0.4),0 0 48px rgba(94, 234, 255, 0.08)}.craft-ov-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;/* softened crossfade */transition:opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1);filter:none;will-change:opacity}.craft-ov-img.is-a{opacity:1}.craft-ov-img.is-b{opacity:0}.craft-overlay-caption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 14px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255, 255, 255, 0.8);background:linear-gradient(180deg, transparent 0%, rgba(4, 8, 14, 0.72) 55%);pointer-events:none}.craft-overlay-progress{position:absolute;top:14px;left:14px;right:56px;z-index:2;display:flex;flex-direction:column;gap:8px;pointer-events:none}.craft-overlay-progress-text{font-family:'IBM Plex Mono','Barlow Condensed',monospace;font-size:13px;letter-spacing:0.14em;color:rgba(240, 246, 255, 0.9);text-shadow:0 1px 12px rgba(0, 0, 0, 0.45)}.craft-overlay-bar{height:2px;border-radius:2px;background:rgba(255, 255, 255, 0.12);overflow:hidden}.craft-overlay-bar > i{display:block;height:100%;width:100%;background:linear-gradient(90deg, var(--brand, #7fe9ff), #c084fc, #fb7185);transform-origin:left center;transform:scaleX(0);transition:transform 0.4s cubic-bezier(0.22, 1, 0.36, 1)}/* Body scroll lock while overlay open */html.craft-overlay-lock,html.craft-overlay-lock body,body.craft-overlay-lock{overflow:hidden !important;overscroll-behavior:none}/* Legacy image stage styles retained but unused */.craft-image-stage{position:absolute;right:clamp(16px, 4vw, 56px);top:50%;transform:translateY(-50%);width:min(42vw, 540px);aspect-ratio:4/5;z-index:1;pointer-events:none;border-radius:var(--g-rad, 16px);overflow:hidden;background:rgba(6, 10, 18, 0.35)}.craft-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.35s ease}.craft-img.is-a{opacity:1}.craft-img.is-b{opacity:0}.craft-image-caption{position:absolute;left:0;right:0;bottom:0;padding:28px 18px 14px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255, 255, 255, 0.78);background:linear-gradient(180deg, transparent 0%, rgba(4, 8, 14, 0.72) 55%);pointer-events:none}@media (max-width: 900px){.craft-overlay-grid{grid-template-columns:1fr;grid-template-rows:auto minmax(220px, 42vh);padding:52px 18px 22px;gap:16px}.craft-overlay-stage{width:min(100%, 360px);justify-self:center;aspect-ratio:3/4}.craft-overlay-steps{max-height:none;overflow:auto}.craft-overlay-step{padding:7px 8px}.craft-overlay-step .ct h3{font-size:13px}}@media (max-width: 720px){.craft-collapsed{width:calc(100% - 24px);margin:16px auto 28px;min-height:min(88vh, 720px);border-radius:var(--g-rad, 16px)}.craft-collapsed-ui{padding:36px 18px 44px;gap:18px}.craft-brief-steps{grid-template-columns:1fr}.craft-overlay-step{grid-template-columns:40px 1fr;padding:12px 4px}.craft-overlay-step .idx{font-size:18px}.craft-overlay-step .ct h3{font-size:14px}.craft-overlay-step .ct p{font-size:12px}}@media (prefers-reduced-motion: reduce){.craft-collapsed,.craft-collapsed-ui,.craft-overlay,.craft-ov-img,.craft-img,.craft-overlay-step,.craft-overlay-detail,.craft-overlay-bar > i{transition:none !important}}/* Expand button — same liquid frosted glass as overlay */#craftExpandBtn.craft-glass-btn,#craftExpandBtn{background:rgba(10, 14, 22, 0.28) !important;-webkit-backdrop-filter:blur(32px) saturate(175%) !important;backdrop-filter:blur(32px) saturate(175%) !important;border:1px solid rgba(255, 255, 255, 0.16) !important;color:rgba(245, 248, 255, 0.95) !important;box-shadow:0 10px 32px rgba(0, 0, 0, 0.22),inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;border-radius:999px !important;transition:background 0.35s cubic-bezier(0.22, 1, 0.36, 1),border-color 0.35s ease,box-shadow 0.35s ease,transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important}#craftExpandBtn:hover{background:rgba(14, 20, 30, 0.38) !important;border-color:rgba(127, 233, 255, 0.35) !important}#craft.is-overlay-open #craftExpandBtn{opacity:0;pointer-events:none}/* Close as clear X */.craft-overlay-close{font-size:0 !important;line-height:0 !important}.craft-overlay-close::before{content:'';display:block;width:14px;height:14px;background:linear-gradient(45deg, transparent 43%, rgba(255,255,255,0.92) 43%, rgba(255,255,255,0.92) 57%, transparent 57%),linear-gradient(-45deg, transparent 43%, rgba(255,255,255,0.92) 43%, rgba(255,255,255,0.92) 57%, transparent 57%)}/* v11.2 mobile overlay — phone-first craft detail */@media (max-width: 720px){.craft-overlay-grid{grid-template-columns:1fr !important;grid-template-rows:auto 1fr !important}.craft-overlay-stage{width:100% !important;max-width:none !important;aspect-ratio:16/10}.craft-overlay-copy{overflow:hidden}.craft-overlay-steps{overflow:auto;-webkit-overflow-scrolling:touch}}/* v11.6 accordion overrides — brief list is single-column hover accordion */.craft-brief-steps{display:flex !important;flex-direction:column !important;grid-template-columns:none !important;gap:2px !important;max-width:720px}.craft-brief-steps > .craft-acc-step{display:block;align-items:unset;font-size:inherit;padding:0;border-bottom:1px solid rgba(255, 255, 255, 0.08)}#craftExpandBtn{display:none !important}#craft.is-overlay-open .craft-collapsed-ui{opacity:1 !important;visibility:visible !important;pointer-events:auto !important}/* craft-accordion.css — v11.6.0 in-page craft step hover accordion */.craft-collapsed-ui{width:min(980px, 94%)}.craft-collapsed-head .craft-eyebrow{font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:rgba(127, 233, 255, 0.92);text-shadow:0 1px 2px rgba(0, 0, 0, 0.55),0 2px 14px rgba(0, 0, 0, 0.4)}.craft-collapsed-head .craft-title{font-size:clamp(1.65rem, 3.2vw, 2.35rem);font-weight:650;line-height:1.15;letter-spacing:-0.02em;max-width:18ch;color:rgba(248, 250, 255, 0.98);text-shadow:0 1px 2px rgba(0, 0, 0, 0.55),0 2px 14px rgba(0, 0, 0, 0.4)}.craft-collapsed-head .craft-lead{max-width:52ch;font-size:15px;font-weight:400;line-height:1.7;color:rgba(220, 228, 240, 0.78);text-shadow:0 1px 2px rgba(0, 0, 0, 0.55),0 2px 14px rgba(0, 0, 0, 0.4)}/* Single-column accordion list (replaces compact multi-col grid) */.craft-brief-steps{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;max-width:720px;width:100%}.craft-acc-step{position:relative;display:block;margin:0;padding:0;border-bottom:1px solid rgba(255, 255, 255, 0.08);cursor:pointer;outline:none;transition:opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),padding 0.4s cubic-bezier(0.16, 1, 0.3, 1),border-color 0.35s ease;will-change:transform,opacity}.craft-acc-step:focus-visible{box-shadow:inset 0 0 0 1px rgba(127, 233, 255, 0.45)}.craft-acc-head{display:flex;align-items:baseline;gap:14px;padding:12px 4px;transition:padding 0.4s cubic-bezier(0.16, 1, 0.3, 1)}.craft-acc-step .n{font-family:'IBM Plex Mono','Barlow Condensed',monospace;font-size:12px;font-weight:500;letter-spacing:0.14em;color:var(--brand, #7fe9ff);min-width:1.9em;opacity:0.85;transition:font-size 0.4s cubic-bezier(0.16, 1, 0.3, 1),opacity 0.35s ease,color 0.35s ease}.craft-acc-title{font-size:15px;font-weight:550;letter-spacing:0.01em;line-height:1.35;color:rgba(235, 240, 250, 0.92);text-shadow:0 1px 2px rgba(0, 0, 0, 0.55),0 2px 14px rgba(0, 0, 0, 0.4);transition:font-size 0.4s cubic-bezier(0.16, 1, 0.3, 1),font-weight 0.35s ease,color 0.35s ease,letter-spacing 0.35s ease}/* Collapsed body via grid 0fr/1fr */.craft-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.45s cubic-bezier(0.16, 1, 0.3, 1)}.craft-acc-panel-inner{overflow:hidden;min-height:0;opacity:0;transform:translateY(-6px);transition:opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),transform 0.45s cubic-bezier(0.16, 1, 0.3, 1)}.craft-acc-detail{margin:0 0 12px;padding:0 4px 0 calc(1.9em + 14px);font-size:14px;font-weight:400;line-height:1.65;color:rgba(210, 220, 235, 0.78);text-shadow:0 1px 2px rgba(0, 0, 0, 0.55),0 2px 14px rgba(0, 0, 0, 0.4);max-width:48ch}.craft-acc-media{position:relative;margin:0 4px 14px calc(1.9em + 14px);width:min(360px, 100%);aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:rgba(8, 12, 20, 0.35);border:1px solid rgba(255, 255, 255, 0.1);box-shadow:0 12px 32px rgba(0, 0, 0, 0.28)}.craft-acc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1)}.craft-acc-img.is-show{opacity:1}/* Open / active */.craft-acc-step.is-open,.craft-acc-step.is-active{border-bottom-color:rgba(127, 233, 255, 0.22)}.craft-acc-step.is-open .craft-acc-head,.craft-acc-step.is-active .craft-acc-head{padding-top:14px;padding-bottom:8px}.craft-acc-step.is-open .n,.craft-acc-step.is-active .n{font-size:13px;opacity:1;color:#9af0ff}.craft-acc-step.is-open .craft-acc-title,.craft-acc-step.is-active .craft-acc-title{font-size:18px;font-weight:650;letter-spacing:-0.01em;color:#fff;text-shadow:0 1px 2px rgba(0, 0, 0, 0.55),0 2px 14px rgba(0, 0, 0, 0.4)}.craft-acc-step.is-open .craft-acc-panel,.craft-acc-step.is-active .craft-acc-panel{grid-template-rows:1fr}.craft-acc-step.is-open .craft-acc-panel-inner,.craft-acc-step.is-active .craft-acc-panel-inner{opacity:1;transform:translateY(0);transition-delay:0.06s}/* Sibling dim / yield space */.craft-brief-steps.has-open .craft-acc-step.is-dimmed{opacity:0.42;transform:translateY(2px) scale(0.985)}.craft-brief-steps.has-open .craft-acc-step.is-dimmed .craft-acc-head{padding-top:8px;padding-bottom:8px}.craft-brief-steps.has-open .craft-acc-step.is-dimmed .craft-acc-title{font-size:13.5px;color:rgba(220, 228, 240, 0.7)}.craft-brief-steps.has-open .craft-acc-step.is-open{opacity:1;transform:none}/* Hide retired overlay / expand button if any leftover markup */#craftExpandBtn,#craftOverlay,.craft-overlay{display:none !important;visibility:hidden !important;pointer-events:none !important}#craft.is-collapsed{min-height:auto}.craft-collapsed{min-height:min(88vh, 900px)}/* Mobile / touch */@media (max-width: 720px){.craft-collapsed-head .craft-title{font-size:clamp(1.45rem, 6.5vw, 1.95rem);max-width:100%}.craft-collapsed-head .craft-lead{font-size:14px}.craft-acc-title{font-size:16px}.craft-acc-step.is-open .craft-acc-title,.craft-acc-step.is-active .craft-acc-title{font-size:17px}.craft-acc-detail{font-size:14px;padding-left:0}.craft-acc-media{margin-left:0;width:100%;max-width:none}.craft-acc-head{padding:14px 2px}.craft-brief-steps.has-open .craft-acc-step.is-dimmed{opacity:0.5;transform:none}}@media (prefers-reduced-motion: reduce){.craft-acc-step,.craft-acc-head,.craft-acc-title,.craft-acc-step .n,.craft-acc-panel,.craft-acc-panel-inner,.craft-acc-img{transition:none !important}}/* v11.6.1 — no craft step images */.craft-acc-media,.craft-acc-img{display:none !important}/* about-liquid-metal.css · v11.8.7
   Building photo in about-media glass; 2×2 factory grid after numbers.
   Liquid-metal shader removed. *//* kill cinematic vignette that sits above media */.about-media::after{display:none !important;content:none !important}#about{position:relative;isolation:isolate;scroll-margin-top:80px;z-index:1}#about .about-grid{display:grid;grid-template-columns:minmax(0, 1.45fr) minmax(0, 0.85fr);gap:clamp(36px, 5vw, 64px);align-items:stretch;width:100%;margin-top:0}#about .about-media{position:relative;width:100%;min-height:min(78vh, 680px) !important;border-radius:var(--g-rad, var(--page-radius, 16px));box-sizing:border-box;overflow:hidden;isolation:isolate;background:rgba(10, 14, 22, 0.20) !important;-webkit-backdrop-filter:blur(28px) saturate(170%) !important;backdrop-filter:blur(28px) saturate(170%) !important;border:1px solid var(--g-border, rgba(255, 255, 255, 0.16));box-shadow:var(--g-shadow, 0 18px 48px rgba(0, 0, 0, 0.20)),inset 0 1px 0 rgba(255, 255, 255, 0.09),inset 0 -1px 0 rgba(127, 233, 255, 0.04)}#about .about-text{display:flex;flex-direction:column;justify-content:center;min-width:0}#about .about-text .section-eyebrow{margin-bottom:12px}#about .about-text .section-title{margin:0 0 20px}#about .about-numbers{margin-top:clamp(48px, 6vw, 72px)}/* Building image fills the glass */.about-building{appearance:none;position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;cursor:zoom-in;z-index:1}.about-building-img,.about-media .about-building-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.about-media .badge{position:absolute;z-index:5;left:18px;bottom:18px;pointer-events:none}/* 2×2 factory interiors */.about-factory-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));grid-template-rows:repeat(2, minmax(0, 1fr));gap:clamp(12px, 1.6vw, 18px);margin-top:clamp(56px, 6vw, 80px)}.about-factory-card{appearance:none;position:relative;overflow:hidden;margin:0;padding:0;border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));border-radius:var(--g-rad-sm, 12px);aspect-ratio:4/3;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02)));-webkit-backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));box-shadow:var(--g-shadow, 0 18px 48px rgba(0, 0, 0, 0.35));cursor:zoom-in;text-align:left;color:var(--ink, #fff)}.about-factory-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 0.7s var(--ease, ease),filter 0.7s;filter:saturate(0.92)}.about-factory-card:hover img{transform:scale(1.04);filter:saturate(1)}.about-factory-caption{position:absolute;inset:auto 0 0;padding:34px 18px 16px;background:linear-gradient(transparent, rgba(7, 9, 13, 0.72));display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--ink, #fff);pointer-events:none}.about-factory-caption small{display:block;font-size:9px;line-height:2;letter-spacing:0.12em;color:var(--brand-soft, #7FB2FF)}#about .ev-block{margin-top:clamp(56px, 6vw, 80px)}@media (max-width: 980px){#about .about-grid{grid-template-columns:1fr;gap:28px}#about .about-media{min-height:min(56svh, 480px) !important;order:-1}}@media (max-width: 720px){#about .about-media{min-height:min(52svh, 400px) !important}.about-factory-grid{gap:10px}.about-factory-caption{padding:28px 14px 12px;font-size:13px}}/* mobile-tune.css — v11.2 phone experience ≈ desktop quality */html,body{max-width:100%;overflow-x:hidden}img,video,canvas{max-width:100%}.site-nav .nav-toggle,.site-nav .lang-toggle,.site-nav .nav-trigger,.fab,.btn,#craftExpandBtn,#craftOverlayClose{min-height:44px;min-width:44px}.craft-overlay-step{min-height:48px;touch-action:manipulation;-webkit-tap-highlight-color:rgba(127, 233, 255, 0.14);cursor:pointer}.nav-list a,.nav-menu a{min-height:44px;display:inline-flex;align-items:center}#product-showcase,#intro-final{display:none !important;pointer-events:none !important;height:0 !important;overflow:hidden !important}/* —— Phone layout —— */@media (max-width: 720px){/* section padding mobile */section.section-dark,#about,#products,#craft,#contact{padding-top:clamp(48px, 12vw, 72px) !important;padding-bottom:clamp(48px, 12vw, 72px) !important}.container{width:100%;max-width:100%;padding-left:max(18px, env(safe-area-inset-left));padding-right:max(18px, env(safe-area-inset-right));box-sizing:border-box}/* Hero */.hero{min-height:100svh;padding:calc(88px + env(safe-area-inset-top)) 18px 48px !important;display:flex;flex-direction:column;justify-content:flex-end}.hero-title{font-size:clamp(2rem, 9vw, 2.75rem) !important;line-height:1.12 !important;max-width:100%}.hero-title .line{max-width:100%}.hero-sub{font-size:14px !important;line-height:1.55 !important;max-width:36ch}.hero-actions{flex-wrap:wrap;gap:10px}.hero-actions .btn{width:auto;flex:1 1 auto;justify-content:center}/* About: stack cleanly, media first */.about-grid{grid-template-columns:1fr !important;gap:22px !important}.about-media{order:-1;min-height:360px !important;width:100%;margin:0}.about-text .section-title{font-size:clamp(1.7rem, 7vw, 2.2rem)}.about-text p{font-size:14.5px !important;line-height:1.65}.about-stats{display:grid !important;grid-template-columns:repeat(3, minmax(0, 1fr)) !important;gap:8px !important}.about-stats .item{padding:10px 6px;text-align:center}.about-stats .item .v{font-size:18px !important}.about-stats .item .l{font-size:10px !important}/* Craft collapsed */.craft-collapsed{width:calc(100% - 20px) !important;margin:12px auto 24px !important;min-height:min(78svh, 640px) !important;border-radius:var(--g-rad, 16px) !important}.craft-collapsed-ui{padding:28px 16px 36px !important;gap:16px !important;width:min(100%, 100%) !important}.craft-collapsed-head .craft-title{font-size:clamp(1.45rem, 6.5vw, 1.9rem) !important;max-width:100%}.craft-brief-steps{grid-template-columns:1fr !important;gap:8px !important}.craft-brief-steps li{font-size:13px}#craftExpandBtn{width:100%;max-width:320px;margin-inline:auto;display:flex !important;justify-content:center;align-items:center}/* Craft overlay — vertical phone layout: image then steps */.craft-overlay{border-radius:var(--g-rad, 16px) !important}.craft-overlay-grid{display:flex !important;flex-direction:column !important;gap:12px !important;padding:48px 14px 16px !important;height:100%;min-height:0;overflow:hidden}.craft-overlay-stage{order:-1;width:100% !important;max-width:none !important;aspect-ratio:16/10 !important;max-height:38svh;justify-self:stretch;flex:0 0 auto}.craft-overlay-copy{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:10px}.craft-overlay-head .craft-title{font-size:clamp(1.15rem, 5vw, 1.45rem) !important;max-width:100% !important}.craft-overlay-lead,.craft-overlay-hint{display:none/* save space on phone; steps are self-explanatory */}.craft-overlay-steps{flex:1 1 auto;min-height:0;overflow:auto !important;-webkit-overflow-scrolling:touch;padding-right:2px;max-height:none !important}.craft-overlay-step{grid-template-columns:36px 1fr !important;gap:10px !important;padding:10px 6px !important}.craft-overlay-step .idx{font-size:16px !important}.craft-overlay-step .ct h3{font-size:13.5px !important}.craft-overlay-detail > p{font-size:12.5px !important;line-height:1.5 !important}.craft-overlay-close{top:10px !important;right:10px !important}.craft-overlay-caption{font-size:11px;padding:16px 12px 10px}/* Products card stacks */.yt-products-block,.yt-products-row{padding-left:0;padding-right:0}.yt-card-stack{--yt-card-w:min(300px, 78vw) !important;--yt-card-h:min(200px, 52vw) !important;--yt-spread:28deg !important;--yt-depth:72px !important;margin-inline:auto}.yt-card-stack-stage{height:calc(var(--yt-card-h) + 48px) !important}.yt-stack-card .yt-stack-meta h3{font-size:15px}.section-title{font-size:clamp(1.55rem, 7vw, 2.1rem) !important}.section-lead{font-size:14px !important}/* Contact */.contact-grid{grid-template-columns:1fr !important;gap:20px !important}.contact-form .field input,.contact-form .field textarea{font-size:16px !important/* prevent iOS zoom */}/* Footer */.footer-inner{grid-template-columns:1fr !important;gap:24px !important}/* Hide desktop-only chrome that fights layout */.rail,#prem-capsule{display:none !important}.page-hero{padding-top:max(96px, calc(76px + env(safe-area-inset-top)));padding-bottom:28px}.page-hero h1{font-size:clamp(1.6rem, 7.5vw, 2.3rem);word-break:break-word}.mail-card{max-width:calc(100vw - 24px)}}@media (max-width: 420px){.about-media{min-height:320px !important}.craft-overlay-stage{max-height:34svh}.about-stats{grid-template-columns:1fr 1fr 1fr !important}}/* Touch devices: always treat craft steps as tappable */@media (hover: none){.craft-overlay-step:hover:not(.active):not(.is-open){background:transparent}.craft-overlay-step.active,.craft-overlay-step.is-open{background:rgba(127, 233, 255, 0.1)}}@media (max-width: 720px){.prem-chips,#products .prem-chips,.prem-eng-grid,.prem-float{display:none !important}/* avoid horizontal bleed from 3D card fan */#products{overflow-x:clip}.yt-card-stack-stage{overflow:visible}}/* v11.2 qa fixes — dots, footer taps, craft detail spacing */@media (max-width: 720px){/* dots hit-area handled in card-stack.css */.site-footer a{min-height:44px;display:inline-flex;align-items:center;padding:10px 0}.site-footer li{margin:0}.craft-overlay-steps{gap:6px !important}.craft-overlay-step{padding:12px 8px !important;align-items:start}.craft-overlay-step{flex:0 0 auto !important}.craft-overlay-detail > p{font-size:12.5px !important;line-height:1.55 !important;padding-bottom:6px !important}/* shorten chrome so image stays in first paint */.craft-overlay-head .craft-title{font-size:1.05rem !important;line-height:1.3 !important;max-width:100% !important}.craft-collapsed{min-height:min(92svh, 760px) !important}}/* v11.6: expand/overlay retired — accordion lives in craft-accordion.css */#craftExpandBtn,#craftOverlay,.craft-overlay{display:none !important}@media (max-width: 720px){.craft-brief-steps{display:flex !important;flex-direction:column !important;grid-template-columns:none !important}}/* layout-polish.css — v11.7.1 quality cards + shared content edge */:root{--page-radius:16px;--card-pad-y:28px;--card-pad-x:26px}/* Shared horizontal content edge: section already has var(--pad);
   containers share one max-width so left/right edges match. */.container{max-width:var(--container, 1240px);width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box}/* Craft frame aligns to the same content column as .container */#craft.craft-section{/* keep section pad from cinematic; frame fills content column */}.craft-collapsed{width:100% !important;max-width:var(--container, 1240px) !important;margin-left:auto !important;margin-right:auto !important;box-sizing:border-box;border-radius:var(--page-radius) !important}.craft-collapsed-ui{width:100% !important;max-width:none !important;margin:0 !important;padding:48px clamp(22px, 3vw, 40px) 56px !important;box-sizing:border-box}/* Products / contact / about already in .container — reinforce full width */#about > .container,#products > .container,#contact > .container,.site-footer .container{max-width:var(--container, 1240px)}/* ---------- Quality Assurance: kill nested glass wash on #quality ---------- */#quality.about-quality,.about-quality#quality,body.hero-active #quality,body.home-active #quality,body.page-sub #quality{background:transparent !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border:none !important;box-shadow:none !important;border-radius:0 !important;padding:0 !important}.about-quality{margin-top:64px}.about-quality .section-head{margin-bottom:36px}/* Quality cards: quieter surface, consistent radius, real breathing room */.about-quality .pcard,#quality .pcard{border-radius:var(--page-radius) !important;padding:var(--card-pad-y) var(--card-pad-x) !important;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02))) !important;border:1px solid rgba(255, 255, 255, 0.10) !important;box-shadow:0 10px 28px rgba(0, 0, 0, 0.22) !important;-webkit-backdrop-filter:blur(10px) saturate(120%) !important;backdrop-filter:blur(10px) saturate(120%) !important;box-sizing:border-box}.about-quality .pcard:hover,#quality .pcard:hover{background:linear-gradient(165deg, rgba(255,255,255,.13), rgba(255,255,255,.04)) !important;border-color:rgba(127, 178, 255, 0.28) !important;box-shadow:0 14px 36px rgba(0, 0, 0, 0.28) !important;transform:translateY(-3px)}.about-quality .pcard .n,#quality .pcard .n{margin:0 0 14px !important;letter-spacing:0.16em;font-size:12px;line-height:1.3}.about-quality .pcard h4,#quality .pcard h4{margin:0 0 12px !important;font-size:17px !important;line-height:1.35 !important;padding:0}.about-quality .pcard p,#quality .pcard p{margin:0 !important;font-size:13.5px !important;line-height:1.75 !important;padding:0}/* Stat cells in About: same radius + padding language */#about .stat-row .cell{border-radius:var(--page-radius) !important;padding:24px 22px !important;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02))) !important;border:1px solid rgba(255, 255, 255, 0.10) !important;box-shadow:0 10px 28px rgba(0, 0, 0, 0.2) !important;-webkit-backdrop-filter:blur(10px) saturate(120%) !important;backdrop-filter:blur(10px) saturate(120%) !important;box-sizing:border-box}/* Product cards — same glass language as Quality pcards */.yt-pg-card{border-radius:var(--page-radius) !important;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.10), rgba(255,255,255,.03))) !important;border:1px solid rgba(255, 255, 255, 0.14) !important;box-shadow:0 10px 28px rgba(0, 0, 0, 0.22) !important;-webkit-backdrop-filter:blur(20px) saturate(160%) !important;backdrop-filter:blur(20px) saturate(160%) !important;box-sizing:border-box}.yt-pg-card:hover{background:linear-gradient(165deg, rgba(255,255,255,.13), rgba(255,255,255,.04)) !important;border-color:rgba(127, 178, 255, 0.28) !important;box-shadow:0 14px 36px rgba(0, 0, 0, 0.28) !important}.yt-pg-media{background:rgba(255, 255, 255, 0.03) !important;border-bottom:0}.yt-pg-tab:not(.is-active){background:rgba(12, 16, 24, 0.45) !important;border-color:rgba(255, 255, 255, 0.14) !important;color:rgba(234, 244, 255, 0.78) !important;-webkit-backdrop-filter:blur(10px) saturate(120%) !important;backdrop-filter:blur(10px) saturate(120%) !important;box-shadow:0 8px 22px rgba(0, 0, 0, 0.18),inset 0 1px 0 rgba(255, 255, 255, 0.10)}.yt-pg-tab.is-active{color:#081018 !important;background:var(--brand, #3b82f6) !important;border-color:var(--brand, #3b82f6) !important;box-shadow:0 0 24px rgba(59, 130, 246, 0.35);-webkit-backdrop-filter:none !important;backdrop-filter:none !important}.yt-pg-body{padding:18px 20px 20px !important}/* Contact info items — same edge feel */.contact-info-item,.contact-form{border-radius:var(--page-radius);box-sizing:border-box}@media (max-width: 640px){.about-quality .pcard,#quality .pcard{padding:22px 20px !important}.craft-collapsed-ui{padding:36px 18px 44px !important}}/* Netlify honeypot — keep out of layout */.yt-hp{position:absolute !important;left:-9999px !important;height:0 !important;overflow:hidden !important}/* Evidence modules: factory, certifications, QC overlay — site liquid glass · v11.8.7 */.ev-block{margin-top:clamp(64px, 7vw, 80px);color:var(--ink, #f5f6fa)}.container > .ev-block:first-child{margin-top:8px}.ev-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:28px}.ev-kicker{font-family:ui-monospace,'SF Mono',Menlo,'IBM Plex Mono',monospace;font-size:11px;line-height:1.6;letter-spacing:0.14em;text-transform:uppercase;color:var(--brand-soft, #7FB2FF);margin:0 0 12px}.ev-heading h3{font-size:clamp(26px, 3vw, 40px);line-height:1.2;letter-spacing:-0.03em;margin:0;font-weight:600;color:var(--ink, #f5f6fa)}.ev-heading > p{max-width:360px;font-size:14px;line-height:1.8;color:var(--ink-soft, #cdd2dc);margin:0}/* Factory gallery: equal cards, 3-col (3+2) — no mega photo-5 span */.ev-gallery{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:14px}.ev-photo{appearance:none;position:relative;overflow:hidden;border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));border-radius:var(--g-rad-sm, 12px);padding:0;aspect-ratio:4/3;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02)));-webkit-backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));box-shadow:var(--g-shadow, 0 18px 48px rgba(0,0,0,.35));cursor:zoom-in;text-align:left;color:var(--ink, #fff)}.ev-photo-5{grid-column:auto;grid-row:auto;aspect-ratio:4/3}.ev-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.7s var(--ease, ease),filter 0.7s;filter:saturate(0.92)}.ev-photo:hover img{transform:scale(1.04);filter:saturate(1)}.ev-photo-caption{position:absolute;inset:auto 0 0;padding:34px 18px 16px;background:linear-gradient(transparent, rgba(7, 9, 13, 0.72));display:flex;align-items:end;justify-content:space-between;gap:10px;font-size:14px}.ev-photo-caption small{display:block;font-size:9px;line-height:2;letter-spacing:0.12em;color:var(--brand-soft, #7FB2FF)}.ev-photo-5 .ev-photo-caption{padding:34px 18px 16px;font-size:14px}.ev-plus{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(255, 255, 255, 0.45);border-radius:50%;flex-shrink:0;font-size:17px;color:white}/* Cert grid: three equal glass cards */.ev-cert-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:18px}.ev-cert{background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02)));border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));border-radius:var(--g-rad, 16px);overflow:hidden;display:flex;flex-direction:column;-webkit-backdrop-filter:var(--g-blur, blur(18px) saturate(150%));backdrop-filter:var(--g-blur, blur(18px) saturate(150%));box-shadow:var(--g-shadow, 0 18px 48px rgba(0,0,0,.35))}.ev-cert:hover{background:var(--g1-hover, linear-gradient(165deg, rgba(255,255,255,.13), rgba(255,255,255,.04)));border-color:var(--g-border-hi, rgba(255,255,255,.30));box-shadow:var(--g-shadow-hover, 0 26px 60px rgba(0,0,0,.42))}.ev-cert-preview{position:relative;display:block;padding:26px;width:100%;height:245px;border:0;border-bottom:1px solid var(--g-border, rgba(255, 255, 255, 0.14));background:rgba(216, 221, 214, 0.92);cursor:zoom-in}.ev-cert-preview img{height:100%;width:100%;object-fit:contain;filter:drop-shadow(0 6px 9px rgba(0, 0, 0, 0.2));transition:transform 0.4s}.ev-cert-preview:hover img{transform:translateY(-4px)}.ev-cert-preview .ev-plus{position:absolute;bottom:15px;right:15px;color:#17242c;border-color:rgba(23, 36, 44, 0.4)}.ev-cert-copy{padding:26px;display:flex;flex-direction:column;flex:1;align-items:start}.ev-cert-copy h4{font-size:24px;letter-spacing:-0.03em;margin:0 0 8px;color:var(--ink, #eff8ff)}.ev-cert-copy p:not(.ev-kicker){font-size:13px;line-height:1.8;color:var(--ink-soft, #cdd2dc);margin:0 0 14px}.ev-cert-copy code{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:11px;line-height:1.5;color:var(--brand-soft, #7FB2FF);margin:0 0 18px}.ev-cert-copy small{font-size:11px;line-height:1.7;color:var(--ink-mute, #8a90a0);display:block;margin-top:auto}.ev-link{display:inline-flex;color:var(--brand-soft, #7FB2FF) !important;border-bottom:1px solid rgba(59, 130, 246, 0.35);padding-bottom:5px;margin-top:22px;font-size:13px;text-decoration:none}.ev-ul-mark{height:245px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:radial-gradient(ellipse at center, rgba(59, 130, 246, 0.18), transparent 70%);border-bottom:1px solid var(--g-border, rgba(255, 255, 255, 0.14))}.ev-ul-mark > span{font:500 72px/1 'Syne','Inter',sans-serif;letter-spacing:-0.08em;color:var(--ink, #f5f6fa)}.ev-ul-mark > small{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.16em;color:var(--brand-soft, #7FB2FF)}/* Glass CTA buttons */.ev-button{font:inherit;font-size:13px;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 20px;min-height:46px;color:var(--ink, #f5f6fa);background:rgba(59, 130, 246, 0.16);border:1px solid rgba(59, 130, 246, 0.45);border-radius:var(--g-rad-sm, 12px);cursor:pointer;text-decoration:none;transition:background 0.25s,border-color 0.25s,transform 0.25s;-webkit-backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.12)}.ev-button:hover{background:rgba(59, 130, 246, 0.32);border-color:var(--brand, #3B82F6);transform:translateY(-1px)}.ev-qc-open{align-self:flex-start;margin-top:12px;min-width:290px;font-weight:600;background:rgba(59, 130, 246, 0.22);color:var(--ink, #f5f6fa);border:1px solid rgba(59, 130, 246, 0.55);box-shadow:0 8px 24px rgba(0, 0, 0, 0.22),inset 0 1px 0 rgba(255, 255, 255, 0.14)}.ev-qc-open:hover{background:rgba(59, 130, 246, 0.38);border-color:var(--brand-soft, #7FB2FF);color:#fff}.ev-qc-note{font-size:11px !important;line-height:1.8 !important;color:var(--ink-mute, #8a90a0) !important;margin:-6px 0 0 !important}/* Photo/cert lightbox dialog (full-page OK) */.ev-dialog{color:var(--ink, #f5f6fa);background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02)));border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));border-radius:var(--g-rad, 16px);padding:26px;max-width:calc(100vw - 32px);max-height:90dvh;margin:auto;box-shadow:var(--g-shadow, 0 24px 64px rgba(0, 0, 0, 0.48));overscroll-behavior:contain;color-scheme:dark;-webkit-backdrop-filter:var(--g-blur, blur(18px) saturate(150%));backdrop-filter:var(--g-blur, blur(18px) saturate(150%));font-family:'Inter','Noto Sans SC',system-ui,sans-serif}.ev-dialog::backdrop{background:rgba(7, 9, 13, 0.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.ev-dialog[open]{animation:ev-enter 0.35s var(--ease, ease) both}.ev-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;flex-shrink:0}.ev-dialog-top .ev-kicker{margin:0}.ev-close{flex-shrink:0;border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));background:rgba(255, 255, 255, 0.06);width:42px;height:42px;border-radius:50%;color:white;font:26px/1 sans-serif;cursor:pointer}.ev-close:hover{background:rgba(59, 130, 246, 0.22);border-color:rgba(59, 130, 246, 0.5)}/* ── QC in-section overlay (NOT full-viewport dialog) ───────── */.craft-qc-panel{position:absolute;inset:0;z-index:12;box-sizing:border-box;display:flex;flex-direction:column;gap:0;padding:clamp(18px, 2.5vw, 28px);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:inherit;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02)));-webkit-backdrop-filter:var(--g-blur, blur(18px) saturate(150%));backdrop-filter:var(--g-blur, blur(18px) saturate(150%));border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));box-shadow:var(--g-shadow, 0 18px 48px rgba(0,0,0,.35));color:var(--ink, #f5f6fa);color-scheme:dark;font-family:'Inter','Noto Sans SC',system-ui,sans-serif;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px) scale(0.985);transition:opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1),transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),visibility 0s linear 0.32s}.craft-qc-panel:not([hidden]),.craft-qc-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1),transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),visibility 0s linear 0s}.craft-qc-panel[hidden]{display:none !important}.craft-qc-panel.is-open:not([hidden]){display:flex}/* When open: dim brief UI under glass overlay */#craft.is-qc-open .craft-collapsed-ui{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.28s ease,visibility 0s linear 0.28s}#craft:not(.is-qc-open) .craft-collapsed-ui{opacity:1;visibility:visible;transition:opacity 0.4s ease 0.05s,visibility 0s linear 0s}#craft.is-qc-open .craft-collapsed{pointer-events:none}#craft.is-qc-open .craft-qc-panel{pointer-events:auto}/* Light local scrim behind panel content (section only) */#craft.is-qc-open .craft-aurora{filter:brightness(0.72) saturate(0.9);transition:filter 0.35s ease}#craft:not(.is-qc-open) .craft-aurora{filter:none;transition:filter 0.4s ease}.ev-qc-intro{display:flex;gap:28px;justify-content:space-between;align-items:center;margin-bottom:22px;flex-shrink:0}.ev-qc-intro h2{font-size:clamp(22px, 2.6vw, 32px);font-weight:600;line-height:1.25;letter-spacing:-0.03em;margin:0 0 10px;color:var(--ink, #f5f6fa)}.ev-qc-intro p{color:var(--ink-soft, #cdd2dc);font-size:13px;line-height:1.8;margin:0}.ev-doc-id{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:12px;line-height:2;color:var(--brand-soft, #7FB2FF);white-space:nowrap}.ev-doc-id span{display:block;font-size:10px;color:var(--ink-mute, #8a90a0)}.ev-qc-layout{display:grid;grid-template-columns:265px minmax(0, 1fr);border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));border-radius:var(--g-rad-sm, 12px);overflow:hidden;flex:1 1 auto;min-height:280px;background:rgba(255, 255, 255, 0.03)}.ev-qc-nav{display:flex;flex-direction:column;background:rgba(255, 255, 255, 0.03);padding:16px 10px;overflow:auto}.ev-qc-step{position:relative;display:flex;align-items:center;gap:12px;text-align:left;padding:14px 10px;border:0;border-left:2px solid rgba(59, 130, 246, 0.25);background:none;color:var(--ink-mute, #8a90a0);font-family:inherit;font-size:12px;line-height:1.45;cursor:pointer;min-height:47px}.ev-qc-step > span:first-child{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--ink-mute, #8a90a0)}.ev-qc-step[aria-current="step"]{color:var(--ink, #fff);background:rgba(59, 130, 246, 0.14);border-left-color:var(--brand, #3B82F6)}.ev-qc-step[aria-current="step"] > span:first-child{color:var(--brand-soft, #7FB2FF)}.ev-qc-step:hover{background:rgba(255, 255, 255, 0.05);color:var(--ink, #fff)}.ev-qc-detail{min-width:0;background:rgba(255, 255, 255, 0.02);overflow:auto}.ev-qc-visual{height:180px;position:relative;overflow:hidden}.ev-qc-visual img{width:100%;height:100%;object-fit:cover;filter:brightness(0.72) saturate(0.9)}.ev-qc-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent, rgba(10, 14, 22, 0.85))}.ev-qc-visual > span{position:absolute;z-index:1;bottom:15px;left:26px;font-family:ui-monospace,Menlo,monospace;font-size:10px;letter-spacing:0.12em;color:var(--brand-soft, #7FB2FF)}.ev-qc-body{padding:14px 26px 26px;animation:ev-stage 0.4s var(--ease, ease) both}.ev-qc-body h3{font-size:22px;line-height:1.3;margin:0 0 12px;letter-spacing:-0.02em;font-weight:600}.ev-qc-body > p{font-size:14px;line-height:1.85;color:var(--ink-soft, #cdd2dc);min-height:52px;margin:0 0 20px}.ev-qc-facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:16px}.ev-qc-facts > div{border-top:1px solid var(--g-border, rgba(255, 255, 255, 0.14));padding-top:12px}.ev-qc-facts > div:last-child{grid-column:1/-1}.ev-qc-facts dt{font-size:10px;letter-spacing:0.1em;color:var(--ink-mute, #8a90a0);margin-bottom:7px;text-transform:uppercase}.ev-qc-facts dd{font-size:13px;line-height:1.7;margin:0;color:var(--ink, #f5f6fa)}.ev-qc-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:24px;font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--brand-soft, #7FB2FF)}.ev-qc-pagination button{padding:8px 14px;min-height:38px}.ev-qc-pagination button:disabled{opacity:0.3;cursor:default;transform:none}.ev-qc-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:18px;flex-shrink:0}.ev-qc-bottom p{font-size:11px;line-height:1.8;color:var(--ink-mute, #8a90a0);max-width:620px;margin:0}.ev-qc-bottom a{flex-shrink:0}.ev-source{margin-top:18px;border-top:1px solid var(--g-border, rgba(255, 255, 255, 0.14));padding-top:14px;font-size:12px;color:var(--ink-soft, #cdd2dc);flex-shrink:0}.ev-source summary{cursor:pointer;padding:5px}.ev-source p{font-size:11px;line-height:1.7;margin:14px 0}.ev-table-scroll{overflow:auto;max-height:280px}.ev-source table{border-collapse:collapse;min-width:1200px;width:100%;font-size:11px}.ev-source td,.ev-source th{padding:9px;border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));text-align:left;min-width:70px;vertical-align:top}.ev-source thead{position:sticky;top:0;background:rgba(59, 130, 246, 0.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ev-viewer{width:min(1100px, 94vw)}.ev-viewer > img{display:block;max-width:100%;width:100%;height:68dvh;object-fit:contain}.ev-viewer-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:20px;font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--ink-soft, #cdd2dc)}.ev-viewer-controls[hidden]{display:none}.ev-viewer-controls .ev-button{min-width:50px;justify-content:center}.ev-dialog button:focus-visible,.ev-block button:focus-visible,.ev-button:focus-visible,.ev-link:focus-visible,.craft-qc-panel button:focus-visible{outline:2px solid var(--brand-soft, #7FB2FF);outline-offset:4px}@keyframes ev-enter{from{opacity:0;transform:translateY(18px) scale(0.985)}to{opacity:1;transform:none}}@keyframes ev-stage{from{opacity:0.3;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width: 900px){.ev-cert-grid{grid-template-columns:1fr 1fr}.ev-ul{grid-column:1/-1;flex-direction:row}.ev-ul-mark{width:32%;height:auto;flex-shrink:0;border:0}.ev-heading{gap:20px}.ev-qc-intro{display:block}.ev-doc-id{margin-top:12px}.ev-doc-id span{display:inline;margin-left:14px}.ev-qc-layout{grid-template-columns:200px minmax(0, 1fr)}.ev-qc-bottom{align-items:start;flex-direction:column}.ev-gallery{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.ev-block{margin-top:48px}.ev-heading{display:block}.ev-heading > p{margin-top:15px;max-width:none}.ev-gallery{grid-template-columns:1fr 1fr;gap:10px}.ev-photo-5{grid-column:1/-1;aspect-ratio:16/10}.ev-photo{aspect-ratio:4/3}.ev-photo-caption{padding:28px 11px 12px;font-size:12px}.ev-photo-caption small{font-size:8px}.ev-plus{width:25px;height:25px}.ev-cert-grid{grid-template-columns:1fr}.ev-ul{grid-column:auto;flex-direction:column}.ev-ul-mark{width:100%;height:175px}.ev-cert-preview{height:260px}.ev-cert-copy{padding:22px}.ev-qc-open{min-width:0;width:100%}.ev-dialog{padding:16px;max-width:calc(100vw - 16px);max-height:94dvh;border-radius:12px}.ev-dialog-top{margin-bottom:18px}.ev-qc-intro h2{font-size:22px}.ev-qc-layout{display:block}.ev-qc-nav{flex-direction:row;overflow-x:auto;padding:10px;gap:5px;scrollbar-width:thin}.ev-qc-step{flex:0 0 150px;border-left:0;border-bottom:2px solid rgba(59, 130, 246, 0.25);padding:10px;min-height:62px;font-size:12px}.ev-qc-step[aria-current="step"]{border-bottom-color:var(--brand, #3B82F6)}.ev-qc-visual{height:140px}.ev-qc-body{padding:14px 18px 22px}.ev-qc-body h3{font-size:20px}.ev-qc-facts{grid-template-columns:1fr}.ev-qc-body > p{min-height:0}.ev-qc-bottom a{width:100%}.ev-qc-note{font-size:10px !important}.ev-viewer > img{height:65dvh}.craft-qc-panel{padding:14px}}@media (prefers-reduced-motion: reduce){.ev-dialog[open],.ev-qc-body,.craft-qc-panel{animation:none;transition:none}.ev-photo img,.ev-button,.ev-cert-preview img{transition:none}}/* —— v11.8.7: about factory 2×2 (site glass) + craft readability —— */.about-factory-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:clamp(12px, 1.6vw, 18px);margin-top:clamp(56px, 6vw, 80px);color:var(--ink, #f5f6fa)}.about-factory-card{appearance:none;position:relative;overflow:hidden;margin:0;padding:0;border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));border-radius:var(--g-rad-sm, 12px);aspect-ratio:4/3;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02)));-webkit-backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));backdrop-filter:var(--g-blur-sm, blur(12px) saturate(150%));box-shadow:var(--g-shadow, 0 18px 48px rgba(0,0,0,.35));cursor:zoom-in;text-align:left;color:inherit}.about-factory-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.7s var(--ease, ease),filter 0.7s;filter:saturate(0.92)}.about-factory-card:hover img{transform:scale(1.04);filter:saturate(1)}.about-factory-caption{position:absolute;inset:auto 0 0;padding:34px 18px 16px;background:linear-gradient(transparent, rgba(7, 9, 13, 0.72));display:flex;flex-direction:column;gap:2px;font-size:14px;pointer-events:none}.about-factory-caption small{font-size:9px;line-height:2;letter-spacing:0.12em;color:var(--brand-soft, #7FB2FF)}/* Soft dark text-shadow for craft / QC panel readability over aurora */.craft-qc-panel,.craft-qc-panel .ev-kicker,.craft-qc-panel .ev-qc-intro h2,.craft-qc-panel .ev-qc-intro p,.craft-qc-panel .ev-qc-step,.craft-qc-panel .ev-qc-body h3,.craft-qc-panel .ev-qc-body > p,.craft-qc-panel .ev-qc-facts dt,.craft-qc-panel .ev-qc-facts dd,.craft-qc-panel .ev-qc-bottom p,.craft-qc-panel .ev-doc-id{text-shadow:0 1px 2px rgba(0, 0, 0, 0.55),0 2px 12px rgba(0, 0, 0, 0.35)}/* Product-only layout: original text and surrounding sections remain intact. */#products .yt-pg{padding:28px;border:1px solid #ffffff18;border-radius:24px;background:linear-gradient(135deg,#152235b8,#080e19d9);box-shadow:inset 0 1px 0 #ffffff0d,0 30px 80px #0002}#products .yt-pg-tabs{gap:8px;padding:0 0 24px;margin:0 0 26px;border-bottom:1px solid #ffffff16}#products .yt-pg-tab{min-height:44px;padding:12px 19px;letter-spacing:.035em;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;background:#ffffff05;border-color:#ffffff1a}#products .yt-pg-tab.is-active{color:#f4f8ff!important;background:#3479e6!important;border-color:#6d9bea!important;box-shadow:0 5px 18px #245cc72b!important}#products .yt-pg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;overflow:visible;padding:0;scroll-snap-type:none}#products .yt-pg-card{position:relative;min-height:0;border:1px solid #c3d6ef30;border-radius:16px;background:#e9edf3;padding:0;box-shadow:0 8px 22px #0002;backdrop-filter:none;-webkit-backdrop-filter:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}#products .yt-pg-card .yt-pg-media{width:100%;aspect-ratio:3/2;background:radial-gradient(ellipse at 50% 35%,#fff,#e2e8ef);border:0;display:flex;overflow:hidden}#products .yt-pg-card .yt-pg-media img{display:block;width:100%;height:100%;padding:14px;object-fit:contain;transition:transform .25s ease;filter:none}#products .yt-pg-card::after{content:'↗';position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#101e32d9;color:#e8f3ff;font:17px/1 sans-serif;pointer-events:none}#products .yt-pg-card.is-hidden{display:none}#products .yt-pg-tab:focus-visible,#products .yt-pg-card:focus-visible{outline:2px solid #9ec7ff;outline-offset:4px}@media(hover:hover){#products .yt-pg-card:hover{transform:translateY(-3px);border-color:#8bbcff;box-shadow:0 12px 30px #0003}#products .yt-pg-card:hover img{transform:scale(1.025)}}#productViewer{width:min(1120px,94vw);background:#0c1522;border-color:#769dca50}#productViewerImage{display:block;width:100%;height:68dvh;object-fit:contain;background:radial-gradient(ellipse at center,#fff,#e2e8ef);border-radius:10px}@media(max-width:1000px){#products .yt-pg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#products .yt-pg{padding:22px}}@media(max-width:600px){#products .yt-pg{padding:14px;border-radius:18px}#products .yt-pg-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:16px;margin-bottom:18px;scrollbar-width:thin}#products .yt-pg-tab{flex-shrink:0;padding:11px 14px;font-size:11px}#products .yt-pg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#products .yt-pg-card{border-radius:10px}#products .yt-pg-card .yt-pg-media{aspect-ratio:1}#products .yt-pg-card .yt-pg-media img{padding:5px}#products .yt-pg-card::after{width:23px;height:23px;bottom:7px;right:7px;font-size:14px}#productViewerImage{height:62dvh}}@media(prefers-reduced-motion:reduce){#products .yt-pg-card,#products .yt-pg-card img{transition:none!important}}/* Override legacy global glass rules only inside the product section. */#products .yt-pg-card{border-radius:16px!important;background:#e9edf3!important;border:1px solid #c3d6ef30!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}#products .yt-pg-card .yt-pg-media{background:radial-gradient(ellipse at 50% 35%,#fff,#e2e8ef) !important;border:0!important}@media(max-width:600px){#products .yt-pg-card{border-radius:10px!important}}#products .yt-pg-tabs{scrollbar-color:#436187 transparent}#products .yt-pg-tabs::-webkit-scrollbar{height:3px}#products .yt-pg-tabs::-webkit-scrollbar-track{background:transparent}#products .yt-pg-tabs::-webkit-scrollbar-thumb{background:#436187;border-radius:3px}/* All is an optional, compact preview; expand only on request. */#products .yt-pg.is-all:not(.is-all-expanded) .yt-pg-card:nth-child(n+7){display:none}#products .yt-pg-expand{display:flex;align-items:center;justify-content:center;margin:24px auto 0;padding:13px 28px;min-height:46px;border:1px solid #8abaff50;border-radius:999px;background:#1a3153;color:#dbeaff;font:500 13px/1.5 var(--font-ui,sans-serif);cursor:pointer;transition:background .2s ease}#products .yt-pg-expand:hover{background:#254573}#products .yt-pg-expand:focus-visible{outline:2px solid #9ec7ff;outline-offset:4px}#products .yt-pg-expand[hidden]{display:none}#products .yt-pg-tab[data-filter="catalogue"]::after{content:'⌄';margin-left:8px}@media(max-width:1000px){#products .yt-pg.is-all:not(.is-all-expanded) .yt-pg-card:nth-child(n+5){display:none}}/* Product information shares the site's navy, glass and blue visual language. */#products .yt-pg-card{background:linear-gradient(145deg,#152237,#0c1523) !important;text-align:left;color:#eef4ff;font-family:var(--font-ui,Arial,sans-serif);cursor:pointer}#products .yt-pg-card::after{content:none}#products .yt-product-summary{display:flex;flex:1;flex-direction:column;width:100%;gap:11px;padding:19px 20px 16px;box-sizing:border-box}#products .yt-product-title{display:block;font-size:17px;line-height:1.4;font-weight:600;letter-spacing:-.015em;min-height:2.8em}#products .yt-product-wire{display:block;color:#a9bbd4;font-size:12px;line-height:1.7;min-height:3.4em;overflow-wrap:anywhere}#products .yt-product-action{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:13px;border-top:1px solid #ffffff12;color:#91baff;font-size:12px;font-weight:600}#products .yt-product-action>span:last-child{font-size:20px;font-weight:400}#productViewer{padding:22px;width:min(1120px,94vw);max-height:90dvh;overflow:auto;color:#edf4ff;box-sizing:border-box}#productViewer .ev-dialog-top{margin-bottom:18px;gap:20px}#productViewerCaption{font-size:13px;line-height:1.6;color:#adbed5}#productViewer .yt-product-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:30px;align-items:start}#productViewerImage{height:auto;aspect-ratio:1;max-height:66dvh;object-fit:contain;position:sticky;top:0}#productViewer .yt-product-detail{padding:6px 6px 0;min-width:0}#productViewer .yt-detail-kicker{margin:0 0 12px;font-size:10px;letter-spacing:.16em;color:#8cb6fc}#productViewer .yt-detail-title{font-size:clamp(22px,2.2vw,30px);line-height:1.22;letter-spacing:-.025em;margin:0 0 24px;color:#f4f7ff}#productViewer .yt-detail-section{padding:16px 0;border-top:1px solid #ffffff15}#productViewer .yt-detail-section h3{font-size:11px;letter-spacing:.07em;color:#8eb7f4;margin:0 0 9px;text-transform:uppercase}#productViewer .yt-detail-section p{font-size:14px;line-height:1.75;color:#c4d0e1;margin:0}#productViewer .yt-wire-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;padding:9px 0;font-size:13px;line-height:1.6}#productViewer .yt-wire-row strong{font-weight:500;color:#e8f0ff}#productViewer .yt-wire-row span{color:#adbed5}#productViewer .yt-detail-enquire{display:block;margin-top:12px;padding:13px 18px;border:1px solid #669ef969;border-radius:10px;background:#24599b42;color:#b6d2ff;font-size:13px;text-decoration:none;line-height:1.5}#productViewer .yt-detail-enquire:hover{background:#285f9e77}#productViewer .yt-detail-enquire:focus-visible{outline:2px solid #9ec7ff;outline-offset:3px}#productViewer .ev-viewer-controls{margin-top:20px}@media(max-width:700px){#productViewer{padding:15px}#productViewer .yt-product-layout{grid-template-columns:1fr;gap:20px}#productViewerImage{height:auto;aspect-ratio:4/3;max-height:40dvh;position:static}#productViewer .yt-detail-title{font-size:24px;margin-bottom:20px}#productViewer .yt-product-detail{padding:0 2px}}@media(max-width:600px){#products .yt-product-summary{padding:12px 11px 10px;gap:8px}#products .yt-product-title{font-size:13px;line-height:1.45;min-height:4.35em}#products .yt-product-wire{font-size:10px;line-height:1.6;min-height:4.8em}#products .yt-product-action{font-size:10px;gap:3px;padding-top:9px}}/* ===== v11.9.3 liquid glass — match craft / evidence, not opaque navy ===== */#products .yt-pg{padding:28px;border:1px solid var(--g-border, rgba(255, 255, 255, 0.14));border-radius:var(--g-rad, 24px);background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.02))) !important;-webkit-backdrop-filter:var(--g-blur, blur(18px) saturate(150%)) !important;backdrop-filter:var(--g-blur, blur(18px) saturate(150%)) !important;box-shadow:0 24px 64px rgba(0, 0, 0, 0.28),none/* was inset hairline */}#products .yt-pg-tab{background:rgba(255, 255, 255, 0.06) !important;border-color:rgba(255, 255, 255, 0.14) !important;-webkit-backdrop-filter:blur(12px) saturate(150%) !important;backdrop-filter:blur(12px) saturate(150%) !important;box-shadow:none;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease,color .25s ease,transform .25s ease}#products .yt-pg-tab:hover{background:rgba(255, 255, 255, 0.10) !important;border-color:rgba(127, 233, 255, 0.35) !important}#products .yt-pg-tab.is-active{color:#f4f8ff !important;background:var(--brand, #3b82f6) !important;border-color:rgba(109, 155, 234, 0.85) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;box-shadow:0 5px 18px rgba(36, 92, 199, 0.28) !important}#products .yt-pg-card,#products .yt-pg-card.yt-pg-card--media{border-radius:var(--g-rad, 16px) !important;background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.10), rgba(255,255,255,.03))) !important;border:1px solid var(--g-border, rgba(255, 255, 255, 0.14)) !important;-webkit-backdrop-filter:blur(20px) saturate(160%) !important;backdrop-filter:blur(20px) saturate(160%) !important;box-shadow:0 14px 36px rgba(0, 0, 0, 0.22),none;/* was inset hairline */color:#eef4ff;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}@media (hover: hover){#products .yt-pg-card:hover,#products .yt-pg-card.yt-pg-card--media:hover{transform:translateY(-3px);border-color:rgba(139, 188, 255, 0.55) !important;background:linear-gradient(165deg, rgba(255,255,255,.14), rgba(255,255,255,.045)) !important;box-shadow:0 18px 44px rgba(0, 0, 0, 0.28),none}}#products .yt-pg-card .yt-pg-media{background:rgba(255, 255, 255, 0.04) !important;border:0 !important;border-bottom:0 !important}#products .yt-pg-card .yt-pg-media img{filter:none;padding:12px;object-fit:contain}#products .yt-pg-expand{border:1px solid rgba(255, 255, 255, 0.16) !important;background:rgba(255, 255, 255, 0.08) !important;-webkit-backdrop-filter:blur(16px) saturate(160%) !important;backdrop-filter:blur(16px) saturate(160%) !important;color:#e8f3ff !important;box-shadow:none}#products .yt-pg-expand:hover{background:rgba(59, 130, 246, 0.28) !important;border-color:rgba(109, 155, 234, 0.55) !important}/* Product detail dialog — same liquid glass as .ev-dialog / craft overlay */#productViewer.ev-dialog,dialog#productViewer{background:var(--g1, linear-gradient(165deg, rgba(255,255,255,.10), rgba(255,255,255,.03))) !important;border:1px solid var(--g-border, rgba(255, 255, 255, 0.16)) !important;border-radius:var(--g-rad, 16px) !important;-webkit-backdrop-filter:blur(28px) saturate(170%) !important;backdrop-filter:blur(28px) saturate(170%) !important;box-shadow:0 28px 72px rgba(0, 0, 0, 0.36),inset 0 0 0 1px rgba(127, 233, 255, 0.04) !important;color:#edf4ff}#productViewer::backdrop{background:rgba(7, 9, 13, 0.42) !important;-webkit-backdrop-filter:blur(10px) saturate(140%) !important;backdrop-filter:blur(10px) saturate(140%) !important}#productViewerImage{background:rgba(255, 255, 255, 0.06) !important;border:1px solid rgba(255, 255, 255, 0.10);border-radius:12px}#productViewer .yt-detail-enquire{border:1px solid rgba(255, 255, 255, 0.16) !important;background:rgba(59, 130, 246, 0.22) !important;-webkit-backdrop-filter:blur(12px) saturate(150%);backdrop-filter:blur(12px) saturate(150%);color:#dbeaff !important}#productViewer .yt-detail-enquire:hover{background:rgba(59, 130, 246, 0.34) !important}#productViewer .ev-close{background:rgba(255, 255, 255, 0.08) !important;border:1px solid rgba(255, 255, 255, 0.14) !important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#productViewer .ev-button{background:rgba(255, 255, 255, 0.08) !important;border:1px solid rgba(255, 255, 255, 0.14) !important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}/* v11.9.4 — kill occasional 1px hairlines on product glass cards */#products .yt-pg,#products .yt-pg-card,#products .yt-pg-card.yt-pg-card--media,#products .yt-pg-tab:not(.is-active){box-shadow:0 14px 36px rgba(0, 0, 0, 0.22) !important}#products .yt-pg-card .yt-pg-media{border:0 !important;border-bottom:0 !important;box-shadow:none !important;outline:none !important}#products .yt-pg-card,#products .yt-pg-card.yt-pg-card--media{border-color:rgba(255, 255, 255, 0.10) !important;outline:none !important;background-clip:padding-box !important;-webkit-background-clip:padding-box !important}#products .yt-product-action{border-top-color:rgba(255, 255, 255, 0.06) !important}#products .yt-pg-card img{outline:none !important;box-shadow:none !important;border:0 !important}/* v11.9.6 stable glass — no nested live blur on product UI */#products .yt-pg,#products .yt-pg-card,#products .yt-pg-card.yt-pg-card--media{-webkit-backdrop-filter:none !important;backdrop-filter:none !important;contain:none !important;transform:none !important}/* v11.9.6 — stable section glass from products through footer
   Strategy: every content section keeps a visible frosted panel.
   - Strong translucent fill = still looks like glass if blur drops
   - Live backdrop-filter as enhancement
   - No nested blur on cards (nested blur + scroll = flicker / disappear)
   - No contain:paint / parent translateZ that kills backdrop sampling
*//* Reveal must not leave a transform containing block */[data-reveal].in,#contact [data-reveal].in,#products [data-reveal].in,.contact-form[data-reveal].in{transform:none !important;filter:none !important}/* Shared stable glass wash for all post-hero sections */body.hero-active section:not(.hero):not(#intro),body.home-active section:not(.hero):not(#intro),body.page-sub section:not(.hero):not(#intro),body.scrolled-past-hero section:not(.hero):not(#intro),#about,#craft,#products,#contact,footer.site-footer{background:linear-gradient(165deg, rgba(22, 30, 44, 0.78), rgba(8, 12, 20, 0.70)) !important;-webkit-backdrop-filter:blur(22px) saturate(155%) !important;backdrop-filter:blur(22px) saturate(155%) !important;border-top:1px solid rgba(255, 255, 255, 0.08) !important;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;transform:none !important;filter:none !important;perspective:none !important;isolation:auto !important;contain:none !important;will-change:auto !important}/* Hero / intro stay clear */body.hero-active .hero,body.home-active .hero,.hero,#intro{background:transparent !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border-top:none !important;box-shadow:none !important}/* Products panel + cards: translucent glass LOOK without second live blur */#products .yt-pg{background:linear-gradient(165deg, rgba(255,255,255,0.10), rgba(255,255,255,0.03)) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border:1px solid rgba(255, 255, 255, 0.14) !important;box-shadow:0 20px 56px rgba(0, 0, 0, 0.28),inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;contain:none !important;transform:none !important;filter:none !important}#products .yt-pg-card,#products .yt-pg-card.yt-pg-card--media,#products .yt-pg-tab:not(.is-active){background:linear-gradient(165deg, rgba(255,255,255,0.11), rgba(255,255,255,0.035)) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border:1px solid rgba(255, 255, 255, 0.14) !important;box-shadow:0 12px 32px rgba(0, 0, 0, 0.22),inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;transform:none !important;filter:none !important;will-change:auto !important;contain:none !important;-webkit-backface-visibility:visible !important;backface-visibility:visible !important}#products .yt-pg-card .yt-pg-media{background:rgba(255, 255, 255, 0.04) !important;border:0 !important;box-shadow:none !important}#products .yt-pg-tab.is-active{-webkit-backdrop-filter:none !important;backdrop-filter:none !important}/* Contact / inquiry form: NO glass — plain fields only (user request) */#contact{transform:none !important;filter:none !important}#contact .contact-form,#contact-form{background:transparent !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border:none !important;box-shadow:none !important;transform:none !important;filter:none !important}#contact .contact-form input,#contact .contact-form textarea,#contact .contact-form select,#contact-form input,#contact-form textarea,#contact-form select{background:rgba(255, 255, 255, 0.04) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;border:1px solid rgba(255, 255, 255, 0.12) !important;box-shadow:none !important}/* Product detail dialog: solid frosted panel (stable) */#productViewer.ev-dialog,dialog#productViewer{background:linear-gradient(165deg, rgba(22, 30, 44, 0.92), rgba(10, 14, 22, 0.88)) !important;-webkit-backdrop-filter:blur(24px) saturate(160%) !important;backdrop-filter:blur(24px) saturate(160%) !important;transform:none !important}/* Decorative layers stay off inside products/contact */#products .prem-orbs,#products .prem-eng-grid,#products .prem-light-sweep,#contact .prem-orbs,#contact .prem-eng-grid{display:none !important}