.q-one-twin-film { margin: 38px 0; min-width: 0; color: var(--text, #eaf1fb); }
.q-one-twin-film > h3 { margin: 0 0 10px; font: 700 clamp(23px, 2.4vw, 31px)/1.15 var(--display, 'Bricolage Grotesque', sans-serif); letter-spacing: -.025em; }
.q-one-twin-film > p { margin: 0 0 24px; max-width: 78ch; color: var(--text-dim, #a7b9cb); font: 16px/1.65 var(--body, 'IBM Plex Sans', sans-serif); }
.qot-player { --qot-cyan: #79d8f5; --qot-edge: #304961; --qot-dark: #091524; padding: clamp(20px, 2.7vw, 36px); border: 1px solid var(--qot-edge); border-radius: 18px; background: radial-gradient(ellipse at 45% 34%, #12315280, transparent 65%), var(--qot-dark); overflow: hidden; font-family: var(--body, 'IBM Plex Sans', sans-serif); }
.qot-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; color: #a8bdcf; font: 11px/1.5 var(--mono, 'IBM Plex Mono', monospace); }
.qot-meta > :first-child { color: var(--qot-cyan); letter-spacing: .13em; }
.qot-diagram { position: relative; isolation: isolate; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; padding: 36px 0 25px; }
.qot-lines { position: absolute; inset: 36px 0 25px; width: 100%; height: calc(100% - 61px); overflow: visible; z-index: -1; }
.qot-track, .qot-flow { fill: none; stroke: #35576d; stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.qot-flow { stroke: var(--qot-cyan); stroke-width: 2px; stroke-dasharray: 10 115; opacity: 0; filter: drop-shadow(0 0 4px #60ccff); animation: qot-data-flow 2.4s linear infinite paused; }
.qot-dot { fill: #9ae3fa; opacity: .65; }
.qot-node { min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
.qot-zone { color: #9db3c7; font: 10px/1.4 var(--mono, 'IBM Plex Mono', monospace); letter-spacing: .1em; }
.qot-visual { position: relative; display: flex; justify-content: center; align-items: center; width: 150px; max-width: 100%; height: 132px; background: radial-gradient(ellipse, #0b1b2d 48%, #0b1b2d00 72%); }
.qot-visual > svg { width: 83px; height: 83px; color: #8dabc2; transition: color .3s ease, filter .3s ease; }
.qot-visual > img { width: 145px; max-width: 100%; height: 115px; object-fit: contain; filter: brightness(.9); transition: filter .3s ease; }
.qot-node > strong { margin: 4px 0 7px; color: #eaf1fb; font-size: clamp(15px, 1.5vw, 18px); line-height: 1.35; font-weight: 600; }
.qot-node > span:last-child { color: #a9bfd1; font-size: 13px; line-height: 1.5; max-width: 20ch; }
.qot-player[data-stage="0"] :is(.qot-equipment, .qot-one) .qot-zone,
.qot-player[data-stage="1"] :is(.qot-one, .qot-cloud) .qot-zone,
.qot-player[data-stage="2"] .qot-cloud .qot-zone,
.qot-player[data-stage="3"] .qot-review .qot-zone { color: var(--qot-cyan); }
.qot-player[data-stage="0"] .qot-equipment .qot-visual > svg,
.qot-player[data-stage="1"] .qot-cloud .qot-visual > svg,
.qot-player[data-stage="2"] .qot-cloud .qot-visual > svg,
.qot-player[data-stage="3"] .qot-review .qot-visual > svg { color: var(--qot-cyan); filter: drop-shadow(0 0 12px #64bfff38); }
.qot-player[data-stage="0"] .qot-one img, .qot-player[data-stage="1"] .qot-one img { filter: brightness(1.12) drop-shadow(0 6px 14px #509dff24); }
.qot-player[data-stage="0"] .qot-flow-collect,
.qot-player[data-stage="1"] .qot-flow-connect,
.qot-player[data-stage="3"] .qot-flow-review { opacity: 1; }
.qot-player.is-playing .qot-flow { animation-play-state: running; }
.qot-story { display: flex; align-items: flex-start; gap: 22px; padding: 25px 0 18px; border-top: 1px solid #284056; min-height: 133px; }
.qot-count { flex: 0 0 auto; padding-top: 4px; color: var(--qot-cyan); font: 12px/1.5 var(--mono, monospace); }
.qot-story h4 { margin: 0 0 8px; color: #edf5ff; font: 700 clamp(21px, 2vw, 27px)/1.2 var(--display, 'Bricolage Grotesque', sans-serif); letter-spacing: -.02em; }
.qot-story p { margin: 0; max-width: 85ch; color: #b4c8d9; font-size: 15px; line-height: 1.65; }
.qot-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 20px; }
.qot-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 16px; }
.qot-controls button { min-height: 44px; font-family: inherit; cursor: pointer; }
.qot-controls .qot-play { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 192px; padding: 12px 18px; border-radius: 10px; font-size: 14px; line-height: 1.4; }
.qot-play > span { width: 12px; font-size: 11px; }
.qot-restart { display: inline-flex; align-items: center; gap: 8px; padding: 10px 4px; color: #c0d2e2; background: transparent; border: 0; font-size: 14px; }
.qot-time { color: #a2bacd; font: 11px/1.5 var(--mono, monospace); white-space: nowrap; }
.qot-motion-note { color: #b4c8d9; font-size: 12px; margin: 0; }
.qot-motion-note[hidden] { display: none; }
.qot-chapters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 28px; }
.qot-chapters button { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; position: relative; min-height: 82px; padding: 12px 0 10px; border: 0; border-top: 2px solid #30485f; border-radius: 0; background: transparent; color: #a8c0d4; text-align: left; cursor: pointer; font-family: inherit; }
.qot-chapters button > span { color: #8eb5d4; font: 11px/1.4 var(--mono, monospace); }
.qot-chapters strong { font-size: 14px; line-height: 1.35; font-weight: 500; }
.qot-chapters button > i { position: absolute; top: -2px; left: 0; height: 2px; width: 100%; background: var(--qot-cyan); transform: scaleX(var(--qot-progress, 0)); transform-origin: left; }
.qot-chapters button[aria-pressed="true"] { color: #edf7ff; border-color: #6091ac; }
.qot-chapters button[aria-pressed="true"] > span { color: var(--qot-cyan); }
.qot-player button:focus-visible { outline: 3px solid #85daff; outline-offset: 5px; }
.qot-note { color: #a3b9cd; font-size: 12px; line-height: 1.6; margin: 14px 0 0; }
@keyframes qot-data-flow { to { stroke-dashoffset: -250; } }
@media (hover: hover) { .qot-restart:hover, .qot-chapters button:hover { color: #fff; } }
@media (max-width: 760px) {
  .qot-player { padding: 22px; }
  .qot-diagram { grid-template-columns: 1fr; gap: 19px; padding: 28px 0; }
  .qot-lines { display: none; }
  .qot-node { position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr); column-gap: 19px; text-align: left; align-items: center; }
  .qot-node .qot-zone { grid-column: 2; align-self: end; }
  .qot-node > strong { grid-column: 2; font-size: 17px; margin: 5px 0; }
  .qot-node > span:last-child { grid-column: 2; max-width: none; align-self: start; }
  .qot-visual { grid-row: 1 / 4; grid-column: 1; width: 92px; height: 90px; background: #0b1b2d; border-radius: 12px; }
  .qot-visual > svg { width: 65px; height: 65px; }
  .qot-visual > img { width: 92px; height: 85px; }
  .qot-node:not(:last-child)::after { content: ''; position: absolute; top: 90px; left: 45px; width: 2px; height: 19px; background: #416178; }
  .qot-player[data-stage="0"] .qot-equipment::after, .qot-player[data-stage="1"] .qot-one::after, .qot-player[data-stage="3"] .qot-cloud::after { background: linear-gradient(#467d98 0 30%, #94e7ff 50%, #467d98 70%); background-size: 100% 38px; animation: qot-mobile-flow 1.6s linear infinite paused; }
  .qot-player.is-playing .qot-node::after { animation-play-state: running; }
  .qot-story { gap: 12px; min-height: 185px; }
  .qot-count { font-size: 10px; white-space: nowrap; }
  .qot-story h4 { font-size: 23px; }
  .qot-story p { font-size: 14px; }
  .qot-chapters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; }
  .qot-controls { gap: 8px 14px; }
  .qot-controls .qot-play { min-width: 175px; }
  .qot-time { width: 100%; }
}
@keyframes qot-mobile-flow { to { background-position: 0 38px; } }
@media (max-width: 400px) { .qot-player { padding: 18px; } .qot-story { display: block; min-height: 200px; } .qot-count { display: block; margin-bottom: 10px; } .qot-node { column-gap: 12px; } }
@media (prefers-reduced-motion: reduce) { .qot-flow, .qot-player .qot-node::after { animation: none !important; } .qot-visual > svg, .qot-visual > img { transition: none; } }
