@property --vt-cta-angle { syntax:'<angle>'; inherits:false; initial-value:0deg; }
@property --vt-mat { syntax:'<number>'; inherits:true; initial-value:1; }
@property --vt-float-out { syntax:'<number>'; inherits:true; initial-value:0; }
/* VerdiTwin: one type scale, quiet surfaces, blue identity and mint highlights. */
:root {
  --vt-brand:#172C9E; --vt-brand-readable:#A9C5FF; --vt-neon:#1D62EB; --vt-accent:#1D62EB; --vt-accent-soft:#A9C5FF;
  --vt-ink:#edf1f8; --vt-copy:#bac4d5; --vt-muted:#8e9bb0;
  --vt-rule:#ffffff14; --vt-header-height:78px; --vt-arch-heading-height:146px;
  --vt-page-gutter:clamp(28px,5vw,104px); --vt-content:1280px;
  --vt-section-space:clamp(112px,10vw,176px);
}
html { scroll-padding-top:calc(var(--vt-header-height) + 24px); }
body { font-size:16px; line-height:1.65; }
::selection { background:#172c9e99; color:#fff; }
a,button,input { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid var(--vt-neon); outline-offset:5px; }
.vt-site-header { box-sizing:border-box; min-height:50px; padding:clamp(8px,.75vw,12px) max(clamp(28px,7vw,104px),calc((100vw - var(--vt-content)) / 2))!important; }
.vt-site-header img { width:clamp(121.44px,11.55vw,179.52px)!important; }
.vt-site-header {
  /* Avoid backdrop-filter recompositing while the header fades and moves. */
  background:rgba(8,9,11,.94)!important;
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
  transform:translate3d(0,-24px,0); opacity:0; visibility:hidden; pointer-events:none;
  will-change:transform,opacity;
  transition:transform .32s cubic-bezier(.4,0,.2,1),opacity .22s ease,visibility 0s .32s;
}
html.vt-header-visible .vt-site-header {
  transform:translate3d(0,0,0); opacity:1; visibility:visible; pointer-events:auto;
  transition:transform .44s cubic-bezier(.25,.1,.25,1),opacity .3s ease,visibility 0s;
}
@media(prefers-reduced-motion:reduce) { .vt-site-header { transition:none!important; } }
.vt-site-nav { font-size:clamp(11px,.8vw,12.5px)!important; letter-spacing:.025em!important; gap:clamp(10px,1.6vw,28px)!important; }
.vt-site-nav a { color:var(--vt-copy); transition:color .2s; }

.vt-site-cta { font-size:clamp(12.1px,.88vw,13.75px)!important; font-weight:500; padding:clamp(5px,.5vw,7px) clamp(10px,1vw,14px)!important; border-color:#667ad04d!important; background:#172c9e40!important; }
.vt-section { padding:var(--vt-section-space) var(--vt-page-gutter)!important; }
.vt-section-inner { max-width:var(--vt-content)!important; margin-inline:auto; min-width:0; }
.vt-section h2 { font-size:clamp(30px,2.2vw,36px)!important; font-weight:500!important; line-height:1.4!important; letter-spacing:.025em; color:var(--vt-ink)!important; text-wrap:pretty; }
.vt-section p:where(:not(.vtone-static-phone p)) { font-size:clamp(16px,1.18vw,18px)!important; font-weight:400!important; line-height:1.9!important; letter-spacing:.015em!important; color:var(--vt-copy)!important; }
.vt-section .vt-eyebrow { font-size:13px!important; font-weight:500; line-height:1.5; letter-spacing:.14em!important; color:var(--vt-brand-readable)!important; }
.vt-section p.vt-editorial-note { font-size:12px!important; font-weight:400!important; line-height:1.85!important; letter-spacing:.075em!important; color:var(--vt-muted)!important; }
.vt-section-copy { gap:28px!important; }
.vt-section-heading { gap:clamp(32px,4vw,64px)!important; padding-bottom:64px!important; }
.vt-section-heading p b { display:inline-block; font-size:18px; font-weight:500; color:var(--vt-ink); margin-bottom:10px; }
.vt-section-heading p span { font-size:inherit!important; }
.vt-section-frame { box-sizing:border-box; border:1px solid #3a4a704d!important; border-radius:6px; }

/* Pin the heading and both service columns inside the same section boundary. */
#architecture { padding-bottom:var(--vt-section-space)!important; }
.vt-architecture-head { position:sticky; top:var(--vt-header-height); z-index:5; padding:28px 0 32px!important; gap:32px!important; align-items:center!important; background:#08090bf5; backdrop-filter:blur(12px); }
.vt-architecture-head h2 { font-size:clamp(28px,2.05vw,34px)!important; line-height:1.35!important; }
.vt-architecture-head p { max-width:290px!important; font-size:12px!important; line-height:1.8!important; letter-spacing:.07em!important; color:var(--vt-muted)!important; }
.vt-architecture-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important; gap:clamp(36px,6vw,88px)!important; }
.vt-architecture-sticky { top:calc(var(--vt-header-height) + var(--vt-arch-heading-height))!important; height:calc(100svh - var(--vt-header-height) - var(--vt-arch-heading-height) - 24px)!important; min-height:0; gap:24px!important; padding-block:28px; }
/* Frame the original PNG artwork, excluding its transparent canvas and baked-in labels.
   All three crops share the same x origin and scale: no stretching or independent fit. */
.vt-service-stack { --vt-art-width:180px; --vt-layer-gap:clamp(7px,1.2vh,13px); --vt-label-width:182px; --vt-label-gap:clamp(14px,1.6vw,32px); flex:1; min-height:0; padding:clamp(16px,4vh,48px) clamp(4px,1vw,20px); box-sizing:border-box; gap:var(--vt-layer-gap); }
.vt-service-layer { width:100%!important; max-width:none!important; height:auto!important; flex:0 0 auto!important; gap:var(--vt-label-gap)!important; }
.vt-service-layer > div { flex:0 0 var(--vt-label-width)!important; min-width:0; }
.vt-service-layer .vt-layer-art { position:relative; display:block; overflow:hidden; flex:0 0 var(--vt-art-width); width:var(--vt-art-width); height:calc(var(--vt-art-width) * var(--vt-crop-height) / 334); }
.vt-service-layer .vt-layer-art img { position:absolute; display:block; width:calc(var(--vt-art-width) * 669 / 334); height:calc(var(--vt-art-width) * 418 / 334); max-width:none!important; left:calc(var(--vt-art-width) * -177 / 334); top:calc(var(--vt-art-width) * var(--vt-crop-top) / -334); filter:none!important; }
.vt-service-layer > div > span { font-size:var(--vt-label-fs,12px)!important; line-height:1.65; letter-spacing:.045em!important; overflow-wrap:normal; }
.vt-service-layer > div > span:first-child { color:var(--vt-brand-readable)!important; font-weight:500; }
.vt-step-panels { min-height:232px!important; }
.vt-step-copy { gap:14px!important; }
.vt-step-copy h3 { font-size:clamp(24px,2vw,32px)!important; font-weight:500!important; line-height:1.3; letter-spacing:.035em!important; }
.vt-step-copy p { max-width:33em!important; font-size:16px!important; line-height:1.85!important; }
.vt-step-copy p:first-of-type { color:var(--vt-muted)!important; font-size:14px!important; }
.vt-step-copy > div > span { font-size:13px!important; color:var(--vt-brand-readable)!important; }
.vt-step-nav button { padding:12px 4px!important; }
.vt-step-nav button span { font-size:14px!important; letter-spacing:.025em!important; }
.vt-step-nav button > span > span:first-child { font-size:12px!important; }
.vt-architecture-progress span { font-size:12px!important; color:var(--vt-muted)!important; }

/* Give the service text deliberate room; product previews stay supporting. */
#vtsight > .vt-section-inner { max-width:var(--vt-content)!important; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important; gap:clamp(48px,5vw,80px)!important; }
.vt-service-features { margin-top:4px!important; }
.vt-service-features > div { padding:14px 0!important; align-items:center; }
.vt-service-features span:first-child { font-size:15px!important; color:var(--vt-copy)!important; }
.vt-service-features span:last-child { font-size:12px!important; letter-spacing:.05em!important; color:var(--vt-muted)!important; }
.vt-preview-caption { font-size:12px!important; line-height:1.7; letter-spacing:.055em!important; color:var(--vt-muted)!important; flex-wrap:wrap; }
.vt-live-dot { background:var(--vt-neon)!important; }
.vt-market-heading { display:grid!important; grid-template-columns:minmax(0,1fr) minmax(0,.82fr); column-gap:clamp(48px,7vw,96px)!important; row-gap:24px!important; max-width:none!important; padding-bottom:64px!important; }
.vt-market-heading > .vt-eyebrow { grid-column:1/-1; }
.vt-market-heading h2 { grid-column:1; }
.vt-market-heading > p { grid-column:1; grid-row:3; }
.vt-market-notes { grid-column:2; grid-row:2/span 2; justify-content:center; gap:10px!important; padding-left:28px; border-left:1px solid var(--vt-rule); font-size:14px!important; line-height:1.85!important; color:var(--vt-copy)!important; }
.vtone-layout { grid-template-columns:minmax(0,.9fr) minmax(0,1.45fr); gap:clamp(48px,4vw,64px)!important; }
#vtone p.vtone-description { font-size:16px!important; letter-spacing:0!important; }
.vtone-description > span { white-space:nowrap; }
.vtone-stats { gap:28px!important; margin-top:4px!important; padding-top:20px!important; }
.vtone-stats > div > span:first-child { font-size:24px!important; font-weight:500; }
.vtone-stats > div > span:last-child { font-size:12px!important; line-height:1.7; letter-spacing:.045em!important; color:var(--vt-muted)!important; }
/* Keep the product UI independent of the section's editorial paragraph scale. */
.vt-section .vtone-static-phone p { font-size:12px!important; font-weight:400!important; line-height:1.6!important; letter-spacing:0!important; }
.vt-section .vtone-static-phone .vtone-static-phone-brand { margin:0 0 8px; color:#a9b8ce!important; font-weight:500!important; letter-spacing:.12em!important; }
.vt-section .vtone-static-phone .vtone-static-phone-status { margin:0 0 18px; color:#96a5ba!important; }
.vt-section .vtone-static-phone .vtone-static-summary { margin:14px 0 8px; color:#a9b8ce!important; }
#contact h2 { font-size:clamp(30px,2.7vw,42px)!important; }
#contact > .vt-section-inner { gap:40px!important; }
#contact a[href^="mailto:"] { padding:15px 28px!important; background:var(--vt-brand)!important; color:#fff!important; font-size:16px!important; font-weight:500!important; letter-spacing:.02em!important; border:1px solid #7188e652; box-shadow:none!important; }
#contact a[href^="mailto:"]:hover { background:#243fac!important; }
#contact a span { font-size:12px!important; letter-spacing:.09em!important; opacity:.8!important; }
footer { padding:64px var(--vt-page-gutter)!important; }
footer > div { max-width:var(--vt-content)!important; }
footer span,footer a { font-size:14px!important; line-height:1.8!important; letter-spacing:.015em!important; color:var(--vt-muted); }
footer a:hover { color:var(--vt-neon); }
footer > div > div:first-child > span:first-child { font-size:15px!important; font-weight:500!important; letter-spacing:.13em!important; color:var(--vt-ink); }

@media(min-width:768px) {
  .vt-hero-copy { --vt-display-size:clamp(40px,min(4vw,6.6svh),64px); --vt-display-weight:500; }
  .vt-hero h1 span { font-size:clamp(14px,1.085vw,17.5px); line-height:1.55; letter-spacing:.1em; color:#adbacd; }
  .vt-hero h1 strong { margin-top:16px; line-height:1.23; letter-spacing:.035em; }
  .vt-hero-description { font-size:calc(var(--vt-display-size) * .67); font-weight:400; line-height:1.25; letter-spacing:.045em; }
  .vt-hero-underlay { margin-top:26px; }
  .vt-hero-cta { font-size:15px; padding:13px 23px; }
}
@media(max-width:1099px) { .vtone-description > span { white-space:normal; } }
@media(min-width:768px) and (max-height:780px) {
  .vt-architecture-head { padding-block:14px!important; }
  .vt-architecture-head h2 { font-size:28px!important; }
  .vt-architecture-sticky { padding-block:16px; gap:14px!important; }
  .vt-step-panels { min-height:208px!important; }
  .vt-step-copy { gap:10px!important; }
  .vt-step-nav button { padding-block:10px!important; }
  .vt-step-copy p { font-size:16px!important; line-height:1.75!important; }
}
@media(max-width:767px) {
  .vt-site-header { flex-wrap:wrap!important; column-gap:16px!important; padding-inline:var(--vt-page-gutter)!important; }
  .vt-site-nav { position:static!important; transform:none!important; order:3; width:100%; justify-content:space-between!important; margin-top:8px; }
  #vtsight > .vt-section-inner { grid-template-columns:1fr!important; }
  .vt-market-heading { grid-template-columns:1fr; }
  .vt-market-heading > * { grid-column:auto!important; grid-row:auto!important; }
  .vt-market-notes { padding:20px 0 0; border-left:0; border-top:1px solid var(--vt-rule); }
}
@media(max-width:767px) {
  .vt-architecture-head { position:relative; top:auto; }
  .vt-architecture-grid { grid-template-columns:1fr!important; gap:36px!important; }
  .vt-architecture-sticky { position:relative!important; top:auto!important; height:auto!important; }
  .vt-service-stack { height:clamp(480px,78vw,680px); flex:none; --vt-label-width:148px; --vt-label-gap:12px; }
  .vt-service-layer { opacity:.85!important; filter:none!important; }
  .vt-architecture-track { height:auto!important; }
  .vt-architecture-track > [data-step],.vt-step-nav { display:none; }
  .vt-step-panels { display:grid; gap:32px; }
  .vt-step-copy { position:relative!important; opacity:1!important; transform:none!important; }
}
@media(max-width:767px) {
  :root { --vt-page-gutter:24px; --vt-section-space:88px; }
  .vt-section h2 { font-size:28px!important; }
  .vt-section-inner,.vt-section-heading { grid-template-columns:minmax(0,1fr)!important; }
  .vtone-description > span { white-space:normal; }
  .vt-site-nav { gap:8px!important; font-size:12px!important; }
  .vt-service-features > div { gap:16px!important; }
  .vt-service-features span:last-child { text-align:right; }
}

/* More space around the hero, without reducing body-copy readability. */
.vt-hero-content { padding-top:calc(var(--vt-header-height) + 84px); padding-bottom:112px; }
@media(min-width:768px) {
  .vt-hero.has-scroll-scene .vt-hero-copy { top:calc(var(--vt-header-height) + clamp(80px,10svh,120px)); }
  .vt-hero-content > vt-hero-demo { width:min(76%,1200px); margin-top:44px; }
  .vt-hero-cta { margin-top:28px; }
}
@media(max-width:767px) {
  .vt-hero-content { padding-top:calc(var(--vt-header-height) + 56px); padding-inline:var(--vt-page-gutter); padding-bottom:96px; }
  .vt-hero-cta { position:relative; top:auto; left:auto; transform:none; margin-top:28px; }
  .vt-hero-content > vt-hero-demo { margin-top:40px; }
  .vt-section-heading,.vt-market-heading { padding-bottom:44px!important; }
  .vt-architecture-grid { gap:48px!important; }
}

/* Place the market introduction beside the smaller, paginated store on desktop. */
.vt-market-frame { min-height:0!important; }
@media(min-width:768px) {
 #vtmarket > .vt-section-inner { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:clamp(36px,4vw,56px); align-items:start; }
 .vt-market-heading { display:flex!important; flex-direction:column; gap:22px!important; padding-bottom:0!important; }
 .vt-market-heading > * { grid-column:auto!important; grid-row:auto!important; }
 .vt-market-heading > p { font-size:16px!important; }
 .vt-market-notes { padding:22px 0 0; border-left:0; border-top:1px solid var(--vt-rule); gap:12px!important; }
}

/* One continuous navy atmosphere, beginning below the unchanged hero. */
.vt-page-body {
 position:relative;
 isolation:isolate;
 background:linear-gradient(180deg,#08090b 0,#080b13 360px);
}
.vt-page-body::before {
 content:'';
 position:absolute;
 inset:0;
 z-index:-1;
 pointer-events:none;
 background-image:
  radial-gradient(ellipse 70% 500px at 82% 560px,rgba(23,44,158,.36),rgba(23,44,158,.12) 40%,transparent 74%),
  radial-gradient(ellipse 65% 520px at 8% 1430px,rgba(23,44,158,.27),rgba(23,44,158,.07) 42%,transparent 74%),
  radial-gradient(ellipse 60% 320px at 90% 2070px,rgba(23,44,158,.2),transparent 74%);
 background-size:100% 2400px;
 background-repeat:repeat-y;
 mask-image:linear-gradient(180deg,transparent 0,#000 300px);
}
.vt-page-body > .vt-section,
.vt-page-body > footer {
 background:transparent!important;
 border-top-color:rgba(134,153,195,.07)!important;
}
.vt-page-body > #architecture { border-top-color:transparent!important; }
.vt-page-body .vt-architecture-head { background:none!important; backdrop-filter:none!important; border-bottom-color:transparent!important; }
.vt-page-body .vt-architecture-head::before {
 content:''; position:absolute; z-index:-1; pointer-events:none;
 top:0; bottom:-28px; left:-50vw; right:-50vw;
 background:linear-gradient(180deg,rgba(8,10,16,.82) 55%,rgba(8,10,16,0));
}
.vt-page-body .vt-architecture-head > * { position:relative; }
@media(max-width:767px) {
 .vt-page-body::before { opacity:.75; background-size:160% 2400px; background-position:center top; }
}

/* Hero FlickeringGrid texture, echoed faintly in soft patches down the page. */
.vt-page-body::after {
 content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
 background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'180'%20height%3D'180'%20fill%3D'%23b8cde6'%3E%3Crect%20x%3D'8'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.25'%2F%3E%3Crect%20x%3D'26'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.94'%2F%3E%3Crect%20x%3D'44'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.47'%2F%3E%3Crect%20x%3D'62'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.41'%2F%3E%3Crect%20x%3D'80'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.80'%2F%3E%3Crect%20x%3D'98'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.65'%2F%3E%3Crect%20x%3D'116'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.50'%2F%3E%3Crect%20x%3D'134'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.81'%2F%3E%3Crect%20x%3D'152'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.82'%2F%3E%3Crect%20x%3D'170'%20y%3D'8'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.66'%2F%3E%3Crect%20x%3D'8'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.76'%2F%3E%3Crect%20x%3D'26'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.73'%2F%3E%3Crect%20x%3D'44'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.86'%2F%3E%3Crect%20x%3D'62'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.43'%2F%3E%3Crect%20x%3D'80'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.53'%2F%3E%3Crect%20x%3D'98'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.78'%2F%3E%3Crect%20x%3D'116'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.77'%2F%3E%3Crect%20x%3D'134'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.29'%2F%3E%3Crect%20x%3D'152'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.76'%2F%3E%3Crect%20x%3D'170'%20y%3D'26'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.60'%2F%3E%3Crect%20x%3D'8'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.94'%2F%3E%3Crect%20x%3D'26'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.86'%2F%3E%3Crect%20x%3D'44'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.34'%2F%3E%3Crect%20x%3D'62'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.63'%2F%3E%3Crect%20x%3D'80'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.94'%2F%3E%3Crect%20x%3D'98'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.77'%2F%3E%3Crect%20x%3D'116'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.73'%2F%3E%3Crect%20x%3D'134'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.68'%2F%3E%3Crect%20x%3D'152'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.93'%2F%3E%3Crect%20x%3D'170'%20y%3D'44'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.93'%2F%3E%3Crect%20x%3D'8'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.53'%2F%3E%3Crect%20x%3D'26'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.50'%2F%3E%3Crect%20x%3D'44'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.88'%2F%3E%3Crect%20x%3D'62'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.50'%2F%3E%3Crect%20x%3D'80'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.36'%2F%3E%3Crect%20x%3D'98'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.47'%2F%3E%3Crect%20x%3D'116'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.57'%2F%3E%3Crect%20x%3D'134'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.47'%2F%3E%3Crect%20x%3D'152'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.95'%2F%3E%3Crect%20x%3D'170'%20y%3D'62'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.67'%2F%3E%3Crect%20x%3D'8'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.80'%2F%3E%3Crect%20x%3D'26'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.91'%2F%3E%3Crect%20x%3D'44'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.29'%2F%3E%3Crect%20x%3D'62'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.46'%2F%3E%3Crect%20x%3D'80'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.67'%2F%3E%3Crect%20x%3D'98'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.63'%2F%3E%3Crect%20x%3D'116'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.57'%2F%3E%3Crect%20x%3D'134'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.39'%2F%3E%3Crect%20x%3D'152'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.93'%2F%3E%3Crect%20x%3D'170'%20y%3D'80'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.29'%2F%3E%3Crect%20x%3D'8'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.52'%2F%3E%3Crect%20x%3D'26'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.51'%2F%3E%3Crect%20x%3D'44'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.75'%2F%3E%3Crect%20x%3D'62'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.94'%2F%3E%3Crect%20x%3D'80'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.64'%2F%3E%3Crect%20x%3D'98'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.37'%2F%3E%3Crect%20x%3D'116'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.55'%2F%3E%3Crect%20x%3D'134'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.46'%2F%3E%3Crect%20x%3D'152'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.52'%2F%3E%3Crect%20x%3D'170'%20y%3D'98'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.57'%2F%3E%3Crect%20x%3D'8'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.50'%2F%3E%3Crect%20x%3D'26'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.65'%2F%3E%3Crect%20x%3D'44'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.71'%2F%3E%3Crect%20x%3D'62'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.42'%2F%3E%3Crect%20x%3D'80'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.93'%2F%3E%3Crect%20x%3D'98'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.59'%2F%3E%3Crect%20x%3D'116'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.90'%2F%3E%3Crect%20x%3D'134'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.73'%2F%3E%3Crect%20x%3D'152'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.73'%2F%3E%3Crect%20x%3D'170'%20y%3D'116'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.64'%2F%3E%3Crect%20x%3D'8'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.63'%2F%3E%3Crect%20x%3D'26'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.77'%2F%3E%3Crect%20x%3D'44'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.95'%2F%3E%3Crect%20x%3D'62'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.55'%2F%3E%3Crect%20x%3D'80'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.78'%2F%3E%3Crect%20x%3D'98'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.44'%2F%3E%3Crect%20x%3D'116'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.69'%2F%3E%3Crect%20x%3D'134'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.51'%2F%3E%3Crect%20x%3D'152'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.50'%2F%3E%3Crect%20x%3D'170'%20y%3D'134'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.54'%2F%3E%3Crect%20x%3D'8'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.85'%2F%3E%3Crect%20x%3D'26'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.91'%2F%3E%3Crect%20x%3D'44'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.33'%2F%3E%3Crect%20x%3D'62'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.86'%2F%3E%3Crect%20x%3D'80'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.31'%2F%3E%3Crect%20x%3D'98'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.56'%2F%3E%3Crect%20x%3D'116'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.37'%2F%3E%3Crect%20x%3D'134'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.31'%2F%3E%3Crect%20x%3D'152'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'1.00'%2F%3E%3Crect%20x%3D'170'%20y%3D'152'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.42'%2F%3E%3Crect%20x%3D'8'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.72'%2F%3E%3Crect%20x%3D'26'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.36'%2F%3E%3Crect%20x%3D'44'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.59'%2F%3E%3Crect%20x%3D'62'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.69'%2F%3E%3Crect%20x%3D'80'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.35'%2F%3E%3Crect%20x%3D'98'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.94'%2F%3E%3Crect%20x%3D'116'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.91'%2F%3E%3Crect%20x%3D'134'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.92'%2F%3E%3Crect%20x%3D'152'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.91'%2F%3E%3Crect%20x%3D'170'%20y%3D'170'%20width%3D'2'%20height%3D'2'%20fill-opacity%3D'0.93'%2F%3E%3C%2Fsvg%3E");
 background-size:180px 180px;
 opacity:.21;
 -webkit-mask-image:radial-gradient(ellipse 40% 520px at 84% 640px,#000,transparent 75%),radial-gradient(ellipse 36% 480px at 8% 1480px,#000,transparent 75%),radial-gradient(ellipse 32% 400px at 60% 2150px,#000,transparent 75%); mask-image:radial-gradient(ellipse 40% 520px at 84% 640px,#000,transparent 75%),radial-gradient(ellipse 36% 480px at 8% 1480px,#000,transparent 75%),radial-gradient(ellipse 32% 400px at 60% 2150px,#000,transparent 75%);
 -webkit-mask-size:100% 2400px; mask-size:100% 2400px;
 -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
 animation:vtGridBreath 9s ease-in-out infinite;
}
@keyframes vtGridBreath { 0%,100% { opacity:.21; } 50% { opacity:.3; } }
@media (prefers-reduced-motion:reduce) { .vt-page-body::after { animation:none; } }

/* Desktop tier (≥768px): one composition, proportionally scaled. */
@media(min-width:768px) {
  .vt-architecture-head p { max-width:clamp(200px,22vw,290px)!important; }
  .vt-step-copy p { font-size:clamp(14px,1.1vw,16px)!important; }
  .vt-market-notes { font-size:clamp(13px,1vw,14px)!important; }
  .vtone-stats { gap:clamp(16px,2vw,28px)!important; }
  .vtone-stats > div > span:first-child { font-size:clamp(20px,1.7vw,24px)!important; }
}

/* VT ONE: photographic device mockup with glass notices. */
.vtone-static-preview { overflow:visible!important; }
.vtone-mock { position:relative; width:100%; aspect-ratio:2200/1303; }
.vtone-mock img { display:block; width:100%; height:auto; filter:drop-shadow(0 40px 60px rgba(0,0,0,.55)); }
.vtone-mock::before { content:''; position:absolute; inset:6% 18% 10% 4%; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at 55% 50%,rgba(47,76,220,.32),transparent 68%); filter:blur(20px); }
.vtone-mock-float { position:absolute; display:flex; align-items:flex-start; gap:12px; padding:clamp(10px,1vw,15px) clamp(12px,1.2vw,18px); border:1px solid rgba(170,190,240,.24); border-radius:12px;
  background:linear-gradient(180deg,rgba(28,38,68,.66),rgba(12,18,34,.58)); backdrop-filter:blur(12px) saturate(1.2); -webkit-backdrop-filter:blur(12px) saturate(1.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 18px 40px -12px rgba(0,0,0,.6); color:#e6ecf7; font:400 clamp(11px,.85vw,13px)/1.5 Roboto,'PingFang TC',sans-serif; white-space:nowrap;
  animation:vtFloatBob 6s ease-in-out infinite; }
.vtone-mock-float b { display:block; font-weight:500; font-size:clamp(12px,.95vw,14.5px); color:#f2f5fb; }
.vtone-mock-float b em { font-style:normal; color:#A9C5FF; margin-left:6px; }
.vtone-mock-float p { margin:3px 0 0; color:#a9b8ce; }
.vtone-mf-dot { flex:none; width:9px; height:9px; margin-top:6px; border-radius:50%; }
.vtone-mf-dot.is-red { background:#ef5350; animation:vtFloatPulse 1.8s ease-out infinite; }
.vtone-mf-dot.is-mint { background:#A9C5FF; box-shadow:0 0 0 4px rgba(29,98,235,.16); }
.vtone-mf1 { left:2%; top:-2%; }
.vtone-mf2 { right:-3%; top:40%; animation-delay:-2s; }
.vtone-mf3 { left:10%; bottom:6%; animation-delay:-4s; }
@keyframes vtFloatBob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }
@keyframes vtFloatPulse { 0% { box-shadow:0 0 0 0 rgba(239,83,80,.45); } 100% { box-shadow:0 0 0 9px rgba(239,83,80,0); } }
@media(max-width:767px) { .vtone-mf2 { right:0; } .vtone-mf3 { display:none; } .vtone-mock-float { zoom:.8; } }
@media (prefers-reduced-motion:reduce) { .vtone-mock-float,.vtone-mf-dot { animation:none!important; } }

/* 三層服務 dot field + active layer lift (option 1b). */
.vt-dotfield-host { position:relative; isolation:isolate; }
.vt-dotfield { position:absolute; inset:0; width:100%; height:100%; z-index:-1; pointer-events:none; }
.vt-service-layer { transition:opacity .3s ease, transform .3s var(--vt-ease-out)!important; }
.vt-service-layer[data-active] { transform:translateY(-8px); }
.vt-service-layer .vt-layer-art { transition:filter .3s ease, transform .14s var(--vt-ease-out); }
.vt-service-layer[data-active] .vt-layer-art { filter:drop-shadow(0 18px 26px rgba(47,76,220,.45)); }
@media (prefers-reduced-motion:reduce) { .vt-service-layer[data-active] { transform:none; } }

/* Device tuning: wider canvas on large monitors, readable previews on phones. */
@media(min-width:1680px) { :root { --vt-content:1440px; } }
@media(min-width:2200px) { :root { --vt-content:1600px; --vt-page-gutter:clamp(104px,6vw,160px); } }
@media(min-width:768px) and (max-width:1023px) {
  :root { --vt-page-gutter:32px; --vt-section-space:clamp(88px,11vw,120px); }
  .vt-section h2 { font-size:28px!important; }
  .vt-section p:where(:not(.vtone-static-phone p)) { font-size:15px!important; }
}
@media(max-width:767px) {
  div:has(> .vt-sight-frame) { overflow-x:auto!important; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
  .vt-sight-frame { width:760px!important; max-width:none; }
  .vtone-layout { grid-template-columns:1fr!important; }
  .vtone-static-preview { margin-top:8px; }
  .vt-section-heading { grid-template-columns:1fr!important; gap:14px!important; }
}

/* Hero neon language (mint → blue edge light + soft prism fields) carried into VT ONE and the closing CTA. */
.vt-neon { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
#vtone > .vt-section-inner, #contact > .vt-section-inner { position:relative; z-index:1; }
.vt-neon i { position:absolute; display:block; }
.vt-neon-field { inset:0; filter:blur(clamp(40px,5vw,90px)); opacity:.9; }
.vt-neon-line { height:1px; background:linear-gradient(90deg,transparent,#A9C5FF 22%,#1D62EB 72%,transparent);
  box-shadow:0 0 6px 0 rgba(169,197,255,.55),0 0 22px 2px rgba(29,98,235,.28),0 0 60px 8px rgba(79,107,240,.18); }
.vt-neon-line::after { content:''; position:absolute; left:18%; right:18%; top:-40px; height:80px;
  background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(140,190,255,.16),transparent 70%); }
/* VT ONE: backlight rising behind the device mockup */
.vt-neon--one .vt-neon-field { background:
  radial-gradient(ellipse 34% 30% at 64% 58%,rgba(29,98,235,.14),transparent 70%),
  radial-gradient(ellipse 30% 34% at 82% 44%,rgba(47,76,220,.26),transparent 72%),
  radial-gradient(ellipse 22% 18% at 50% 76%,rgba(40,140,170,.10),transparent 70%); }
.vt-neon--one .vt-neon-line { left:38%; right:-4%; top:calc(50% + clamp(120px,15vw,260px)); transform:rotate(-2deg); }
/* Closing CTA: horizon line with light spilling upward */
.vt-neon--cta .vt-neon-field { background:
  radial-gradient(ellipse 40% 34% at 36% 100%,rgba(29,98,235,.18),transparent 72%),
  radial-gradient(ellipse 42% 38% at 66% 100%,rgba(47,76,220,.3),transparent 72%); }
.vt-neon--cta .vt-neon-line { left:6%; right:6%; bottom:0; }
@media(max-width:767px) {
  .vt-neon--one .vt-neon-line { left:0; right:0; top:auto; bottom:12%; transform:none; }
  .vt-neon--cta .vt-neon-line { left:0; right:0; }
}
@media (prefers-reduced-motion:no-preference) {
  .vt-neon-field { animation:vtNeonDrift 18s ease-in-out infinite alternate; }
}
@keyframes vtNeonDrift { from { transform:translate3d(-1.5%,0,0); } to { transform:translate3d(1.5%,-1%,0); } }

/* ===== Glass + light system (single source for every glass surface and backlight) =====
   Glass levels: heavy = hero floating notices · mid = hero phone · frame = SIGHT/BUILD dashboard frames.
   Light palette: mint → blue, shared by hero shader, VT ONE backlight, dot field and CTA glow. */
:root {
  --vt-glass-tint:236,242,252; --vt-glass-scrim:18,24,40;
  --vt-glass-border:rgba(255,255,255,.18);
  --vt-glass-shadow:0 12px 32px -18px rgba(0,0,0,.45);
  --vt-glass-filter:saturate(1.4) brightness(.9);
  --vt-glass-grain:url("assets/noise.svg");
  --vt-glass-heavy-fill:.3;  --vt-glass-heavy-blur:40px; --vt-glass-heavy-scrim:.58; --vt-glass-heavy-grain:.3;
  --vt-glass-mid-fill:.2;    --vt-glass-mid-blur:48px;   --vt-glass-mid-scrim:.42;   --vt-glass-mid-grain:0;
  --vt-glass-frame-fill:rgba(255,255,255,.1); --vt-glass-frame-blur:24px;
  /* Accent system — no mint. "mint" token names kept for compatibility; they now carry the soft-blue highlight. */
  --vt-light-mint:169,197,255; --vt-light-mint-hi:214,227,255;
  --vt-light-blue:29,98,235; --vt-light-blue-hi:169,197,255; --vt-light-navy:29,98,235;
  --vt-ease-out:cubic-bezier(.23,1,.32,1); --vt-press:scale(.97);
}

/* VT ONE — hero light shader behind, silhouette backlight on the devices. */
.vtone-mock { isolation:isolate; }
.vtone-ambient { position:absolute; inset:0; z-index:0; display:block; overflow:hidden; pointer-events:none; contain:strict; background:#08090b; }
#vtone .vtone-mock > img { position:relative; z-index:2;
  filter:
    drop-shadow(-3px -3px 2px rgba(var(--vt-light-mint-hi),.55))
    drop-shadow(4px -3px 3px rgba(var(--vt-light-blue-hi),.6))
    drop-shadow(-14px -10px 14px rgba(var(--vt-light-mint),.55))
    drop-shadow(16px -10px 18px rgba(var(--vt-light-blue),.6))
    drop-shadow(-30px -26px 48px rgba(var(--vt-light-mint),.4))
    drop-shadow(34px -24px 56px rgba(var(--vt-light-blue),.48)); }
@media(max-width:767px) {
  #vtone .vtone-mock > img { filter:
    drop-shadow(-2px -2px 2px rgba(var(--vt-light-mint-hi),.5))
    drop-shadow(3px -2px 2px rgba(var(--vt-light-blue-hi),.55))
    drop-shadow(-8px -6px 10px rgba(var(--vt-light-mint),.5))
    drop-shadow(10px -6px 12px rgba(var(--vt-light-blue),.55)); }
}

/* VT SIGHT / VT BUILD — opaque light dashboards inside a frame-level glass rim. */
.vt-build-wrap { position:relative; }
.vt-glass-frame { position:relative; z-index:1; overflow:hidden;
  padding:clamp(8px,.9vw,14px)!important; border-radius:clamp(12px,1.1vw,16px)!important;
  background:var(--vt-glass-frame-fill)!important; border:1px solid var(--vt-glass-border)!important; box-shadow:var(--vt-glass-shadow)!important;
  backdrop-filter:blur(var(--vt-glass-frame-blur)) var(--vt-glass-filter); -webkit-backdrop-filter:blur(var(--vt-glass-frame-blur)) var(--vt-glass-filter); }
.vt-glass-frame iframe { display:block; border-radius:6px; overflow:hidden; color-scheme:light; }
.vt-glass-frame .vt-sight-frame { background:#f3f5fa!important; }
.vt-glass-frame .vt-build-frame { background:#f4f6fa!important; }
@media(max-width:767px) { .vt-glass-frame { padding:6px!important; border-radius:10px!important; } .vt-glass-frame iframe { border-radius:5px; } }

/* Closing headline — same treatment as the hero's 而是經營判斷的依據, on one line. */
#contact h2 { font-size:inherit!important; line-height:1!important; max-width:100%; }
#contact .vt-cta-title { display:block; white-space:nowrap; font-family:'Roboto','PingFang TC','Microsoft JhengHei',sans-serif;
  font-size:clamp(20px,min(3.6vw,6.4svh),60px); font-weight:500; line-height:1.23; letter-spacing:.035em; color:#edf6f2;
  transform:scaleY(1.04); }
@supports (background-clip:text) {
  #contact .vt-cta-title { background:linear-gradient(180deg,#ffffff 15%,#eaf6f0 62%,#aec9c2 100%); background-clip:text; -webkit-background-clip:text; color:transparent; }
}
#contact > .vt-section-inner { max-width:min(1280px,100%)!important; }
@media(max-width:767px) {
  #contact .vt-cta-title { font-size:clamp(15px,5.2vw,26px); letter-spacing:.02em; }
}

/* Slide-arrow CTA (hero + closing): a brand pill that fills the button on hover. */
.vt-slide-btn, #contact a.vt-slide-btn { position:relative; display:inline-flex!important; align-items:center; gap:0!important; isolation:isolate; overflow:hidden;
  padding:clamp(6px,.5vw,8px)!important; border:1px solid #ffffff!important; border-radius:999px!important; background:#ffffff!important;
  color:#08090b!important; font-weight:600!important; font-size:clamp(14px,1.05vw,17px)!important; letter-spacing:.04em!important; text-decoration:none;
  box-shadow:0 6px 24px -8px rgba(var(--vt-light-blue),.45)!important; transition:box-shadow .2s ease; }

.vt-slide-fill { position:absolute; left:0; top:0; bottom:0; z-index:0; width:clamp(38px,2.9vw,46px); display:flex; align-items:center; justify-content:flex-end;
  border-radius:999px; background:#172C9E; transition:width .2s ease-in-out; }
.vt-slide-icon { display:flex; margin-right:clamp(9px,.75vw,12px); color:#ffffff; }
.vt-slide-icon svg { width:clamp(16px,1.25vw,20px); height:auto; }
.vt-slide-label { position:relative; z-index:1; left:clamp(12px,1vw,16px); padding:clamp(4px,.4vw,6px) clamp(22px,2vw,32px); white-space:nowrap;
  transition:left .2s ease-in-out, color .2s ease-in-out; }
.vt-slide-btn:focus-visible .vt-slide-fill { width:100%; }
.vt-slide-btn:focus-visible .vt-slide-label { left:clamp(-12px,-.75vw,-8px); color:#ffffff; }
.vt-slide-btn--lg { font-size:clamp(15px,1.2vw,19px)!important; padding:clamp(7px,.6vw,9px)!important; }
.vt-slide-btn--lg .vt-slide-fill { width:clamp(42px,3.3vw,52px); }
@media (prefers-reduced-motion:reduce) { .vt-slide-fill, .vt-slide-label { transition:none; } }


/* ===== Story flow ===== */
/* Section rail — fixed, appears only between VT SIGHT and VT ONE. */
.vt-rail { position:fixed; z-index:40; right:clamp(12px,1.4vw,28px); top:50%; transform:translate(8px,-50%); display:flex; flex-direction:column; gap:clamp(14px,2.4vh,22px);
  padding:14px 0; opacity:0; pointer-events:none; transition:opacity .35s ease, transform .35s ease; font-family:'Roboto','PingFang TC',sans-serif; }
.vt-rail[data-show] { opacity:1; pointer-events:auto; transform:translate(0,-50%); }
.vt-rail-track { position:absolute; right:4px; top:20px; bottom:20px; width:1px; background:rgba(255,255,255,.14); }
.vt-rail-fill { position:absolute; left:0; top:0; width:1px; height:calc(var(--vt-rail-p,0) * 100%); background:linear-gradient(180deg,rgb(var(--vt-light-mint)),rgb(var(--vt-light-blue))); }
.vt-rail-step { position:relative; display:flex; align-items:center; justify-content:flex-end; gap:10px; min-height:24px; text-decoration:none; color:rgba(236,242,252,.55); }
.vt-rail-step i { order:2; flex:none; width:9px; height:9px; border-radius:50%; background:#08090b; border:1px solid rgba(255,255,255,.35); transition:background .25s, border-color .25s, box-shadow .25s; }
.vt-rail-step.is-sub i { width:7px; height:7px; margin-right:1px; }
.vt-rail-step span { order:1; display:flex; align-items:baseline; gap:6px; padding:4px 10px; border-radius:999px; font-size:11px; letter-spacing:.16em; white-space:nowrap;
  opacity:0; transform:translateX(6px); transition:opacity .25s, transform .25s; pointer-events:none;
  background:rgba(var(--vt-glass-tint),var(--vt-glass-mid-fill)); border:1px solid var(--vt-glass-border);
  backdrop-filter:blur(var(--vt-glass-mid-blur)) var(--vt-glass-filter); -webkit-backdrop-filter:blur(var(--vt-glass-mid-blur)) var(--vt-glass-filter); }
.vt-rail-step b { font-weight:500; color:rgb(var(--vt-light-mint)); }
.vt-rail-step[data-done] i { background:rgba(var(--vt-light-blue),.6); border-color:transparent; }
.vt-rail-step[data-active] i { background:rgb(var(--vt-light-mint)); border-color:transparent; box-shadow:0 0 0 4px rgba(var(--vt-light-mint),.18); }
.vt-rail-step:focus-visible span { opacity:1; transform:none; color:#f4f7fc; }
/* Active label stays visible only where the gutter can hold it without covering dashboards. */
@media(min-width:1680px) { .vt-rail-step[data-active] span { opacity:1; transform:none; color:#f4f7fc; } }
@media(max-width:767px) {
  .vt-rail { top:auto; bottom:14px; right:50%; transform:translate(50%,8px); flex-direction:row; gap:0; padding:6px 8px; border-radius:999px;
    background:rgba(var(--vt-glass-tint),var(--vt-glass-mid-fill)); border:1px solid var(--vt-glass-border);
    backdrop-filter:blur(var(--vt-glass-mid-blur)) var(--vt-glass-filter); -webkit-backdrop-filter:blur(var(--vt-glass-mid-blur)) var(--vt-glass-filter); }
  .vt-rail[data-show] { transform:translate(50%,0); }
  .vt-rail-track { display:none; }
  .vt-rail-step { min-height:32px; min-width:32px; justify-content:center; gap:6px; padding:0 4px; }
  .vt-rail-step span { display:none; }
  .vt-rail-step[data-active] span { display:flex; padding:0 4px 0 0; background:none; border:0; backdrop-filter:none; -webkit-backdrop-filter:none; font-size:10.5px; letter-spacing:.1em; }
  .vt-rail-step[data-active] { order:0; }
}

/* 三層服務 — layers are links to their sections. */
.vt-service-layer[data-layer] { cursor:pointer; outline:none; }
.vt-service-layer[data-layer] > div::after { content:'→'; margin-top:4px; font-family:'Roboto','PingFang TC',sans-serif; font-size:var(--vt-label-fs,12px); letter-spacing:.12em;
  color:rgb(var(--vt-light-mint)); opacity:0; transform:translateX(-4px); transition:opacity .25s, transform .25s; }
.vt-service-layer[data-layer]:is(:focus-visible,[data-active]) > div::after { opacity:1; transform:none; }

.vt-service-layer[data-layer]:focus-visible .vt-layer-art { outline:2px solid rgb(var(--vt-light-mint)); outline-offset:6px; border-radius:6px; }
.vt-step-link { align-self:flex-start; display:inline-flex; align-items:center; gap:8px; margin-top:4px; padding:6px 0; font-family:'Roboto','PingFang TC',sans-serif;
  font-size:14px; letter-spacing:.08em; color:#f4f7fc; text-decoration:none; border-bottom:1px solid rgba(var(--vt-light-mint),.5); transition:border-color .2s ease, color .2s ease; }
.vt-step-link span { color:rgb(var(--vt-light-mint)); transition:transform .2s var(--vt-ease-out); }


/* VT MARKET — same frame + entrance as the other dashboards. */
.vt-glass-frame .vt-market-frame { background:#0b0c0f!important; }
[data-io-reveal] { transition:opacity .45s ease, transform .5s var(--vt-ease-out); }
[data-io-bound]:not([data-in]) { opacity:0; transform:translateY(22px); }
.vt-market-glass { transition-delay:.08s; }
@media (prefers-reduced-motion:reduce) { [data-io-bound]:not([data-in]) { opacity:1; transform:none; } .vt-rail, .vt-rail-step span { transition:none; } }

/* ===== Interaction polish (emil-design-eng / apple-design pass) ===== */
/* Press feedback — instant, on pointer-down. */
.vt-slide-btn, .vt-site-cta, .vt-step-link, .vt-rail-step i { transition-property:box-shadow, transform, background, border-color, color; transition-duration:.2s, .14s, .25s, .25s, .2s; transition-timing-function:ease, var(--vt-ease-out), ease, ease, ease; }
.vt-slide-btn:active, .vt-site-cta:active, .vt-step-link:active { transform:var(--vt-press); }
.vt-rail-step:active i { transform:scale(.85); }
.vt-service-layer[data-layer]:active .vt-layer-art { transform:var(--vt-press); }
/* Hover only where a real pointer exists — no sticky hover after a tap. */
@media (hover:hover) and (pointer:fine) {
  .vt-slide-btn:hover { box-shadow:0 8px 30px -8px rgba(var(--vt-light-blue),.7)!important; }
  .vt-slide-btn:hover .vt-slide-fill { width:100%; }
  .vt-slide-btn:hover .vt-slide-label { left:clamp(-12px,-.75vw,-8px); color:#ffffff; }
  .vt-rail-step:hover span { opacity:1; transform:none; color:#f4f7fc; }
  .vt-service-layer[data-layer]:hover > div::after { opacity:1; transform:none; }
  .vt-service-layer[data-layer]:not([data-active]):hover { opacity:.7!important; transform:translateY(-4px); }
  .vt-step-link:hover { border-color:rgb(var(--vt-light-mint)); color:#fff; }
  .vt-step-link:hover span { transform:translateX(4px); }
}
/* Reduce transparency — glass becomes solid, no blur. */
@media (prefers-reduced-transparency:reduce) {
  .vt-glass-frame { background:#1a1f2b!important; backdrop-filter:none!important; -webkit-backdrop-filter:none!important; }
  .vt-rail-step span, .vt-rail { backdrop-filter:none!important; -webkit-backdrop-filter:none!important; }
  .vt-rail-step span { background:#1d2333; }
  @media(max-width:767px) { .vt-rail { background:#1d2333; } }
}
@media (prefers-reduced-motion:reduce) {
  .vt-slide-btn:active, .vt-site-cta:active, .vt-step-link:active, .vt-service-layer[data-layer]:active .vt-layer-art { transform:none; }
}

/* CTA v2 — squared white button, black arrow tile on the right that fills the button on hover. */
.vt-slide-btn, #contact a.vt-slide-btn { --tile:clamp(36px,2.8vw,44px); --pad:clamp(5px,.4vw,6px);
  padding:var(--pad)!important; border-radius:8px!important; border:1px solid #ffffff!important; background:#ffffff!important; color:#08090b!important;
  font-weight:500!important; letter-spacing:.03em!important; box-shadow:0 1px 2px rgba(0,0,0,.2)!important; }
.vt-slide-btn--lg { --tile:clamp(40px,3.2vw,50px); --pad:clamp(6px,.45vw,7px); }
.vt-slide-fill { left:auto!important; right:var(--pad); top:var(--pad); bottom:var(--pad); width:var(--tile)!important;
  border-radius:5px; background:#08090b; justify-content:flex-end; transition:width .22s var(--vt-ease-out); }
.vt-slide-icon { margin-right:calc((var(--tile) - clamp(16px,1.25vw,20px)) / 2); }
.vt-slide-label { left:0!important; min-height:var(--tile); display:flex; align-items:center;
  padding:0 calc(var(--tile) + clamp(16px,1.4vw,22px)) 0 clamp(14px,1.2vw,20px)!important; transition:color .2s ease; }
.vt-slide-btn:focus-visible .vt-slide-fill { width:calc(100% - var(--pad) * 2)!important; }
.vt-slide-btn:focus-visible .vt-slide-label { color:#ffffff; }
@media (hover:hover) and (pointer:fine) {
  .vt-slide-btn:hover { box-shadow:0 6px 18px -8px rgba(0,0,0,.5)!important; }
  .vt-slide-btn:hover .vt-slide-fill { width:calc(100% - var(--pad) * 2)!important; }
  .vt-slide-btn:hover .vt-slide-label { left:0!important; color:#ffffff; }
}
@media (prefers-reduced-motion:reduce) { .vt-slide-fill { transition:none; } }

/* CTA v2.1 — 20% shorter, 30% thinner white ring, solid black on hover. */
.vt-slide-btn, #contact a.vt-slide-btn { --tile:clamp(30px,2.3vw,36px); --pad:clamp(3.5px,.28vw,4.2px); --ico:clamp(14px,1.05vw,17px);
  transition:box-shadow .2s ease, transform .14s var(--vt-ease-out), border-color .22s ease!important; }
.vt-slide-btn--lg, #contact a.vt-slide-btn--lg { --tile:clamp(34px,2.6vw,41px); --pad:clamp(4.2px,.32vw,4.9px); --ico:clamp(15px,1.15vw,18px); }
.vt-slide-icon svg { width:var(--ico)!important; }
.vt-slide-icon { margin-right:calc((var(--tile) - var(--ico)) / 2); transition:margin-right .22s var(--vt-ease-out); }
.vt-slide-fill { transition:width .22s var(--vt-ease-out), top .22s var(--vt-ease-out), right .22s var(--vt-ease-out), bottom .22s var(--vt-ease-out), border-radius .22s ease!important; }
.vt-slide-btn:focus-visible { border-color:#08090b!important; }
.vt-slide-btn:focus-visible .vt-slide-fill { top:0; right:0; bottom:0; width:100%!important; border-radius:7px; }
.vt-slide-btn:focus-visible .vt-slide-icon { margin-right:calc((var(--tile) - var(--ico)) / 2 + var(--pad)); }
@media (hover:hover) and (pointer:fine) {
  .vt-slide-btn:hover { border-color:#08090b!important; }
  .vt-slide-btn:hover .vt-slide-fill { top:0; right:0; bottom:0; width:100%!important; border-radius:7px; }
  .vt-slide-btn:hover .vt-slide-icon { margin-right:calc((var(--tile) - var(--ico)) / 2 + var(--pad)); }
}

/* Hero type rhythm — label → headline → sub-copy read as one block; CTA gets its own breathing room. */
@media(min-width:768px) {
  .vt-hero h1 strong { margin-top:calc(var(--vt-display-size) * .2)!important; }
  .vt-hero-underlay { margin-top:calc(var(--vt-display-size) * .16)!important; }
  .vt-hero-description { line-height:1.3!important; letter-spacing:.03em!important; }
  .vt-hero-cta { margin-top:max(36px, calc(var(--vt-display-size) * .78))!important; }
}

/* Header CTA — no fill, only the outline glows: a mint→blue light runs around the border. Hover keeps the solid white fill. */
.vt-site-cta { position:relative; isolation:isolate; color:#eef2fa!important;
  background:transparent!important; border-color:rgba(255,255,255,.12)!important;
  box-shadow:0 0 14px -4px rgba(var(--vt-light-mint),.35); }
.vt-site-cta::before { content:''; position:absolute; inset:-1px; z-index:1; padding:1px; border-radius:inherit; pointer-events:none;
  background:conic-gradient(from var(--vt-cta-angle),
    transparent 0deg, rgba(var(--vt-light-mint),.0) 30deg, rgb(var(--vt-light-mint)) 80deg, rgb(var(--vt-light-blue-hi)) 120deg, transparent 170deg,
    transparent 190deg, rgba(var(--vt-light-blue),.0) 210deg, rgb(var(--vt-light-blue)) 260deg, rgb(var(--vt-light-mint-hi)) 300deg, transparent 350deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation:vtCtaSpin 4.5s linear infinite; transition:opacity .25s ease; }
@keyframes vtCtaSpin { to { --vt-cta-angle:360deg; } }
.vt-site-cta:hover, .vt-site-cta:focus-visible { background:#ffffff!important; color:#08090b!important; border-color:#ffffff!important; box-shadow:0 0 18px -4px rgba(255,255,255,.35); }
.vt-site-cta:hover::before, .vt-site-cta:focus-visible::before { opacity:0; }
@media (prefers-reduced-motion:reduce) { .vt-site-cta::before { animation:none; --vt-cta-angle:40deg; } }

/* Glow outline v2 — one comet-like beam; shared by header CTA and the closing CTA. The dim base outline is part of the ring. */
.vt-site-cta, #contact a.vt-slide-btn { border-color:transparent!important; }
.vt-site-cta::before, #contact a.vt-slide-btn::before { content:''; position:absolute; z-index:2; padding:1px; border-radius:inherit; pointer-events:none;
  background:conic-gradient(from var(--vt-cta-angle),
    rgba(255,255,255,.14) 0deg, rgba(255,255,255,.14) 220deg, rgba(var(--vt-light-blue),.9) 285deg,
    rgb(var(--vt-light-mint)) 330deg, rgb(var(--vt-light-mint-hi)) 354deg, rgba(255,255,255,.14) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation:vtCtaSpin 4.5s linear infinite; transition:opacity .25s ease; }
.vt-site-cta::before { inset:-1px; }
#contact a.vt-slide-btn::before { inset:0; }
/* Closing CTA in the same style: transparent, light label, ghost arrow tile; hover → solid white. */
#contact a.vt-slide-btn { background:transparent!important; color:#eef2fa!important; box-shadow:0 0 16px -4px rgba(var(--vt-light-mint),.35)!important; }
#contact a.vt-slide-btn .vt-slide-fill { background:rgba(255,255,255,.1); transition:width .22s var(--vt-ease-out), top .22s var(--vt-ease-out), right .22s var(--vt-ease-out), bottom .22s var(--vt-ease-out), border-radius .22s ease, background .22s ease!important; }
#contact a.vt-slide-btn .vt-slide-icon { color:#ffffff; transition:margin-right .22s var(--vt-ease-out), color .2s ease; }
#contact a.vt-slide-btn:focus-visible { background:#ffffff!important; border-color:transparent!important; }
#contact a.vt-slide-btn:focus-visible::before { opacity:0; }
#contact a.vt-slide-btn:focus-visible .vt-slide-fill { background:#ffffff; }
#contact a.vt-slide-btn:focus-visible .vt-slide-label, #contact a.vt-slide-btn:focus-visible .vt-slide-icon { color:#08090b; }
@media (hover:hover) and (pointer:fine) {
  #contact a.vt-slide-btn:hover { background:#ffffff!important; border-color:transparent!important; box-shadow:0 0 18px -4px rgba(255,255,255,.35)!important; }
  #contact a.vt-slide-btn:hover::before { opacity:0; }
  #contact a.vt-slide-btn:hover .vt-slide-fill { background:#ffffff; }
  #contact a.vt-slide-btn:hover .vt-slide-label, #contact a.vt-slide-btn:hover .vt-slide-icon { color:#08090b; }
}
@media (prefers-reduced-motion:reduce) { #contact a.vt-slide-btn::before { animation:none; --vt-cta-angle:40deg; } }

/* Step link = arrow only. */
.vt-step-link { border-bottom:0!important; padding:2px 0; font-size:22px; line-height:1; }
/* Designed line breaks never re-wrap on desktop: each line shrinks to fit its column (container units). */
@media(min-width:768px) {
  .vt-fit-box { container-type:inline-size; }
  .vt-fit-box .vt-fit { display:block; white-space:nowrap!important; font-size:max(14px, min(1em, calc(var(--fit) * 1cqi))); }
  .vt-fit-box[data-fit="sight"] .vt-fit { font-size:max(22px, min(1em, calc(var(--fit) * 1cqi))); }
  .vt-fit-box[data-fit="sight"] { container-name:fitsight; }
  .vt-fit-box[data-fit="market"] { container-name:fitmarket; }
  .vt-fit-box[data-fit="one"] { container-name:fitone; }
  .vt-hero-description span { white-space:nowrap; }
}

/* Fit lines: below the readable floor, wrap instead of shrinking further. */
@container fitsight (max-width:300px) { .vt-fit-box .vt-fit { white-space:normal!important; } }
@container fitmarket (max-width:452px) { .vt-fit-box .vt-fit { white-space:normal!important; } }
@container fitone (max-width:360px) { .vt-fit-box .vt-fit { white-space:normal!important; } }
/* VT MARKET intro: stack heading + copy below 1440px so the paragraph gets the full width. */
@media(min-width:768px) and (max-width:1439px) {
  #vtmarket > .vt-section-inner { grid-template-columns:minmax(0,1fr)!important; }
  #vtmarket > .vt-section-inner > * { grid-column:1!important; }
}

/* Accent roles: #1D62EB = primary / selected · #A9C5FF = emphasis text & icons on dark · white = titles & key numbers · gray/blue-gray = copy & borders. */
.vt-rail-step[data-active] i { background:var(--vt-accent)!important; box-shadow:0 0 0 4px rgba(29,98,235,.28)!important; }
.vt-rail-step[data-done] i { background:rgba(169,197,255,.55)!important; }
.vt-rail-fill { background:linear-gradient(180deg,#A9C5FF,#1D62EB)!important; }
.vt-rail-step b, .vt-step-link span, .vt-service-layer[data-layer] > div::after { color:var(--vt-accent-soft)!important; }
a:focus-visible, button:focus-visible, input:focus-visible { outline-color:var(--vt-accent-soft)!important; }
.vtone-stats > div > span:first-child { color:#ffffff!important; }

/* 三層服務 stack — the label column no longer sets the row height, so on laptops (art width-bound, smaller)
   the gaps between boxes stay equal to --vt-layer-gap instead of the label's text height. */
.vt-service-layer { align-items:center!important; }
.vt-service-layer > div { height:0!important; display:flex!important; flex-direction:column; justify-content:center; overflow:visible; }

/* Header nav — sibling focus: hovering (or keyboard-focusing) one link dims the others. No colour change.
   Padding instead of gap so the hover state survives the space between items. */
.vt-site-nav { --nav-pad:calc(clamp(10px,1.6vw,28px) / 2); gap:0!important; overflow:visible!important; }
.vt-site-nav > a { display:inline-flex; align-items:center; min-height:44px; padding:0 var(--nav-pad); color:var(--vt-copy);
  transition:opacity .2s ease-out, color .2s ease-out; touch-action:manipulation; outline:none; border-radius:4px; }
.vt-site-nav > a:focus-visible { box-shadow:0 0 0 2px var(--vt-accent-soft); }
@media (hover:hover) and (pointer:fine) {
  .vt-site-nav:has(> a:hover) > a:not(:hover) { opacity:.3; }
  .vt-site-nav > a:hover { color:#ffffff; }
}
.vt-site-nav:has(> a:focus-visible) > a:not(:focus-visible) { opacity:.3; }
.vt-site-nav > a:focus-visible { color:#ffffff; }
@media(max-width:767px) { .vt-site-nav { --nav-pad:4px; } }
@media (prefers-reduced-motion:reduce) { .vt-site-nav > a { transition:none; } }

/* Hero — monitor sits lower (2× gap) and 20% smaller when the scroll scene is off (reduced motion / short screens). */
@media(min-width:768px) {
  .vt-hero:not(.has-scroll-scene) .vt-hero-content > vt-hero-demo { width:min(61%,960px)!important; margin-top:80px!important; }
  /* Label optically aligned to the headline's glyph edge (large CJK glyphs carry a wider side bearing). */
  .vt-hero h1 span { letter-spacing:.06em!important; text-indent:0!important; transform:none!important;
    margin-left:calc((var(--vt-display-size) - 1em) * .05); }
}

/* 三層服務 — wider copy column; each step description sits on one line, shrinking to a 14px floor before wrapping. */
@media(min-width:768px) {
  .vt-architecture-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)!important; }
  .vt-step-panels { container-type:inline-size; container-name:steps; }
  .vt-step-copy p.vt-step-desc { max-width:none!important; white-space:nowrap!important; text-wrap:nowrap!important; font-size:clamp(13px, calc(100cqi / var(--len)), 16px)!important; }
}
@container steps (max-width:560px) { .vt-step-copy p.vt-step-desc { white-space:normal!important; text-wrap:pretty!important; } }

/* Layer labels never wrap (wrapping made them collide with the neighbouring layer's label). */
.vt-service-layer > div > span { white-space:nowrap!important; }

/* 三層服務 step copy — 1b "Large Numeral": a big thin number leads each step; divider; larger copy. */
.vt-step-panels { container-type:inline-size; container-name:steps; min-height:clamp(250px,32vh,380px)!important; }
.vt-step-copy { display:grid!important; grid-template-columns:auto 1px minmax(0,1fr); column-gap:clamp(20px,2.4vw,40px); row-gap:clamp(10px,1.2vh,16px)!important; align-content:start; }
.vt-step-copy::before { content:''; grid-column:2; grid-row:1 / span 5; align-self:stretch; width:1px; margin-block:6px; background:rgba(255,255,255,.1); }
.vt-step-copy > div:first-child { display:contents!important; }
.vt-step-copy > div:first-child > span { grid-column:1; grid-row:1 / span 5; align-self:center; display:flex; flex-direction:column; gap:10px;
  font-size:clamp(56px,6.2vw,108px)!important; font-weight:200!important; line-height:.9!important; letter-spacing:-.02em!important; color:var(--vt-accent-soft)!important; }
.vt-step-copy:nth-child(1) > div:first-child > span::after { content:'OF 03'; }
.vt-step-copy:nth-child(2) > div:first-child > span::after { content:'OF 03'; }
.vt-step-copy:nth-child(3) > div:first-child > span::after { content:'OF 03'; }
.vt-step-copy > div:first-child > span::after { font-size:12px; font-weight:400; line-height:1; letter-spacing:.2em; color:#5c6577; }
.vt-step-copy > *:not(div:first-child) , .vt-step-copy h3 { grid-column:3; }
.vt-step-copy h3 { font-size:clamp(30px,2.6vw,44px)!important; letter-spacing:.03em!important; color:#ffffff!important; }
.vt-step-copy p:first-of-type { font-size:clamp(15px,1.15vw,18px)!important; }
.vt-step-copy p.vt-step-desc { font-size:clamp(17px,1.35vw,21px)!important; line-height:1.8!important; white-space:normal!important; text-wrap:pretty!important; max-width:32em!important; }
.vt-step-link { grid-column:3; justify-self:start; }
@media(min-width:768px) {
  /* One line when the column allows it; otherwise wrap at the larger size rather than shrinking. */
  @container steps (min-width:860px) { .vt-step-copy p.vt-step-desc { white-space:nowrap!important; text-wrap:nowrap!important; max-width:none!important;
    font-size:clamp(16px, calc((100cqi - 200px) / var(--len)), 21px)!important; } }
}
@media(max-width:767px) {
  .vt-step-copy { column-gap:16px; }
  .vt-step-copy > div:first-child > span { font-size:52px!important; }
  .vt-step-copy h3 { font-size:28px!important; }
  .vt-step-copy p.vt-step-desc { font-size:16px!important; }
}

/* VT ONE — remove the silhouette backlight around the tablet and phone. */
#vtone .vtone-mock > img { filter:none!important; }

/* 1b layout fix — proportions, spacing, alignment. */
/* Copies share one grid cell so the panel takes the tallest copy's height and centres against the stack. */
.vt-step-panels { display:grid!important; align-items:center; min-height:0!important; }
.vt-step-copy { position:relative!important; grid-area:1 / 1; left:auto!important; right:auto!important; top:auto!important; }
.vt-step-copy { column-gap:clamp(18px,2vw,32px); row-gap:clamp(8px,1vh,14px)!important; }
.vt-step-copy::before { grid-row:1 / span 4; margin-block:4px; }
.vt-step-copy > div:first-child > span { grid-row:1 / span 4; align-self:start; padding-top:.04em;
  font-size:clamp(52px,4.8vw,92px)!important; gap:12px; }
.vt-step-copy h3 { line-height:1.1!important; }
/* Break descriptions only between clauses — never inside a word. */
.vt-clause { white-space:nowrap; }
@media(max-width:767px) { .vt-clause { white-space:normal; } }
/* Left stack labels: tighter leading; arrow sits beside the label block instead of adding a line. */
.vt-service-layer > div { position:relative; }
.vt-service-layer > div > span { line-height:1.45!important; }
.vt-service-layer[data-layer] > div::after { position:absolute; left:0; top:calc(50% + 2.4em); margin:0; }
@media(max-width:767px) { .vt-step-copy { grid-area:auto!important; } .vt-step-panels { align-items:start; gap:32px!important; } }

/* ===== 三層服務 — option 1a: labels removed, connector line from the active box to its step number ===== */
.vt-service-layer > div { display:none!important; }
.vt-service-layer { position:relative; gap:0!important; }
@media(min-width:768px) {
  .vt-architecture-head { margin-bottom:0!important; padding-bottom:clamp(6px,1.2vh,14px)!important; }
  .vt-service-layer::before { content:''; position:absolute; top:50%; height:1px; pointer-events:none;
    left:calc(50% + var(--vt-art-width) / 2 + 14px);
    right:calc(-1 * (clamp(36px,6vw,88px) + clamp(4px,1vw,20px)));
    background:linear-gradient(90deg,rgba(29,98,235,.95),rgba(29,98,235,.25));
    opacity:0; transform:scaleX(.6); transform-origin:0 50%;
    transition:opacity .3s ease, transform .35s var(--vt-ease-out); }
  .vt-service-layer[data-active]::before { opacity:1; transform:none; }
  .vt-service-layer::after { content:''; position:absolute; top:50%; width:7px; height:7px; margin-top:-3.5px; border-radius:50%;
    left:calc(50% + var(--vt-art-width) / 2 + 10px); background:#1D62EB; box-shadow:0 0 0 4px rgba(29,98,235,.22);
    opacity:0; transition:opacity .3s ease; pointer-events:none; }
  .vt-service-layer[data-active]::after { opacity:1; }
  .vt-architecture-grid > div, .vt-architecture-sticky, .vt-service-stack { overflow:visible!important; }
}
@media (prefers-reduced-motion:reduce) { .vt-service-layer::before { transition:opacity .2s ease; transform:none; } }

/* Step copy — more air between numeral and text; description scales with viewport (laptop ~16px → monitor 21px). */
.vt-step-copy { column-gap:clamp(28px,3.2vw,56px)!important; }
.vt-step-copy p.vt-step-desc { font-size:clamp(15px,calc(.55vw + 8.5px),21px)!important; }
.vt-step-copy p:first-of-type { font-size:clamp(14px,calc(.3vw + 10px),18px)!important; }
.vt-step-copy h3 { font-size:clamp(28px,calc(1.4vw + 12px),44px)!important; }
.vt-service-layer::before { right:calc(-1 * (clamp(36px,6vw,88px) + clamp(4px,1vw,20px)) + 4px); }

.vt-footer-logo { display:block; width:clamp(98px,8.4vw,126px); height:auto; max-width:100%; }
.vt-footer-brand { display:flex; align-items:center; gap:clamp(18px,2vw,28px); min-width:0; }
.vt-footer-brand .vt-footer-logo { flex:none; }
.vt-footer-copyright { font-family:'Roboto','PingFang TC',sans-serif; font-size:12.5px; line-height:1.85; color:#71767f; }
@media(max-width:480px) {
  .vt-footer-brand { gap:14px; }
  .vt-footer-copyright { font-size:11px; }
}
.vt-footer-layout { grid-template-columns:minmax(0,1fr) auto!important; }
.vt-footer-contact { display:flex; flex-direction:column; gap:12px; text-align:right; }
.vt-footer-row { display:flex; justify-content:flex-end; gap:24px; }
.vt-footer-row a { white-space:nowrap; }
.vt-footer-contact a { transition:opacity .2s ease-out,color .2s ease-out; }
@media(hover:hover) and (pointer:fine) {
  .vt-footer-contact:has(a:hover) a:not(:hover) { opacity:.3; }
  .vt-footer-contact a:hover { color:#fff!important; opacity:1; }
}
.vt-footer-contact:has(a:focus-visible) a:not(:focus-visible) { opacity:.3; }
.vt-footer-contact a:focus-visible { color:#fff!important; opacity:1; }
@media(prefers-reduced-motion:reduce) { .vt-footer-contact a { transition:none; } }
@media(max-width:900px) {
  .vt-footer-layout { grid-template-columns:minmax(0,1fr)!important; gap:28px!important; }
  .vt-footer-contact { text-align:left; }
  .vt-footer-row { justify-content:flex-start; gap:clamp(12px,3vw,24px); }
}
@media(max-width:380px) { .vt-footer-row a { font-size:12px!important; } }

/* Section navigation: bare labels and independent position dots. */
.vt-rail-track,.vt-rail-fill { display:none!important; }
.vt-rail,.vt-rail-step span {
  background:transparent!important; border:0!important; box-shadow:none!important;
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
}
.vt-rail-step span { border-radius:0; padding-inline:0; }

/* BUILD: place the explanation beside the main heading, below the eyebrow. */
#vtbuild .vt-section-heading { align-items:start!important; }
@media(min-width:768px) {
  #vtbuild .vt-section-heading { grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important; }
  #vtbuild .vt-section-heading > div:last-child { padding-top:46px; }
}

/* VT ONE: a shared editorial composition, with the original font family. */
#vtone .vtone-layout {
  grid-template-columns:minmax(0,1.18fr) minmax(0,1fr)!important;
  column-gap:clamp(24px,3vw,44px)!important;
  row-gap:clamp(36px,4vw,56px)!important;
  align-items:center;
}
#vtone .vt-section-copy { min-width:0; gap:24px!important; padding-block:12px; }
#vtone h2 {
  font-size:clamp(32px,3.35vw,46px)!important;
  line-height:1.4!important; letter-spacing:.015em; color:#f4f5f7!important;
}
#vtone p.vtone-description {
  max-width:29em; font-size:clamp(16px,1.18vw,18px)!important;
  line-height:1.95!important; color:#c4cddd!important;
  text-wrap:pretty;
}
#vtone .vtone-static-preview { margin:0; width:100%; min-width:0; align-self:center; }
#vtone .vtone-mock::before { opacity:.18; }
#vtone .vtone-ambient { opacity:.55; }
#vtone .vtone-stats {
  grid-column:1/-1; display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0!important; margin:0!important; padding:28px 0 0!important;
  border-top:1px solid rgba(169,197,255,.18);
  font-family:'Roboto','PingFang TC',sans-serif;
}
#vtone .vtone-stats > div {
  display:flex; align-items:baseline; flex-wrap:wrap;
  gap:10px 20px; min-width:0; padding:0 28px;
}
#vtone .vtone-stats > div:first-child { padding-left:0; }
#vtone .vtone-stats > div + div { border-left:1px solid rgba(169,197,255,.12); }
#vtone .vtone-stats > div > span:first-child {
  font-size:clamp(25px,2.2vw,32px)!important;
  font-weight:500; line-height:1.25; letter-spacing:-.02em;
}
#vtone .vtone-stats > div > span:last-child {
  font-size:12px!important; line-height:1.6; letter-spacing:.08em!important;
  color:#a9b8ce!important;
}
@media(max-width:1099px) and (min-width:768px) {
  #vtone h2 { font-size:clamp(29px,3.65vw,40px)!important; }
  #vtone .vtone-stats > div { flex-direction:column; gap:8px; padding-inline:24px; }
}
@media(max-width:767px) {
  #vtone .vtone-layout { grid-template-columns:1fr!important; row-gap:32px!important; }
  #vtone .vt-section-copy { padding:0; gap:20px!important; }
  #vtone h2 { font-size:clamp(27px,6.4vw,40px)!important; }
  #vtone .vtone-static-preview { width:94%; max-width:520px; justify-self:center; }
  #vtone .vtone-stats { padding-top:24px!important; }
  #vtone .vtone-stats > div { flex-direction:column; gap:8px; padding-inline:14px; }
  #vtone .vtone-stats > div > span:last-child { letter-spacing:.025em!important; overflow-wrap:normal; }
}

/* v77 — 1. hero CTA: white ring 40% thinner */
.vt-hero-cta.vt-slide-btn { --pad:calc(clamp(3.5px,.28vw,4.2px) * .6); }
/* 3. closing CTA: white arrow tile with black arrow inside the dark button */
#contact a.vt-slide-btn .vt-slide-fill { background:#ffffff; }
#contact a.vt-slide-btn .vt-slide-icon { color:#08090b; }
/* 4. footer: both two-line blocks share one line box and are centred together */
.vt-footer-layout { align-items:center!important; }
.vt-footer-copyright { line-height:23px; }
.vt-footer-contact { gap:0!important; }
.vt-footer-row { line-height:23px; }
/* 5. header: 40% dark tint, light blur keeps the nav readable */
.vt-site-header { background:rgba(8,9,11,.4)!important; backdrop-filter:blur(14px) saturate(1.2)!important; -webkit-backdrop-filter:blur(14px) saturate(1.2)!important; }

/* v78 — SIGHT / BUILD / MARKET glass rim 50% thinner */
.vt-glass-frame, .vt-glass-frame.vt-market-glass { padding:clamp(4px,.45vw,7px)!important; }
@media(max-width:767px) { .vt-glass-frame, .vt-glass-frame.vt-market-glass { padding:3px!important; } }

/* v79 — slide CTA: one clip-path reveal instead of animating width/top/right/bottom + icon offset (smooth, no jump) */
.vt-slide-btn .vt-slide-fill { left:0!important; right:0!important; top:0!important; bottom:0!important; width:auto!important; border-radius:7px!important;
  clip-path:inset(var(--pad) var(--pad) var(--pad) calc(100% - var(--tile) - var(--pad)) round 5px);
  transition:clip-path .45s cubic-bezier(.22,1,.36,1), background-color .3s ease!important; will-change:clip-path; }
.vt-slide-btn:hover .vt-slide-fill, .vt-slide-btn:focus-visible .vt-slide-fill { width:auto!important; top:0!important; right:0!important; bottom:0!important; clip-path:inset(0 0 0 0 round 7px); }
.vt-slide-btn .vt-slide-icon, .vt-slide-btn:hover .vt-slide-icon, .vt-slide-btn:focus-visible .vt-slide-icon { margin-right:calc((var(--tile) - var(--ico)) / 2 + var(--pad))!important; transition:color .3s ease!important; }
.vt-slide-btn .vt-slide-label, .vt-slide-btn:hover .vt-slide-label { left:0!important; transition:color .3s ease .04s!important; }
.vt-slide-btn { transition:border-color .3s ease, box-shadow .3s ease, background-color .3s ease, transform .14s var(--vt-ease-out)!important; }
@media (prefers-reduced-motion:reduce) { .vt-slide-btn .vt-slide-fill { transition:none!important; } }
/* v79 — dashboard glass rims: concentric radius (inner 6px + rim) */
.vt-glass-frame, .vt-glass-frame.vt-market-glass { border-radius:calc(6px + clamp(4px,.45vw,7px))!important; }
.vt-glass-frame iframe { border-radius:6px!important; }
@media(max-width:767px) { .vt-glass-frame, .vt-glass-frame.vt-market-glass { border-radius:8px!important; } .vt-glass-frame iframe { border-radius:5px!important; } }
/* v79 — closing CTA label larger + bolder */
#contact a.vt-slide-btn { font-size:clamp(17px,1.35vw,21px)!important; font-weight:600!important; }

/* v80 — hero CTA: no white border ring; one surface that turns black with the reveal */
.vt-hero-cta.vt-slide-btn { border:0!important; padding:calc(var(--pad) + 1px)!important; background-color:#ffffff!important; transition:background-color 0s, box-shadow .3s ease, transform .14s var(--vt-ease-out)!important; }
/* Surface turns black only after the reveal finishes, so no grey mid-fade and no white corner fringe. */
.vt-hero-cta.vt-slide-btn:hover, .vt-hero-cta.vt-slide-btn:focus-visible { background-color:#08090b!important; transition:background-color 0s linear .4s, box-shadow .3s ease, transform .14s var(--vt-ease-out)!important; }
.vt-hero-cta.vt-slide-btn .vt-slide-fill { clip-path:inset(calc(var(--pad) + 1px) calc(var(--pad) + 1px) calc(var(--pad) + 1px) calc(100% - var(--tile) - var(--pad) - 1px) round 5px); }
.vt-hero-cta.vt-slide-btn:hover .vt-slide-fill, .vt-hero-cta.vt-slide-btn:focus-visible .vt-slide-fill { clip-path:inset(0 0 0 0 round 8px); }
.vt-hero-cta.vt-slide-btn .vt-slide-fill { border-radius:8px!important; }
.vt-hero-cta.vt-slide-btn .vt-slide-icon { margin-right:calc((var(--tile) - var(--ico)) / 2 + var(--pad) + 1px)!important; }



/* v82 — one CTA system. Hero: white surface, black tile + label → hover black. Closing: dark surface + glow ring, white tile → hover white.
   Closing CTA copies the hero's height and type. */
#contact a.vt-slide-btn, #contact a.vt-slide-btn--lg { --tile:clamp(30px,2.3vw,36px); --pad:calc(clamp(3.5px,.28vw,4.2px) * .6); --ico:clamp(14px,1.05vw,17px);
  font-size:clamp(14px,1.05vw,17px)!important; font-weight:500!important; letter-spacing:.03em!important; }
.vt-hero-cta.vt-slide-btn { font-size:clamp(14px,1.05vw,17px)!important; font-weight:500!important; letter-spacing:.03em!important; }

/* v82 — VT MARKET laid out like VT BUILD: heading + copy on top, full-width store below */
#vtmarket > .vt-section-inner { display:block!important; }
#vtmarket .vt-market-heading { display:grid!important; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:clamp(32px,4vw,64px)!important; row-gap:22px!important; max-width:none!important; padding-bottom:44px!important; align-items:start; }
#vtmarket .vt-market-heading > .vt-eyebrow { grid-column:1!important; grid-row:1!important; }
#vtmarket .vt-market-heading > h2 { grid-column:1!important; grid-row:2!important; }
#vtmarket .vt-market-heading > p { grid-column:2!important; grid-row:2!important; font-size:clamp(15px,1.2vw,18px)!important; font-weight:300; line-height:2.1!important; }
#vtmarket .vt-market-notes { grid-column:2!important; grid-row:3!important; padding:16px 0 0!important; border-left:0!important; border-top:1px solid var(--vt-rule); }
#vtmarket .vt-market-glass { box-sizing:border-box; max-width:none!important; }
@media(max-width:767px) {
  #vtmarket .vt-market-heading { grid-template-columns:1fr; }
  #vtmarket .vt-market-heading > * { grid-column:1!important; grid-row:auto!important; }
}

/* v83 — market note: tighter to the copy above, accent-tinted */
#vtmarket .vt-market-notes { margin-top:-10px!important; padding-top:12px!important; color:#A9C5FF!important; border-top-color:rgba(169,197,255,.22)!important; }

/* v85 — closing CTA: static hairline, no rotating beam */
#contact a.vt-slide-btn::before { animation:none!important; background:rgba(255,255,255,.24)!important; }

/* v86 — floating contact tab + inquiry panel */
.vt-contact-tab { position:fixed; right:0; bottom:clamp(72px,12vh,120px); z-index:70; display:flex; align-items:center; gap:10px; padding:16px 10px; border:0; border-radius:8px 0 0 8px;
  background:#ffffff; color:#08090b; cursor:pointer; writing-mode:vertical-rl; font:500 13px/1 'Roboto','PingFang TC',sans-serif; letter-spacing:.2em;
  box-shadow:-8px 10px 26px -12px rgba(0,0,0,.6); transition:transform .3s var(--vt-ease-out), background-color .25s ease, color .25s ease; }
.vt-contact-tab svg { transform:none; }
@media (hover:hover) and (pointer:fine) { .vt-contact-tab:hover { transform:translateX(-3px); } }
.vt-contact-tab:active { transform:scale(.97); }
.vt-contact-tab:focus-visible { outline:2px solid #A9C5FF; outline-offset:3px; }
html.vt-contact-open .vt-contact-tab { background:#08090b; color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); }
.vt-contact-panel { position:fixed; right:clamp(52px,4.5vw,64px); bottom:clamp(24px,6vh,56px); z-index:71; width:min(340px,calc(100vw - 72px)); box-sizing:border-box;
  display:flex; flex-direction:column; gap:14px; padding:20px; border-radius:12px; font-family:'Roboto','PingFang TC',sans-serif;
  background:rgba(16,21,33,.94); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), 0 24px 60px -20px rgba(0,0,0,.8);
  animation:vtCpIn .32s var(--vt-ease-out); }
.vt-contact-panel[hidden] { display:none; }
@keyframes vtCpIn { from { opacity:0; transform:translateY(8px) scale(.98); } }
.vt-cp-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.vt-cp-head b { font-size:16px; font-weight:600; color:#fff; }
.vt-cp-head p, .vt-cp-done p { margin:4px 0 0; font-size:12px; line-height:1.6; color:#8e9bb0; }
.vt-cp-close { width:28px; height:28px; flex:none; border:0; border-radius:6px; background:rgba(255,255,255,.06); color:#bac4d5; cursor:pointer; font-size:16px; line-height:1; }
.vt-cp-form { display:flex; flex-direction:column; gap:10px; }
.vt-cp-form[hidden] { display:none; }
.vt-cp-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.vt-cp-form label { display:flex; flex-direction:column; gap:5px; min-width:0; font-size:11px; letter-spacing:.04em; color:#8e9bb0; }
.vt-cp-form input, .vt-cp-form textarea { width:100%; box-sizing:border-box; padding:9px 10px; border:0; border-radius:6px; background:rgba(255,255,255,.06); box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
  color:#fff; font:400 13px/1.4 'Roboto','PingFang TC',sans-serif; outline:none; resize:none; transition:box-shadow .2s ease; }
.vt-cp-form input:focus, .vt-cp-form textarea:focus { box-shadow:inset 0 0 0 1px #1D62EB, 0 0 0 3px rgba(29,98,235,.22); }
.vt-cp-form input::placeholder, .vt-cp-form textarea::placeholder { color:#5f6b80; }
.vt-cp-submit { height:40px; margin-top:4px; border:0; border-radius:7px; background:#ffffff; color:#08090b; font:500 14px/1 'Roboto','PingFang TC',sans-serif; letter-spacing:.04em; cursor:pointer; transition:background-color .2s ease, transform .14s var(--vt-ease-out); }
.vt-cp-submit:hover { background:#e6ecf7; } .vt-cp-submit:active { transform:scale(.98); }
.vt-cp-done { display:flex; flex-direction:column; gap:6px; padding:16px 2px 6px; }
.vt-cp-done[hidden] { display:none; }
.vt-cp-done span { width:28px; height:28px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#1D62EB; color:#fff; font-size:14px; }
.vt-cp-done b { font-size:15px; font-weight:500; color:#fff; margin-top:4px; }
@media (max-width:767px) {
  .vt-contact-tab { bottom:84px; padding:12px 8px; font-size:12px; gap:8px; }
  .vt-contact-panel { right:12px; left:12px; width:auto; bottom:12px; }
  .vt-cp-row { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .vt-contact-panel { animation:none; } .vt-contact-tab { transition:none; } }

/* v87 — booking modal (light, centred, two-column) — distinct from the dark 聯絡我們 panel */
html.vt-book-open { overflow:hidden; }
.vt-book { position:fixed; inset:0; z-index:90; display:grid; place-items:center; padding:clamp(12px,3vw,32px); font-family:'Roboto','PingFang TC',sans-serif; }
.vt-book[hidden] { display:none; }
.vt-book-scrim { position:absolute; inset:0; background:rgba(4,6,10,.62); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); opacity:0; transition:opacity .25s ease; }
.vt-book-card { position:relative; display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.5fr); width:min(880px,100%); max-height:calc(100svh - 24px); overflow:auto;
  border-radius:14px; background:#ffffff; color:#17243b; box-shadow:0 40px 100px -30px rgba(0,0,0,.7);
  opacity:0; transform:translateY(14px) scale(.98); transition:opacity .28s var(--vt-ease-out), transform .36s var(--vt-ease-out); }
.vt-book.is-in .vt-book-scrim { opacity:1; } .vt-book.is-in .vt-book-card { opacity:1; transform:none; }
.vt-book-side { display:flex; flex-direction:column; gap:18px; padding:clamp(24px,3vw,36px); background:#0d1220; color:#e6ecf7; }
.vt-book-eyebrow { font-size:11px; letter-spacing:.24em; color:#A9C5FF; }
.vt-book-side h2 { margin:0; font-size:clamp(22px,2.2vw,28px); font-weight:600; line-height:1.35; color:#fff; }
.vt-book-side ol { list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:16px; }
.vt-book-side li { display:flex; gap:14px; align-items:flex-start; }
.vt-book-side li b { font-size:20px; font-weight:200; line-height:1; color:#1D62EB; min-width:28px; }
.vt-book-side li span { display:flex; flex-direction:column; gap:3px; font-size:14px; color:#e6ecf7; }
.vt-book-side li small { font-size:12px; color:#8e9bb0; }
.vt-book-side p { margin:auto 0 0; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); font-size:12px; color:#8e9bb0; }
.vt-book-main { position:relative; padding:clamp(24px,3vw,36px); }
.vt-book-x { position:absolute; top:14px; right:14px; width:32px; height:32px; border:0; border-radius:8px; background:#f2f4f8; color:#46546b; font-size:18px; line-height:1; cursor:pointer; }
.vt-book-x:hover { background:#e6eaf2; }
.vt-book-form { display:flex; flex-direction:column; gap:20px; }
.vt-book-form[hidden] { display:none; }
.vt-book-form fieldset { margin:0; padding:0; border:0; display:flex; flex-direction:column; gap:10px; }
.vt-book-form legend { padding:0; margin-bottom:10px; font-size:12px; letter-spacing:.04em; color:#69788e; }
.vt-book-chips { display:flex; flex-wrap:wrap; gap:8px; padding-right:36px; }
.vt-book-chips label { position:relative; cursor:pointer; }
.vt-book-chips input { position:absolute; opacity:0; pointer-events:none; }
.vt-book-chips span { display:inline-flex; align-items:center; height:32px; padding:0 13px; border-radius:6px; font-size:12.5px; letter-spacing:.04em; color:#46546b; background:#f2f4f8; box-shadow:inset 0 0 0 1px #dfe5ee; transition:background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.vt-book-chips input:checked + span { background:#1D62EB; color:#fff; box-shadow:none; }
.vt-book-chips input:focus-visible + span { box-shadow:0 0 0 3px rgba(29,98,235,.3); }
.vt-book-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 14px; }
.vt-book-grid .is-wide { grid-column:1 / -1; }
.vt-book-grid label { display:flex; flex-direction:column; gap:6px; min-width:0; font-size:12px; letter-spacing:.03em; color:#69788e; }
.vt-book-grid input, .vt-book-grid textarea { width:100%; box-sizing:border-box; padding:10px 0; border:0; border-bottom:1px solid #d5dce8; border-radius:0; background:transparent;
  font:400 14px/1.5 'Roboto','PingFang TC',sans-serif; color:#17243b; outline:none; resize:none; transition:border-color .2s ease; }
.vt-book-grid input:focus, .vt-book-grid textarea:focus { border-bottom-color:#1D62EB; }
.vt-book-grid textarea::placeholder { color:#a3adbd; }
.vt-book-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:4px; }
.vt-book-foot span { font-size:11.5px; color:#8e9bb0; }
.vt-book-foot button, .vt-book-done button { height:44px; padding:0 22px; border:0; border-radius:8px; background:#08090b; color:#fff; font:500 14px/1 'Roboto','PingFang TC',sans-serif; letter-spacing:.04em; cursor:pointer; transition:background-color .2s ease, transform .14s var(--vt-ease-out); }
.vt-book-foot button:hover, .vt-book-done button:hover { background:#1D62EB; }
.vt-book-foot button:active, .vt-book-done button:active { transform:scale(.97); }
.vt-book-done { display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:40px 0 10px; }
.vt-book-done[hidden] { display:none; }
.vt-book-done > span { width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#1D62EB; color:#fff; font-size:16px; }
.vt-book-done h3 { margin:6px 0 0; font-size:20px; font-weight:600; }
.vt-book-done p { margin:0 0 12px; font-size:13.5px; line-height:1.7; color:#69788e; max-width:360px; }
@media (max-width:767px) {
  .vt-book { padding:0; align-items:end; }
  .vt-book-card { grid-template-columns:1fr; border-radius:14px 14px 0 0; max-height:92svh; }
  .vt-book-side { padding:22px 22px 18px; gap:10px; } .vt-book-side ol, .vt-book-side p { display:none; }
  .vt-book-main { padding:22px; } .vt-book-x { background:rgba(255,255,255,.1); color:#fff; top:-46px; right:12px; }
  .vt-book-grid { grid-template-columns:1fr; } .vt-book-foot { flex-direction:column-reverse; align-items:stretch; } .vt-book-foot span { text-align:center; }
}
@media (prefers-reduced-motion:reduce) { .vt-book-card, .vt-book-scrim { transition:none; } }

/* v88 — closing CTA label: undo the legacy "#contact a span" 12px/.8 rule so it matches the hero CTA exactly */
#contact a.vt-slide-btn span, #contact a.vt-slide-btn .vt-slide-label { font-size:inherit!important; letter-spacing:inherit!important; opacity:1!important; }
#contact a.vt-slide-btn { font-size:clamp(14px,1.05vw,17px)!important; font-weight:500!important; letter-spacing:.03em!important; }

/* v89 — booking modal refined: near-black side, tighter radii, quieter accents */
.vt-book-scrim { background:rgba(0,0,0,.72)!important; backdrop-filter:blur(3px)!important; -webkit-backdrop-filter:blur(3px)!important; }
.vt-book-card { border-radius:8px!important; box-shadow:0 0 0 1px rgba(255,255,255,.06), 0 40px 90px -30px rgba(0,0,0,.85)!important; background:#fafbfc!important; color:#0b0c0f!important; }
.vt-book-side { background:#0b0c0f!important; border-right:1px solid rgba(255,255,255,.06); gap:20px!important; }
.vt-book-eyebrow { font-size:10.5px!important; letter-spacing:.26em!important; color:#8e9bb0!important; }
.vt-book-side h2 { font-weight:500!important; letter-spacing:.02em; }
.vt-book-side ol { gap:0!important; border-top:1px solid rgba(255,255,255,.08); }
.vt-book-side li { gap:16px!important; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.vt-book-side li b { font-size:11px!important; font-weight:500!important; letter-spacing:.14em; color:#6f7a8c!important; min-width:22px!important; padding-top:3px; }
.vt-book-side li span { font-size:13.5px!important; }
.vt-book-side li small { font-size:11.5px!important; color:#6f7a8c!important; }
.vt-book-side p { border-top:0!important; padding-top:0!important; letter-spacing:.02em; color:#6f7a8c!important; }
.vt-book-x { width:28px!important; height:28px!important; border-radius:4px!important; background:transparent!important; color:#69707c!important; box-shadow:inset 0 0 0 1px #e1e4ea; font-size:16px!important; }
.vt-book-x:hover { color:#0b0c0f!important; box-shadow:inset 0 0 0 1px #0b0c0f; }
.vt-book-form legend, .vt-book-grid label { color:#5b6371!important; letter-spacing:.06em!important; font-size:11.5px!important; }
.vt-book-chips { gap:6px!important; }
.vt-book-chips span { height:30px!important; padding:0 12px!important; border-radius:4px!important; background:#fff!important; color:#3a414d!important; box-shadow:inset 0 0 0 1px #d9dde4!important; font-size:12px!important; letter-spacing:.06em!important; }
.vt-book-chips label:hover span { box-shadow:inset 0 0 0 1px #9aa2ae!important; }
.vt-book-chips input:checked + span { background:#0b0c0f!important; color:#fff!important; box-shadow:inset 0 0 0 1px #0b0c0f!important; }
.vt-book-chips input:focus-visible + span { box-shadow:inset 0 0 0 1px #0b0c0f, 0 0 0 3px rgba(29,98,235,.28)!important; }
.vt-book-grid input, .vt-book-grid textarea { border-bottom-color:#d3d7de!important; color:#0b0c0f!important; }
.vt-book-grid input:focus, .vt-book-grid textarea:focus { border-bottom-color:#0b0c0f!important; }
.vt-book-foot { border-top:1px solid #e6e8ec; padding-top:18px!important; }
.vt-book-foot span { color:#7c8491!important; }
.vt-book-foot button, .vt-book-done button { height:42px!important; border-radius:6px!important; background:#0b0c0f!important; font-weight:500!important; letter-spacing:.06em!important; }
.vt-book-foot button:hover, .vt-book-done button:hover { background:#1f232b!important; }
.vt-book-done > span { width:32px!important; height:32px!important; border-radius:4px!important; background:#0b0c0f!important; font-size:14px!important; }
.vt-book-done h3 { font-weight:500!important; }
.vt-book-done p { color:#5b6371!important; }
@media (max-width:767px) { .vt-book-card { border-radius:10px 10px 0 0!important; } .vt-book-x { color:#c9ced6!important; box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)!important; } }

/* v91 — booking modal tied back to the site: navy-black side, cool navy-tinted form surface (as VT SIGHT) */
.vt-book-card { background:radial-gradient(120% 80% at 100% 0%,rgba(29,98,235,.07),transparent 55%),linear-gradient(180deg,#f5f7fc 0%,#eaeff8 100%)!important; color:#111a2e!important; }
.vt-book-side { background:radial-gradient(120% 70% at 0% 0%,rgba(29,98,235,.22),transparent 60%),linear-gradient(165deg,#121b31 0%,#0b101d 100%)!important; border-right:1px solid rgba(169,197,255,.08)!important; }
.vt-book-eyebrow { color:#A9C5FF!important; opacity:.85; }
.vt-book-side ol, .vt-book-side li { border-color:rgba(169,197,255,.1)!important; }
.vt-book-side li b { color:#7d93c4!important; }
.vt-book-side li small, .vt-book-side p { color:#7c89a3!important; }
.vt-book-x { box-shadow:inset 0 0 0 1px #d3dbea!important; color:#5d6a82!important; }
.vt-book-x:hover { color:#111a2e!important; box-shadow:inset 0 0 0 1px #111a2e!important; }
.vt-book-form legend, .vt-book-grid label { color:#56637c!important; }
.vt-book-chips span { background:rgba(255,255,255,.7)!important; color:#2e3a52!important; box-shadow:inset 0 0 0 1px #d3dbea!important; }
.vt-book-chips label:hover span { box-shadow:inset 0 0 0 1px #8f9fbf!important; }
.vt-book-chips input:checked + span { background:#121b31!important; color:#fff!important; box-shadow:inset 0 0 0 1px #121b31!important; }
.vt-book-grid input, .vt-book-grid textarea { border-bottom-color:#cdd5e4!important; color:#111a2e!important; }
.vt-book-grid input:focus, .vt-book-grid textarea:focus { border-bottom-color:#1D62EB!important; }
.vt-book-foot { border-top-color:#d9e0ec!important; }
.vt-book-foot span { color:#6f7c94!important; }
.vt-book-foot button, .vt-book-done button { background:#121b31!important; }
.vt-book-foot button:hover, .vt-book-done button:hover { background:#1D62EB!important; }
.vt-book-done > span { background:#121b31!important; }
.vt-book-done p { color:#56637c!important; }

/* v92 — VT ONE hotspots (5b) */
.vtone-mock { position:relative; }
.vtone-spots { position:absolute; inset:0; pointer-events:none; }
.vtone-spot { position:absolute; display:flex; align-items:flex-start; gap:10px; padding:0; border:0; background:none; cursor:pointer; pointer-events:auto; transform:translate(-50%,-50%); font-family:'Roboto','PingFang TC',sans-serif; }
.vtone-spot-dot { flex:none; width:clamp(20px,1.7vw,26px); height:clamp(20px,1.7vw,26px); display:flex; align-items:center; justify-content:center; border-radius:50%;
  background:#ffffff; color:#08090b; font-size:clamp(10px,.8vw,12px); font-weight:600; animation:vtSpotPulse 1.8s ease-out infinite; transition:transform .3s var(--vt-ease-out); }
.vtone-spot:nth-child(2) .vtone-spot-dot { animation-delay:.4s; } .vtone-spot:nth-child(3) .vtone-spot-dot { animation-delay:.8s; }
.vtone-spot.is-open .vtone-spot-dot { transform:scale(1.12); background:#A9C5FF; }
.vtone-spot:focus-visible { outline:none; } .vtone-spot:focus-visible .vtone-spot-dot { box-shadow:0 0 0 3px #1D62EB; }
.vtone-spot-tip { display:flex; flex-direction:column; gap:4px; width:clamp(170px,15vw,220px); padding:12px 14px; border-radius:6px; text-align:left;
  background:rgba(12,16,26,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), 0 14px 30px -14px rgba(0,0,0,.7);
  opacity:0; transform:translateX(-4px); pointer-events:none; transition:opacity .3s ease, transform .35s var(--vt-ease-out); }
.vtone-spot.is-open .vtone-spot-tip { opacity:1; transform:none; }
.vtone-spot-tip b { font-size:10.5px; font-weight:500; letter-spacing:.16em; color:#A9C5FF; }
.vtone-spot-tip span { font-size:clamp(12px,.95vw,13.5px); line-height:1.6; color:#eef2fa; }
.vtone-spot.is-left { flex-direction:row-reverse; } .vtone-spot.is-left .vtone-spot-tip { transform:translateX(4px); } .vtone-spot.is-left.is-open .vtone-spot-tip { transform:none; }
.vtone-spot { z-index:1; } .vtone-spot.is-open { z-index:2; }
@keyframes vtSpotPulse { 0% { box-shadow:0 0 0 0 rgba(169,197,255,.6); } 100% { box-shadow:0 0 0 12px rgba(169,197,255,0); } }
@media (max-width:767px) { .vtone-spot-tip { width:150px; padding:9px 11px; } .vtone-spot-tip span { font-size:11.5px; } }
@media (prefers-reduced-motion:reduce) { .vtone-spot-dot { animation:none; } .vtone-spot-tip { transition:none; } }

/* v92b — hotspot anchors on the dot; tooltip out of flow so it can't shift the anchor */
.vtone-spot { display:block!important; width:auto; height:auto; }
.vtone-spot-tip { position:absolute; left:calc(100% + 10px); top:50%; translate:0 -50%; width:clamp(150px,13vw,210px)!important; }
.vtone-spot.is-left .vtone-spot-tip { left:auto; right:calc(100% + 10px); }
@media (max-width:1100px) { .vtone-spot-tip { width:150px!important; padding:9px 11px!important; } .vtone-spot-tip span { font-size:11.5px!important; } }

/* v93 — VT ONE: larger mockup, soft light behind it, seamless edges, tips break out above */
@media (min-width:768px){
  #vtone .vtone-layout { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important; }
  #vtone .vtone-static-preview { transform:translateY(clamp(10px,1.6vw,26px)); }
}
#vtone .vtone-ambient { opacity:.38!important; background:transparent!important;
  -webkit-mask-image:radial-gradient(ellipse 42% 48% at 68% 52%,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%);
          mask-image:radial-gradient(ellipse 42% 48% at 68% 52%,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%); }
@media (max-width:767px){ #vtone .vtone-ambient { -webkit-mask-image:radial-gradient(ellipse 70% 30% at 50% 70%,#000,transparent); mask-image:radial-gradient(ellipse 70% 30% at 50% 70%,#000,transparent); } }
#vtone .vtone-mock::before { inset:4% 10% 12% 6%!important; opacity:.14!important; }
.vtone-spot.is-up .vtone-spot-tip { left:50%!important; right:auto!important; top:auto!important; bottom:calc(100% + 12px); translate:-50% 0; transform:translateY(4px); }
.vtone-spot.is-up.is-open .vtone-spot-tip { transform:none; }

/* v93b — component clears its class; target the tag */
#vtone vt-hero-ambient { opacity:.38!important; background:transparent!important;
  -webkit-mask-image:radial-gradient(ellipse 42% 48% at 68% 52%,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%)!important;
          mask-image:radial-gradient(ellipse 42% 48% at 68% 52%,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%)!important; }
@media (max-width:767px){ #vtone vt-hero-ambient { -webkit-mask-image:radial-gradient(ellipse 70% 30% at 50% 70%,#000,transparent)!important; mask-image:radial-gradient(ellipse 70% 30% at 50% 70%,#000,transparent)!important; } }

/* v94 — hero CTA hover: single motion. Surface stays white; the black fill (bled 1px past the edge) does the whole change, label colour moves with it. */
.vt-hero-cta.vt-slide-btn, .vt-hero-cta.vt-slide-btn:hover, .vt-hero-cta.vt-slide-btn:focus-visible { background-color:#ffffff!important; transition:box-shadow .3s ease, transform .14s var(--vt-ease-out)!important; }
.vt-hero-cta.vt-slide-btn .vt-slide-fill { inset:-1px!important; border-radius:9px!important;
  clip-path:inset(calc(var(--pad) + 2px) calc(var(--pad) + 2px) calc(var(--pad) + 2px) calc(100% - var(--tile) - var(--pad) - 2px) round 5px);
  transition:clip-path .42s cubic-bezier(.22,1,.36,1)!important; }
.vt-hero-cta.vt-slide-btn:hover .vt-slide-fill, .vt-hero-cta.vt-slide-btn:focus-visible .vt-slide-fill { clip-path:inset(0 0 0 0 round 9px); }
.vt-hero-cta.vt-slide-btn .vt-slide-label { transition:color .26s cubic-bezier(.22,1,.36,1) 0s!important; }

/* v95 — booking modal buttons: hover → light surface, black label */
.vt-book-foot button, .vt-book-done button { box-shadow:inset 0 0 0 1px transparent; transition:background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .14s var(--vt-ease-out)!important; }
.vt-book-foot button:hover, .vt-book-done button:hover, .vt-book-foot button:focus-visible, .vt-book-done button:focus-visible { background:#eef2fa!important; color:#08090b!important; box-shadow:inset 0 0 0 1px rgba(18,27,49,.22); }

/* v96 — CTA hover rebuilt: no wipe. Surface + tile cross-fade (invert) together, arrow slips out right and back in from left. */
html body .vt-slide-btn .vt-slide-fill, html body .vt-slide-btn:hover .vt-slide-fill, html body .vt-slide-btn:focus-visible .vt-slide-fill {
  inset:0!important; border-radius:8px!important;
  clip-path:inset(calc(var(--pad) + 1px) calc(var(--pad) + 1px) calc(var(--pad) + 1px) calc(100% - var(--tile) - var(--pad) - 1px) round 5px)!important;
  transition:background-color .32s cubic-bezier(.22,1,.36,1)!important; }
html body .vt-slide-btn .vt-slide-label { transition:color .32s cubic-bezier(.22,1,.36,1)!important; }
html body .vt-slide-btn .vt-slide-icon { transition:color .32s cubic-bezier(.22,1,.36,1)!important; }
html body .vt-slide-btn { transition:background-color .32s cubic-bezier(.22,1,.36,1), box-shadow .32s ease, transform .14s var(--vt-ease-out)!important; }
/* hero: white → black */
html body .vt-hero-cta.vt-slide-btn:hover, html body .vt-hero-cta.vt-slide-btn:focus-visible { background-color:#08090b!important; box-shadow:0 10px 26px -12px rgba(0,0,0,.55)!important; }
html body .vt-hero-cta.vt-slide-btn:hover .vt-slide-fill, html body .vt-hero-cta.vt-slide-btn:focus-visible .vt-slide-fill { background-color:#ffffff!important; }
html body .vt-hero-cta.vt-slide-btn:hover .vt-slide-label, html body .vt-hero-cta.vt-slide-btn:focus-visible .vt-slide-label { color:#ffffff!important; }
html body .vt-hero-cta.vt-slide-btn:hover .vt-slide-icon, html body .vt-hero-cta.vt-slide-btn:focus-visible .vt-slide-icon { color:#08090b!important; }
/* closing: black → white */
html body #contact a.vt-slide-btn:hover, html body #contact a.vt-slide-btn:focus-visible { background-color:#ffffff!important; box-shadow:0 10px 30px -12px rgba(255,255,255,.28)!important; }
html body #contact a.vt-slide-btn:hover .vt-slide-fill, html body #contact a.vt-slide-btn:focus-visible .vt-slide-fill { background-color:#08090b!important; }
html body #contact a.vt-slide-btn:hover .vt-slide-label, html body #contact a.vt-slide-btn:focus-visible .vt-slide-label { color:#08090b!important; }
html body #contact a.vt-slide-btn:hover .vt-slide-icon, html body #contact a.vt-slide-btn:focus-visible .vt-slide-icon { color:#ffffff!important; }
@media (hover:hover) and (pointer:fine) {
  html body .vt-slide-btn:hover .vt-slide-icon svg { animation:vtArrowLoop .5s cubic-bezier(.22,1,.36,1) both; }
}
@keyframes vtArrowLoop { 0% { transform:none; opacity:1; } 40% { transform:translateX(160%); opacity:0; } 41% { transform:translateX(-160%); opacity:0; } 100% { transform:none; opacity:1; } }
@media (prefers-reduced-motion:reduce) { html body .vt-slide-btn:hover .vt-slide-icon svg { animation:none; } }

/* v96b — same rules at hero/closing specificity so they beat v94 + #contact */
html body .vt-hero-cta.vt-slide-btn, html body .vt-hero-cta.vt-slide-btn:hover, html body .vt-hero-cta.vt-slide-btn:focus-visible,
html body #contact a.vt-slide-btn, html body #contact a.vt-slide-btn:hover, html body #contact a.vt-slide-btn:focus-visible {
  transition:background-color .32s cubic-bezier(.22,1,.36,1), box-shadow .32s ease, transform .14s var(--vt-ease-out)!important; }
html body .vt-hero-cta.vt-slide-btn .vt-slide-fill, html body .vt-hero-cta.vt-slide-btn:hover .vt-slide-fill, html body .vt-hero-cta.vt-slide-btn:focus-visible .vt-slide-fill,
html body #contact a.vt-slide-btn .vt-slide-fill, html body #contact a.vt-slide-btn:hover .vt-slide-fill, html body #contact a.vt-slide-btn:focus-visible .vt-slide-fill {
  inset:0!important; left:0!important; right:0!important; top:0!important; bottom:0!important; width:auto!important; border-radius:8px!important;
  clip-path:inset(calc(var(--pad) + 1px) calc(var(--pad) + 1px) calc(var(--pad) + 1px) calc(100% - var(--tile) - var(--pad) - 1px) round 5px)!important;
  transition:background-color .32s cubic-bezier(.22,1,.36,1)!important; }

/* v97 — header CTA: dimmer, slower beam; hover = white outline only */
html body .vt-site-cta { box-shadow:none!important; background:transparent!important; transition:color .32s cubic-bezier(.22,1,.36,1), box-shadow .32s cubic-bezier(.22,1,.36,1), transform .14s var(--vt-ease-out)!important; }
html body .vt-site-cta::before { opacity:.5; animation-duration:7s!important; }
html body .vt-site-cta:hover, html body .vt-site-cta:focus-visible { background:transparent!important; color:#ffffff!important; border-color:transparent!important; box-shadow:inset 0 0 0 1px #ffffff!important; }
html body .vt-site-cta:hover::before, html body .vt-site-cta:focus-visible::before { opacity:0; }

/* v98 — stacked step copies: only links take clicks; JS routes to the visible copy's target */
.vt-step-copy { pointer-events:none!important; }
.vt-step-copy .vt-step-link { pointer-events:auto!important; }

/* v99 — header nav back to centred (base absolute centring) */


/* v100 — VT ONE hotspot tips use the hero floating-panel glass */
html body .vtone-spot-tip { isolation:isolate; overflow:hidden; border:0; border-radius:10px;
  background:rgba(214,228,252,calc(var(--vt-glass-mid-fill) * .35))!important;
  backdrop-filter:blur(var(--vt-glass-mid-blur)) var(--vt-glass-filter, saturate(1.2))!important; -webkit-backdrop-filter:blur(var(--vt-glass-mid-blur)) var(--vt-glass-filter, saturate(1.2))!important;
  box-shadow:var(--vt-glass-shadow, 0 22px 44px -18px rgba(0,0,0,.6))!important; }
html body .vtone-spot-tip::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; border-radius:inherit; background:rgba(var(--vt-glass-scrim),calc(var(--vt-glass-mid-scrim) * .35)); }
html body .vtone-spot-tip b { color:#ffffff; font-weight:500; }
html body .vtone-spot-tip span { color:#f4f7fc; }
@media (prefers-reduced-transparency:reduce) { html body .vtone-spot-tip { background:#1d2333!important; backdrop-filter:none!important; -webkit-backdrop-filter:none!important; } }

/* v101 — language switch: square tab above 聯絡我們, same right edge */
.vt-lang { position:fixed; right:0; z-index:70; font-family:'Roboto','PingFang TC',sans-serif; }
.vt-lang-btn { width:var(--tab-w,34px); display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 0 10px; border:0; border-radius:8px 0 0 8px; cursor:pointer;
  background:rgba(14,18,28,.72); color:#eef2fa; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12), -8px 10px 26px -12px rgba(0,0,0,.6);
  font:500 10.5px/1 'Roboto',sans-serif; letter-spacing:.08em; transition:background-color .25s ease, color .25s ease, transform .3s var(--vt-ease-out); }
@media (hover:hover) and (pointer:fine) { .vt-lang-btn:hover { transform:translateX(-3px); background:rgba(24,30,44,.86); } }
.vt-lang-btn:active { transform:scale(.97); } .vt-lang-btn:focus-visible { outline:2px solid #A9C5FF; outline-offset:3px; }
.vt-lang-menu { position:absolute; right:calc(var(--tab-w,34px) + 8px); bottom:0; min-width:156px; display:flex; flex-direction:column; gap:2px; padding:6px; border-radius:10px;
  background:rgba(14,18,28,.86); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), 0 18px 40px -16px rgba(0,0,0,.7);
  transform-origin:100% 100%; animation:vtLangIn .22s var(--vt-ease-out); }
.vt-lang-menu[hidden] { display:none; }
.vt-lang-opt { display:flex; align-items:center; gap:12px; padding:10px 12px; border:0; border-radius:6px; background:none; color:#c4c8d0; cursor:pointer; text-align:left; font:400 13px/1 'Roboto','PingFang TC',sans-serif; }
.vt-lang-opt b { width:22px; font-weight:500; font-size:11px; letter-spacing:.08em; color:#8f99ab; }
.vt-lang-opt:hover, .vt-lang-opt:focus-visible { background:rgba(255,255,255,.07); color:#ffffff; outline:none; }
.vt-lang-opt[aria-checked="true"] { color:#ffffff; } .vt-lang-opt[aria-checked="true"] b { color:#A9C5FF; }
@keyframes vtLangIn { from { opacity:0; transform:scale(.96) translateX(4px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .vt-lang-menu { animation:none; } }

/* v102 — type: Geist (UI/body) · Space Grotesk (display) · Geist Mono (labels) · Noto Sans TC (Chinese) */
html body, html body :where(*:not(svg, svg *)) { font-family:'Geist','Noto Sans TC',sans-serif!important; }
html body h1, html body h2, html body h3, html body .vt-hero-title, html body .vt-hero-title * { font-family:'Geist','Noto Sans TC',sans-serif!important; }
html body .vt-eyebrow, html body .vt-lang-btn, html body .vt-lang-btn *, html body .vtone-spot-tip b, html body .vtone-spot-dot, html body code, html body kbd { font-family:'Geist Mono','Noto Sans TC',monospace!important; }
/* language toggle: single button, no menu */
.vt-lang-cur { transition:opacity .2s ease; }

/* v103 — EN: lighter tracking on tracked labels; per-element auto-fit lives in i18n.js */
html.vt-en .vt-eyebrow, html.vt-en .vt-site-nav, html.vt-en .vt-contact-tab { letter-spacing:.06em!important; }
html.vt-en h1, html.vt-en h2, html.vt-en h3 { letter-spacing:-0.015em!important; }
html.vt-en p, html.vt-en li { letter-spacing:0!important; }

html.vt-en .vt-clause { white-space:normal!important; }

/* v104 — EN: 三層服務 description in one size, wraps naturally */
html.vt-en .vt-step-copy p.vt-step-desc, html.vt-en .vt-step-copy p { white-space:normal!important; text-wrap:pretty!important; font-size:clamp(13px,1.05vw,15.5px)!important; letter-spacing:0!important; }
html.vt-en .vt-step-copy p .vt-clause { font-size:inherit!important; }

/* v105 — side rail scales with the screen and sits clear of the language button */
@media (min-width:768px) {
  .vt-rail { top:calc(50% - clamp(40px,8vh,110px))!important; gap:clamp(8px,1.5vh,18px)!important; padding:8px 0!important; }
  .vt-rail-step { min-height:clamp(16px,2.2vh,24px)!important; }
  .vt-rail-step i { width:clamp(6px,.5vw,9px)!important; height:clamp(6px,.5vw,9px)!important; }
  .vt-rail-step.is-sub i { width:clamp(5px,.4vw,7px)!important; height:clamp(5px,.4vw,7px)!important; }
  .vt-rail-step[data-active] i { box-shadow:0 0 0 clamp(2px,.25vw,4px) rgba(var(--vt-light-blue),.3)!important; }
}
/* hero second line heavier */
html body .vt-hero-copy h1 strong { font-weight:600!important; }

@media (min-width:768px) {
  .vt-rail { top:min(calc(50% - clamp(40px,8vh,110px)), var(--vt-rail-max-c, 100vh))!important; }
  .vt-rail-step span { padding:2px 8px!important; line-height:1!important; }
}

/* v106 — designed two-line breaks on section descriptions (desktop); flow normally on mobile */
.vt-ln { display:inline; }
@media (min-width:768px) { .vt-ln { display:block; white-space:normal!important; } }

/* v106b — each designed line stays one line and shrinks to its column */
@media (min-width:768px) {
  p:has(> .vt-ln), span:has(> .vt-ln) { container-type:inline-size; }
  .vt-ln { white-space:nowrap!important; font-size:min(1em, calc(100cqi / var(--n)))!important; }
  html.vt-en .vt-ln { white-space:normal!important; font-size:inherit!important; }
}

@media (min-width:768px) {
  html body p:has(> .vt-ln) { container-type:inline-size; }
  html body p > span.vt-ln, html body .vt-section-heading p > span.vt-ln, html body .vtone-description > span.vt-ln { display:block!important; white-space:nowrap!important; font-size:min(1em, calc(100cqi / var(--n)))!important; }
  html.vt-en body p > span.vt-ln, html.vt-en body .vt-section-heading p > span.vt-ln, html.vt-en body .vtone-description > span.vt-ln { white-space:normal!important; font-size:inherit!important; }
}
