/* TRACE 2.0 — isolated DarkGlass arcade UI. The Excel application is unaffected. */
#gameModal.trace-modal{position:fixed!important;inset:0!important;z-index:1100000!important;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;overflow-x:hidden;padding:clamp(8px,2vw,25px);background:rgba(3,4,10,.86)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);overscroll-behavior:contain;color:#f4efff}
#gameModal.trace-modal.active{display:flex!important}
#gameModal .trace-shell{position:relative;display:flex;flex-direction:column;width:min(460px,100%);margin:auto;background:linear-gradient(155deg,rgba(42,32,62,.94),rgba(12,12,23,.95) 36%,rgba(7,9,17,.98));border:1px solid rgba(203,188,233,.30);border-top-color:rgba(233,222,255,.47);border-radius:25px;box-shadow:0 34px 92px rgba(0,0,0,.66),inset 0 1px rgba(255,255,255,.08);overflow:hidden;animation:traceShellIn .42s cubic-bezier(.19,1,.22,1) both}
@keyframes traceShellIn{from{opacity:0;transform:translateY(17px) scale(.98)}to{opacity:1;transform:none}}
#gameModal .trace-shell *,#gameModal .trace-shell *:before,#gameModal .trace-shell *:after{box-sizing:border-box}
#gameModal button{font-family:inherit;cursor:pointer;color:#e8e2f9}
#gameModal button:disabled{opacity:.45!important;cursor:not-allowed!important}
#gameModal .trace-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px 13px;border-bottom:1px solid rgba(197,174,231,.15);background:rgba(39,31,62,.14)}
#gameModal .trace-brand{display:flex;align-items:center;gap:11px;min-width:0}
#gameModal .trace-mark{width:40px;height:40px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(82,69,144,.5),rgba(48,61,99,.28));border:1px solid rgba(190,171,251,.47);border-radius:13px;color:#c7b2ff;font-size:28px;flex-shrink:0}
#gameModal .trace-title{font-size:21px;font-weight:950;letter-spacing:-1px;line-height:1;color:#f5f1ff;white-space:nowrap}
#gameModal .trace-title span{font-size:12px;vertical-align:top;color:#c9aafa;letter-spacing:0}
#gameModal .trace-subtitle{font-size:9px;color:#afa1c5;letter-spacing:1.4px;font-weight:750;margin-top:6px;white-space:nowrap}
#gameModal .trace-head-actions{display:flex;gap:5px}
#gameModal .trace-iconbtn{display:grid!important;place-items:center;flex:0 0 35px;width:35px!important;min-width:35px!important;height:35px!important;padding:0!important;border-radius:11px!important;border:1px solid rgba(182,165,222,.24)!important;background:rgba(45,38,62,.49)!important;font-size:19px!important;line-height:1!important;color:#cbbff0!important;box-shadow:none!important;transition:background .2s,border-color .2s,transform .2s!important}
#gameModal .trace-iconbtn:hover{background:rgba(87,70,113,.42)!important;border-color:rgba(200,180,244,.54)!important}
#gameModal .trace-iconbtn:active{transform:scale(.94)}
#gameModal .trace-iconbtn svg{width:17px;height:17px;display:block;pointer-events:none}
#gameModal .trace-iconbtn.muted{opacity:.55}
#gameModal .trace-config{display:grid;grid-template-columns:1fr;gap:9px;padding:12px 17px 10px;border-bottom:1px solid rgba(195,174,226,.12);background:rgba(10,11,21,.25)}
#gameModal .trace-config.is-playing{display:none}
#gameModal .trace-config-section{display:flex;align-items:center;gap:10px;min-width:0}
#gameModal .trace-lbl{font-size:9px;letter-spacing:1.1px;font-weight:850;color:#b3a4c8;white-space:nowrap;min-width:90px}
#gameModal .trace-options,#gameModal .trace-skins{display:flex;flex:1;gap:5px;min-width:0}
#gameModal .trace-options button{flex:1;min-width:0;min-height:32px;padding:5px 4px;border:1px solid rgba(186,168,217,.16);border-radius:9px;background:rgba(24,20,38,.7);font-size:11px;font-weight:700}
#gameModal .trace-options button.active{background:linear-gradient(115deg,rgba(98,79,168,.56),rgba(92,66,139,.35));border-color:rgba(188,166,250,.63);color:#fff}
#gameModal .trace-skins button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 1px;border:1px solid rgba(177,154,220,.15);border-radius:9px;background:rgba(21,19,32,.67)}
#gameModal .trace-skins button.active{border-color:rgba(197,179,243,.70);background:rgba(98,74,139,.28)}
#gameModal .trace-skins button span{font-size:14px;color:var(--skin-color);text-shadow:0 0 9px var(--skin-color)}
#gameModal .trace-skins button b{font-size:9px;letter-spacing:.3px}
#gameModal .trace-skins button small{font-size:7px;color:#a79cb6}
#gameModal .trace-hud{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:11px 14px 9px;background:rgba(5,7,15,.42)}
#gameModal .trace-hud-stat{text-align:center;min-width:0;border-radius:10px;border:1px solid rgba(190,166,242,.16);background:rgba(29,24,46,.46);padding:7px 4px}
#gameModal .trace-hud-stat small{display:block;color:#ad9fc7;letter-spacing:1.1px;font-size:8px;font-weight:850}
#gameModal .trace-hud-stat strong{display:block;margin-top:3px;font-size:19px;color:#f6f3ff;letter-spacing:-.5px;white-space:nowrap}
#gameModal .trace-hud-stat.trace-hud-lives strong{color:#fb9eaa;font-size:17px;letter-spacing:1px}
#gameModal .trace-record{grid-column:1/-1;color:#c3aeec;text-align:right;font-size:10px}
#gameModal .trace-stage{position:relative;width:calc(100% - 28px);margin:0 auto;border:1px solid rgba(160,143,208,.30);border-radius:17px;overflow:hidden;background:#10131f;aspect-ratio:360/520;touch-action:none;isolation:isolate;box-shadow:inset 0 0 30px rgba(0,0,0,.5),0 12px 30px rgba(1,1,8,.3)}
#gameModal #gameCanvas{display:block!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#0a0f1b!important}
#gameModal .trace-power-hud{position:absolute;display:flex;gap:5px;left:8px;right:8px;top:10px;flex-wrap:wrap;pointer-events:none;z-index:3}
#gameModal .trace-power-hud span{padding:5px 8px;font-size:9px;font-weight:850;letter-spacing:.2px;background:rgba(15,12,30,.82);border:1px solid rgba(195,165,255,.5);border-radius:8px;color:#ebd5ff}
#gameModal .trace-power-hud b{color:#fff}
#gameModal .trace-toast{position:absolute;left:50%;top:26%;transform:translate(-50%,-8px);min-width:140px;max-width:90%;text-align:center;z-index:5;color:#d6c2ff;background:rgba(18,14,37,.92);border:1px solid rgba(200,171,255,.42);border-radius:11px;padding:9px 12px;font-size:12px;font-weight:900;letter-spacing:1px;opacity:0;pointer-events:none;white-space:nowrap}
#gameModal .trace-toast.show{animation:traceToast 1.25s ease both}
#gameModal .trace-toast[data-kind="hit"]{color:#ffc2cb;border-color:#ff879c}
#gameModal .trace-toast[data-kind="power"]{color:#a9ffdf;border-color:#8debd1}
@keyframes traceToast{0%{opacity:0;transform:translate(-50%,8px)}18%,65%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-15px)}}
#gameModal .trace-stage-overlay{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(170deg,rgba(11,11,25,.87),rgba(19,12,38,.94));padding:20px;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
#gameModal [hidden]{display:none!important}
#gameModal .trace-start-mark{font-size:55px;color:#ccb6ff;text-shadow:0 0 40px rgba(153,123,245,.9);animation:traceFloat 3s ease-in-out infinite}
@keyframes traceFloat{50%{transform:translateY(-8px)}}
#gameModal .trace-sup{font-size:10px;letter-spacing:2px;font-weight:900;color:#cab8e7;margin-bottom:13px}
#gameModal .trace-start h2,#gameModal .trace-pause h2,#gameModal .trace-exit h2{font-size:clamp(26px,7vw,38px);line-height:1.12;letter-spacing:-1.2px;color:#faf7ff;margin:0 0 14px;font-weight:950}
#gameModal .trace-start h2 em{font-style:normal;color:#c9a4ff}
#gameModal .trace-start p,#gameModal .trace-exit p{max-width:270px;line-height:1.5;color:#b1a6c8;font-size:12px;margin:0 auto 18px}
#gameModal .trace-cta{display:inline-flex;align-items:center;justify-content:center;gap:15px;max-width:100%;min-height:46px;background:linear-gradient(112deg,#705aca,#986bdb)!important;color:white!important;padding:12px 19px!important;border:1px solid rgba(223,200,255,.55)!important;border-radius:13px!important;box-shadow:0 8px 24px rgba(111,68,193,.29)!important;font-weight:850!important;font-size:12px!important;letter-spacing:.4px;transition:filter .2s,transform .2s}
#gameModal .trace-cta:hover{filter:brightness(1.16)}
#gameModal .trace-start small{font-size:9px;color:#9b8cab;margin-top:18px}
#gameModal .trace-countdown{font-size:72px;font-weight:950;color:white;text-shadow:0 0 35px #aa84ff}
#gameModal #countdownText{animation:traceBeat .48s ease-out both}
@keyframes traceBeat{from{opacity:.35;transform:scale(1.6)}to{opacity:1;transform:none}}
#gameModal .trace-dialog-actions{display:flex;gap:9px;width:100%;max-width:260px}
#gameModal .trace-dialog-actions button{flex:1;min-height:43px;border:1px solid rgba(196,170,223,.32);border-radius:11px;background:rgba(38,31,59,.71);font-weight:800;font-size:12px}
#gameModal .trace-touch-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 9px}
#gameModal .trace-touch-controls button{display:flex;align-items:center;justify-content:center;gap:10px;flex:1;max-width:140px;min-height:45px;border-radius:12px;border:1px solid rgba(195,178,236,.30);background:rgba(39,31,60,.56);font-size:21px;font-weight:800;touch-action:manipulation}
#gameModal .trace-touch-controls button:active{background:rgba(125,95,187,.32)}
#gameModal .trace-touch-controls small{font-size:9px;letter-spacing:1.1px;font-weight:850}
#gameModal .trace-hint{font-size:10px;letter-spacing:1px;text-align:center;color:#d0bdf6;font-weight:900;line-height:1.55;white-space:nowrap}
#gameModal .trace-hint span{color:#91839f;font-weight:650;font-size:7px}
#gameModal .trace-bottom{padding:2px 17px 15px}
#gameModal .trace-progress{background:rgba(16,14,28,.46);border:1px solid rgba(177,157,225,.16);border-radius:13px;padding:10px 12px}
#gameModal .trace-progress-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px;letter-spacing:.7px;font-weight:850;color:#b8a9cc}
#gameModal .trace-progress-head button{background:transparent;border:0;color:#c4abf5;font-size:9px;font-weight:850;padding:4px}
#gameModal #traceDailySummary{margin-top:6px;font-size:11px;color:#e5d6fa}
#gameModal .trace-controls-caption{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#8f819d;margin-top:10px}
#gameModal .trace-leaderboard{justify-content:flex-start;padding:0!important;z-index:28!important}
#gameModal .trace-leader-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px;border-bottom:1px solid rgba(197,176,229,.17);font-size:13px;font-weight:850}
#gameModal .trace-leader-head button,#gameModal .trace-full-head button{border:1px solid rgba(205,184,238,.35);background:rgba(55,44,76,.7);border-radius:9px;padding:5px 10px}
#gameModal .trace-leader-list{overflow:auto;min-height:0;flex:1;width:100%;padding:10px 14px;text-align:left}
#gameModal .trace-leaderboard>.trace-cta{margin:11px auto}
#gameModal .trace-full-overlay{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:linear-gradient(160deg,rgba(37,28,53,.99),rgba(9,10,18,.99));backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);overflow:hidden}
#gameModal .trace-full-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:15px 16px;border-bottom:1px solid rgba(197,171,228,.18);font-size:12px;letter-spacing:1px}
#gameModal .trace-full-body{padding:16px;overflow:auto;min-height:0;flex:1;overscroll-behavior:contain}
#gameModal .trace-full-body h3{margin:8px 0 11px;font-size:14px;color:#eedffd}
#gameModal .trace-mission{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:9px;background:rgba(65,45,89,.30);border:1px solid rgba(181,153,219,.23);border-radius:12px;padding:11px;font-size:11px;color:#cdbce3}
#gameModal .trace-mission.done{border-color:rgba(107,231,187,.4)}
#gameModal .trace-mission>div{grid-column:1/-1;background:rgba(9,8,19,.8);height:5px;border-radius:20px;overflow:hidden}
#gameModal .trace-mission i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#7c70cd,#ad82fa)}
#gameModal .trace-ach{display:flex;align-items:center;gap:9px;padding:10px;margin-bottom:8px;border-radius:12px;background:rgba(31,26,47,.52);border:1px solid rgba(166,139,211,.18);opacity:.72}
#gameModal .trace-ach.earned{opacity:1;border-color:rgba(199,170,247,.45)}
#gameModal .trace-ach-icon{height:32px;width:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:9px;background:rgba(139,98,213,.18);color:#d7b7ff;font-size:20px}
#gameModal .trace-ach>div:nth-child(2){flex:1;min-width:0}
#gameModal .trace-ach strong{display:block;color:#fff;font-size:11px}
#gameModal .trace-ach small{display:block;color:#a69cb9;font-size:10px;margin-top:3px}
#gameModal .trace-ach>b{font-size:8px;color:#b69cde;white-space:nowrap}
#gameModal .trace-game-over{z-index:45}
#gameModal .trace-game-over-emblem{text-align:center;font-size:52px;color:#c5a0ff;text-shadow:0 0 24px rgba(158,99,255,.48)}
#gameModal .trace-record-flag{text-align:center;font-size:11px;font-weight:850;color:#c6a7e9;letter-spacing:1.7px;margin:8px 0}
#gameModal .trace-final-score{display:block;text-align:center;font-size:54px;font-weight:950;letter-spacing:-2px;color:#fff;line-height:1.1}
#gameModal .trace-final-sub{text-align:center;color:#a99abf;letter-spacing:2px;font-size:9px;margin:6px 0 17px}
#gameModal .trace-final-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
#gameModal .trace-final-grid>div{text-align:center;border:1px solid rgba(191,166,229,.19);background:rgba(49,34,69,.35);padding:10px 3px;border-radius:10px;font-size:8px;letter-spacing:.6px;color:#bdaacf}
#gameModal .trace-final-grid strong{display:block;font-size:18px;color:#f9f0ff;margin-top:5px}
#gameModal .trace-saver{color:#bda5da;font-size:10px;font-weight:850;letter-spacing:.9px;margin:20px 0 10px;text-align:center}
#gameModal .trace-route-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
#gameModal .trace-route-buttons button{min-height:34px;border-radius:9px;border:1px solid rgba(187,163,237,.26);background:rgba(56,42,83,.39);font-size:11px;color:#ddcafd}
#gameModal .trace-route-buttons button:hover{background:rgba(126,88,191,.36)}
#gameModal .trace-end-actions{display:flex;gap:8px;margin-top:16px}
#gameModal .trace-end-actions button{flex:1;min-height:42px;border-radius:11px;background:rgba(42,30,62,.55);border:1px solid rgba(191,167,226,.24);font-size:11px;font-weight:850}
#gameModal .trace-link{display:block;margin:15px auto 0;background:transparent;border:0;color:#c8b4f0;font-size:10px;letter-spacing:1px;font-weight:900}
@media(max-width:520px){#gameModal.trace-modal{padding:6px!important}#gameModal .trace-shell{border-radius:16px}#gameModal .trace-head{padding:11px 9px}#gameModal .trace-head-actions{gap:3px}#gameModal .trace-iconbtn{flex-basis:30px;width:30px!important;min-width:30px!important;height:32px!important}#gameModal .trace-subtitle{letter-spacing:.8px;font-size:8px}#gameModal .trace-title{font-size:19px}#gameModal .trace-config{padding:8px}#gameModal .trace-lbl{min-width:74px;font-size:8px}#gameModal .trace-hud{padding:8px 7px 7px;gap:4px}#gameModal .trace-hud-stat strong{font-size:17px}#gameModal .trace-stage{width:calc(100% - 13px);border-radius:12px}#gameModal .trace-touch-controls{padding:8px}#gameModal .trace-bottom{padding:2px 9px 10px}#gameModal .trace-hint{font-size:8px}#gameModal .trace-hint span{font-size:6px}}
@media(prefers-reduced-motion:reduce){#gameModal .trace-shell,#gameModal .trace-start-mark,#gameModal .trace-toast,#gameModal #countdownText{animation:none!important}}

/* Impact feedback without affecting document layout. */
#gameModal .trace-stage.trace-shake{animation:traceShake .26s linear both}
@keyframes traceShake{0%,100%{transform:none}25%{transform:translate3d(-4px,2px,0)}50%{transform:translate3d(4px,-2px,0)}75%{transform:translate3d(-2px,2px,0)}}
@media(prefers-reduced-motion:reduce){#gameModal .trace-stage.trace-shake{animation:none!important}}


/* TRACE 2.0.1 — Compact window, true-fit canvas and screen choreography.
   Its whole window fits the viewport; the track is the only flexible region. */
#gameModal.trace-modal{align-items:center!important;overflow:hidden!important;padding:clamp(5px,1.2vw,12px)!important}
#gameModal .trace-shell{
  width:min(415px,100%)!important;
  height:min(750px,calc(100dvh - 18px))!important;
  min-height:0!important;
  margin:auto!important;
  overflow:hidden!important;
}
#gameModal .trace-head{flex:0 0 auto;padding:10px 12px 9px!important}
#gameModal .trace-mark{width:35px;height:35px;font-size:24px}
#gameModal .trace-title{font-size:19px}
#gameModal .trace-config{flex:0 0 auto;gap:5px;padding:8px 12px 6px!important}
#gameModal .trace-config-section{gap:6px}
#gameModal .trace-hud{flex:0 0 auto;padding:7px 10px!important;gap:5px}
#gameModal .trace-hud-stat{padding:5px 3px!important}
#gameModal .trace-hud-stat strong{font-size:17px}
#gameModal .trace-record{font-size:9px}
#gameModal .trace-stage{
  flex:1 1 0!important;
  min-height:165px!important;
  width:calc(100% - 20px)!important;
  height:auto!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  margin:0 auto!important;
  background:radial-gradient(ellipse at 50% 40%,#131b33,#080a15 80%)!important;
}
/* Canvas keeps the original 360×520 coordinate system at every viewport size. */
#gameModal #gameCanvas{object-fit:contain!important;object-position:center center!important}
#gameModal .trace-touch-controls{flex:0 0 auto;padding:6px 12px!important;gap:7px!important}
#gameModal .trace-touch-controls button{min-height:39px!important;max-width:130px}
#gameModal .trace-bottom{flex:0 0 auto;padding:2px 12px 8px!important}
#gameModal .trace-progress{padding:7px 10px!important}
#gameModal .trace-controls-caption{margin-top:5px!important}
#gameModal .trace-full-overlay{border-radius:0;isolation:isolate}
#gameModal .trace-modal:focus-visible,#gameModal button:focus-visible{outline:2px solid #d8bcff;outline-offset:2px}
#gameModal.trace-modal-closing{pointer-events:none;animation:traceModalExit .19s ease-in both}
#gameModal.trace-modal-closing .trace-shell{animation:traceModalShellExit .19s ease-in both}
@keyframes traceModalExit{to{opacity:0}}
@keyframes traceModalShellExit{to{opacity:0;transform:translateY(9px) scale(.985)}}
@media(max-height:710px){
  #gameModal .trace-shell{height:calc(100dvh - 10px)!important}
  #gameModal .trace-head{padding:7px 10px!important}
  #gameModal .trace-title{font-size:17px}
  #gameModal .trace-config{padding:6px 10px 5px!important;gap:3px}
  #gameModal .trace-config-section{gap:4px}
  #gameModal .trace-lbl{min-width:68px;font-size:8px}
  #gameModal .trace-options button{min-height:27px;font-size:10px}
  #gameModal .trace-skins button{padding:2px 1px}
  #gameModal .trace-hud{padding:5px 9px!important}
  #gameModal .trace-hud-stat{padding:4px 2px!important}
  #gameModal .trace-hud-stat strong{font-size:15px}
  #gameModal .trace-bottom{padding:2px 9px 5px!important}
  #gameModal .trace-controls-caption{display:none!important}
  #gameModal .trace-touch-controls{padding:4px 9px!important}
  #gameModal .trace-touch-controls button{min-height:34px!important}
}
@media(max-width:420px){
  #gameModal.trace-modal{padding:4px!important}
  #gameModal .trace-shell{width:100%!important;height:calc(100dvh - 8px)!important;border-radius:15px!important}
  #gameModal .trace-head{gap:4px!important}
  #gameModal .trace-brand{gap:6px!important}
  #gameModal .trace-title{font-size:16px!important}
  #gameModal .trace-mark{width:31px;height:31px;font-size:21px}
  #gameModal .trace-head-actions{gap:3px}
  #gameModal .trace-iconbtn{flex-basis:30px!important;width:30px!important;min-width:30px!important;height:30px!important}
  #gameModal .trace-hint{font-size:8px}
  #gameModal .trace-hint span{font-size:6px}
  #gameModal .trace-stage{width:calc(100% - 14px)!important;min-height:140px!important}
}
@media (prefers-reduced-motion:reduce){
  #gameModal.trace-modal-closing,#gameModal.trace-modal-closing .trace-shell{animation:none!important}
}

/* Very short browser windows / landscape phones: never exceed viewport. */
@media(max-height:480px){
  #gameModal .trace-shell{height:calc(100dvh - 8px)!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain}
  #gameModal .trace-stage{flex:0 0 140px!important;height:140px!important;min-height:140px!important}
  #gameModal .trace-bottom{display:none!important}
  #gameModal .trace-touch-controls{padding:3px 8px!important}
  #gameModal .trace-touch-controls button{min-height:30px!important}
}
#gameModal .trace-shell{box-sizing:border-box!important}
@media(max-height:480px){#gameModal .trace-shell{height:calc(100dvh - 14px)!important;max-height:calc(100dvh - 14px)!important}}


/* TRACE 2.0.2 — readability / responsive intro. All starter text stays visible.
   Based on the *actual remaining canvas height*, without browser zoom tricks. */
#gameModal .trace-start{
    justify-content:safe center;
    gap:clamp(4px,.9dvh,8px)!important;
    padding:clamp(7px,1.4dvh,13px) 10px!important;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:none;
}
#gameModal .trace-start::-webkit-scrollbar{display:none}
#gameModal .trace-start > *{flex-shrink:0}
#gameModal .trace-start .trace-start-mark{
    font-size:clamp(27px,5.2dvh,43px)!important;
    line-height:1!important;
    margin:0!important;
}
#gameModal .trace-start h2{
    font-size:clamp(22px,4.2dvh,35px)!important;
    line-height:1.07!important;
    letter-spacing:-.8px!important;
    margin:0!important;
}
#gameModal .trace-start p{
    font-size:clamp(10px,1.55dvh,12px)!important;
    line-height:1.4!important;
    margin:0!important;
    max-width:290px;
}
#gameModal .trace-start .trace-cta{
    min-height:clamp(34px,5dvh,42px)!important;
    padding:8px 14px!important;
    margin:0!important;
}
#gameModal .trace-start small{
    font-size:clamp(8px,1.15dvh,10px)!important;
    line-height:1.25!important;
    margin:0!important;
    white-space:normal;
    text-wrap:balance;
    color:#c9bbdd!important;
    font-weight:650;
}
/* A landscape phone has much less space than a portrait phone.
   Make the canvas tall enough for its contents, scroll *the game shell* if necessary. */
