:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#fff;background:#05070a;font-synthesis:none}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#05070a}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#boot,#three-error{position:absolute;inset:0;display:grid;place-items:center;z-index:80;padding:16px;text-align:center}
#boot{opacity:0;pointer-events:none;background:#07090d center/cover no-repeat;overflow:hidden;transition:opacity .14s ease}
.boot-scrim{position:absolute;inset:0;background:linear-gradient(180deg,#02060f33 0%,#02060f55 46%,#02060fcc 100%)}
.boot-card{position:relative;z-index:1;width:min(520px,100%)}
.boot-card--visual{min-height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;padding:calc(env(safe-area-inset-top) + 16px) 0 calc(env(safe-area-inset-bottom) + 20px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{font-size:11px;letter-spacing:.23em;color:#475262;font-weight:900}.game-title{font-size:clamp(32px,8vw,54px);line-height:.98;margin:10px 0 15px}.game-purpose{color:#bec9d6;line-height:1.7;margin-bottom:18px}
.boot-info-card{align-self:center;width:min(470px,100%);background:#fffffff0;color:#0d1622;border:2px solid #fff;border-radius:22px;padding:14px 18px;box-shadow:0 16px 45px #0006;margin-bottom:12px;text-align:left}
.boot-info-card b{display:block;font-size:20px;line-height:1.2;margin-top:4px}.boot-info-card small{display:block;color:#324055;line-height:1.45;margin-top:8px;font-size:13px}.boot-info-card strong{color:#071018}.boot-info-card small em{font-style:normal;color:#0d67a6;font-weight:900}
.boot-action-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;align-items:stretch}
.boot-panel{background:#fffffff6;border:2px solid #fff;border-radius:24px;padding:16px 14px;color:#0e1620;box-shadow:0 18px 45px #0007;text-align:center}
.boot-panel-title{font-size:11px;letter-spacing:.12em;font-weight:900;color:#394456;margin-bottom:8px}
.start-btn{border:0;border-radius:16px;padding:16px 20px;font-size:18px;font-weight:900;background:#ffffff;color:#07090d;box-shadow:0 10px 25px #00000022;cursor:pointer;border:2px solid #dce4ef;width:100%}.start-btn:disabled{opacity:.6}
.boot-panel--start{display:flex;flex-direction:column;justify-content:center;gap:10px}.boot-panel--start .start-btn{font-size:22px;font-weight:1000;min-height:72px;border-radius:18px;border:2px solid #fff;background:linear-gradient(180deg,#ffffff,#eef4fa);box-shadow:0 14px 30px #0d2e5922, inset 0 1px 0 #ffffff;letter-spacing:.04em}.boot-panel--start .start-btn:before{content:"▶ ";font-size:.9em}.boot-start-help{margin:0;color:#4b596d;font-size:13px;line-height:1.5;font-weight:700}
#dice-area{margin-top:0;min-height:unset}.dice-pair{display:flex;justify-content:center;gap:20px}.die-card>span{display:block;font-size:10px;letter-spacing:.16em;color:#425163;margin-bottom:9px;font-weight:900}.die-scene{width:72px;height:72px;perspective:360px;margin:auto}.die{position:relative;width:72px;height:72px;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.9,.2,1.1)}.die.rolling{animation:dice-roll .7s linear infinite}.face{position:absolute;inset:0;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#ffffff,#d8e0eb);border:1px solid #fff;color:#111b27;font-size:28px;font-style:normal;font-weight:950;box-shadow:inset 0 0 18px #fff8,0 4px 18px #0002;backface-visibility:hidden}.front{transform:translateZ(36px)}.back{transform:rotateY(180deg) translateZ(36px)}.right{transform:rotateY(90deg) translateZ(36px)}.left{transform:rotateY(-90deg) translateZ(36px)}.top{transform:rotateX(90deg) translateZ(36px)}.bottom{transform:rotateX(-90deg) translateZ(36px)}@keyframes dice-roll{to{transform:rotateX(1080deg) rotateY(900deg) rotateZ(720deg)}}
#dice-result{margin-top:14px;display:flex;flex-direction:column;gap:3px;opacity:.35;transition:.25s;color:#0d1520}#dice-result.show{opacity:1}#dice-result strong{font-size:22px}#dice-result span{font-size:15px;font-weight:900;color:#0d67a6}#dice-result small{color:#526172}
@media (max-width:460px){.boot-card--visual{padding:calc(env(safe-area-inset-top) + 10px) 0 calc(env(safe-area-inset-bottom) + 14px)}.boot-info-card{padding:12px 14px;border-radius:20px}.boot-info-card b{font-size:18px}.boot-action-grid{grid-template-columns:1fr;gap:10px}.boot-panel{padding:14px 12px;border-radius:20px}.start-btn{font-size:17px;padding:14px 18px}.boot-panel--start .start-btn{font-size:20px;min-height:66px}.die-scene{width:66px;height:66px}.die,.face{width:66px;height:66px}.front{transform:translateZ(33px)}.back{transform:rotateY(180deg) translateZ(33px)}.right{transform:rotateY(90deg) translateZ(33px)}.left{transform:rotateY(-90deg) translateZ(33px)}.top{transform:rotateX(90deg) translateZ(33px)}.bottom{transform:rotateX(-90deg) translateZ(33px)}}
#three-error{display:none;background:#07090d}.error-card{max-width:520px;padding:28px;border:1px solid #ffffff24;border-radius:24px;background:#111722}.error-card h2{margin-top:0}
#weather-fx{pointer-events:none;position:absolute;inset:0;z-index:7;display:none;mix-blend-mode:screen}#weather-fx.rain,#weather-fx.typhoon{display:block;background-image:repeating-linear-gradient(105deg,transparent 0 13px,#b9dcff20 14px 15px,transparent 16px 28px);background-size:55px 55px;animation:rain-screen .42s linear infinite}#weather-fx.rain:after,#weather-fx.typhoon:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 22% 18%,#d9efff45 0 2px,transparent 3px),radial-gradient(circle at 66% 28%,#d9efff35 0 3px,transparent 4px),radial-gradient(circle at 82% 65%,#d9efff28 0 4px,transparent 5px);filter:blur(.4px)}#weather-fx.typhoon{opacity:.9;background-size:38px 38px;animation-duration:.22s;transform:skewX(-8deg)}@keyframes rain-screen{from{background-position:0 -55px}to{background-position:-20px 55px}}
#hud{position:absolute;inset:0;z-index:10;pointer-events:none;display:none}.glass{background:linear-gradient(180deg,#101824dc,#05080dcc);border:1px solid #ffffff1f;box-shadow:0 10px 30px #0008,inset 0 1px #ffffff12;backdrop-filter:blur(13px);border-radius:15px}.topbar{position:absolute;top:max(8px,env(safe-area-inset-top));left:9px;right:9px;display:flex;gap:7px;align-items:stretch}.hud-main{padding:7px 10px;min-width:99px}.hud-main span,.hud-small span{display:block;color:#7f91a6;font-size:8px;letter-spacing:.1em;font-weight:900}.hud-main strong{font-size:19px;line-height:1.05}.points{flex:1;text-align:center}.battery{min-width:72px}.batterybar{margin-top:5px;height:4px;background:#ffffff1a;border-radius:99px;overflow:hidden}.batterybar i{display:block;height:100%;width:100%;background:#bde9cb}.route-chip{position:absolute;top:65px;left:10px;padding:7px 10px;max-width:57vw}.route-chip span{font-size:10px;color:#86d4ff;font-weight:900}.route-chip b{display:block;font-size:11px;white-space:nowrap}.route-chip small{font-size:9px;color:#c4d0dc;display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.minimap{position:absolute;right:10px;top:66px;width:142px;height:118px;overflow:hidden;border-radius:16px;background:#0a1118}.minimap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07111a15,#050b1355);pointer-events:none}.minimap svg{position:absolute;inset:0;width:100%;height:100%;z-index:2}.minimap #map-route-shadow{stroke:#000b;stroke-width:5;vector-effect:non-scaling-stroke}.minimap #map-route{stroke:#53d4ff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.minimap #map-start{fill:#fff;stroke:#0b1016;stroke-width:1}.minimap #map-goal{fill:#ff3f72;stroke:#fff;stroke-width:1.2}.minimap #map-bike{fill:#f9e65c;stroke:#111;stroke-width:1.2;filter:drop-shadow(0 0 3px #ffe44f)}.map-lm{fill:#fff9;stroke:#111;stroke-width:.8}.map-caption{position:absolute;z-index:4;left:7px;right:7px;top:6px;display:flex;justify-content:space-between;text-shadow:0 1px 4px #000}.map-caption span{font-size:7px;letter-spacing:.13em;font-weight:900}.map-caption b{font-size:10px}.map-local-label{position:absolute;z-index:4;bottom:4px;right:6px;font-size:5px;letter-spacing:.1em;color:#8da2b7;text-shadow:0 1px 3px #000}.map-street{fill:none;stroke:#61708066;stroke-width:1.1;vector-effect:non-scaling-stroke}.map-artery{fill:none;stroke:#9aa8b766;stroke-width:2.1;vector-effect:non-scaling-stroke}.map-block{fill:#15212d;stroke:#253646;stroke-width:.5}.map-label{fill:#c8d5e1;font-size:3.4px;font-weight:800;paint-order:stroke;stroke:#061019;stroke-width:1.2px;stroke-linejoin:round}
.nav{position:absolute;top:193px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#06090dc7;border:1px solid #ffffff1a;backdrop-filter:blur(10px)}.nav-arrow{font-size:18px;transform-origin:center}.nav b{font-size:12px}.nav small{color:#93a4b7;margin-left:6px}.speedbox{position:absolute;right:12px;top:199px;text-align:right;text-shadow:0 3px 10px #000}.speedbox strong{font-size:40px;line-height:.9}.speedbox span{display:block;font-size:9px;letter-spacing:.15em;color:#c7d0dc}.combo{position:absolute;left:50%;top:240px;transform:translateX(-50%) scale(.8);opacity:0;font-size:14px;font-weight:950;transition:.18s;text-shadow:0 2px 8px #000}.combo.show{opacity:1;transform:translateX(-50%) scale(1)}
.landmark-banner{position:absolute;left:50%;top:264px;transform:translateX(-50%) translateY(-10px) scale(.96);opacity:0;display:flex;align-items:center;gap:10px;width:min(330px,82vw);padding:7px;background:#07101be8;border:1px solid #ffffff2a;border-radius:16px;box-shadow:0 12px 34px #000a;transition:.28s;overflow:hidden}.landmark-banner.show{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}.landmark-banner img{width:112px;height:76px;object-fit:cover;border-radius:11px;border:1px solid #ffffff35}.landmark-banner div{min-width:0}.landmark-banner small{display:block;color:#7ddcff;font-size:7px;letter-spacing:.18em}.landmark-banner b{display:block;font-size:13px;white-space:normal;line-height:1.2}
#controls{display:none;position:absolute;z-index:20;inset:0;pointer-events:none}.control{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;border:1px solid #ffffff25;color:#fff;background:linear-gradient(180deg,#202b38e8,#0b1017e8);box-shadow:0 10px 28px #0009,inset 0 1px #ffffff15;font-weight:950}.steer-wrap{position:absolute;left:12px;bottom:max(18px,calc(env(safe-area-inset-bottom) + 10px));display:flex;gap:8px}.steer{width:70px;height:70px;border-radius:50%;font-size:25px}.pedals{position:absolute;right:12px;bottom:max(18px,calc(env(safe-area-inset-bottom) + 10px));display:flex;gap:8px;align-items:flex-end}.pedal{width:75px;height:75px;border-radius:21px;font-size:10px}.pedal.accel{height:92px;background:linear-gradient(180deg,#e2ecff,#6e89b1);color:#07101d}.rear{position:absolute;left:50%;bottom:max(27px,calc(env(safe-area-inset-bottom) + 19px));transform:translateX(-50%);width:58px;height:58px;border-radius:50%;font-size:19px}.control.active{transform:translateY(2px) scale(.97);filter:brightness(1.3)}
#result{display:none;position:absolute;inset:0;z-index:70;background:#05070be8;backdrop-filter:blur(12px);place-items:center;padding:24px;text-align:center}.result-card{width:min(420px,100%);padding:28px;border-radius:26px;background:#101620;border:1px solid #ffffff1f}.result-card h2{font-size:31px;margin:4px 0}.result-card .score{font-size:50px;font-weight:950}.result-card p{color:#aeb9c7}.hint{position:absolute;left:50%;bottom:112px;transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:#0008;font-size:10px;color:#d5dde7;white-space:nowrap;opacity:.82}
@media (max-width:380px){.minimap{width:126px;height:105px}.route-chip{max-width:54vw}.speedbox{top:183px}.nav{top:181px}.hint{display:none}.steer{width:64px;height:64px}.pedal{width:68px}.pedal.accel{height:84px}}
@media (min-width:800px){.steer-wrap{left:28px}.pedals{right:28px}.steer{width:82px;height:82px}.pedal{width:90px;height:90px}.pedal.accel{height:106px}.topbar{max-width:720px;left:50%;right:auto;width:calc(100% - 30px);transform:translateX(-50%)}.minimap{width:190px;height:150px}}

.event-cutin{position:absolute;z-index:35;left:50%;top:47%;width:min(760px,108vw);height:min(230px,30vh);transform:translate(-50%,-50%) translateX(125vw) rotate(-7deg);opacity:0;pointer-events:none;display:grid;grid-template-columns:56% 44%;overflow:hidden;background:linear-gradient(100deg,#191016 0%,#32090d 50%,#5b0e0e 100%);box-shadow:0 26px 90px #000e,0 0 30px #ff5b2260;clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);border-top:4px solid #ff9a35;border-bottom:4px solid #ff3b1d;transition:transform .24s cubic-bezier(.18,.88,.22,1),opacity .14s}.event-cutin:before{content:"";position:absolute;z-index:3;inset:-12% -5%;background:repeating-linear-gradient(0deg,transparent 0 16px,#ffbe5b9c 17px 20px,transparent 21px 34px),linear-gradient(90deg,transparent 0 40%,#ff5b2430 55%,transparent 78%);mix-blend-mode:screen;animation:cutin-lines .14s linear infinite;pointer-events:none}.event-cutin:after{content:"";position:absolute;z-index:5;left:-10%;right:-10%;top:50%;height:5px;background:#fff3c8;box-shadow:0 0 9px #fff,0 0 22px #ff8c2a,0 0 48px #ff3e15;transform:rotate(-1deg);opacity:.88;pointer-events:none}.event-cutin.show{transform:translate(-50%,-50%) translateX(0) rotate(-7deg);opacity:1}.event-cutin.out{transform:translate(-50%,-50%) translateX(-125vw) rotate(-7deg);opacity:0;transition-duration:.28s}.event-cutin img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.28) contrast(1.12) brightness(.88);transform:rotate(7deg) scale(1.18);clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.event-cutin-copy{position:relative;z-index:6;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:18px 26px 18px 8px;transform:rotate(7deg);background:linear-gradient(90deg,#23070955,#12070bf0 34%,#09070af8 100%)}.event-cutin-copy small{color:#ffd36b;font-size:10px;letter-spacing:.28em;font-weight:1000;text-shadow:0 0 10px #ff7d29}.event-cutin-copy strong{font-size:clamp(26px,6.7vw,48px);line-height:.98;margin:6px 0 8px;font-weight:1000;color:#fff4d6;-webkit-text-stroke:1px #8e260f;text-shadow:0 3px 0 #541307,0 0 8px #fff4c0,0 0 22px #ff4d17}.event-cutin-copy span{font-size:clamp(10px,2.7vw,14px);font-weight:900;color:#ffd9c6;text-shadow:0 2px 6px #000}.event-cutin-speedlines{position:absolute;z-index:4;inset:0;background:linear-gradient(105deg,transparent 0 18%,#fff2 19% 19.5%,transparent 20% 32%,#ffcf744d 33% 34%,transparent 35%);background-size:90px 100%;animation:cutin-sweep .16s linear infinite;mix-blend-mode:screen;pointer-events:none}@keyframes cutin-lines{to{background-position:0 34px}}@keyframes cutin-sweep{to{background-position:90px 0}}@media(max-width:520px){.event-cutin{height:178px;grid-template-columns:58% 42%;top:46%;width:112vw}.event-cutin-copy{padding:10px 14px 10px 4px}.event-cutin-copy strong{font-size:27px}.event-cutin-copy span{font-size:10px}.event-cutin-copy small{font-size:8px}}

/* V6.7 — first person / deadline / clean event presentation */
.deadline small{display:block;margin-top:3px;font-size:8px;color:#aebccc;font-weight:800}.deadline small b{color:#fff;font-size:10px}.deadline.urgent{border-color:#ff525288;box-shadow:0 0 22px #ff293744}.deadline.urgent small b{color:#ff6570}.deadline.warning small b{color:#ffd15c}
.route-chip{top:190px;left:10px;max-width:46vw}.minimap{left:10px;right:auto;top:66px;width:150px;height:116px}.nav{top:66px;left:50%;}.speedbox{right:14px;top:190px}
.landmark-banner{left:auto;right:10px;top:66px;transform:translateX(18px);opacity:0;width:min(180px,43vw);padding:7px;display:block;border-radius:14px;background:linear-gradient(180deg,#0a1420ef,#050910ef);border:1px solid #7ddcff38;box-shadow:0 12px 34px #000b;transition:opacity .22s,transform .22s}.landmark-banner.show{opacity:1;transform:translateX(0)}.landmark-banner img{width:100%;height:auto;aspect-ratio:1.44/1;object-fit:cover;border-radius:9px;border:1px solid #ffffff2a;display:block}.landmark-banner div{padding:6px 3px 2px}.landmark-banner small{color:#74d7ff;font-size:7px;letter-spacing:.18em}.landmark-banner small:after{content:"  / 通過中";color:#ffe36c}.landmark-banner b{font-size:11px;line-height:1.24;margin-top:2px}
.time-loss{position:absolute;z-index:48;left:50%;top:50%;transform:translate(-50%,-50%) scale(.72);opacity:0;text-align:center;pointer-events:none;padding:18px 30px;min-width:260px;background:linear-gradient(180deg,#22070ee8,#0b0508ef);border:2px solid #ff525c;border-radius:18px;box-shadow:0 0 0 5px #ff27331a,0 20px 70px #000d,0 0 40px #ff1d3544;transition:.16s}.time-loss.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.time-loss small{display:block;font-size:9px;letter-spacing:.28em;color:#ff9aa2;font-weight:1000}.time-loss strong{display:block;font-size:clamp(28px,8vw,52px);line-height:.92;color:#fff;font-weight:1000}.time-loss b{display:block;margin-top:7px;font-size:clamp(24px,7vw,44px);color:#ff5863;text-shadow:0 0 18px #ff223b88}.time-loss span{display:block;margin-top:5px;font-size:10px;color:#f2c7cb;font-weight:850}
.camera-toggle{position:absolute;left:50%;bottom:max(93px,calc(env(safe-area-inset-bottom) + 85px));transform:translateX(-50%);width:70px;height:30px;border-radius:999px;font-size:9px;letter-spacing:.08em}.camera-toggle.active{transform:translateX(-50%) translateY(2px) scale(.97)}

/* Clean diagonal cut-in: event only, distinct from landmark card */
.event-cutin{position:absolute;z-index:40;left:50%;top:48%;width:min(820px,106vw);height:min(214px,28vh);transform:translate(-50%,-50%) translateX(120vw) rotate(-5deg);opacity:0;pointer-events:none;display:grid;grid-template-columns:58% 42%;overflow:hidden;background:#07101a;box-shadow:0 24px 74px #000e;clip-path:polygon(3% 0,100% 0,97% 100%,0 100%);border:1px solid #ffffff26;transition:transform .26s cubic-bezier(.18,.88,.22,1),opacity .16s}.event-cutin:before{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(104deg,transparent 0 52%,#6edcff26 52.2% 53%,transparent 53.2%),repeating-linear-gradient(0deg,transparent 0 22px,#ffffff09 23px 24px);pointer-events:none}.event-cutin:after{content:"";position:absolute;z-index:7;left:55%;top:-18%;width:7px;height:136%;background:linear-gradient(#fff,#66dfff 48%,#fff);box-shadow:0 0 18px #62dfff;transform:rotate(8deg);opacity:.95}.event-cutin.show{transform:translate(-50%,-50%) translateX(0) rotate(-5deg);opacity:1}.event-cutin.out{transform:translate(-50%,-50%) translateX(-120vw) rotate(-5deg);opacity:0}.event-cutin img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.08) contrast(1.06);transform:rotate(5deg) scale(1.12);clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.event-cutin-copy{position:relative;z-index:6;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:16px 25px 16px 10px;transform:rotate(5deg);background:linear-gradient(90deg,#09131bbb,#060a11fa 30%,#05070c 100%)}.event-cutin-copy small{color:#6edcff;font-size:9px;letter-spacing:.3em;font-weight:1000;text-shadow:none}.event-cutin-copy strong{font-size:clamp(25px,6.4vw,46px);line-height:1;margin:7px 0 9px;font-weight:1000;color:#fff;-webkit-text-stroke:0;text-shadow:0 5px 18px #000}.event-cutin-copy span{font-size:clamp(10px,2.6vw,14px);font-weight:850;color:#d4e2ed;text-shadow:none;line-height:1.4}.event-cutin-speedlines{position:absolute;z-index:4;inset:0;background:linear-gradient(100deg,transparent 0 25%,#fff1 25.3% 25.7%,transparent 26% 39%,#77ddff1f 39.3% 40%,transparent 40.4%);background-size:120px 100%;animation:cutin-sweep .23s linear infinite;mix-blend-mode:screen;pointer-events:none}
@media(max-width:520px){.topbar{gap:4px}.hud-main{padding:6px 7px;min-width:88px}.hud-main strong{font-size:16px}.battery{min-width:64px}.minimap{width:132px;height:108px}.landmark-banner{width:142px}.route-chip{top:181px;max-width:50vw}.speedbox{top:187px}.nav{top:187px}.event-cutin{height:172px;grid-template-columns:60% 40%;width:112vw}.event-cutin-copy{padding:10px 16px 10px 3px}.event-cutin-copy strong{font-size:25px}.event-cutin-copy span{font-size:9px}.event-cutin-copy small{font-size:7px}.event-cutin:after{left:58%}}

/* V6.7 HUD spacing refinement */
.route-chip{top:187px}.speedbox{top:207px}.nav{top:238px}.combo{top:282px}
@media(max-width:520px){.route-chip{top:181px}.speedbox{top:205px}.nav{top:237px}.combo{top:278px}}

/* V6.8 — objective-first title + five-minute urgency */
.game-title{font-size:clamp(30px,8vw,54px);line-height:1.02;margin:8px 0 12px;letter-spacing:-.04em}.game-title em{font-style:normal;color:#ffe66c;text-shadow:0 0 24px #ffb31f55}.game-purpose{font-size:14px;line-height:1.65;color:#d9e4ef}.game-purpose strong{color:#fff;font-weight:1000}.objective-box{margin:16px 0 18px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#13202de8,#090d13ee);border:1px solid #ffe66c4a;text-align:left;box-shadow:inset 0 0 24px #ffe66c0a}.objective-box span{display:block;font-size:8px;letter-spacing:.24em;color:#ffe66c;font-weight:1000}.objective-box b{display:block;margin-top:4px;font-size:16px;color:#fff}.objective-box small{display:block;margin-top:4px;font-size:10px;color:#9fabb8;line-height:1.45}
.five-minute-alert{position:absolute;z-index:55;left:50%;top:20%;width:min(620px,92vw);transform:translate(-50%,-30px) scale(.92);opacity:0;pointer-events:none;text-align:center;padding:16px 20px 18px;border-radius:18px;background:linear-gradient(135deg,#2b0709f4,#6d0b0ef2 56%,#301009f4);border:2px solid #ffca4d;box-shadow:0 20px 70px #000d,0 0 38px #ff462a66;transition:opacity .18s,transform .22s cubic-bezier(.18,.9,.22,1)}.five-minute-alert.show{opacity:1;transform:translate(-50%,0) scale(1);animation:five-minute-pulse .55s ease-in-out 3}.five-minute-alert small{display:block;font-size:8px;letter-spacing:.32em;color:#ffca4d;font-weight:1000}.five-minute-alert strong{display:block;margin-top:2px;font-size:clamp(32px,9vw,60px);line-height:.95;color:#fff;font-weight:1000;text-shadow:0 3px 0 #78131b,0 0 22px #ff525277}.five-minute-alert b{display:block;margin-top:8px;font-size:clamp(17px,4.7vw,30px);color:#ffe66c}.five-minute-alert span{display:block;margin-top:5px;font-size:10px;color:#ffd4c8;font-weight:850}@keyframes five-minute-pulse{50%{filter:brightness(1.28);box-shadow:0 20px 70px #000d,0 0 55px #ff2b1f99}}
@media(max-width:520px){.five-minute-alert{top:23%;padding:13px 12px 15px}.objective-box{margin-top:12px}.game-purpose{font-size:12px}}

/* V6.9.26 — simplified title flow, single start button, cleaner boot layout */
#boot{padding:0}
.boot-scrim{background:linear-gradient(180deg,#02060f1a 0%,#02060f2a 36%,#02060f72 72%,#02060fcc 100%)}
.boot-card{width:min(560px,100%)}
.boot-card--visual{min-height:100%;justify-content:flex-end;padding:calc(env(safe-area-inset-top) + 10px) 14px calc(env(safe-area-inset-bottom) + 18px)}
.boot-bottom-sheet{width:min(420px,100%);margin:0 auto;display:flex;flex-direction:column;gap:10px;align-items:stretch}
#start-panel,#dice-area{background:#fffffff5;border:2px solid #fff;border-radius:26px;padding:16px 15px;color:#0d1622;box-shadow:0 18px 44px #0008;backdrop-filter:blur(8px)}
#start-panel{display:flex;flex-direction:column;gap:12px}
#start-panel .start-btn{min-height:76px;font-size:28px;border-radius:20px;background:linear-gradient(180deg,#ffffff,#eef4fa);border:2px solid #dde6f2;box-shadow:0 14px 30px #0d2e5922, inset 0 1px 0 #ffffff;letter-spacing:.06em}
#start-panel .start-btn:before{content:none}
.boot-start-help{margin:0;font-size:14px;line-height:1.5;color:#47566a;font-weight:800}
#dice-area{display:none;text-align:center}
#boot.is-rolling #start-panel{display:none}
#boot.is-rolling #dice-area{display:block;animation:boot-panel-in .26s ease-out}
@keyframes boot-panel-in{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.boot-panel--dice .boot-panel-title{font-size:12px;letter-spacing:.14em;margin-bottom:10px}
.boot-disclaimer{margin:2px 8px 0;color:#eef4fb;font-size:10px;line-height:1.45;text-align:center;text-shadow:0 2px 12px #000c;opacity:.92}
#dice-result{min-height:58px}
#dice-result strong{font-size:24px}
#dice-result span{font-size:16px}
#dice-result small{font-size:12px}
@media (max-width:460px){
  .boot-card--visual{padding:calc(env(safe-area-inset-top) + 8px) 12px calc(env(safe-area-inset-bottom) + 14px)}
  .boot-bottom-sheet{width:min(360px,100%)}
  #start-panel,#dice-area{border-radius:22px;padding:14px 13px}
  #start-panel .start-btn{min-height:72px;font-size:24px}
  .boot-start-help{font-size:13px}
  .boot-disclaimer{font-size:9px}
}


/* V6.9.26 — cleaner HUD + realistic first-person cockpit overlay */
.combo{display:none!important}
.goal-distance-box{position:absolute;right:12px;top:260px;min-width:118px;padding:8px 12px;border-radius:16px;text-align:right;background:linear-gradient(180deg,#0a1420f1,#071019eb);border:1px solid #7ddcff2f;box-shadow:0 10px 28px #0009}
.goal-distance-box span{display:block;font-size:8px;letter-spacing:.16em;color:#8ec7ff;font-weight:900}
.goal-distance-box strong{display:block;margin-top:2px;font-size:28px;line-height:1;color:#fff;text-shadow:0 3px 12px #000}
.nav small{display:block;margin-left:0;color:#93a4b7;font-size:8px;letter-spacing:.12em}
.map-caption b{font-size:11px;color:#eaf4ff}
.cockpit-overlay{position:absolute;left:50%;bottom:max(86px,calc(env(safe-area-inset-bottom) + 78px));transform:translateX(-50%);width:min(96vw,520px);z-index:7;pointer-events:none;opacity:0;transition:opacity .18s ease,transform .12s ease;filter:drop-shadow(0 12px 26px rgba(0,0,0,.45))}
.cockpit-overlay img{display:block;width:100%;height:auto}
.cockpit-overlay.show{opacity:.98}
@media(max-width:520px){.goal-distance-box{top:252px;right:10px;min-width:106px;padding:7px 10px}.goal-distance-box strong{font-size:24px}.cockpit-overlay{width:min(100vw,480px);bottom:max(82px,calc(env(safe-area-inset-bottom) + 74px))}}


/* V6.9.26 — visual speedometer and cleaner goal guidance */
.speedbox{display:none!important}
.route-chip{max-width:42vw}
.route-chip b{font-size:12px;letter-spacing:.12em}
.nav{top:196px;padding:7px 10px;gap:7px}
.nav b{font-size:11px;letter-spacing:.12em}
.nav small{font-size:7px;letter-spacing:.18em}
.goal-distance-box{top:188px;right:12px;min-width:130px;z-index:8}
.speedometer{position:absolute;left:50%;bottom:max(146px,calc(env(safe-area-inset-bottom) + 138px));transform:translateX(-50%);width:166px;height:98px;z-index:11;border-radius:120px 120px 24px 24px;background:linear-gradient(180deg,#09131ff2,#050c15f2);border:1px solid #7edcff3a;box-shadow:0 14px 32px #000c, inset 0 1px 0 #ffffff14;overflow:hidden}
.speedometer-arc{position:absolute;left:10px;right:10px;top:10px;height:82px;border-radius:120px 120px 0 0;border:10px solid #1c2733;border-bottom:none}
.speedometer-arc:before{content:'';position:absolute;inset:-10px;border-radius:120px 120px 0 0;border:10px solid transparent;border-bottom:none;border-image:linear-gradient(90deg,#54c6ff,#9ff36a,#ffda4d,#ff6a53) 1;opacity:.9}
.speedometer-needle{position:absolute;left:50%;bottom:28px;width:4px;height:54px;background:linear-gradient(180deg,#ffffff,#cfd8e2);border-radius:8px;transform-origin:50% 100%;transform:translateX(-50%) rotate(-125deg);box-shadow:0 0 10px #ffffff55}
.speedometer-center{position:absolute;left:50%;bottom:20px;width:18px;height:18px;border-radius:50%;background:#edf4fb;border:4px solid #111820;transform:translateX(-50%);box-shadow:0 0 0 2px #57748f33}
.speedometer-readout{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);text-align:center;line-height:1}
.speedometer-readout strong{display:block;font-size:28px;color:#fff;text-shadow:0 2px 12px #000;font-variant-numeric:tabular-nums}
.speedometer-readout span{display:block;margin-top:2px;font-size:8px;letter-spacing:.18em;color:#b8c9d9;font-weight:900}
.speedometer-ticks .tick{position:absolute;font-size:10px;font-weight:900;color:#dbe7f2;text-shadow:0 1px 6px #000}
.tick-0{left:18px;bottom:26px}.tick-10{left:38px;top:28px}.tick-20{right:38px;top:28px}.tick-30{right:18px;bottom:26px}
.cockpit-overlay{width:min(92vw,470px);bottom:max(78px,calc(env(safe-area-inset-bottom) + 70px));z-index:7}
@media(max-width:520px){.route-chip{max-width:46vw}.goal-distance-box{top:184px;right:10px;min-width:118px}.goal-distance-box strong{font-size:25px}.nav{top:186px}.speedometer{width:156px;height:92px;bottom:max(140px,calc(env(safe-area-inset-bottom) + 132px))}.speedometer-needle{height:50px;bottom:27px}.speedometer-readout strong{font-size:24px}.tick-10,.tick-20{top:26px}.cockpit-overlay{width:min(92vw,438px);bottom:max(74px,calc(env(safe-area-inset-bottom) + 68px))}}

/* V6.9.26 — realistic first-person cockpit integration */
.legacy-speedometer,.speedometer{display:none!important}
.cockpit-overlay{width:min(108vw,560px)!important;bottom:max(58px,calc(env(safe-area-inset-bottom) + 50px))!important;z-index:10;filter:drop-shadow(0 12px 28px rgba(0,0,0,.42))}
.cockpit-overlay img{width:100%;height:auto;display:block;user-select:none;-webkit-user-drag:none}
.cockpit-meter{position:absolute;left:50%;top:41.7%;width:34%;height:22%;transform:translate(-50%,-50%);pointer-events:none}
.cockpit-meter-mask{position:absolute;left:50%;top:59%;width:52%;height:38%;transform:translate(-50%,-50%);background:linear-gradient(180deg,#132636f0,#09121be8);clip-path:polygon(15% 0,85% 0,100% 34%,84% 100%,16% 100%,0 34%);box-shadow:inset 0 1px 0 #9ee8ff2b,0 0 20px #4dc3ff22;border:1px solid #9ee8ff22}
.cockpit-meter-needle{position:absolute;left:50%;bottom:42%;width:4px;height:34%;background:linear-gradient(180deg,#fff7d3,#ff6a53);border-radius:10px;transform-origin:50% 100%;transform:translateX(-50%) rotate(-125deg);box-shadow:0 0 12px #ff5e4388,0 0 3px #fff7d3}
.cockpit-meter-needle:after{content:"";position:absolute;left:50%;top:-8px;transform:translateX(-50%);width:8px;height:14px;background:linear-gradient(180deg,#fff3ce,#ff6b53);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 0 5px #ff5e43aa)}
.cockpit-meter-readout{position:absolute;left:50%;bottom:11%;transform:translateX(-50%);text-align:center;line-height:1;color:#f8fcff;text-shadow:0 0 8px #000,0 0 18px #000;font-variant-numeric:tabular-nums}
.cockpit-meter-readout strong{display:block;font-size:34px;font-weight:950;letter-spacing:.01em}
.cockpit-meter-readout span{display:block;margin-top:3px;font-size:11px;letter-spacing:.12em;color:#dcecff;font-weight:900;text-transform:lowercase}
@media(max-width:520px){.cockpit-overlay{width:min(112vw,520px)!important;bottom:max(55px,calc(env(safe-area-inset-bottom) + 48px))!important}.cockpit-meter{top:41.4%;width:35%;height:22%}.cockpit-meter-readout strong{font-size:30px}.cockpit-meter-readout span{font-size:10px}}


/* V6.9.26 — cockpit scale and meter fit fix */
.cockpit-overlay{
  width:min(98vw,510px)!important;
  bottom:max(34px,calc(env(safe-area-inset-bottom) + 30px))!important;
}
.cockpit-meter{
  top:42.8%;
  width:31%;
  height:19%;
}
.cockpit-meter-mask{
  top:61%;
  width:50%;
  height:34%;
  clip-path:polygon(16% 0,84% 0,100% 34%,84% 100%,16% 100%,0 34%);
}
.cockpit-meter-needle{
  width:3px;
  height:27%;
  bottom:44%;
  box-shadow:0 0 8px #ff5e4388,0 0 2px #fff7d3;
}
.cockpit-meter-needle:after{
  top:-6px;
  width:6px;
  height:10px;
}
.cockpit-meter-readout{bottom:13%}
.cockpit-meter-readout strong{font-size:29px}
.cockpit-meter-readout span{font-size:9px;margin-top:2px}
@media(max-width:520px){
  .cockpit-overlay{width:min(100vw,472px)!important;bottom:max(32px,calc(env(safe-area-inset-bottom) + 28px))!important}
  .cockpit-meter{top:42.8%;width:31.5%;height:19%}
  .cockpit-meter-readout strong{font-size:26px}
  .cockpit-meter-readout span{font-size:8px}
  .cockpit-meter-needle{height:25%;bottom:45%}
}


/* V6.9.26 — lower cockpit further so meter is partially hidden */
.cockpit-overlay{
  width:min(100vw,500px)!important;
  bottom:max(-8px,calc(env(safe-area-inset-bottom) - 10px))!important;
}
.cockpit-meter{
  top:43.2%;
  width:30.5%;
  height:18.5%;
}
.cockpit-meter-readout strong{font-size:28px}
.cockpit-meter-readout span{font-size:8px}
@media(max-width:520px){
  .cockpit-overlay{width:min(102vw,468px)!important;bottom:max(-10px,calc(env(safe-area-inset-bottom) - 12px))!important}
  .cockpit-meter{top:43.5%;width:30.5%;height:18.2%}
  .cockpit-meter-readout strong{font-size:25px}
}


/* V6.9.26 — move distance panel lower to avoid landmark overlap */
.goal-distance-box{
  top:224px !important;
  right:12px;
}
@media(max-width:520px){
  .goal-distance-box{
    top:220px !important;
    right:10px;
  }
}


/* V6.9.26 — move cockpit lower */
.cockpit-overlay{
  bottom:max(-34px,calc(env(safe-area-inset-bottom) - 36px)) !important;
}
@media(max-width:520px){
  .cockpit-overlay{
    bottom:max(-36px,calc(env(safe-area-inset-bottom) - 38px)) !important;
  }
}


/* V6.9.26 — keep cockpit below cut-ins and alerts */
.cockpit-overlay{
  z-index: 4 !important;
}


/* V6.9.26 — remove duplicate speed appearance and realign cockpit meter */
.cockpit-meter{
  top: 42.2% !important;
  width: 31.6% !important;
  height: 20.6% !important;
}
.cockpit-meter-mask{
  top: 57.5% !important;
  width: 58% !important;
  height: 52% !important;
  background: linear-gradient(180deg,#101c27 0%,#081019 100%) !important;
  border: 1px solid #86d8ff26 !important;
  box-shadow: inset 0 1px 0 #d9f6ff12, 0 0 12px #39bdf31e !important;
  clip-path: polygon(12% 6%,88% 6%,100% 34%,86% 100%,14% 100%,0 34%) !important;
}
.cockpit-meter-needle{
  height: 24% !important;
  bottom: 48% !important;
}
.cockpit-meter-readout{
  bottom: 23% !important;
}
.cockpit-meter-readout strong{
  font-size: 24px !important;
  line-height: .9 !important;
}
.cockpit-meter-readout span{
  font-size: 7px !important;
  margin-top: 1px !important;
}
@media(max-width:520px){
  .cockpit-meter{
    top: 42.4% !important;
    width: 31.8% !important;
    height: 20.4% !important;
  }
  .cockpit-meter-mask{
    top: 58% !important;
    width: 58% !important;
    height: 53% !important;
  }
  .cockpit-meter-readout{
    bottom: 22% !important;
  }
  .cockpit-meter-readout strong{
    font-size: 22px !important;
  }
}


/* V6.9.26 — use cleaned cockpit asset and raise dynamic meter elements */
.cockpit-meter-mask{display:none !important;}
.cockpit-meter{
  top: 41.4% !important;
  width: 29.5% !important;
  height: 18.8% !important;
}
.cockpit-meter-needle{
  width: 3px !important;
  height: 28% !important;
  bottom: 50% !important;
  box-shadow: 0 0 7px #ff5e4380, 0 0 2px #fff7d3 !important;
}
.cockpit-meter-needle:after{
  top:-5px !important;
  width:6px !important;
  height:9px !important;
}
.cockpit-meter-readout{
  bottom: 16.5% !important;
}
.cockpit-meter-readout strong{
  font-size: 20px !important;
}
.cockpit-meter-readout span{
  font-size: 7px !important;
  margin-top: 0 !important;
}
@media(max-width:520px){
  .cockpit-meter{
    top: 41.6% !important;
    width: 29.8% !important;
    height: 18.9% !important;
  }
  .cockpit-meter-needle{height:27% !important; bottom:49.5% !important;}
  .cockpit-meter-readout{bottom:15.5% !important;}
  .cockpit-meter-readout strong{font-size:19px !important;}
  .cockpit-meter-readout span{font-size:6px !important;}
}

/* V6.9.26 — avoid default-title flash before the random hero loads */
#boot.hero-ready{opacity:1;pointer-events:auto}

/* V6.9.26 — stopped dice should still read clearly as 3D dice */
.die-scene{filter:drop-shadow(0 10px 12px rgba(0,0,0,.22))}
.die.settled{transition:transform .72s cubic-bezier(.18,.86,.22,1.08)}
.face{
  border:2px solid rgba(255,255,255,.96);
  box-shadow:
    inset 8px 8px 16px rgba(255,255,255,.92),
    inset -9px -10px 15px rgba(117,133,153,.22),
    0 1px 0 rgba(255,255,255,.9);
}
.pip-face{position:absolute}
.pip{
  position:absolute;
  width:12px;
  height:12px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#334052 0 18%,#101722 52%,#03070c 100%);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.28);
  transform:translate(-50%,-50%);
}
.p1{left:24%;top:24%}.p2{left:50%;top:24%}.p3{left:76%;top:24%}
.p4{left:24%;top:50%}.p5{left:50%;top:50%}.p6{left:76%;top:50%}
.p7{left:24%;top:76%}.p8{left:50%;top:76%}.p9{left:76%;top:76%}
.weather-face{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  overflow:hidden;
  background:linear-gradient(145deg,#ffffff,#dfe8f3);
}
.weather-face:after{
  content:"";
  position:absolute;
  inset:7px;
  border-radius:10px;
  border:1px solid rgba(26,40,56,.09);
  box-shadow:inset 0 0 10px rgba(54,83,111,.08);
}
.weather-face .weather-mark{
  position:relative;
  z-index:1;
  font-size:28px;
  line-height:1;
  text-shadow:0 2px 4px rgba(0,0,0,.14);
}
.weather-face small{
  position:relative;
  z-index:1;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  color:#203246;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(24,42,60,.08);
  padding:2px 6px;
  border-radius:999px;
}
.weather-face--sunny{background:linear-gradient(145deg,#fffdf6,#ffe6a6)}
.weather-face--cloudy{background:linear-gradient(145deg,#fafcff,#dbe7f5)}
.weather-face--rain{background:linear-gradient(145deg,#f5fbff,#beddff)}
.weather-face--typhoon{background:linear-gradient(145deg,#fbf8ff,#d6c7ff)}
.route-face{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  overflow:hidden;
  background:linear-gradient(145deg,#ffffff,#dfe8f3);
}
.route-face:after{
  content:"";
  position:absolute;
  inset:7px;
  border-radius:10px;
  border:1px solid rgba(26,40,56,.08);
  box-shadow:inset 0 0 10px rgba(54,83,111,.06);
}
.route-face .route-mark{
  position:relative;
  z-index:1;
  font-size:28px;
  line-height:1;
  text-shadow:0 2px 4px rgba(0,0,0,.14);
}
.route-face small{
  position:relative;
  z-index:1;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  color:#203246;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(24,42,60,.08);
  padding:2px 6px;
  border-radius:999px;
}
.route-face--nagoya{background:linear-gradient(145deg,#fefeff,#d9ecff)}
.route-face--osu{background:linear-gradient(145deg,#fffaf0,#ffe1b2)}
.route-face--kanayama{background:linear-gradient(145deg,#fff6f5,#ffc8bf)}
.route-face--castle{background:linear-gradient(145deg,#fbfff6,#d8f0c7)}
.route-face--centrair{background:linear-gradient(145deg,#f5ffff,#cceff1)}
.route-face--gifu{background:linear-gradient(145deg,#fbf7ff,#e4d7ff)}
@media(max-width:460px){
  .pip{width:11px;height:11px}
}


/* V6.9.26 — raise cockpit speed readout/needle by 23px and use a bar needle */
.cockpit-meter-needle{
  width: 4px !important;
  height: 28% !important;
  bottom: calc(50% + 23px) !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg,#ffe7c7 0%,#ff8b62 45%,#ff5f4d 100%) !important;
  box-shadow: 0 0 9px #ff6c4b88, 0 0 3px #fff3cf !important;
}
.cockpit-meter-needle:after{
  display:none !important;
}
.cockpit-meter-readout{
  bottom: calc(16.5% + 19px) !important;
}
@media(max-width:520px){
  .cockpit-meter-needle{bottom: calc(49.5% + 23px) !important; height:27% !important;}
  .cockpit-meter-readout{bottom: calc(15.5% + 19px) !important;}
}
