:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:"Hanken Grotesk", Inter, system-ui, "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-heading:"Hanken Grotesk", "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;font-family:var(--font-sans);--bg:#000;--surface:#121414;--surface-low:#0c0f0f;--surface-high:#1e2020;--surface-bright:#282a2b;--text:#e2e2e2;--muted:#98a7a8;--subtle:#5f6c6e;--line:#2a3334;--line-strong:#37393a;--cyan:#00f0ff;--cyan-soft:#00f0ff2e;--cyan-dim:#00aab5;--error:#ffb4ab;--warning:#e5e2e1;--sidebar-width:360px;--panel-width:380px;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#000;min-width:320px;min-height:100vh;margin:0}button,a,input,textarea{font:inherit;color:inherit}a{text-decoration:none}body:before{content:"";z-index:9999;pointer-events:none;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.app-shell{background:radial-gradient(circle at 52% 18%,#00f0ff0f,#0000 28rem),linear-gradient(#050606 0%,#000 55%);min-height:100vh}.app-header{z-index:40;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000db;grid-template-columns:1fr auto;align-items:center;gap:24px;height:76px;padding:0 24px;display:grid;position:sticky;top:0}.brand{align-items:center;gap:12px;width:max-content;display:inline-flex}.logo-brand img{object-fit:contain;object-position:left center;width:min(360px,44vw);height:52px;display:block}.header-actions{align-items:center;gap:12px;display:inline-flex}.submit-link{min-height:34px;color:var(--cyan);text-transform:uppercase;letter-spacing:.06em;background:0 0;border:1px solid #00f0ff47;place-items:center;padding:0 14px;font-size:12px;font-weight:500;transition:background .18s,border-color .18s,color .18s;display:grid}.submit-link:hover{background:var(--cyan);color:#000;border-color:var(--cyan)}.github-link{justify-self:end;place-items:center;width:40px;height:40px;transition:opacity .18s;display:grid}.github-link:hover{opacity:.7}.github-link svg{width:24px;fill:var(--text)}.app-layout{min-height:calc(100vh - 76px);display:block;position:relative;overflow:hidden}.sidebar{z-index:24;width:var(--sidebar-width);border-right:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1c1ccc;height:calc(100vh - 76px);padding:20px 18px;position:absolute;top:76px;left:0;overflow:auto}.search-box{background:var(--surface-high);border:1px solid var(--line-strong);align-items:center;gap:10px;height:50px;padding:0 12px;display:flex}.search-box:focus-within{border-color:var(--cyan)}.search-box svg{fill:none;width:18px;height:18px;stroke:var(--muted);stroke-width:2px}.search-box input{width:100%;color:var(--text);background:0 0;border:0;outline:0;font-size:13px}.search-box input::placeholder{text-transform:uppercase;letter-spacing:.04em;color:var(--subtle);font-size:12px}.search-box button{color:var(--muted);background:var(--surface-bright);cursor:pointer;text-transform:uppercase;border:1px solid #0000;padding:4px 8px;font-size:12px}.filter-groups{gap:12px;margin:18px 0 26px;display:grid}.chip-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.chip-row:last-child{grid-template-columns:repeat(3,minmax(0,1fr))}.chip{min-height:38px;color:var(--muted);border:1px solid var(--line-strong);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;background:0 0;padding:0 10px;font-size:12px;font-weight:500;transition:background .18s,border-color .18s,color .18s}.chip.active,.chip:hover{color:var(--cyan);border-color:var(--cyan);background:#00f0ff0f}.chip.active{color:var(--cyan);background:#00f0ff1f}.section-title-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.section-title-row h2,.section-title-row h3{color:var(--text);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:16px;font-weight:500}.section-title-row span{color:var(--subtle);font:500 12px/1 var(--font-mono)}.section-title-row.compact{margin:0 0 10px}.event-list{gap:10px;display:grid}.event-card{text-align:left;border:1px solid var(--line-strong);cursor:pointer;background:linear-gradient(145deg,#1e2020e0,#0c0f0fe0);grid-template-columns:84px 1fr;gap:12px;width:100%;padding:8px;transition:border-color .18s,background .18s;display:grid}.event-card:hover,.event-card.selected{border-color:var(--cyan)}.event-card.selected{background:linear-gradient(145deg,#00f0ff14,#121414eb)}.event-card-cover{aspect-ratio:3/4;object-fit:cover;object-position:center top;background:var(--surface-low);width:84px}.event-card-body{gap:6px;min-width:0;display:grid}.event-card-top,.event-card-meta{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.event-card strong{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.event-card small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.event-card-meta{color:var(--cyan);justify-content:space-between}.status-badge{width:max-content;min-height:20px;color:var(--cyan);font:700 11px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.04em;background:#00f0ff14;border:1px solid #00f0ff33;align-items:center;padding:0 7px;display:inline-flex}.status-badge.ended,.status-badge.expired{color:var(--muted);border-color:var(--line);background:#8494950f}.status-badge.pending,.status-badge.draft{color:var(--warning);background:#e5e2e10f;border-color:#e5e2e124}.sidebar-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.sidebar-actions a,.sidebar-actions button,.detail-actions a,.detail-actions button{min-height:40px;color:var(--text);border:1px solid var(--line-strong);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;background:0 0;place-items:center;padding:0 12px;font-size:12px;font-weight:500;transition:background .18s,border-color .18s,color .18s;display:grid}.sidebar-actions a:hover,.sidebar-actions button:hover,.detail-actions a:hover,.detail-actions button:hover{background:var(--cyan);color:#000;border-color:var(--cyan)}.main-map-column{background:#000;min-width:0;position:relative}.map-shell{height:calc(100vh - 76px);min-height:640px;position:sticky;top:76px}.map-canvas{background:radial-gradient(circle at 52% 42%,#00f0ff0f,#0000 34rem),#000;height:100%;position:relative;overflow:hidden}.map-canvas:after{z-index:2;pointer-events:none;content:"";border:1px solid var(--line-strong);position:absolute;inset:0;box-shadow:inset 0 0 80px #00000085}.baidu-map{z-index:0;filter:grayscale(.76)brightness(.76)contrast(1.08);background:#000;position:absolute;inset:0}.baidu-map-shade{z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 44%,#0000 0 50%,#0000001f 78%,#00000047 100%),linear-gradient(#0000000a,#00000024);position:absolute;inset:0}.map-grid{z-index:3;pointer-events:none;background-color:#0000;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:72px 72px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 78%);mask-image:radial-gradient(circle,#000,#0000 78%)}.map-connector-layer{z-index:5;pointer-events:none;position:absolute;inset:0}.map-connector-layer line{stroke:#00f0ff33;stroke-width:.5px;stroke-dasharray:2 4}.baidu-marker-layer{z-index:7;pointer-events:none;position:absolute;inset:0}.baidu-html-marker{pointer-events:auto}.map-marker{z-index:8;cursor:pointer;will-change:transform;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex;position:absolute;top:0;left:0}.marker-dot{min-width:28px;height:28px;color:var(--bg);background:var(--cyan);font:800 11px/1 var(--font-mono);border:1px solid #dbfcff99;border-radius:50%;place-items:center;padding:0 5px;transition:box-shadow .22s,transform .22s;display:grid}.marker-dot.single{background:var(--cyan);border:1px solid #dbfcffb3;width:20px;min-width:20px;height:20px;padding:0 4px;font-size:10px;box-shadow:0 0 0 5px #00f0ff14,0 0 14px #00f0ff47}.map-marker:hover .marker-dot,.map-marker.selected .marker-dot{box-shadow:0 0 8px var(--cyan), 0 0 20px #00f0ff99, 0 0 32px #00f0ff47;transform:scale(1.08)}@keyframes marker-breathe{0%,to{box-shadow:0 0 8px var(--cyan), 0 0 20px #00f0ff99, 0 0 32px #00f0ff47}50%{box-shadow:0 0 4px var(--cyan), 0 0 12px #00f0ff66, 0 0 22px #00f0ff29}}.map-marker.selected .marker-dot{animation:2s ease-in-out infinite marker-breathe}.marker-city{color:var(--text);text-transform:uppercase;letter-spacing:.05em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000085;border:1px solid #ffffff0a;padding:3px 6px;font-size:11px}.map-marker.selected .marker-city{color:var(--cyan);border-color:#00f0ff47}.map-tooltip{z-index:12;border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;will-change:transform;background:#1a1c1ce0;gap:5px;width:max-content;max-width:260px;padding:10px 12px;display:grid;position:absolute;top:0;left:0}.map-tooltip strong{color:var(--text);font-size:13px}.map-tooltip span{color:var(--muted);font-size:11px}.map-toolbar{z-index:14;border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1c1ccc;display:grid;position:absolute;bottom:72px;left:22px}.map-toolbar button{width:42px;height:42px;color:var(--text);border:0;border-bottom:1px solid var(--line);cursor:pointer;font-size:14px;font-family:var(--font-mono);background:0 0;transition:background .18s,color .18s}.map-toolbar button:last-child{border-bottom:0}.map-toolbar button:hover{color:var(--bg);background:var(--cyan)}.map-load-error{z-index:16;width:min(360px,100% - 40px);color:var(--muted);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1c1ce0;gap:8px;padding:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-load-error strong{color:var(--error)}.detail-panel{z-index:28;width:var(--panel-width);border-left:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1c1ccc;height:calc(100vh - 76px);padding:20px;transition:transform .32s cubic-bezier(.34,1.56,.64,1);position:absolute;top:76px;right:0;overflow:auto;transform:translate(calc(100% + 24px))scale(.96)}.detail-panel.open{transform:translate(0)scale(1)}.detail-header,.sheet-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.detail-header button,.sheet-header button{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;font-size:24px;line-height:1;transition:color .18s,border-color .18s}.detail-header button:hover,.sheet-header button:hover{color:var(--cyan);border-color:var(--line-strong)}.detail-panel h2,.mobile-sheet h2{font-family:var(--font-heading);letter-spacing:-.02em;margin:14px 0 6px;font-size:24px;font-weight:700;line-height:1.18}.detail-location{color:var(--muted);margin:0 0 14px;font-size:13px}.detail-cover{aspect-ratio:3/4;object-fit:cover;object-position:center top;background:var(--surface-low);border:1px solid var(--line-strong);width:min(100%,300px);margin:0 auto;display:block}.detail-meta{border:1px solid var(--line);background:#1e202080;gap:0;margin:16px 0;padding:0;display:grid}.detail-meta div{border-bottom:1px solid var(--line);grid-template-columns:92px 1fr;gap:12px;padding:12px;display:grid}.detail-meta div:last-child{border-bottom:0}.detail-meta dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-family:var(--font-mono)}.detail-meta dd{color:var(--text);margin:0;font-size:13px}.detail-section{gap:10px;margin:18px 0;display:grid}.detail-section p,.sheet-description{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.community-card{border:1px solid var(--line-strong);background:linear-gradient(135deg,#1e2020cc,#121414cc);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:8px;padding:10px;display:grid}.community-body{min-width:0}.community-body strong{white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:13px;font-weight:600;display:block;overflow:hidden}.copy-button{min-height:32px;color:var(--cyan);cursor:pointer;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;background:0 0;border:1px solid #00f0ff6b;padding:0 10px;font-size:11px;font-weight:500;transition:background .18s,color .18s,border-color .18s}.copy-button:hover{background:var(--cyan);color:#000;border-color:var(--cyan)}.detail-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.detail-actions .primary-action{color:#000;background:var(--cyan);border-color:var(--cyan);grid-column:1/-1;font-weight:600}.detail-actions .primary-action:hover{color:#000;background:#7df4ff;border-color:#7df4ff}.detail-placeholder,.empty-state,.loading-state{min-height:220px;color:var(--muted);text-align:center;border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1c1c99;align-content:center;place-items:center;gap:8px;padding:24px;display:grid}.detail-placeholder strong,.empty-state strong{color:var(--text)}.loading-state{min-height:0;position:absolute;inset:24px}.loading-state.error{color:var(--error)}.site-footer{color:var(--subtle);border-top:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;background:#000000db;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 20px;padding:12px 24px;font-size:11px;display:flex}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--cyan)}@keyframes slide-up-fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.event-card{animation:.34s both slide-up-fade}.event-card:first-child{animation-delay:20ms}.event-card:nth-child(2){animation-delay:50ms}.event-card:nth-child(3){animation-delay:80ms}.event-card:nth-child(4){animation-delay:.11s}.event-card:nth-child(5){animation-delay:.14s}.event-card:nth-child(6){animation-delay:.17s}.event-card:nth-child(7){animation-delay:.2s}.event-card:nth-child(8){animation-delay:.23s}.event-card:nth-child(9){animation-delay:.26s}.event-card:nth-child(10){animation-delay:.29s}.event-card:nth-child(n+11){animation-delay:.32s}@keyframes chip-fade-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.chip{animation:.24s both chip-fade-in}.chip:first-child{animation-delay:20ms}.chip:nth-child(2){animation-delay:60ms}.chip:nth-child(3){animation-delay:.1s}.chip:nth-child(4){animation-delay:.14s}.muted{color:var(--muted)}.mobile-sheet{display:none}@media (width<=1120px){.sidebar{width:320px}.detail-panel{display:block}}@media (width<=760px){.app-header{grid-template-columns:1fr auto;height:58px;padding:0 14px}.brand-mark{width:34px;height:34px;font-size:10px}.logo-brand img{width:48px;height:48px}.brand strong,.brand small,.submit-link{display:none}.github-link{width:34px;height:34px}.app-layout{min-height:calc(100vh - 58px);display:block}.sidebar,.site-footer,.detail-panel{display:none}.main-map-column{height:calc(100vh - 58px)}.map-shell{height:100%;min-height:0;position:relative;top:auto}.map-tooltip,.marker-city{display:none}.map-toolbar{bottom:18px;left:14px}.marker-dot{min-width:24px;height:24px;font-size:11px}.marker-dot.single{width:18px;min-width:18px;height:18px;font-size:10px}.mobile-sheet{z-index:35;border-top:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1c1ce6;max-height:min(78vh,620px);padding:10px 14px 18px;transition:transform .32s cubic-bezier(.34,1.56,.64,1);display:block;position:fixed;bottom:0;left:0;right:0;overflow:auto;transform:translateY(calc(100% + 64px))scale(.96)}.mobile-sheet.open{transform:translateY(0)scale(1)}.sheet-handle{background:var(--line-strong);width:42px;height:3px;margin:0 auto 10px}.mobile-sheet h2{font-size:22px}.detail-meta.mobile div{grid-template-columns:76px 1fr;padding:10px}.sheet-actions{grid-template-columns:1fr}}
