/* V2: the approved artwork leads; content scrolls in the document's main track. */
.v2 { height: 100dvh; --page-gutter: clamp(22px, 4.5vw, 80px); }
.v2 .bg { pointer-events: none; }
.v2 .bg-video { opacity: 0; transition: opacity .5s ease; }
.v2.is-playing .bg-video { opacity: 1; }
.scene-poster { position: absolute; inset: 0; transition: opacity .5s ease; }
.scene-poster img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.v2.is-playing .scene-poster { opacity: 0; }
.v2-shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(15,21,26,.56), transparent 23%, transparent 69%, rgba(15,21,26,.85)), radial-gradient(ellipse 42% 66% at 50% 44%, rgba(15,21,26,.57), rgba(15,21,26,.12) 75%, transparent); }
.v2 .nav { padding: 24px var(--page-gutter); gap: 24px; grid-template-columns: 1fr auto 1fr; z-index: 10; }
.v2 .nav::before { content: ''; position: absolute; inset: 0 0 -48px; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(15,21,26,.78), rgba(15,21,26,.46) 52%, rgba(15,21,26,0)); }
.v2 .nav__brand { width: fit-content; }
.v2 .nav__brand img { width: 38px; height: 38px; }
.v2 .setlist { position: static; transform: none; border: 0; background: none; border-radius: 0; backdrop-filter: none; overflow: visible; }
.v2 .setlist__label { padding: 0 20px 0 0; color: var(--ts-gold); align-self: center; border: 0; font-size: 10px; }
.v2 .setlist a { gap: 5px; padding: 12px 11px; border: 0; font-size: 10px; letter-spacing: .06em; position: relative; }
.v2 .setlist a span { font-size: 8px; }
.v2 .setlist a::after { content: ''; position: absolute; bottom: 4px; left: 11px; right: 11px; height: 1px; background: var(--ts-gold); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.v2 .setlist a:hover::after, .v2 .setlist a.on::after { transform: scaleX(1); }
.v2 .setlist a.on { background: none; }
.v2 .nav__wa { display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(191,163,105,.48); padding: 10px 14px; color: var(--ts-gold); font-size: 12px; border-radius: 3px; white-space: nowrap; transition: background .2s, color .2s; }
.v2 .nav__wa:hover { background: var(--ts-gold); color: var(--ts-ink); }
.nav__wa-arrow { margin-left: 8px; }
.v2 main { scroll-snap-type: y mandatory; scrollbar-width: thin; z-index: 2; }
.v2 main > .panel { scroll-snap-stop: always; }
.v2 main > .panel { position: relative; inset: auto; opacity: 1; pointer-events: auto; height: auto; min-height: 100%; padding: 128px var(--page-gutter) 56px; justify-content: flex-end; overflow: clip; transition: none; }
.v2 main > .panel--hero { height: 100%; min-height: 720px; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; justify-content: normal; align-items: center; padding-top: 104px; padding-bottom: 34px; }
.v2 .hero { gap: 0; padding-bottom: 30px; }
.hero__eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 24px; font-size: 10px; line-height: 1.5; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ts-gold); }
.hero__eyebrow > span { width: 18px; height: 1px; background: var(--ts-gold); }
.v2 .hero__logo { width: clamp(205px, 17vw, 275px); height: auto; margin-bottom: 28px; filter: none; }
.v2 .hero__h { font-size: clamp(52px, 5.3vw, 86px); max-width: none; line-height: .94; letter-spacing: -.035em; text-shadow: 0 2px 22px rgba(0,0,0,.2); }
.v2 .hero__ghost { -webkit-text-stroke: 1px rgba(230,237,242,.82); margin-bottom: 3px; }
.v2 .hero__p { margin-top: 24px; font-size: clamp(15px, 1.2vw, 18px); line-height: 1.55; color: rgba(230,237,242,.88); text-shadow: 0 2px 12px rgba(0,0,0,.6); }
.v2 .hero__cta { align-items: center; gap: 26px; margin-top: 28px; }
.v2 .ts-btn { min-height: 48px; border-radius: 3px; font-size: 12px; padding: 13px 21px; letter-spacing: .025em; transition: background .2s, color .2s, transform .2s; }
.v2 .ts-btn--primary { gap: 24px; }
.v2 .ts-btn--primary:hover { background: var(--ts-gold-bright); color: var(--ts-ink); }
.v2 .ts-btn:active { transform: translateY(1px); }
.hero__explore { display: inline-flex; gap: 14px; align-items: center; min-height: 44px; font-size: 12px; font-weight: 600; color: var(--ts-mist); }
.hero__explore span { color: var(--ts-gold); }
.v2 .hero__foot { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 24px; padding-top: 21px; border-top: 1px solid rgba(191,163,105,.25); }
.hero__proof { display: flex; gap: 13px; align-items: center; }
.hero__proof > span:last-child { font-size: 10px; line-height: 1.65; letter-spacing: .025em; color: var(--ts-steel); }
.hero__proof-number { font-family: var(--font-display); font-size: 35px; font-weight: 600; letter-spacing: -.05em; line-height: 1; color: var(--ts-mist); }
.hero__proof-number > span { color: var(--ts-gold); font-size: 20px; vertical-align: top; margin-left: 3px; }
.hero__proof--right { justify-self: end; }
.hero__scroll { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 8px; letter-spacing: .2em; color: var(--ts-gold); }
.hero__scroll-line { width: 1px; height: 18px; background: linear-gradient(transparent, var(--ts-gold)); }
.hero__scroll > span:last-child { font-size: 14px; line-height: 1; }
.chapter-meter { position: absolute; left: 24px; top: 48%; z-index: 4; display: flex; flex-direction: column; align-items: center; gap: 12px; color: var(--ts-steel); font-size: 9px; font-variant-numeric: tabular-nums; pointer-events: none; }
.chapter-meter__current { color: var(--ts-gold); }
.chapter-meter__track { position: relative; height: 75px; width: 1px; background: rgba(230,237,242,.2); }
.chapter-meter__track i { position: absolute; top: 0; left: 0; width: 1px; height: 12.5%; background: var(--ts-gold); transition: top .4s ease; }
.section-title { margin: 0; font-weight: inherit; }
.section-title > span { display: block; }
.v2 .row, .v2 .stamps { z-index: 1; }
.v2 .panel:not(.panel--hero) .scrim { height: 100%; background: linear-gradient(180deg, rgba(15,21,26,.2), rgba(15,21,26,.68) 48%, rgba(15,21,26,.94)); }
.v2 .panel:focus { outline: none; }
.v2 a:focus-visible, .v2 button:focus-visible { outline: 2px solid var(--ts-blue); outline-offset: 5px; }
.skip-link { position: absolute; top: -70px; left: 16px; z-index: 20; background: var(--ts-gold); color: var(--ts-ink); padding: 10px 18px; }
.skip-link:focus { top: 16px; }
.menu-toggle { display: none; }
.mobile-menu[hidden] { display: none; }
.mobile-menu { position: absolute; top: 76px; left: 20px; right: 20px; padding: 24px; background: #131c24; border: 1px solid rgba(191,163,105,.4); box-shadow: 0 24px 70px rgba(0,0,0,.6); }
.mobile-menu__title { display: block; margin-bottom: 14px; color: var(--ts-gold); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.mobile-menu a { display: block; padding: 10px 0; color: var(--ts-mist); font-size: 15px; border-bottom: 1px solid rgba(230,237,242,.08); }
@media (min-width: 1600px) {
  .v2 .hero__logo { margin-bottom: 32px; }
  .v2 .hero__h { font-size: 92px; }
  .v2 .hero__p { margin-top: 28px; }
}
@media (max-width: 1180px) {
  .v2 .setlist { display: none; }
  .v2 .nav { grid-template-columns: 1fr auto auto; }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 42px; height: 42px; gap: 6px; background: transparent; border: 1px solid rgba(191,163,105,.35); border-radius: 3px; color: var(--ts-gold); cursor: pointer; }
  .menu-toggle span { width: 18px; height: 1px; background: currentColor; transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .chapter-meter { left: 18px; }
}
@media (max-height: 780px) and (min-width: 721px) {
  .v2 main > .panel--hero { min-height: 650px; padding-top: 94px; padding-bottom: 25px; }
  .hero__eyebrow { margin-bottom: 18px; }
  .v2 .hero__logo { width: 210px; margin-bottom: 20px; }
  .v2 .hero__h { font-size: 60px; }
  .v2 .hero__p { margin-top: 18px; font-size: 15px; }
  .v2 .hero__cta { margin-top: 20px; }
  .v2 .hero { padding-bottom: 20px; }
  .v2 .hero__foot { padding-top: 16px; }
}
@media (max-width: 720px) {
  .v2 .nav { display: grid; gap: 12px; padding: calc(18px + env(safe-area-inset-top)) 22px 18px; }
  .v2 .nav__brand img { width: 34px; height: 34px; }
  .v2 .nav__wa { padding: 9px 12px; font-size: 11px; min-height: 42px; }
  .nav__wa-arrow { display: none; }
  .chapter-meter { display: none; }
  .scene-poster img { object-position: 38% center; }
  .v2 .bg-video { object-position: center; }
  .v2-shade { background: linear-gradient(180deg, rgba(15,21,26,.4), rgba(15,21,26,.3) 20%, rgba(15,21,26,.55) 52%, rgba(15,21,26,.9)); }
  .v2 main > .panel { padding: 110px 22px 36px; }
  .v2 main > .panel--hero { min-height: 640px; padding: calc(98px + env(safe-area-inset-top)) 22px calc(24px + env(safe-area-inset-bottom)); }
  .hero__eyebrow { font-size: 8px; letter-spacing: .14em; margin-bottom: 24px; }
  .hero__eyebrow > span { width: 12px; }
  .v2 .hero__logo { width: 205px; margin-bottom: 26px; }
  .v2 .hero__h { font-size: clamp(30px, 9.4vw, 64px); line-height: .98; letter-spacing: -.035em; }
  .v2 .hero__p { font-size: 14px; margin-top: 23px; }
  .v2 .hero__cta { flex-direction: column; gap: 10px; margin-top: 26px; width: 100%; }
  .v2 .panel--hero .ts-btn { flex: none; width: min(280px, 100%); justify-content: space-between; padding: 14px 20px; }
  .hero__explore { font-size: 11px; min-height: 40px; }
  .v2 .hero__foot { grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 20px; }
  .hero__proof { gap: 9px; }
  .hero__proof-number { font-size: 28px; }
  .hero__proof-number > span { font-size: 16px; }
  .hero__proof > span:last-child { font-size: 8px; }
  .hero__scroll { display: none; }
  .v2 .panel .h { white-space: normal; }
  .v2 main { scrollbar-width: none; }
}
/* A desktop scene changes in place. Tall panels retain internal scrolling. */
.v2.is-deck main { overflow: hidden; scroll-snap-type: none; scroll-behavior: auto; }
.v2.is-deck main > .panel { display: none; height: 100%; min-height: 0; overflow-y: auto; overflow-x: hidden; justify-content: safe flex-end; scrollbar-width: thin; }
.v2.is-deck main > .panel.is-current { display: flex; }
.v2.is-deck main > .panel--hero.is-current { display: grid; }
.v2.is-deck main > .panel > :not(.scrim) { flex-shrink: 0; }
.v2.is-deck main > .panel--storage { justify-content: safe flex-end; }
/* Approved Essential composition: content in the lower third, video in view. */
.v2 main > .panel--storage { justify-content: flex-end; padding-bottom: 32px; }
.v2[data-scene="1"] .v2-shade { background: linear-gradient(180deg, rgba(15,21,26,.3), transparent 15%); }
.v2 .panel.panel--storage .scrim { background: linear-gradient(0deg, #081017f5, #0b141ad9 18%, #0b141a99 30%, #0f151a26 43%, transparent 55%); }
.storage-composition { z-index: 1; max-width: 1800px; }
.storage-top { display: grid; grid-template-columns: 1fr 1.72fr; gap: 44px; align-items: end; }
.storage-eyebrow { margin: 0 0 12px; color: var(--ts-gold); font-size: 10px; line-height: 1.3; letter-spacing: .15em; font-weight: 600; text-transform: uppercase; }
.storage-title { margin: 0; font-family: var(--font-display); font-size: clamp(32px, 2.65vw, 46px); font-weight: 700; line-height: 1.05; letter-spacing: -.045em; }
.storage-title em { color: var(--ts-gold); font-style: normal; }
.storage-lead { margin: 12px 0 0; color: #bbc8d1; font-size: 13px; line-height: 1.5; }
.storage-contract { margin: 7px 0 0; color: #bfcbd3; font-size: 12px; line-height: 1.5; }
.storage-contract strong { color: var(--ts-gold); font-weight: 600; }
.storage-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; padding-bottom: 7px; }
.storage-benefit { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.storage-icon { display: block; width: 34px; height: 34px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; color: var(--ts-gold); }
.storage-benefit strong { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; }
.storage-benefit span { display: block; margin-top: 5px; color: #a8bac5; font-size: 12px; line-height: 1.35; }
.storage-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 24px; padding-top: 24px; border-top: 1px solid #bfa36945; }
.storage-bases { display: flex; align-items: center; gap: 32px; }
.storage-bases__label { color: #a5b2bc; font-size: 10px; line-height: 1.5; text-transform: uppercase; letter-spacing: .12em; }
.storage-base { display: flex; align-items: center; gap: 12px; }
.storage-base strong { color: var(--ts-gold); font-family: var(--font-display); font-size: 34px; font-weight: 500; line-height: 1; letter-spacing: -.06em; }
.storage-base > span { color: var(--ts-mist); font-size: 13px; line-height: 1.4; }
.storage-base small { display: block; margin-top: 2px; color: #a5b2bc; font-size: 10px; }
.v2 .storage-cta { justify-content: space-between; flex-shrink: 0; gap: 22px; }
.storage-cta > span { font-size: 18px; line-height: 1; }
@media (max-width: 1023px) {
  .storage-top { grid-template-columns: 1fr; gap: 26px; }
  .storage-footer { flex-wrap: wrap; gap: 12px; }
}
@media (max-width: 720px) {
  .v2 main > .panel--storage { padding-bottom: calc(30px + env(safe-area-inset-bottom)); }
  .storage-benefits { gap: 14px; }
  .storage-benefit strong { font-size: 12px; }
  .storage-benefit span { font-size: 11px; }
  .storage-bases { flex-wrap: wrap; gap: 18px 28px; }
  .storage-bases__label { width: 100%; font-size: 9px; }
  .storage-bases__label br { display: none; }
  .v2 .storage-cta { width: 100%; white-space: normal; }
}
/* All transport safeguards stay visible together in the lower third. */
.v2 main > .panel--transport { padding-bottom: 28px; }
.v2[data-scene="2"] .v2-shade { background: linear-gradient(180deg, rgba(15,21,26,.3), transparent 15%); }
.v2 .panel.panel--transport .scrim { background: linear-gradient(0deg, #081017fa, #0b141af0 19%, #0b141a99 30%, #0f151a26 43%, transparent 55%); }
.transport-composition { position: relative; z-index: 1; max-width: 1800px; display: grid; grid-template-columns: .8fr 3.1fr; gap: clamp(28px, 3.5vw, 65px); align-items: center; }
.transport-eyebrow { margin: 0 0 15px; color: var(--ts-gold); font-size: 10px; line-height: 1.3; letter-spacing: .15em; font-weight: 600; text-transform: uppercase; }
.transport-intro h2 { margin: 0; font-family: var(--font-display); font-size: clamp(31px, 2.8vw, 49px); font-weight: 650; line-height: 1.02; letter-spacing: -.05em; }
.transport-fleet { margin: 14px 0 0; color: #a8bac5; font-size: 12px; }
.transport-cta { display: inline-flex; align-items: center; gap: 20px; padding: 0 0 8px; margin-top: 23px; border-bottom: 1px solid #bfa36975; color: var(--ts-gold); font-size: 12px; font-weight: 600; }
.transport-cta span { font-size: 20px; transition: transform .2s; }
.transport-cta:hover span { transform: translate(3px,-3px); }
.transport-infographics { display: grid; grid-template-columns: 1fr 1fr 1.15fr; gap: clamp(22px, 2.4vw, 44px); align-items: start; }
.transport-detail { min-width: 0; }
.transport-detail__copy { border-top: 1px solid #bfa36940; padding-top: 13px; }
.transport-detail__label { color: var(--ts-gold); font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; }
.transport-detail h3 { margin: 8px 0 8px; font-family: var(--font-display); color: var(--ts-mist); font-size: clamp(18px, 1.35vw, 23px); font-weight: 500; line-height: 1.1; letter-spacing: -.03em; }
.transport-detail p { margin: 0; color: #a8bdc9; font-size: 12px; line-height: 1.45; max-width: 345px; }
.transport-detail p strong { color: #d2dce2; font-weight: 500; }
.transport-drawing { position: relative; min-width: 0; height: clamp(118px, 16vh, 160px); padding-bottom: 20px; }
.transport-drawing svg { display: block; width: 100%; height: 100%; fill: none; stroke: #bfa369; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.transport-drawing > span { position: absolute; bottom: 7px; left: 0; right: 0; color: #96aebb; text-align: center; font-size: 8px; text-transform: uppercase; letter-spacing: .12em; }
.transport-drawing > span i { margin: 0 14px; color: var(--ts-gold); font-style: normal; }
.transport-drawing .drawing-muted { stroke: #7896a24d; }
.transport-drawing .drawing-dot { fill: #dfc28a; stroke: none; }
.transport-drawing .drawing-halo { stroke: #bfa36966; transform-box: fill-box; transform-origin: center; animation: transport-signal 3s ease-out infinite; }
.transport-drawing .drawing-phone { fill: #0e1a23; stroke: #89a3b0; }
.transport-drawing .drawing-shield { fill: #0e1a23; }
.transport-drawing--track .drawing-route { stroke: #dfc28a; stroke-width: 2; stroke-dasharray: 12 5; animation: transport-flow 3s linear infinite; }
.transport-drawing .drawing-case { fill: #101b23; stroke: #7b929e; }
.transport-drawing .drawing-rails { fill: #182630; stroke: #75919f; stroke-width: .9; }
.transport-drawing .drawing-strap { fill: #bfa36950; stroke: #d2b479; }
.transport-drawing .drawing-stitch { stroke: #e0c896; stroke-width: .6; stroke-dasharray: 2 2; }
.transport-drawing .drawing-ratchet { fill: #17222a; stroke: #e0c896; stroke-width: 1.15; }
.drawing-ratchet__handle { transform-box: fill-box; transform-origin: top center; animation: transport-tension 5s ease-in-out infinite; }
.transport-drawing .drawing-bar { fill: #536977; stroke: #a4b6be; stroke-width: .9; }
#transport-docs .drawing-route { stroke-width: 2; stroke-dasharray: 60; stroke-dashoffset: 60; animation: transport-verify 4s ease infinite; }
@keyframes transport-signal { 0% { transform: scale(.65); opacity: .8; } 85%, 100% { transform: scale(1.65); opacity: 0; } }
@keyframes transport-flow { to { stroke-dashoffset: -68; } }
@keyframes transport-verify { 0%, 15% { stroke-dashoffset: 60; } 45%, 100% { stroke-dashoffset: 0; } }
@keyframes transport-tension { 0%,30%,60%,100% { transform: scaleY(1); } 15%,45% { transform: scaleY(.65); } }
@media (max-width: 1200px) {
  .transport-composition { gap: 24px; grid-template-columns: .75fr 3.1fr; }
  .transport-infographics { gap: 20px; }
  .transport-detail p { font-size: 11px; }
  .transport-cta { gap: 10px; }
}
@media (max-width: 1023px) {
  .transport-composition { grid-template-columns: 1fr; gap: 25px; }
  .transport-intro { display: grid; grid-template-columns: 1fr auto; align-items: end; }
  .transport-eyebrow { grid-column: 1 / -1; }
  .transport-fleet { grid-column: 1; }
  .transport-cta { grid-column: 2; grid-row: 2 / 4; }
}
@media (max-width: 720px) {
  .transport-infographics { grid-template-columns: 1fr; gap: 24px; }
  .transport-detail { display: grid; grid-template-columns: 1fr 1.2fr; gap: 16px; align-items: center; }
  .transport-detail__copy { border: 0; padding: 0; }
  .transport-intro { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  .transport-drawing .drawing-route { stroke-dashoffset: 0 !important; }
  .transport-drawing .drawing-halo { opacity: .5; }
}
@media (prefers-reduced-motion: reduce) {
  .v2 main { scroll-behavior: auto; }
  .v2 *, .v2 *::before, .v2 *::after { transition: none !important; animation: none !important; }
}