@media(max-height:480px){
    #gameModal .trace-stage{
        flex:0 0 225px!important;
        height:225px!important;
        min-height:225px!important;
    }
    #gameModal .trace-start{
        gap:3px!important;
        padding:5px 9px!important;
    }
    #gameModal .trace-start .trace-start-mark{font-size:25px!important}
    #gameModal .trace-start h2{font-size:21px!important;line-height:1.05!important}
    #gameModal .trace-start p{font-size:10px!important;line-height:1.25!important}
    #gameModal .trace-start .trace-cta{min-height:32px!important;padding:6px 12px!important}
}
@media(prefers-reduced-motion:reduce){
    #gameModal .trace-start .trace-start-mark{animation:none!important}
}

/* TRACE 2.0.3 — achievement toast / route picker feedback */
#gameModal .trace-toast[data-kind="achievement"]{
  color:#f6e5ff;
  border-color:rgba(224,182,255,.8);
  background:linear-gradient(110deg,rgba(71,42,100,.95),rgba(24,23,49,.95));
  box-shadow:0 0 22px rgba(190,120,255,.28);
}
#gameModal .trace-route-buttons button{
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
#gameModal .trace-route-buttons button:hover:not(:disabled){
  background:rgba(116,85,170,.45);
  border-color:rgba(207,174,255,.68);
  box-shadow:0 5px 14px rgba(18,7,39,.28);
}
#gameModal .trace-route-buttons button:active:not(:disabled){
  transform:scale(.96);
}
@media (prefers-reduced-motion:reduce){
  #gameModal .trace-route-buttons button{transition:none!important}
}

