  :root{
    --ink:#1c2430; --paper:#f6f4ee; --line:#d8d3c6;
    --accent:#e84e3c; --go:#2f9e63;
    color-scheme:light;
  }
  html[data-ui-theme="dark"]{color-scheme:dark}
  html[data-ui-theme="light"]{color-scheme:light}
  *{margin:0;padding:0;box-sizing:border-box}
  html,body{width:100%;height:100%;overflow:hidden;background:var(--ink);
    font-family:'IBM Plex Sans KR',sans-serif;color:var(--ink);
    -webkit-user-select:none;user-select:none}
  #game{position:fixed;inset:0;display:block}
  #loadError{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;
    background:var(--paper);color:var(--ink)}
  #loadError strong{font-family:'Jua',sans-serif;font-size:26px;color:var(--accent)}
  #loadError span{font-size:14px;color:#6b6a63}
  .appLoading{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;
    padding:24px;background:radial-gradient(circle at 50% 42%,#29333e 0,#171d24 45%,#10151a 100%);
    color:#f8fafb;opacity:1;visibility:visible;transition:opacity .34s ease,visibility .34s ease}
  .appLoading.is-ready{opacity:0;visibility:hidden;pointer-events:none}
  .appLoadingCard{display:flex;flex-direction:column;align-items:center;width:min(360px,90vw);text-align:center}
  .appLoadingLogo{display:flex;align-items:flex-end;gap:8px;margin-bottom:20px;font-family:'Jua',sans-serif;line-height:.9}
  .appLoadingLogo small{padding-bottom:3px;color:#aeb8c1;font-size:12px;letter-spacing:.5px}
  .appLoadingLogo strong{font-size:clamp(34px,8vw,48px);letter-spacing:1px}.appLoadingLogo b{color:#f05a47;font-weight:inherit}
  .appLoadingTrack{position:relative;width:min(280px,78vw);height:54px;overflow:hidden;border-radius:27px;
    background:#252e37;box-shadow:inset 0 2px 8px rgba(0,0,0,.42),0 8px 28px rgba(0,0,0,.2)}
  .appLoadingTrack:before{content:'';position:absolute;left:0;right:0;top:50%;height:3px;transform:translateY(-50%);
    background:repeating-linear-gradient(90deg,rgba(255,255,255,.72) 0 16px,transparent 16px 29px);animation:loadingRoad .7s linear infinite}
  .appLoadingKart{position:absolute;z-index:1;left:18%;top:50%;width:58px;height:25px;transform:translateY(-50%);
    border:3px solid #ffcf4a;border-radius:14px 18px 8px 8px;background:linear-gradient(150deg,#ff6855 0 58%,#c7332b 59%);
    box-shadow:0 4px 8px rgba(0,0,0,.42);animation:loadingKartDrive 1.15s ease-in-out infinite alternate}
  .appLoadingKart:before{content:'';position:absolute;left:15px;top:-10px;width:27px;height:13px;border:3px solid #ffcf4a;
    border-bottom:0;border-radius:12px 12px 0 0;background:#8ee6f1}
  .appLoadingKart:after{content:'';position:absolute;left:8px;right:8px;bottom:-7px;height:10px;
    background:radial-gradient(circle at 5px 50%,#111 0 4px,transparent 4.5px),radial-gradient(circle at calc(100% - 5px) 50%,#111 0 4px,transparent 4.5px)}
  .appLoadingKart i{position:absolute;right:-12px;top:7px;width:13px;height:7px;border-radius:50%;background:#ffdb57;
    filter:blur(1px);animation:loadingExhaust .3s ease-in-out infinite alternate}
  .appLoadingKart b{position:absolute;right:5px;top:7px;width:7px;height:5px;border-radius:2px;background:#fff1a6}
  .appLoading p{margin:17px 0 9px;color:#d7dee4;font-size:13px;font-weight:700;letter-spacing:.2px}
  .appLoadingDots{display:flex;gap:6px;height:8px}.appLoadingDots i{width:7px;height:7px;border-radius:50%;background:#f05a47;
    animation:loadingDot .9s ease-in-out infinite}.appLoadingDots i:nth-child(2){animation-delay:.15s}.appLoadingDots i:nth-child(3){animation-delay:.3s}
  @keyframes loadingRoad{to{background-position:29px 0}}
  @keyframes loadingKartDrive{from{left:15%;transform:translateY(-50%) rotate(-1deg)}to{left:62%;transform:translateY(-50%) rotate(1deg)}}
  @keyframes loadingExhaust{to{right:-18px;opacity:.25;transform:scale(.55)}}
  @keyframes loadingDot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
  @media(prefers-reduced-motion:reduce){.appLoading,.appLoadingTrack:before,.appLoadingKart,.appLoadingKart i,.appLoadingDots i{animation:none!important;transition:none!important}.appLoadingKart{left:40%}}
  .jua{font-family:'Jua',sans-serif}
  .screen{position:fixed;inset:0;display:flex;flex-direction:column;
    align-items:center;justify-content:center;background:var(--paper);z-index:20;overflow-y:auto}
  .hidden{display:none !important}
  html.reduced-motion #attackWarn.on,
  html.reduced-motion #driverHud.danger,
  html.reduced-motion #actionCam.impact,
  html.reduced-motion .hitCard .hcFace,
  html.reduced-motion #wrongWay.on{animation:none!important}
