.city-intro{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:22px}.city-intro .eyebrow{font-size:10px;color:#84d5e7}.city-intro h2{font:500 32px Oswald;margin:9px 0}.city-intro p{font-size:13px;line-height:1.7;color:#afbecd;max-width:520px;margin-bottom:0}.city-view-switch{display:flex;flex:none;padding:4px;background:#18242f;border:1px solid #394b5a;border-radius:8px}.city-view-switch button{min-height:44px;min-width:78px;padding:10px 14px;background:none;border:0;border-radius:5px;color:#b7c5d0;font-size:13px}.city-view-switch [aria-pressed=true]{background:#98dbe6;color:#0b1720;font-weight:800}
.city-map{position:relative;height:450px;border:1px solid #43606e;border-radius:14px;overflow:hidden;isolation:isolate;background:#14232f;box-shadow:inset 0 0 80px #0008}.city-plan{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}.city-map:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #040a1588;z-index:-1}.city-map-label{position:absolute;left:20px;top:20px;font-size:10px;letter-spacing:2px;color:#a4c9d8}.city-compass{position:absolute;right:20px;bottom:18px;font:20px Oswald;color:#a8bbc6}.city-district{position:absolute;display:grid;gap:8px;padding:15px;text-align:left;border:1px solid #72828d;background:#0b151fec;border-radius:9px;min-width:190px;color:#e3edf2;box-shadow:0 8px 24px #0005}.city-district small{font-size:9px;color:#96b4c4;letter-spacing:1.2px}.city-district b{font:500 21px Oswald}.city-district span{font-size:11px;color:#b8cbd5;display:flex;justify-content:space-between;gap:12px}.city-district i{font-style:normal;color:#93dfec}.city-district.docks{left:7%;top:39%}.city-district.ring{right:7%;bottom:12%}.city-district.highway{right:10%;top:12%}.city-district.selected{border:2px solid #93dfec;background:#12303aec}.city-district:hover{background:#203b46}
.city-section-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:25px 0 14px}.city-section-title h2{font:500 25px Oswald;margin:0}.city-section-title>span{font-size:11px;color:#a8bac8;white-space:nowrap}.city-events{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.city-events.all-events{grid-template-columns:repeat(3,minmax(0,1fr))}.city-event{display:flex;flex-direction:column;gap:13px;min-width:0;text-align:left;color:#e5ecf3;background:#141e29;border:1px solid #364656;border-radius:10px;padding:19px;min-height:245px}.city-event.selected{border-color:#8adae9;box-shadow:inset 0 0 0 1px #8adae9}.city-event:hover{background:#1d2c38}.city-event-top{display:flex;gap:9px;justify-content:space-between;flex-wrap:wrap;font-size:9px;letter-spacing:.5px;color:#b9c9d3}.city-event-top b{color:#c4dae3;font-size:10px;letter-spacing:0}.city-event>strong{font:500 27px Oswald;line-height:1.25}.city-event-sub{font-size:12px;line-height:1.6;color:#b6c6d2}.city-event-record{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#a6bac9}.city-event-record b{color:#d4e9f2;white-space:nowrap}.city-event-condition{font-size:11px;color:#a4b6c6;line-height:1.6}.city-event-bottom{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;margin-top:auto;padding-top:12px;border-top:1px solid #354450}.city-event-bottom b{color:#8ce0ec}.raven{--rival-color:#82dce9;--rival-tint:#193745}.torque{--rival-color:#ffb16f;--rival-tint:#3a2822}.viper{--rival-color:#c6a0ff;--rival-tint:#302542}.rival-event{background:linear-gradient(125deg,var(--rival-tint),#131c27)}.rival-event>strong{color:var(--rival-color)}
.city-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.07fr);border:1px solid #465567;background:#131d28;border-radius:13px;overflow:hidden;margin-top:25px;scroll-margin-top:70px}.city-race-brief{padding:26px;min-width:0}.city-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.city-detail-heading h3{font:500 25px Oswald;margin:0}.city-detail-heading>b{font:500 24px Oswald;white-space:nowrap;color:#a3e6ee}.city-record-label{font-size:11px;line-height:1.6;color:#a9becc;margin-top:9px}.city-config{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:22px}.city-config>span{display:flex;align-items:center;flex-direction:column;gap:4px;min-width:0;padding:8px 1px;background:#243442;border:1px solid #466073;border-radius:5px;color:#ade9f2}.city-config>span.curve{background:#302d40;border-color:#6e6088;color:#d2b4f6}.city-config small{font-size:12px}.city-config b{font-size:24px;line-height:1.2}.city-config-legend{font-size:11px;color:#b9c6d0;line-height:1.7;margin-top:11px}.city-tactic{font-size:12px;line-height:1.8;color:#bccbd7;background:#1a2935;border-left:2px solid #78bed3;padding:12px 14px;margin:20px 0}.city-race-economy{display:grid;gap:12px;margin:21px 0}.city-race-economy>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.city-race-economy dt{color:#b3c2d0}.city-race-economy dd{margin:0;text-align:right;color:#f5d0ab;font-weight:700}.city-race-economy small{font-size:11px;display:block;color:#a9b9c6;font-weight:400;margin-top:4px}.city-unlock{font-size:12px;line-height:1.7;color:#cdb89f}.city-unlock.open{color:#a7dcdd}.city-start{min-height:52px;width:100%;font-size:13px;white-space:normal;padding:14px 12px;line-height:1.6}.city-race-brief>.secondary{width:100%;margin-top:10px;min-height:44px}.city-race-brief>.text-button{min-height:44px;line-height:1.6;font-size:12px;width:100%;padding:10px}.city-start:disabled{opacity:.55}
.city-track-hero{min-width:0;min-height:300px;padding:32px;background:linear-gradient(180deg,#112430b8,#0c141dee),url('/assets/night.webp') center/cover;display:flex;flex-direction:column;justify-content:center}.city-track-hero .eyebrow{font-size:10px;color:#a3d1e2}.city-track-hero h2{font:500 42px Oswald;margin:18px 0}.city-track-hero p{font-size:14px;color:#c2d1da;line-height:1.8}.city-track-hero>span:last-child{font-size:12px;color:#a6bfce}.city-track-hero.ring{background:linear-gradient(140deg,#343040a8,#101923ef),url('/assets/night.webp') center/cover}.city-track-hero.highway{background:linear-gradient(140deg,#553126a8,#101923ef),url('/assets/night.webp') center/cover}.city-rival-hero{display:flex;flex-direction:column;padding:28px;min-width:0;background:radial-gradient(ellipse at 50% 65%,var(--rival-tint),transparent 80%),linear-gradient(140deg,#132431,#080e16);border-right:1px solid #354755}.city-rival-identity{display:flex;align-items:center;gap:15px}.city-rival-identity .eyebrow{font-size:10px;color:var(--rival-color)}.city-rival-identity h2{font:500 50px Oswald;letter-spacing:1px;margin:5px 0;color:var(--rival-color)}.city-rival-hero blockquote{font-size:15px;line-height:1.8;margin:20px 0;color:#cfdae4;max-width:350px}.city-rival-hero img{display:block;width:100%;height:220px;object-fit:contain;filter:drop-shadow(0 15px 12px #000a);margin:auto 0}.city-rival-carname{font:500 25px Oswald;padding-top:18px;border-top:1px solid #50616e}.city-rival-carname span{display:block;font:12px/1.8 Manrope;color:#bcc9d4;margin-top:9px}.city-medal{display:grid;place-items:center;flex:none;width:58px;height:64px;background:var(--rival-tint,#193540);border:1px solid var(--rival-color,#85d4e7);border-radius:12px;color:var(--rival-color,#85d4e7)}.city-medal svg{width:33px;height:38px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}.city-first-reward{display:flex;align-items:center;gap:13px;padding:15px 0;border-top:1px solid #3a485b;border-bottom:1px solid #3a485b}.city-first-reward b{font-size:12px;color:var(--rival-color,#a5e5ee)}.city-first-reward p{font-size:12px;line-height:1.6;margin:7px 0}.city-first-reward small{font-size:11px;line-height:1.6;color:#a8bbc9;display:block}
.city-career{background:linear-gradient(135deg,#1a2b38,#131922);border:1px solid #405065;border-radius:12px;padding:26px;margin-top:26px}.city-career .eyebrow{font-size:10px;color:#97cedf}.city-career h2{font:500 29px Oswald;margin:11px 0}.city-career p{font-size:13px;color:#b9c7d4;line-height:1.8}.city-chain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.city-chain-step{display:flex;flex-direction:column;align-items:center;gap:9px;color:var(--rival-color);border:1px solid #506171;border-radius:8px;background:#17232f;padding:18px 10px;min-width:0}.city-chain-step:hover{background:var(--rival-tint)}.city-chain-step>span{width:28px;height:34px}.city-chain-step svg{width:28px;height:32px;fill:none;stroke:currentColor;stroke-width:1.5}.city-chain-step b{font:500 22px Oswald}.city-chain-step small{font-size:11px;color:#b8cbd7}.city-chain-progress{margin-bottom:0}.city-awards{margin-top:26px}.city-award-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.city-award{display:flex;align-items:center;gap:12px;padding:17px;border:1px solid #425363;border-radius:9px;background:#121d27}.city-award b{font-size:12px;line-height:1.7;color:var(--rival-color)}.city-award small{display:block;color:#abbfca;font-size:11px;line-height:1.7;margin-top:5px}.city-earned{display:flex;align-items:center;gap:16px;max-width:570px;text-align:left;margin:24px auto;padding:20px;border:1px solid var(--rival-color);border-radius:10px;background:var(--rival-tint)}.city-earned small{font-size:9px;color:#cfdae6;letter-spacing:1px}.city-earned h3{font:500 25px Oswald;margin:7px 0;color:var(--rival-color)}.city-earned p{font-size:12px;margin:4px 0;line-height:1.7}.result .city-new-record{color:#9ee4e9}.city-repeat-note{font-size:12px!important;line-height:1.8}.city-career-button{min-height:44px}
.city-intro button:focus-visible,.city-map button:focus-visible,.city-events button:focus-visible,.city-detail button:focus-visible,.city-chain button:focus-visible{outline:2px solid #c8f4ff;outline-offset:3px}
.city-events.all-events{grid-template-columns:repeat(2,minmax(0,1fr))}.city-detail{grid-template-columns:minmax(0,1fr)}.city-rival-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 24px;border-right:0;border-bottom:1px solid #354755}.city-rival-hero img{grid-column:2;grid-row:1/4;height:230px}.city-rival-hero blockquote{font-size:13px;margin:10px 0}.city-rival-carname{font-size:22px}.city-rival-identity h2{font-size:40px}.city-award-grid{grid-template-columns:1fr}.city-map{height:420px}.city-district{min-width:174px}.city-track-hero{min-height:210px}.city-track-hero h2{font-size:35px}
.city-intro{display:block}.city-intro h2{font-size:29px}.city-intro p{font-size:12px}.city-view-switch{margin-top:18px;display:grid;grid-template-columns:1fr 1fr}.city-map{height:452px}.city-map-label{left:13px;top:15px;font-size:8px;letter-spacing:1.2px}.city-district{min-width:0;width:177px;max-width:75%;padding:13px;gap:7px}.city-district b{font-size:21px}.city-district.highway{top:10%;right:6%}.city-district.docks{top:42%;left:6%}.city-district.ring{bottom:6%;right:6%}.city-compass{left:17px;right:auto;bottom:25px}.city-section-title h2{font-size:23px}.city-section-title>span{font-size:10px}.city-events,.city-events.all-events{grid-template-columns:minmax(0,1fr);gap:10px}.city-event{padding:17px;min-height:0;gap:12px}.city-event>strong{font-size:27px}.city-detail{margin-top:18px}.city-race-brief{padding:19px 16px}.city-detail-heading h3{font-size:23px}.city-detail-heading>b{font-size:20px}.city-config{gap:4px}.city-config-legend{font-size:11px}.city-tactic{font-size:12px;padding:12px}.city-track-hero{padding:24px 18px;min-height:220px}.city-track-hero h2{font-size:33px}.city-track-hero p{font-size:13px}.city-rival-hero{display:flex;gap:0;padding:23px 18px}.city-rival-hero img{height:170px}.city-rival-identity h2{font-size:42px}.city-rival-hero blockquote{font-size:13px;margin:16px 0}.city-medal{width:48px;height:56px}.city-first-reward{gap:11px}.city-career{padding:22px 17px}.city-career h2{font-size:26px}.city-career p{font-size:12px}.city-chain{gap:7px}.city-chain-step{padding:14px 4px}.city-chain-step b{font-size:19px}.city-chain-step small{font-size:10px}.city-earned{padding:15px 12px;gap:12px}.city-earned h3{font-size:23px}.city-award{padding:14px}.city-start{font-size:12px}.city-first-reward p,.city-first-reward b{font-size:11px}
@media(prefers-reduced-motion:reduce){.city-map *,.city-detail *,.city-chain *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
