/* The existing Three.js glass is the window. These are only its controls. */
html body .rotor28-route-motif {
  display:block;width:36px;height:36px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
html body .rotor28-route-motif .rotor28-motif-accent {stroke-width:2.3;}
html body .rotor28-route-motif .rotor28-motif-depth {stroke:#071005;stroke-width:4.5;opacity:.9;}
html body .rotor28-route-motif .rotor28-motif-edge {stroke:#d5e6c378;stroke-width:3.6;}
html body .rotor28-route-arrow {width:20px;height:14px;}
html body .pip-world-actions.rotor28-route-deck {
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
  grid-template-areas:"duel training" "duel online" "green green" "vault vault" "flight flight" "player record";
  gap:0 12px;margin-top:12px;padding-top:10px;border-top:1px solid #f1ffd438;
}
html body .pip-world-actions.rotor28-route-deck > a {
  position:relative;display:flex;align-items:center;justify-content:flex-start;gap:10px;
  min-width:0;min-height:46px;padding:8px 2px;border:0;border-radius:0;
  color:#d8fa9c;background:transparent;box-shadow:none;text-align:left;
  font:750 11px/1.3 Inter,Arial,sans-serif;letter-spacing:.015em;text-decoration:none;
  -webkit-tap-highlight-color:#d1ff9b33;
}
html body .rotor28-route-deck .rotor28-route-label {flex:1;min-width:0;}
html body .rotor28-route-deck > [data-rotor28-destination="duel"] {
  grid-area:duel;min-height:112px;display:grid;grid-template-columns:1fr auto;align-content:end;
  gap:2px 6px;margin-bottom:8px;padding:12px;border-radius:5px 24px 5px 18px;
  border:1px solid #ffffb7;background:linear-gradient(135deg,#f4fa8af5,#d9e65ef2);
  color:#17200b;box-shadow:inset 0 1px 0 #ffffde,0 5px 12px #0004;font-size:12px;
}
html body .rotor28-route-deck > [data-rotor28-destination="duel"] > .rotor28-route-motif:first-child {
  grid-column:1 / -1;justify-self:center;width:70px;height:62px;margin-top:-4px;margin-bottom:3px;
}
html body .rotor28-route-deck > [data-rotor28-destination="duel"] .rotor28-route-arrow {align-self:center;}
html body .rotor28-route-deck > [data-rotor28-destination="training"] {grid-area:training;border-bottom:1px solid #d9fca52e;}
html body .rotor28-route-deck > [data-rotor28-destination="online"] {grid-area:online;margin-bottom:8px;}
html body .rotor28-route-deck > [data-rotor28-destination="training"],
html body .rotor28-route-deck > [data-rotor28-destination="online"] {gap:7px;font-size:10px;}
html body .rotor28-route-deck > [data-rotor28-destination="training"] > .rotor28-route-motif:first-child,
html body .rotor28-route-deck > [data-rotor28-destination="online"] > .rotor28-route-motif:first-child {width:28px;height:32px;}
html body .rotor28-route-deck > [data-rotor28-destination="training"] > .rotor28-route-arrow,
html body .rotor28-route-deck > [data-rotor28-destination="online"] > .rotor28-route-arrow {display:none;}
html body .rotor28-route-deck > [data-rotor28-destination="green"] {grid-area:green;border-top:1px solid #d9fca52e;}
html body .rotor28-route-deck > [data-rotor28-destination="vault"] {grid-area:vault;border-top:1px solid #d9fca52e;color:#edf4df;}
html body .rotor28-route-deck > [data-rotor28-destination="flight"] {grid-area:flight;border-top:1px solid #d9fca52e;}
html body .rotor28-route-deck > [data-rotor28-destination="player"] {grid-area:player;}
html body .rotor28-route-deck > [data-rotor28-destination="record"] {grid-area:record;}
html body .rotor28-route-deck > :is([data-rotor28-destination="player"],[data-rotor28-destination="record"]) {border-top:1px solid #d9fca52e;font-size:10px;gap:6px;color:#edf4df;}
html body .rotor28-route-deck > :is([data-rotor28-destination="player"],[data-rotor28-destination="record"]) .rotor28-route-arrow {display:none;}
html body .rotor28-route-deck > :is([data-rotor28-destination="player"],[data-rotor28-destination="record"]) > .rotor28-route-motif:first-child {width:27px;height:27px;}
html body .rotor28-route-deck > [data-rotor28-destination="green"] > .rotor28-route-motif:first-child,
html body .rotor28-route-deck > [data-rotor28-destination="vault"] > .rotor28-route-motif:first-child,
html body .rotor28-route-deck > [data-rotor28-destination="flight"] > .rotor28-route-motif:first-child {width:32px;height:32px;}
html body .rotor28-stadium-menu {margin:0 0 20px;border-top:1px solid #e5f5d742;border-bottom:1px solid #e5f5d742;color:#eaf5dc;}
html body .rotor28-stadium-toggle {
  display:flex;align-items:center;gap:10px;min-height:52px;padding:4px 0;
  cursor:pointer;list-style:none;font:650 14px/1.3 Inter,Arial,sans-serif;
}
html body .rotor28-stadium-toggle::-webkit-details-marker {display:none;}
html body .rotor28-stadium-toggle > .rotor28-route-motif:first-child {color:#c7ee94;width:30px;height:30px;}
html body .rotor28-stadium-toggle > span {flex:1;}
html body .rotor28-stadium-toggle > .rotor28-route-arrow {transform:rotate(90deg);}
html body .rotor28-stadium-menu[open] > .rotor28-stadium-toggle > .rotor28-route-arrow {transform:rotate(-90deg);}
html body .rotor28-stadium-nav {padding:2px 0 12px;}
html body .rotor28-stadium-link {
  display:flex;align-items:center;gap:9px;min-width:0;min-height:44px;
  padding:7px 2px;box-sizing:border-box;color:#dcf1bc;text-decoration:none;
  font:600 12px/1.35 Inter,Arial,sans-serif;
}
html body .rotor28-stadium-link > span {flex:1;min-width:0;}
html body .rotor28-stadium-link > .rotor28-route-motif:first-child {width:27px;height:27px;}
html body .rotor28-stadium-link > .rotor28-route-arrow {width:16px;height:12px;}
html body .rotor28-stadium-world {color:#f0fa98;font-size:14px;}
html body .rotor28-stadium-world > .rotor28-route-motif:first-child {width:45px;height:45px;}
html body .rotor28-stadium-views {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 0 6px;}
html body .rotor28-stadium-views .rotor28-stadium-link {font-size:11px;font-weight:500;min-height:44px;color:#e1e9d7;}
html body .rotor28-stadium-views .rotor28-route-arrow {display:none;}
html body .rotor28-stadium-actions {display:grid;grid-template-columns:1fr 1fr;gap:0 14px;border-top:1px solid #d9fca52e;padding-top:6px;margin-top:6px;}
html body .rotor28-stadium-actions .rotor28-route-arrow {display:none;}
html body .rotor28-stadium-guide {margin-top:6px;border-top:1px solid #d9fca52e;color:#d8e4ce;}
html body .rotor28-player-access {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:-8px 0 18px;}
html body .rotor28-player-access .rotor28-stadium-link {justify-content:center;padding:6px 9px;border:1px solid #eaffcc50;border-radius:8px 20px 8px 20px;background:linear-gradient(145deg,#ffffff10,#00000016);box-shadow:inset 0 1px #ffffff55;color:#e4f1d6;}
html body .rotor28-player-access .rotor28-route-arrow {display:none;}
html body .rotor28-record-world {margin-bottom:14px;border-bottom:1px solid #d9fca52e;}
html body .pip-world-actions.rotor28-route-deck > a:focus-visible,
html body .rotor28-stadium-menu a:focus-visible,
html body .rotor28-player-access :is(a,button):focus-visible,
html body .rotor28-stadium-toggle:focus-visible {outline:2px solid #edff9e;outline-offset:3px;}
@media (hover:hover) {
  html body .pip-world-actions.rotor28-route-deck > a:hover,
  html body .rotor28-stadium-menu a:hover {color:#ffffce;text-decoration:underline;text-underline-offset:4px;}
  html body .pip-world-actions.rotor28-route-deck > [data-rotor28-destination="duel"]:hover {color:#101b03;background:#f3fb9b;}
  html body .rotor28-stadium-toggle:hover {color:#ecffa7;}
  html body .rotor28-player-access :is(a,button):hover {color:#ffffce;border-color:#ecffa7;}
}
@media (max-width:360px) {
  html body .pip-world-actions.rotor28-route-deck {column-gap:8px;}
  html body .rotor28-route-deck > [data-rotor28-destination="duel"] {padding:10px 8px;font-size:11px;}
  html body .rotor28-stadium-actions {grid-template-columns:1fr;}
}
@media (forced-colors:active) {
  html body .pip-world-actions.rotor28-route-deck > a,
  html body .rotor28-stadium-menu a {color:LinkText;}
  html body .rotor28-route-deck > [data-rotor28-destination="duel"],
  html body .rotor28-stadium-menu {border-color:CanvasText;}
}

/* One tactile finish across the real controls. No extra canvas or render loop. */
html body:not(.rotor-preview) :is(.rotor-badge-inspect,.rotor25-emblem-access,.rotor-emblem-launch,.cm-player-create,.rotor-emblem-actions button,.rotor28-player-access .rotor28-stadium-link,.rotor28-stadium-actions .rotor28-stadium-link,.match-frame-destinations a,.match-frame-destinations button) {
  position:relative;isolation:isolate;min-height:44px;
  border:1px solid #d8ebc388!important;border-radius:11px 21px 11px 21px!important;
  background:linear-gradient(156deg,#ebffcd24 0%,#d7efba06 33%,#03080338 64%,#b9db780e 100%)!important;
  color:#e9f4df!important;
  box-shadow:inset 0 1px 1px #f4ffe6a6,inset 1px 0 #eaffc533,inset -1px -2px 2px #000a,0 4px 0 #15220feb,0 5px 0 #b1ce7042,0 8px 12px #0007!important;
  transform:perspective(650px) rotateX(3deg);transform-origin:center;
  transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease;
}
html body:not(.rotor-preview) :is(.rotor-badge-inspect,.rotor25-emblem-access,.rotor-emblem-launch,.cm-player-create) {
  display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;padding:9px 15px;
}
html body:not(.rotor-preview) :is(.rotor-badge-inspect,.rotor25-emblem-access,.rotor-emblem-launch,.cm-player-create)::before {
  content:'';display:block;flex:none;width:22px;height:22px;box-sizing:border-box;
  border:1px solid #e7fbcab8;border-radius:5px;
  background:linear-gradient(140deg,#efffc249,#d2edb007 48%,#070b095e);
  box-shadow:inset 1px 1px 1px #ffffff8c,inset -2px -2px 2px #0008,3px 3px 0 #6e865859;
  transform:perspective(60px) rotateY(-24deg) rotateX(16deg) rotateZ(-8deg);
}
html body:not(.rotor-preview) .rotor-badge-inspect::before {
  border-radius:50%;background:radial-gradient(circle,transparent 23%,#d2f3b14d 25%,transparent 35%,#ffffff24 38%,transparent 62%);
}
html body .rotor28-stadium-actions {gap:12px;padding-top:14px;}
html body .rotor28-stadium-actions .rotor28-stadium-link {padding:8px 10px;margin-bottom:2px;}
html body .rotor28-route-deck > a .rotor28-route-motif:not(.rotor28-route-arrow) {transition:transform 180ms ease;}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  html body:not(.rotor-preview) :is(.rotor-badge-inspect,.rotor25-emblem-access,.rotor-emblem-launch,.cm-player-create,.rotor-emblem-actions button,.rotor28-player-access .rotor28-stadium-link,.rotor28-stadium-actions .rotor28-stadium-link,.match-frame-destinations a,.match-frame-destinations button):not(:disabled):hover {
    transform:perspective(650px) translateY(-2px) rotateX(7deg) rotateY(-2deg);
    border-color:#f1ffd6!important;
  }
  html body .rotor28-route-deck > a:hover .rotor28-route-motif:not(.rotor28-route-arrow) {transform:perspective(180px) rotateY(-12deg) rotateX(6deg) translateY(-2px);}
}
html body:not(.rotor-preview) :is(.rotor-badge-inspect,.rotor25-emblem-access,.rotor-emblem-launch,.cm-player-create,.rotor-emblem-actions button,.rotor28-player-access .rotor28-stadium-link,.rotor28-stadium-actions .rotor28-stadium-link,.match-frame-destinations a,.match-frame-destinations button):active {
  transform:translateY(3px);box-shadow:inset 0 1px 2px #0009,0 1px 0 #83966870!important;
}
@media (prefers-reduced-motion:reduce) {
  html body:not(.rotor-preview) :is(.rotor-badge-inspect,.rotor25-emblem-access,.rotor-emblem-launch,.cm-player-create,.rotor-emblem-actions button,.rotor28-player-access .rotor28-stadium-link,.rotor28-stadium-actions .rotor28-stadium-link,.match-frame-destinations a,.match-frame-destinations button),
  html body .rotor28-route-deck > a .rotor28-route-motif {transition:none;transform:none;}
}
@media (forced-colors:active) {
  html body:not(.rotor-preview) :is(.rotor-badge-inspect,.rotor25-emblem-access,.rotor-emblem-launch,.cm-player-create,.rotor-emblem-actions button,.rotor28-player-access .rotor28-stadium-link,.rotor28-stadium-actions .rotor28-stadium-link,.match-frame-destinations a,.match-frame-destinations button) {background:ButtonFace!important;color:ButtonText!important;box-shadow:none!important;border-color:ButtonText!important;}
  html body .rotor28-route-motif path {stroke:ButtonText!important;}
  html body .rotor28-route-motif :is(.rotor28-motif-depth,.rotor28-motif-edge) {display:none;}
}