/* TRACE 2.0.4 — clear feedback when progress pauses an active run. */
#gameModal .trace-progress-pause-badge{
  display:inline-flex;align-items:center;justify-content:center;
  padding:5px 7px;margin-left:auto;border-radius:8px;
  border:1px solid rgba(185,150,235,.32);
  background:rgba(116,80,166,.19);color:#d9c5f8;
  font-size:9px;font-weight:900;letter-spacing:.7px;white-space:nowrap;
}
#gameModal .trace-progress-pause-badge[hidden]{display:none!important}

/* Дополнительная категория таблицы рекордов — «Склад».
   Занимает три оставшиеся ячейки после маршрута #17. */
#gameModal .trace-route-buttons > .trace-warehouse-btn {
  grid-column: span 3;
  font-weight: 850;
  letter-spacing: .25px;
  color: #d7eaff;
  border-color: rgba(125, 180, 227, .38);
  background: linear-gradient(110deg, rgba(43, 79, 117, .42), rgba(58, 49, 98, .30));
  box-shadow: inset 0 1px 0 rgba(215, 236, 255, .07);
}
#gameModal .trace-route-buttons > .trace-warehouse-btn:hover:not(:disabled) {
  color: #f5faff;
  border-color: rgba(147, 205, 250, .72);
  background: linear-gradient(110deg, rgba(59, 108, 153, .54), rgba(90, 67, 153, .37));
  box-shadow: 0 5px 16px rgba(19, 35, 70, .20);
}
/* TRACE 2.0 — плавный hover кнопки «Не сохранять» */

