.cmap{--cm-green:#1a2e1d;--cm-deep:#0e1a11;--cm-panel:#13241a;--cm-line:rgba(201,164,92,.22);--cm-gold:#c9a45c;--cm-gold-2:#e6cf98;--cm-cream:#f4efe4;--cm-mute:rgba(244,239,228,.6);background:var(--cm-deep);color:var(--cm-cream);font-family:var(--sans);-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;height:calc(100vh - 74px);height:calc(100svh - 74px);min-height:600px;max-height:980px}
.cmap *{box-sizing:border-box}.cmap h1,.cmap h2,.cmap h3,.cmap h4,.cmap p,.cmap ul,.cmap table{margin:0;padding:0}
.cmap em{font-family:var(--serif);font-style:italic;color:var(--cm-gold);font-weight:300}
.cmap button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.cmap .top{display:flex;align-items:center;gap:28px;padding:14px 24px;border-bottom:1px solid var(--cm-line);background:linear-gradient(180deg,#132619,var(--cm-deep))}
.cmap .mark{font-family:var(--serif);font-size:26px;font-weight:400;color:var(--cm-cream);text-decoration:none}
.cmap .mark span{color:var(--cm-gold)}
.cmap .eyebrow{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--cm-gold);font-weight:500}
.cmap .title h1{font-family:var(--serif);font-weight:300;font-size:24px;letter-spacing:-.02em;margin-top:2px;white-space:nowrap}
.cmap .statbar{margin-left:auto;display:flex;gap:22px;overflow-x:auto;scrollbar-width:none}
.cmap .statbar div{flex:none}
.cmap .statbar b{display:block;font-family:var(--serif);font-weight:300;font-size:22px;line-height:1;font-variant-numeric:tabular-nums}
.cmap .statbar span{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--cm-gold)}
.cmap .layout{flex:1;display:grid;grid-template-columns:1fr 420px;min-height:0}
.cmap .mapwrap{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#173022,#0b150e 75%)}
.cmap #map{width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.cmap #map:active{cursor:grabbing}
.cmap .land{fill:#20402a;stroke:#2f5a3a;stroke-width:.5;vector-effect:non-scaling-stroke}
.cmap .land.se{fill:#2b5235}
.cmap .grat{fill:none;stroke:rgba(201,164,92,.07);stroke-width:.5;vector-effect:non-scaling-stroke}
.cmap .sphere{fill:#0f1f15;stroke:rgba(201,164,92,.25);stroke-width:1;vector-effect:non-scaling-stroke}
.cmap .venue{stroke:#0e1a11;stroke-width:1;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity .4s}
.cmap .venue.dim{opacity:.18}
.cmap .venue.sel{stroke:#fff;stroke-width:2}
.cmap .route{fill:none;stroke:var(--cm-gold-2);stroke-width:1.3;vector-effect:non-scaling-stroke;opacity:.55}
.cmap .route.done{opacity:.9;stroke:var(--cm-gold)}
.cmap .trail{fill:none;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;opacity:.9}
.cmap .stop circle{fill:var(--cm-deep);stroke:var(--cm-gold);vector-effect:non-scaling-stroke}
.cmap .stop text{fill:var(--cm-gold-2);font:600 9px var(--sans);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.cmap .home{fill:none;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.cmap .plane{fill:#fff;filter:drop-shadow(0 0 6px rgba(230,207,152,.9))}
.cmap .tip{position:absolute;pointer-events:none;background:rgba(14,26,17,.92);border:1px solid var(--cm-line);padding:8px 12px;font-size:12px;border-radius:3px;opacity:0;transition:opacity .15s;max-width:260px;backdrop-filter:blur(6px)}
.cmap .tip b{font-family:var(--serif);font-weight:400;font-size:15px;display:block}
.cmap .arrive{position:absolute;left:20px;bottom:20px;width:min(360px,calc(100% - 40px));background:rgba(14,26,17,.94);border:1px solid var(--cm-gold);border-radius:4px;padding:16px 18px;opacity:0;transform:translateY(16px);transition:opacity .35s,transform .35s;pointer-events:none;backdrop-filter:blur(8px)}
.cmap .arrive.show{opacity:1;transform:none}
.cmap .arrive small{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--cm-gold)}
.cmap .arrive h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.15;margin:4px 0 8px}
.cmap .arrive .row{display:flex;gap:16px;font-size:13px;color:var(--cm-mute);flex-wrap:wrap}
.cmap .arrive .row b{color:var(--cm-cream);font-weight:500}
.cmap .map-ctl{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;gap:6px}
.cmap .map-ctl button{width:34px;height:34px;border:1px solid var(--cm-line);background:rgba(14,26,17,.85);border-radius:3px;font-size:16px}
.cmap .map-ctl button:hover{border-color:var(--cm-gold)}
.cmap .legend{position:absolute;right:16px;bottom:16px;list-style:none;font-size:11px;background:rgba(14,26,17,.8);border:1px solid var(--cm-line);padding:10px 12px;border-radius:3px;display:grid;gap:5px}
.cmap .legend li{display:flex;align-items:center;gap:8px}
.cmap .legend i{width:8px;height:8px;border-radius:50%}
.cmap .panel{background:var(--cm-panel);border-left:1px solid var(--cm-line);display:flex;flex-direction:column;min-height:0}
.cmap .grab{display:none}
.cmap .seasons{display:flex;flex-wrap:wrap;gap:6px;padding:16px 18px 12px;border-bottom:1px solid var(--cm-line)}
.cmap .seasons button{font-size:12px;padding:6px 9px;border:1px solid var(--cm-line);border-radius:99px;font-variant-numeric:tabular-nums;transition:all .2s}
.cmap .seasons button:hover{border-color:var(--cm-gold)}
.cmap .seasons button.on{background:var(--cm-gold);color:var(--cm-deep);border-color:var(--cm-gold);font-weight:600}
.cmap .player{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--cm-line)}
.cmap .play{background:var(--cm-gold);color:var(--cm-deep);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:9px 16px;border-radius:99px}
.cmap .play:disabled{opacity:.35;cursor:not-allowed}
.cmap .speeds{display:flex;border:1px solid var(--cm-line);border-radius:99px;overflow:hidden}
.cmap .speeds button{font-size:12px;padding:7px 10px}
.cmap .speeds button.on{background:rgba(201,164,92,.2);color:var(--cm-gold-2)}
.cmap .running{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--cm-line);border-bottom:1px solid var(--cm-line)}
.cmap .running div{background:var(--cm-panel);padding:10px 12px}
.cmap .running b{display:block;font-family:var(--serif);font-weight:300;font-size:20px;font-variant-numeric:tabular-nums}
.cmap .running span{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--cm-gold)}
.cmap .view{flex:1;overflow-y:auto;padding:18px;scrollbar-width:thin;scrollbar-color:var(--cm-line) transparent}
.cmap .view h2{font-family:var(--serif);font-weight:300;font-size:28px;line-height:1.05;letter-spacing:-.02em}
.cmap .view h4{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--cm-gold);margin:22px 0 10px;font-weight:500}
.cmap .view .sub{color:var(--cm-mute);font-size:13px;margin-top:6px}
.cmap .kv{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cmap .kv div{border:1px solid var(--cm-line);border-radius:3px;padding:9px 10px}
.cmap .kv b{display:block;font-family:var(--serif);font-weight:300;font-size:19px}
.cmap .kv span{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--cm-mute)}
.cmap table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.cmap th{font-weight:500;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--cm-gold);text-align:left;padding:6px 4px;border-bottom:1px solid var(--cm-line)}
.cmap td{padding:7px 4px;border-bottom:1px solid rgba(201,164,92,.08);vertical-align:top}
.cmap tr.ev{cursor:pointer}
.cmap tr.ev:hover td{background:rgba(201,164,92,.06)}
.cmap td.n{text-align:right}
.cmap th.n{text-align:right}
.cmap .tag{display:inline-block;font-size:9px;letter-spacing:.08em;padding:1px 5px;border-radius:2px;margin:2px 3px 0 0;border:1px solid currentColor;opacity:.85}
.cmap .pos{font-weight:600}
.cmap .pos.win{color:var(--cm-gold)}
.cmap .pos.t10{color:var(--cm-gold-2)}
.cmap .pos.cut{color:rgba(244,239,228,.4)}
.cmap .rounds{display:flex;flex-wrap:wrap;gap:6px}
.cmap .rounds span{min-width:38px;text-align:center;border:1px solid var(--cm-line);border-radius:3px;padding:5px 4px;font-variant-numeric:tabular-nums;font-size:13px}
.cmap .rounds span small{display:block;font-size:8px;color:var(--cm-mute);letter-spacing:.1em}
.cmap .rounds span.best{border-color:var(--cm-gold);color:var(--cm-gold-2)}
.cmap .back{font-size:12px;color:var(--cm-gold);margin-bottom:12px}
.cmap .note{font-size:11px;color:var(--cm-mute);margin-top:10px;line-height:1.5}
.cmap .bars div{display:grid;grid-template-columns:110px 1fr 34px;align-items:center;gap:8px;font-size:12px;margin:5px 0}
.cmap .bars i{display:block;height:6px;background:var(--cm-gold);border-radius:3px}
.cmap .list li{list-style:none;display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid rgba(201,164,92,.08);font-size:13px;cursor:pointer}
.cmap .list li:hover{color:var(--cm-gold-2)}
.cmap .list small{color:var(--cm-mute)}

@media (max-width:900px){.cmap .top{padding:10px 14px;gap:12px;flex-wrap:wrap}.cmap .title h1{font-size:18px}.cmap .statbar{width:100%;margin:0;gap:16px}.cmap .statbar b{font-size:17px}.cmap .layout{grid-template-columns:1fr;position:relative}.cmap .panel{position:absolute;left:0;right:0;bottom:0;height:46%;border-left:0;border-top:1px solid var(--cm-gold);border-radius:14px 14px 0 0;box-shadow:0 -20px 40px rgba(0,0,0,.5);transition:height .35s}.cmap .panel.tall{height:82%}.cmap .grab{display:block;width:44px;height:5px;border-radius:3px;background:rgba(244,239,228,.3);margin:8px auto 0;cursor:pointer}.cmap .seasons{flex-wrap:nowrap;overflow-x:auto;padding:10px 14px;scrollbar-width:none}.cmap .seasons button{flex:none}.cmap .player{padding:8px 14px}.cmap .running b{font-size:16px}.cmap .running div{padding:7px 9px}.cmap .arrive{bottom:auto;top:10px;left:10px;width:calc(100% - 64px);padding:10px 12px}.cmap .arrive h3{font-size:16px;margin:2px 0 4px}.cmap .arrive .row{font-size:12px;gap:10px}.cmap .legend{display:none}.cmap .map-ctl{top:10px;right:10px}
}

.cmap .top{background:linear-gradient(180deg,#1a2e1d,var(--cm-deep))}
.cmap .title h1{font-family:var(--serif);font-weight:500;font-size:30px;color:var(--cm-cream)}
.cmap .statbar b,.cmap .running b,.cmap .kv b,.cmap .view h2,.cmap .arrive h3,.cmap .tip b{font-family:var(--serif);font-weight:500}
.cmap .statbar b{font-size:24px}
.cmap .loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--cm-mute);font-size:14px}
.cmap button:focus-visible,.cmap [tabindex]:focus-visible{outline:2px solid var(--cm-gold-2);outline-offset:2px}
@media (max-width:900px){.cmap{height:calc(100svh - 64px);min-height:560px}.cmap .title h1{font-size:22px}}
.cmap h1,.cmap h2,.cmap h3,.cmap h4{color:var(--cm-cream)}.cmap .view h4{color:var(--cm-gold)}.cmap .seasons button,.cmap .speeds button,.cmap .map-ctl button,.cmap .back{color:var(--cm-cream)}.cmap .seasons button.on,.cmap .play{color:var(--cm-deep)}.cmap .back{color:var(--cm-gold)}
.cmap .chip{font-size:12px;padding:7px 12px;border:1px solid var(--cm-line);border-radius:99px;color:var(--cm-cream);white-space:nowrap}.cmap .chip.on{background:var(--cm-gold-2);color:var(--cm-deep);border-color:var(--cm-gold-2);font-weight:600}.cmap .player{flex-wrap:wrap}
