/* ===== RIDE OR DIE — transmission compositor (self-contained, namespaced .tx-*) ===== */
  .tx-root{ --cream:#f6f4eb; --red:#e23b2e; --kanji:'Yuji Syuku',serif;
    position:fixed;inset:0;background:var(--bg);overflow:hidden;z-index:9999;
    font-family:var(--display);-webkit-font-smoothing:antialiased }
  .tx-stage{position:absolute;inset:0;animation:tx-cut .09s steps(2,end) both}
  .tx-layer{position:absolute;inset:0}
  .tx-img{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}
  .tx-img[data-fit="cover"]{object-fit:cover;object-position:50% 50%}
  .tx-img[data-fit="contain"]{object-fit:contain;object-position:50% 50%}
  @keyframes tx-cut{0%{opacity:.35;filter:brightness(1.7)}100%{opacity:1;filter:none}}
  .tx-img[data-motion="push"]{animation:tx-push var(--d,2.6s) ease-out both}
  .tx-img[data-motion="panx"]{animation:tx-panx var(--d,2.3s) linear both}
  .tx-img[data-motion="slam"]{animation:tx-slam .5s cubic-bezier(.16,1,.3,1) both}
  .tx-img[data-motion="warm"]{animation:tx-warm var(--d,1.8s) ease-out both}
  @keyframes tx-push{from{transform:scale(1.005)}to{transform:scale(1.085)}}
  @keyframes tx-panx{from{object-position:8% 50%}to{object-position:92% 50%}}
  @keyframes tx-slam{0%{transform:scale(1.14);opacity:0}55%{opacity:1}100%{transform:scale(1)}}
  @keyframes tx-warm{from{transform:scale(1.05)}to{transform:scale(1)}}
  .tx-glitch{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;
    background:linear-gradient(90deg,rgba(56,214,236,0),rgba(56,214,236,.12),rgba(226,59,46,.10),rgba(56,214,236,0));
    animation:tx-gl .45s steps(3,end) 1 both}
  @keyframes tx-gl{0%{transform:translateX(-7px);opacity:.9}40%{transform:translateX(6px)}100%{transform:translateX(0);opacity:0}}
  .tx-skin{position:absolute;inset:0;pointer-events:none;z-index:5;
    background:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.18) 2px 3px);
    box-shadow:inset 0 0 240px 40px rgba(0,0,0,.7)}
  .tx-loc{position:absolute;left:clamp(14px,3vw,42px);bottom:clamp(16px,4vh,46px);z-index:6;
    font-family:var(--mono);letter-spacing:.04em;line-height:1.5;text-shadow:0 1px 6px rgba(0,0,0,.9);animation:tx-fade .5s ease both}
  .tx-loc-tick{color:var(--cyan)}
  .tx-loc-a{color:var(--cream);font-weight:600}
  .tx-loc-b{display:block;color:var(--dim);font-size:.8em;letter-spacing:.18em}
  .tx-nav{position:absolute;left:0;right:0;bottom:clamp(40px,12vh,140px);z-index:6;text-align:center}
  .tx-nav-word{font-family:var(--mono);font-weight:600;color:var(--cream);font-size:clamp(28px,7vw,84px);
    letter-spacing:.36em;padding-left:.36em;text-shadow:0 2px 18px rgba(0,0,0,.95);
    border-bottom:2px solid var(--cyan);padding-bottom:.18em;animation:tx-navin .5s cubic-bezier(.16,1,.3,1) both}
  @keyframes tx-navin{from{opacity:0;letter-spacing:.6em}to{opacity:1;letter-spacing:.36em}}
  .tx-kanji{position:absolute;right:clamp(18px,5vw,80px);top:clamp(18px,6vh,70px);z-index:6;text-align:right;animation:tx-fade .55s ease both}
  .tx-kanji-glyph{display:block;font-family:var(--kanji);color:var(--cyan);font-size:clamp(64px,14vw,180px);line-height:.9;
    -webkit-text-stroke:3px rgba(14,12,10,.92);paint-order:stroke fill;text-shadow:0 0 26px rgba(56,214,236,.55),0 2px 10px rgba(0,0,0,.9)}
  .tx-kanji-sub{display:block;font-family:var(--mono);color:var(--cream);letter-spacing:.5em;font-size:clamp(12px,1.6vw,18px);padding-left:.5em}
  .tx-title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:7;pointer-events:none;gap:.1em;
    background:radial-gradient(ellipse at center,rgba(14,12,10,0) 30%,rgba(14,12,10,.55) 100%)}
  .tx-title-main{font-family:var(--display);font-weight:700;color:var(--cream);font-size:clamp(40px,11vw,150px);letter-spacing:.02em;line-height:.92;
    -webkit-text-stroke:1px rgba(14,12,10,.55);paint-order:stroke fill;text-shadow:0 4px 30px rgba(0,0,0,.95),0 0 3px rgba(0,0,0,.85);
    animation:tx-slamtxt .55s cubic-bezier(.16,1,.3,1) both}
  .tx-title-kanji{font-family:var(--kanji);color:var(--red);font-size:clamp(30px,8vw,108px);line-height:1;letter-spacing:.1em;
    text-shadow:0 0 22px rgba(226,59,46,.35);animation:tx-fade .8s .2s ease both}
  @keyframes tx-slamtxt{0%{opacity:0;transform:scale(1.25)}60%{opacity:1}100%{transform:scale(1)}}
  .tx-enter-wrap{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:clamp(28px,8vh,90px);gap:.9em}
  .tx-enter{position:relative;font-family:var(--mono);font-weight:600;color:var(--cyan);text-decoration:none;font-size:clamp(13px,2.1vw,21px);letter-spacing:.16em;
    border:1px solid rgba(56,214,236,.5);padding:.6em 1.1em;border-radius:2px;background:rgba(56,214,236,.06);animation:tx-fade .8s .4s ease both;transition:background .2s,border-color .2s}
  .tx-enter:hover,.tx-enter:focus-visible{background:rgba(56,214,236,.16);border-color:var(--cyan);outline:none}
  .tx-enter-arrow{color:var(--cream)}
  .tx-caret{animation:tx-blink 1s steps(1,end) infinite}
  @keyframes tx-blink{50%{opacity:0}}
  .tx-enter-hint{font-family:var(--mono);color:var(--dim);font-size:clamp(10px,1.5vw,13px);letter-spacing:.1em;opacity:.8;animation:tx-fade 1s .7s ease both}
  .tx-ignite{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}
  .tx-ignite-line{width:62%;height:2px;background:var(--cyan);box-shadow:0 0 22px var(--cyan);animation:tx-line .7s cubic-bezier(.16,1,.3,1) both}
  @keyframes tx-line{0%{transform:scaleX(0);opacity:.2}100%{transform:scaleX(1);opacity:1}}
  .tx-ignite-clock{margin-top:1.1em;font-family:var(--mono);font-weight:600;color:var(--cream);letter-spacing:.28em;font-size:clamp(16px,3vw,30px);animation:tx-fade .6s .45s ease both}
  .tx-dim{color:var(--dim);font-weight:400;letter-spacing:.18em}
  @keyframes tx-fade{from{opacity:0}to{opacity:1}}
  .tx-skip{position:absolute;right:14px;bottom:12px;z-index:9;font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--dim);
    background:transparent;border:1px solid rgba(147,140,126,.4);border-radius:2px;padding:.3em .7em;cursor:pointer}
  .tx-skip:hover{color:var(--cream);border-color:var(--cream)}
  @media (prefers-reduced-motion:reduce){
    .tx-stage,.tx-img,.tx-title-main,.tx-title-kanji,.tx-glitch,.tx-nav-word,.tx-ignite-line{animation:none!important}
    .tx-img{transform:none!important}
  }