#gameModal .trace-end-actions > button:first-child {
    background: rgba(42, 30, 62, .55);
    border-color: rgba(191, 167, 226, .24);
    color: #e8e2f9;

    transition:
        background-color .3s ease,
        border-color .3s ease,
        box-shadow .3s ease,
        color .3s ease,
        transform .2s ease !important;
}

#gameModal .trace-end-actions > button:first-child:hover {
    background: rgba(105, 78, 143, .38);
    border-color: rgba(198, 170, 245, .48);
    color: #fff;
    box-shadow: 0 5px 18px rgba(113, 77, 177, .16);
}

#gameModal .trace-end-actions > button:first-child:active {
    transform: scale(.98);
}

#gameModal .trace-end-actions > button:first-child:focus-visible {
    outline: 2px solid rgba(194, 164, 255, .7);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    #gameModal .trace-end-actions > button:first-child {
        transition: none !important;
    }
}
/* TRACE 2.0 · Identical, centered vector steering arrows. */
#gameModal .trace-touch-controls button#traceLeft,
#gameModal .trace-touch-controls button#traceRight {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 12px !important;
  text-align: center !important;
}
#gameModal .trace-touch-controls button .trace-steer-icon {
  display: block !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  flex: none !important;
  overflow: visible;
  color: #e8dcff;
  filter: drop-shadow(0 0 5px rgba(175, 141, 255, .30));
}
#gameModal .trace-touch-controls button#traceRight .trace-steer-icon {
  transform: rotate(180deg);
}
@media (max-width: 520px) {
  #gameModal .trace-touch-controls button .trace-steer-icon {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
  }
}
