/* NY chrome hidden (kept in DOM so NY handlers stay bound) */
.hud-top-left,.hud-top-right,.hud-sound,.hud-bottom-left,.hud-bottom-center,.hud-bottom-right,#touch-controls,#teleport-popover,#camera-popover,#loading-overlay.hidden{display:none!important}
*{box-sizing:border-box;margin:0}
html,body{height:100%;background:#14181c;color:#f1f4f8;font-family:'Bricolage Grotesque',system-ui,sans-serif;overflow:hidden;touch-action:none}
#c{position:fixed;inset:0;width:100%;height:100%;display:block}
#loader{position:fixed;inset:0;background:#14181c;display:grid;place-items:center;z-index:50;transition:opacity .8s}
#loader.off{opacity:0;pointer-events:none}
.l-in{width:260px}.l-in h1{font-size:30px;letter-spacing:-.02em}.l-in p{color:#8b95a1;font-size:14px;margin:4px 0 16px}
.bar{height:1px;background:#2c333b}.bar i{display:block;height:1px;width:0;background:#38e07b;transition:width .3s}
#lmsg{display:block;margin-top:8px;font:12px 'DM Mono',monospace;color:#8b95a1}
#hud{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:0;transition:opacity .6s}
#hud.on{opacity:1}
#street{position:absolute;left:20px;top:18px}
#street small{display:block;font:10px 'DM Mono',monospace;letter-spacing:.14em;color:#8b95a1}
#street b{font-size:22px;letter-spacing:-.01em;font-weight:600}
#score{position:absolute;right:20px;top:18px;text-align:right;font:13px 'DM Mono',monospace;color:#c3ccd6;background:rgba(20,24,30,.55);backdrop-filter:blur(14px);padding:6px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14)}
#score b{font:700 30px 'Bricolage Grotesque';color:#38e07b;margin-right:4px}
#mini{position:absolute;left:20px;bottom:20px;width:150px;height:150px;border-radius:50%;border:1px solid #3a434d;background:#14181cdd}
#clock{position:absolute;right:20px;bottom:20px;font:13px 'DM Mono',monospace;color:#8b95a1}
#help{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font:12px 'DM Mono',monospace;color:#f1f5f9;background:rgba(10,14,24,.66);padding:6px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(6px);white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.6)}
#card{position:fixed;left:50%;top:84px;transform:translate(-50%,-12px);background:#1d2329ee;border:1px solid #38e07b66;border-radius:14px;padding:14px 20px;min-width:260px;max-width:86vw;text-align:center;opacity:0;transition:.4s;z-index:20;pointer-events:none}
#card.on{opacity:1;transform:translate(-50%,0)}
#card small{font:10px 'DM Mono',monospace;letter-spacing:.14em;color:#38e07b;text-transform:uppercase}
#card h2{font-size:24px;margin:4px 0;letter-spacing:-.01em}#card p{font-size:13px;color:#a7b0ba}
#stick{position:fixed;left:30px;bottom:190px;width:110px;height:110px;border-radius:50%;border:1px solid #ffffff22;z-index:12;display:none}
#stick i{position:absolute;left:35px;top:35px;width:40px;height:40px;border-radius:50%;background:#ffffff33}
@media (max-width:1060px){#help{display:none}}
@media (pointer:coarse){#stick{display:block}#help{display:none}}
#start{position:fixed;inset:0;display:none;place-items:center;z-index:30;background:#0008}
#start.on{display:grid}
#start button{font:600 18px 'Bricolage Grotesque';padding:14px 28px;border-radius:30px;border:0;background:#38e07b;color:#0b1410;cursor:pointer}

#say,#fare,#toast{position:fixed;left:50%;transform:translateX(-50%) translateY(10px);opacity:0;transition:.25s;pointer-events:none;z-index:12;text-align:center}
#say.on,#fare.on,#toast.on{opacity:1;transform:translateX(-50%)}
#say{bottom:92px;max-width:80vw;background:#fff;color:#111;border:3px solid #111;border-radius:18px;padding:10px 18px;font:700 18px 'Bricolage Grotesque',sans-serif;box-shadow:4px 4px 0 #111}
#fare{top:64px;background:#facc15;color:#111;border-radius:10px;padding:8px 16px;font:700 15px 'Bricolage Grotesque',sans-serif;max-width:86vw}
#toast{top:110px;background:#111c;color:#fff;border-radius:20px;padding:6px 14px;font:600 14px 'Bricolage Grotesque',sans-serif}

.startcard{display:flex;flex-direction:column;gap:12px;align-items:stretch;min-width:0;width:min(88vw,360px);box-sizing:border-box;padding:24px;border-radius:22px;background:rgba(20,24,30,.55);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.18);color:#f4f6f8;font-family:'Bricolage Grotesque',sans-serif}.startcard h2{margin:0 0 4px;font-size:26px}.startcard select{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;font:500 15px 'Bricolage Grotesque'}

#toggles{position:fixed;right:16px;top:60px;z-index:20;font-family:'Bricolage Grotesque',sans-serif;color:#f4f6f8}
#toggles button{padding:8px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.25);background:rgba(20,24,30,.55);backdrop-filter:blur(14px);color:#fff;font:600 13px 'Bricolage Grotesque';cursor:pointer}
#tgpanel{display:none;margin-top:8px;padding:12px 14px;border-radius:16px;background:rgba(20,24,30,.6);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.16);flex-direction:column;gap:8px;font-size:13px}
#toggles.open #tgpanel{display:flex}
#tgpanel label{display:flex;gap:8px;align-items:center;cursor:pointer}
@media (max-width:520px){#score{top:118px}#mini{width:104px;height:104px}#street{max-width:calc(100vw - 170px)}#street b{font-size:16px;line-height:1.2;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

.osmcredit{color:#8b95a1;font:11px/1.4 "Bricolage Grotesque",sans-serif;text-align:center}.osmcredit a{color:#8b95a1}
/* Compact top navigation: location left, collected locations and Settings right. */
#score{display:none}#street{display:flex;align-items:center;gap:7px;flex-wrap:wrap;max-width:calc(100vw - 230px);pointer-events:auto}#street small{width:100%}#street b{max-width:calc(100% - 28px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#location-dropdown{border:1px solid #ffffff40;border-radius:8px;background:#172026b0;color:#fff;width:24px;height:25px;font-size:20px;cursor:pointer}#location-menu{display:none;position:absolute;left:0;top:58px;max-width:calc(100vw - 24px);z-index:30}#location-menu.open{display:block}#location-select{width:260px;max-width:calc(100vw - 24px);padding:12px;background:#19232c;color:#f1f4f8;border:1px solid #68747b;border-radius:12px;font:14px 'Bricolage Grotesque';}
#stops-hud{position:fixed!important;right:112px!important;top:18px!important;left:auto!important;z-index:21!important}#btn-passport{display:flex;gap:7px;align-items:center;font:600 13px 'Bricolage Grotesque';color:#f1f4f8;background:#141b23b8;border:1px solid #ffffff40;border-radius:20px;padding:8px 12px;backdrop-filter:blur(14px)}#toggles{top:18px;right:16px;z-index:22}#toggles button{padding:8px 13px}#tgpanel{position:absolute;right:0;width:280px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 75px);overflow:auto;padding:18px;gap:17px;background:#152028ed;box-shadow:0 15px 45px #0005}#tgpanel h3{font-size:17px;font-weight:600}#tgpanel label{display:flex;flex-direction:column;gap:9px;align-items:stretch}#tgpanel label>span{display:flex;justify-content:space-between;gap:10px}#tgpanel output{font:11px 'DM Mono';color:#c6d7db}#tgpanel input{width:100%;accent-color:#b7e7d6;cursor:pointer;touch-action:pan-x}#tgpanel p{font-size:10px;line-height:1.5;color:#99a9b2}
@media(max-width:520px){#street{left:12px;top:16px;max-width:calc(100vw - 184px);gap:4px}#street b{font-size:13px;max-width:calc(100% - 24px)}#street small{font-size:8px}#location-dropdown{width:20px;height:22px;font-size:17px}#stops-hud{top:18px!important;right:94px!important}#btn-passport{font-size:11px;padding:8px 10px;gap:4px}#toggles{right:10px}#toggles button{padding:8px 10px;font-size:11px}#location-menu{top:52px}}
#toggles.open{z-index:65}#location-menu{z-index:66}
#rotate-hint{display:none}
@media(pointer:coarse),(max-width:600px){#drive-panel{display:none!important}#stick{display:block;left:auto;right:max(24px,env(safe-area-inset-right));bottom:max(30px,env(safe-area-inset-bottom))}#street b{font-size:13px}#street{max-width:calc(100vw - 140px)}#toggles button{width:36px;height:36px;padding:8px}#toggles button svg{width:18px;height:18px}#stops-hud{right:60px!important}#btn-passport{height:36px;padding:8px;gap:5px}#btn-passport svg{width:17px;height:17px}#stamp-count{font-size:10px}#help{display:none}}
@media(pointer:coarse) and (orientation:portrait){#rotate-hint{display:flex;position:fixed;left:50%;top:76px;transform:translateX(-50%);z-index:14;background:#152028da;border:1px solid #ffffff30;border-radius:14px;padding:8px 12px;align-items:center;gap:8px;max-width:calc(100vw - 32px);font-size:11px;color:#dce6ea;pointer-events:none;white-space:nowrap}#rotate-hint svg{width:20px;height:20px;flex:none}}
@media(max-width:600px){#rotate-hint{display:flex;position:fixed;left:50%;top:76px;transform:translateX(-50%);z-index:14;background:#152028da;border:1px solid #ffffff30;border-radius:14px;padding:8px 12px;align-items:center;gap:8px;max-width:calc(100vw - 32px);font-size:11px;color:#dce6ea;pointer-events:none;white-space:nowrap}#rotate-hint svg{width:20px;height:20px;flex:none}}
@media(orientation:landscape){#rotate-hint{display:none!important}}
@media(pointer:coarse),(max-width:600px){#clock{display:none}}
#location-control{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:28px;margin-left:-3px;color:#e3e9ed;flex:none;border-radius:6px}#location-control:hover,#location-control:focus-within{background:#ffffff15}#location-control select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}#street b{max-width:calc(100% - 35px)}@media(max-width:520px){#location-control{width:24px;height:26px}#location-control svg{width:15px;height:15px}#street b{max-width:calc(100% - 28px)}}
/* Quiet, aligned controls with an exact 16px edge-to-edge gap. */
#toggles>button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;box-shadow:none;color:#fff;line-height:1}#toggles>button svg{display:block;flex:none;width:18px;height:18px}#stops-hud{right:68px!important}#btn-passport{height:36px;box-shadow:none!important;color:#fff}#btn-pp-close{box-shadow:none!important}#tgpanel input{accent-color:#fff}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #fff!important;outline-offset:3px}#location-control:focus-within{outline:2px solid #fff;outline-offset:2px}@media(max-width:520px){#stops-hud{right:62px!important}}
#rotate-entry{display:none;position:fixed;inset:0;z-index:100;background:#11181ff5;backdrop-filter:blur(14px);align-items:center;justify-content:center;text-align:center;padding:32px;color:#fff}#rotate-entry.required{display:flex}#rotate-entry>div{max-width:320px}#rotate-entry svg{width:64px;height:64px;margin-bottom:22px}#rotate-entry h2{font-size:24px;line-height:1.2;margin-bottom:14px}#rotate-entry p{color:#b7c3ca;font-size:14px;line-height:1.6}#rotate-entry.required~*{pointer-events:none}
#mobile-drive{display:none;position:fixed;inset:0;pointer-events:none;z-index:12}#mobile-drive button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;border:1px solid #ffffff55;background:#ffffff22;color:#fff;display:grid;place-items:center;padding:0;backdrop-filter:blur(7px)}#mobile-drive button.held{background:#ffffff55;border-color:#fff}.steer-pair{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(22px,env(safe-area-inset-bottom));display:flex;gap:16px}.steer-pair button{width:68px;height:68px;border-radius:50%}.steer-pair svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}#accelerator{position:absolute;right:max(26px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:66px;height:96px;border-radius:18px}#accelerator svg{height:66px;width:44px;fill:none;stroke:currentColor;stroke-width:1.6}@media(pointer:coarse),(max-width:600px){#mini,#stick{display:none!important}#hud.on~#mobile-drive{display:block}#mobile-drive{display:block}}body:has(#start.on) #mobile-drive{display:none}
.pedal-pair{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));display:flex;align-items:end;gap:14px}.pedal-pair #accelerator,.pedal-pair #reverse{position:relative;right:auto;bottom:auto;width:58px;height:94px;border-radius:16px}.pedal-pair #reverse{height:76px}.pedal-pair svg{height:57px;width:38px;fill:none;stroke:currentColor;stroke-width:1.6}.pedal-pair span{position:absolute;top:5px;font-size:10px;font-family:monospace}.pedal-pair #accelerator svg{height:58px}#tilt-toggle{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border-radius:20px!important;padding:9px 12px!important;font-size:10px;max-width:150px}
@media(pointer:coarse){#stop-card-v2{bottom:130px!important;max-height:calc(100dvh - 200px);overflow-y:auto;overscroll-behavior:contain;padding:10px 14px!important;width:min(420px,calc(100vw - 44px))!important;box-sizing:border-box}.sc-title{font-size:18px!important}.sc-line,.sc-driver{font-size:12px!important}#stop-card-v2.on{transform:translateX(-50%) translateY(0)!important}}
@media(pointer:coarse){#stop-card-v2:not(.on){visibility:hidden;pointer-events:none}#stop-card-v2.on{visibility:visible}}
#tgpanel #sound-toggle{width:100%;height:34px;border:1px solid #ffffff50;border-radius:9px;background:#ffffff15;color:#fff;font-size:12px;margin:0 0 10px}#tgpanel{max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain}

/* Boost: not in the original; user placement = left, above the arrows */
#boost-btn{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:calc(max(22px,env(safe-area-inset-bottom)) + 68px + 14px);width:68px;height:44px;border-radius:22px;font:700 12px 'Bricolage Grotesque',sans-serif;letter-spacing:.06em}
#btn-passport-o{display:flex;gap:7px;align-items:center;font:600 13px "Bricolage Grotesque";color:#fff;background:#141b23b8;border:1px solid #ffffff40;border-radius:20px;height:36px;padding:0 12px;backdrop-filter:blur(14px);cursor:pointer}
#stops-hud{position:fixed;right:68px;top:18px;z-index:21}

/* original stop card + passport modal (from original stops.js STOPS_CSS) */
#stop-card-v2 {
  position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(130%);
  width: min(460px, 92vw); background: rgba(13, 17, 30, 0.94);
  border: 2px solid #facc15; border-radius: 18px; padding: 16px 20px;
  color: #f8fafc; font-family: "Bricolage Grotesque", system-ui, sans-serif;
  box-shadow: 0 18px 45px rgba(0,0,0,0.65); z-index: 45;
  transition: transform 0.35s cubic-bezier(0.18, 0.89, 0.32, 1.28);
}
#stop-card-v2.on { transform: translateX(-50%) translateY(0); }
.sc-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.sc-chip {
  font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
  padding: 3px 9px; border-radius: 99px; background: #facc15; color: #111;
}
.sc-title { font-size: 22px; font-weight: 900; margin: 2px 0 8px; color: #fff; }
.sc-line { font-size: 13px; line-height: 1.45; margin: 4px 0; color: #cbd5e1; }
.sc-line strong { color: #fef08a; }
.sc-driver {
  margin-top: 8px; padding: 8px 11px; background: rgba(250, 204, 21, 0.12);
  border-left: 3px solid #facc15; border-radius: 6px; font-style: italic; font-size: 13px; color: #fde68a;
}
.sc-actions {
  margin-top: 10px; display: flex; justify-content: space-between; align-items: center; gap: 8px;
}
.sc-actions button {
  cursor: pointer; border-radius: 8px; border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.1); color: #fff; padding: 5px 10px; font-size: 12px; font-weight: 700;
}
.sc-actions button:hover { background: rgba(255,255,255,0.2); }
#passport-modal {
  position: fixed; inset: 0; background: rgba(6, 9, 18, 0.84);
  backdrop-filter: blur(8px); z-index: 80; display: none;
  align-items: center; justify-content: center; padding: 20px;
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
}
#passport-modal.on { display: flex; }
.pp-box {
  background: rgba(17,23,27,.9); color: #edf1f3; backdrop-filter: blur(24px); width: min(760px, 95vw); max-height: 86vh;
  border-radius: 24px; border: 1px solid rgba(220,235,242,.25); padding: 22px; overflow-y: auto;
  box-shadow: 0 25px 60px rgba(0,0,0,0.75);
}
.pp-top { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(220,235,242,.2); gap:16px; padding-bottom: 12px; }
.pp-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 14px; margin-top: 16px;
}
.pp-stamp {
  border: 1px dashed rgba(190,207,215,.35); border-radius: 14px; padding: 12px; min-height: 105px;
  display: flex; flex-direction: column; justify-content: space-between;
  background: rgba(255,255,255,.035); position: relative;
}
.pp-stamp.stamped {
  border: 2px solid var(--ink, #f59e0b); background: rgba(255,255,255,.09);
  box-shadow: inset 0 0 0 2px rgba(185,28,28,0.12);
}
.pp-ink {
  font-weight: 900; font-size: 14px; color: var(--ink, #b91c1c);
  text-transform: uppercase; letter-spacing: 0.03em;
}
.pp-meta { font-size: 11px; color: #b8c4cb; font-weight: 600; }
#passport-modal .pp-top>div>div:first-child{color:#a6b5bc!important;font-size:10px!important;letter-spacing:2px!important}
#passport-modal .pp-top>div>div:nth-child(2){font-size:22px!important;line-height:1.15;margin-top:5px}
#passport-modal .pp-box>.pp-top+div{color:#bcc9cf!important;gap:12px;flex-wrap:wrap;font-size:12px!important}
#passport-modal #btn-pp-close{background:rgba(255,255,255,.1);color:#f1f4f5;border:1px solid #56636a;white-space:nowrap}
#passport-modal .pp-stamp{transform:none!important;gap:10px;min-width:0}
#passport-modal .pp-ink{font-size:13px;line-height:1.25;filter:brightness(1.3)}
@media(max-width:520px){#passport-modal{padding:10px}.pp-box{width:100%;padding:15px;max-height:94vh;border-radius:18px}.pp-top{align-items:flex-start;gap:8px}#passport-modal .pp-top>div>div:nth-child(2){font-size:18px!important}.pp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pp-stamp{padding:10px;min-height:112px}#passport-modal .pp-ink{font-size:11px}.pp-meta{font-size:10px}#btn-pp-close{font-size:10px;padding:6px 8px}}

#sc-reward,#btn-fav{display:none!important}
#stop-card-v2,#passport-modal{font-family:"Bricolage Grotesque",system-ui,sans-serif}
.shud-btn {
  cursor: pointer; background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #111; border: none; font-weight: 800; padding: 6px 14px;
  border-radius: 999px; font-size: 13px; box-shadow: 0 4px 14px rgba(245,158,11,0.4);
  transition: transform 0.15s ease;
}
.shud-btn:hover { transform: scale(1.05); }


#polaroid-modal {
  position: fixed; inset: 0; background: rgba(255,255,255,0.92); z-index: 90;
  display: none; align-items: center; justify-content: center;
  font-family: "Bricolage Grotesque", system-ui, sans-serif;
}
#polaroid-modal.on { display: flex; background: rgba(8, 11, 22, 0.85); transition: background 0.35s ease; }
.pol-frame {
  background: #ffffff; padding: 16px 16px 22px; border-radius: 8px;
  box-shadow: 0 25px 55px rgba(0,0,0,0.7); text-align: center; max-width: 440px;
  transform: rotate(-1.5deg);
}
.pol-frame img { width: 100%; border-radius: 4px; display: block; border: 1px solid #e2e8f0; }
.pol-cap { font-size: 18px; font-weight: 800; color: #1e293b; margin: 12px 0 8px; }

#btn-photo{display:inline-block!important}
