.paris-view{width:100%;max-width:760px;margin:0 auto;color:#294d42}
.paris-choices{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;margin:0 0 9px}
.paris-modes,.paris-difficulties{display:flex;gap:5px;min-width:0}
.paris-choice{flex:1;min-width:0;min-height:44px;padding:7px 6px;border:1px solid #b0bda4;border-radius:4px;background:#e8eddb;color:#365547;font:11px var(--mono,monospace);cursor:pointer;touch-action:manipulation}
.paris-choice[aria-pressed='true']{background:#2f5b53;border-color:#2f5b53;color:#fff1cf;box-shadow:inset 0 2px #95b4a84a,0 2px #1f3d3526}
.paris-choice:focus-visible,.paris-control:focus-visible{outline:3px solid #b98745;outline-offset:2px}
.paris-stage{display:grid;grid-template-columns:1fr auto;gap:5px 14px;padding:9px 12px;margin-bottom:9px;border:1px solid #b6c3a9;border-radius:5px;background:linear-gradient(110deg,#eef0dc,#dce6d2);box-shadow:inset 0 1px #fffae9}
.paris-route{display:flex;align-items:center;gap:12px;min-width:0}
.paris-location{font-size:14px;font-weight:600;color:#2c5044}
.paris-route-detail{font:10px var(--mono,monospace);color:#526849}
.paris-clock{align-self:center;white-space:nowrap;font:600 15px var(--mono,monospace);color:#2d584a}
.paris-stage[data-mode='survival'] .paris-clock{font-size:17px;font-variant-numeric:tabular-nums}
.paris-stage[data-urgent='true'] .paris-clock{color:#a04926}
.paris-progress{grid-column:1/-1;height:4px;overflow:hidden;background:#bccbb0;border-radius:1px}
.paris-progress>i{display:block;height:100%;background:linear-gradient(90deg,#4c8a75,#a0bd83)}
.paris-board{position:relative;overflow:hidden;padding:9px;border:1px solid #91aa94;border-radius:7px;background:linear-gradient(125deg,#b8c9a7,#759b8b);box-shadow:inset 0 1px #eaf0da,0 5px #2c594220,0 12px 25px #2f5b3212}
.paris-canvas{display:block;width:100%;height:auto;aspect-ratio:18/13;margin-inline:auto;border:2px solid #446657;border-radius:2px;background:#bbc6a5;image-rendering:pixelated;touch-action:none;outline:none}
.paris-canvas:focus-visible{outline:3px solid #dea158;outline-offset:2px}
.paris-mobile-hud{display:none}
.paris-overlay{position:absolute;z-index:2;inset:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px;text-align:center;background:#173f3fe8;color:#f7edcd}
.paris-overlay[hidden]{display:none}
.paris-overlay-eyebrow{color:#a8c8b3;font:10px var(--mono,monospace);letter-spacing:2px}
.paris-overlay-title{font:400 clamp(25px,4vw,36px) Georgia,serif;letter-spacing:-.5px}
.paris-overlay-detail{max-width:430px;color:#c8d8ba;font:11px/1.8 var(--mono,monospace)}
.paris-replay{min-height:44px;margin-top:3px;padding:10px 17px;border:1px solid #e2bd87;border-radius:4px;background:#ecc997;color:#294d43;font:11px var(--mono,monospace);cursor:pointer;touch-action:manipulation}
.paris-replay:focus-visible{outline:3px solid #fff0cc;outline-offset:3px}
.paris-footer{margin-top:12px}
.paris-controls{display:flex;gap:6px;max-width:540px;width:100%;margin:0 auto}
.paris-control{position:relative;display:flex;flex:1;min-width:0;min-height:52px;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:6px 3px;border:1px solid #b6c6a5;border-radius:4px;background:#e6edd6;color:#406243;box-shadow:inset 0 1px #fbf9e7,0 2px #aabe9b;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.paris-control b{font:18px/1 var(--mono,monospace)}
.paris-control span{font:9px/1 var(--mono,monospace)}
.paris-control-assist{background:#ecddbb;border-color:#cbb992;color:#795c31}
.paris-control-bell{background:#dbe8df;color:#35675d}
.paris-brake-meter{position:absolute;bottom:3px;left:7px;right:7px;height:2px;background:#aebd9b;pointer-events:none}
.paris-brake-meter[hidden]{display:none}
.paris-brake-meter>i{display:block;height:100%;background:#57856b}
.paris-control[data-recharging='true'] .paris-brake-meter>i{background:#b08752}
.paris-control[data-held='true']{background:#bfd4ac;border-color:#789b72;color:#284f37;transform:translateY(1px)}
.paris-view:not([data-phase='playing']) .paris-control{opacity:.6}
.paris-hint{margin:10px 0 0;text-align:center;color:#526c4d;font:10px/1.65 var(--mono,monospace)}
.paris-status{margin:7px 0 0;text-align:center;color:#526749;font-size:12px;line-height:1.5}
@media(max-width:600px){
  .solo-app:has(.paris-view[data-mode='survival']) .solo-hud{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}
  .solo-app:has(.paris-view[data-mode='survival']) .solo-hud>.solo-score{grid-row:1}
  .solo-app:has(.paris-view[data-mode='survival']) .solo-hud>.solo-score:not(.solo-best){grid-column:1}
  .solo-app:has(.paris-view[data-mode='survival']) .solo-hud>.solo-best{grid-column:2}
  .solo-app:has(.paris-view[data-mode='survival']) .solo-hud .solo-score>strong{font-size:20px;line-height:1.2;overflow-wrap:anywhere;white-space:normal}
  .solo-app:has(.paris-view[data-mode='survival']) .solo-play-status{grid-column:1/-1;grid-row:2}
  .solo-app:has(.paris-view[data-mode='survival']) .solo-session-actions{grid-column:1/-1;grid-row:3}
  .paris-choices{grid-template-columns:1fr;gap:6px;margin-bottom:8px}
  .paris-choice{font-size:10px}
  .paris-stage{padding:8px 9px;gap:6px 8px;margin-bottom:8px}
  .paris-route{display:block}
  .paris-location{display:block;font-size:13px}
  .paris-route-detail{display:block;margin-top:3px;font-size:9px}
  .paris-clock{font-size:13px}
  .paris-stage[data-mode='survival'] .paris-clock{font-size:14px}
  .paris-board{padding:6px}
  .paris-canvas{width:100%;margin-inline:auto}
  .paris-mobile-hud{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:6px;padding:7px 5px;background:#214b4b;color:#fff0cf;pointer-events:none;border-radius:2px}
  .paris-mobile-hud>div{min-width:0;text-align:center}
  .paris-mobile-hud span{display:block;font:8px var(--mono,monospace);color:#b8d0b8;letter-spacing:.3px}
  .paris-mobile-hud strong{display:block;margin-top:3px;font:600 13px var(--mono,monospace)}
  .paris-overlay{inset:8px;gap:9px;padding:13px}
  .paris-overlay-eyebrow{font-size:8px;letter-spacing:1px}
  .paris-overlay-detail{font-size:9px}
  .paris-footer{margin-top:10px}
  .paris-controls{gap:4px}
  .paris-control{min-height:49px;padding:5px 2px}
  .paris-control b{font-size:16px}
  .paris-control span{font-size:8px;letter-spacing:0}
  .paris-hint{font-size:9px;text-align:left}
  .paris-status{font-size:11px;text-align:left}
}
@media(prefers-reduced-motion:reduce){.paris-control[data-held='true']{transform:none}}
@media(max-width:420px){
  .paris-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .paris-control{min-height:48px;flex-direction:row;gap:8px}
  .paris-control span{font-size:9px}
}
