:root{--bg-primary: #050a14;--bg-panel: rgba(5, 15, 35, .75);--border-color: rgba(0, 140, 255, .3);--border-glow: rgba(0, 200, 255, .5);--text-primary: #e0f0ff;--text-secondary: #7eb8da;--text-dim: #3a6080;--accent-cyan: #00ffcc;--accent-blue: #0088ff;--accent-purple: #6644ff;--glow-cyan: 0 0 10px rgba(0, 255, 200, .4);--glow-blue: 0 0 15px rgba(0, 136, 255, .3);--font-mono: "Consolas", "Monaco", "Courier New", monospace;--font-display: "Segoe UI", "Helvetica Neue", Arial, sans-serif;--wheel-u: 1px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;height:100dvh;overflow:hidden;background:var(--bg-primary);font-family:var(--font-mono);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root,.app{width:100%;height:100%;position:relative}#canvas-container{position:absolute;inset:0;z-index:0}#canvas-container canvas{display:block}.meteor-shower-canvas{position:absolute;inset:0;z-index:1;pointer-events:none;display:block}.header{position:absolute;top:0;left:0;right:0;z-index:10;padding:28px 40px 20px;pointer-events:none}.header-line{width:60px;height:1px;background:linear-gradient(90deg,var(--accent-cyan),transparent);margin-bottom:14px;box-shadow:0 0 6px #00ffc880}.header-title{font-family:var(--font-display);font-size:2rem;font-weight:300;letter-spacing:.08em;text-transform:uppercase}.header-title--dim{color:var(--text-dim);font-weight:200}.header-title--bright{color:var(--accent-cyan);text-shadow:0 0 20px rgba(0,255,200,.5),0 0 40px rgba(0,255,200,.2);font-weight:600}.header-subtitle{margin-top:6px;font-size:.7rem;letter-spacing:.25em;color:var(--text-secondary);opacity:.7}.panel{position:absolute;bottom:40px;z-index:10;min-width:220px;max-width:280px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:2px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:hidden;box-shadow:0 0 20px #0050c81a,inset 0 0 30px #0050c808}.panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-blue),transparent);opacity:.6}.panel-left{left:40px}.panel-right{right:40px}.panel-header{padding:12px 18px 8px;font-size:.65rem;font-weight:600;letter-spacing:.2em;color:var(--text-secondary);display:flex;align-items:center;gap:8px;text-transform:uppercase;border-bottom:1px solid rgba(0,140,255,.15)}.panel-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-blue);box-shadow:0 0 6px var(--accent-blue),0 0 12px var(--accent-blue);animation:dotPulse 2s ease-in-out infinite}.panel-dot--cyan{background:var(--accent-cyan);box-shadow:0 0 6px var(--accent-cyan),0 0 12px var(--accent-cyan)}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.3}}.panel-body{padding:10px 18px 16px}.data-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:.7rem;border-bottom:1px solid rgba(0,140,255,.08)}.data-row:last-child{border-bottom:none}.data-label{color:var(--text-dim);letter-spacing:.1em;font-size:.6rem}.data-value{color:var(--accent-cyan);font-weight:600;letter-spacing:.05em;text-shadow:0 0 6px rgba(0,255,200,.3)}.status-online{color:#0f8;text-shadow:0 0 8px rgba(0,255,136,.5)}.corner-tag{position:absolute;z-index:10;font-size:.6rem;letter-spacing:.2em;color:var(--text-secondary);opacity:.6;text-transform:uppercase;pointer-events:none}.corner-tag--tr{top:32px;right:40px}.corner-tag--tl{top:32px;left:40px}.corner-tag--tl{font-size:1.3rem;letter-spacing:.35em;color:var(--accent-cyan);opacity:1;font-family:var(--font-display);font-weight:600;text-shadow:0 0 18px rgba(0,255,200,.55),0 0 40px rgba(0,255,200,.25)}.corner-tag--tl .tag-icon{display:inline-block;font-size:.9rem;width:1.2em;margin-right:8px;vertical-align:baseline}.corner-tag--tl .corner-tag__brand{line-height:1}.corner-tag--tl .corner-tag__sub{margin-top:6px;margin-left:1.58rem;font-size:.6rem;letter-spacing:.28em;color:var(--text-dim);opacity:.9;font-weight:400;text-shadow:none;font-family:var(--font-body, var(--font-display))}.tag-bracket{color:var(--text-dim);margin:0 2px}.tag-icon{display:inline-block;margin-right:6px;color:var(--accent-cyan);font-size:.5rem}.scan-line{position:absolute;bottom:0;left:0;right:0;height:2px;z-index:10;background:linear-gradient(90deg,transparent 0%,var(--accent-cyan) 10%,var(--accent-cyan) 20%,transparent 30%,transparent 70%,var(--accent-cyan) 80%,var(--accent-cyan) 90%,transparent 100%);opacity:.4;animation:scanSweep 4s linear infinite;pointer-events:none}@keyframes scanSweep{0%{opacity:.2}50%{opacity:.6}to{opacity:.2}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#008cff4d;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#00c8ff80}@media(max-width:768px){.header{padding:16px 20px 12px}.header-title{font-size:1.3rem}.panel{min-width:160px;max-width:200px}.panel-left{left:16px;bottom:20px}.panel-right{right:16px;bottom:20px}.corner-tag{font-size:.5rem}.corner-tag--tr{right:16px;top:20px}.corner-tag--tl{left:16px;top:20px}}.breadcrumb-bar{position:absolute;top:78px;left:40px;z-index:20;display:flex;align-items:center;padding:6px 16px;background:#050f23d1;border:1px solid var(--border-color);border-radius:2px;backdrop-filter:blur(8px);font-size:.65rem;font-family:var(--font-mono);letter-spacing:.05em;max-width:calc(100vw - 32px);overflow-x:auto;-webkit-overflow-scrolling:touch}.breadcrumb-item{color:var(--text-dim);white-space:nowrap}.breadcrumb-link{color:var(--text-secondary);cursor:pointer}.breadcrumb-link:hover{color:var(--accent-cyan)}.breadcrumb-active{color:var(--accent-cyan);text-shadow:0 0 6px rgba(0,255,200,.3);font-weight:600}.breadcrumb-sep{color:var(--text-dim);opacity:.4;margin:0 4px}.breadcrumb-back-btn{margin-left:12px;background:#008cff26;border:1px solid rgba(0,140,255,.3);color:var(--accent-cyan);font-size:.6rem;font-family:var(--font-mono);padding:3px 10px;border-radius:2px;cursor:pointer}.breadcrumb-back-btn:hover{background:#00c8ff40}.admin-back-btn{background:#008cff26;border:1px solid rgba(0,140,255,.3);color:var(--accent-cyan);font-size:.55rem;font-family:var(--font-mono);padding:2px 8px;border-radius:2px;cursor:pointer}.city-popup{position:fixed;z-index:100;min-width:240px;max-width:min(320px,calc(100vw - 24px));background:#05122deb;border:1px solid var(--border-color);border-radius:3px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 0 30px #0050c833,0 0 10px #00ffc81a,inset 0 0 30px #0050c80a;animation:popupIn .25s ease-out;overflow:hidden;pointer-events:auto}@keyframes popupIn{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.city-popup:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);opacity:.7}.city-popup-header{display:flex;align-items:center;gap:8px;padding:12px 14px 8px;border-bottom:1px solid rgba(0,140,255,.15)}.city-popup-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan),0 0 16px var(--accent-cyan);animation:dotPulse 1.5s ease-in-out infinite}.city-popup-title{font-size:.85rem;font-weight:600;color:var(--text-primary);letter-spacing:.05em;flex:1}.city-popup-code{font-size:.65rem;color:var(--accent-cyan);font-weight:700;text-shadow:0 0 6px rgba(0,255,200,.4)}.city-popup-close{background:none;border:none;color:var(--text-dim);font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1;transition:color .2s;font-family:var(--font-mono)}.city-popup-close:hover{color:var(--accent-cyan)}.city-popup-body{padding:10px 14px}.city-popup-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:.68rem;border-bottom:1px solid rgba(0,140,255,.06)}.city-popup-row:last-child{border-bottom:none}.city-popup-label{color:var(--text-dim);font-size:.58rem;letter-spacing:.1em;min-width:60px}.city-popup-value{color:var(--accent-cyan);font-weight:600;text-shadow:0 0 6px rgba(0,255,200,.3)}.traffic-bar-wrap{display:flex;align-items:center;gap:8px;flex:1;max-width:120px}.traffic-bar{height:4px;background:linear-gradient(90deg,var(--accent-cyan),#00ff88);border-radius:2px;min-width:20px;transition:width .4s ease;box-shadow:0 0 6px #00ffc866}.traffic-value{font-size:.65rem;color:var(--text-secondary);white-space:nowrap}.city-popup-footer{display:flex;align-items:center;gap:8px;padding:8px 14px;border-top:1px solid rgba(0,140,255,.1);font-size:.55rem;letter-spacing:.15em;color:var(--text-dim)}.city-popup-pulse{width:5px;height:5px;border-radius:50%;background:#0f8;animation:dotPulse 1s ease-in-out infinite}.city-popup-row--map{margin-top:6px;border-bottom:none;justify-content:flex-start}.city-popup-map-btn{background:#0088ff1f;border:1px solid var(--border-color);color:var(--accent-cyan);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;padding:6px 12px;border-radius:2px;cursor:pointer;transition:all .2s;text-shadow:0 0 6px rgba(0,255,200,.4)}.city-popup-map-btn:hover{background:#00ffc826;border-color:var(--accent-cyan);box-shadow:0 0 12px #00ffc84d}@media(max-width:768px){.header{padding:16px 20px 12px}.header-title{font-size:1.3rem}.panel{min-width:160px;max-width:200px}.panel-left{left:16px;bottom:20px}.panel-right{right:16px;bottom:20px}.corner-tag{font-size:.5rem}.corner-tag--tr{right:16px;top:20px}.corner-tag--tl{left:16px;top:20px;font-size:1rem}.breadcrumb-bar{left:16px;top:58px;max-width:calc(100vw - 32px)}.city-popup{min-width:200px}}@media(max-width:480px){.panel{min-width:120px;max-width:150px}.panel-body{padding:6px 10px 12px}.data-row{font-size:.6rem}.data-label{font-size:.5rem}.city-popup{min-width:180px;max-width:220px}}@media(max-width:480px){.map2d-topbar{gap:8px;padding:10px 12px}.map2d-title-text{font-size:.9rem}.map2d-title-sub{display:none}.map2d-toolbar{justify-content:flex-start;gap:6px}.map2d-layer-btn{padding:6px 8px;font-size:.6rem;letter-spacing:.04em}.map2d-search-input{width:90px;padding:6px 8px}.map2d-search-btn{padding:6px 10px}.map2d-btn--reset{padding:6px 10px;font-size:.6rem}}.map2d-entry-btn{position:absolute;top:20px;right:40px;pointer-events:auto;background:#0088ff1f;border:1px solid var(--border-color);color:var(--accent-cyan);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;padding:8px 18px;border-radius:2px;cursor:pointer;transition:all .2s;text-shadow:0 0 6px rgba(0,255,200,.4);box-shadow:0 0 12px #0078dc33}.map2d-entry-btn:hover{background:#00ffc824;border-color:var(--accent-cyan);box-shadow:0 0 18px #00ffc859}.bgm-enable-tip{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:400;pointer-events:auto;background:#0088ff2e;border:1px solid var(--accent-cyan);color:var(--accent-cyan);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;padding:10px 22px;border-radius:24px;cursor:pointer;transition:all .2s;text-shadow:0 0 6px rgba(0,255,200,.5);box-shadow:0 0 16px #00ffc84d;animation:bgm-tip-in .4s ease}.bgm-enable-tip:hover{background:#00ffc82e;border-color:#fff;box-shadow:0 0 22px #00ffc880}@keyframes bgm-tip-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.map2d-view{position:fixed;inset:0;z-index:300;background:var(--bg-primary);font-family:var(--font-mono);overflow:hidden}.map2d-canvas{position:absolute;inset:0}.map2d-canvas canvas{display:block}.map2d-topbar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:16px;padding:14px 20px;background:linear-gradient(180deg,#050a14eb,#050a1400);pointer-events:none}.map2d-topbar>*{pointer-events:auto}.map2d-title{display:flex;align-items:baseline;gap:10px}.map2d-title-icon{color:var(--accent-cyan);font-size:1.1rem;text-shadow:0 0 8px rgba(0,255,200,.6)}.map2d-title-text{font-family:var(--font-display);font-size:1.15rem;font-weight:600;letter-spacing:.06em;color:var(--text-primary)}.map2d-title-sub{font-size:.6rem;letter-spacing:.2em;color:var(--text-dim)}.map2d-toolbar{margin-left:auto;display:flex;align-items:center;gap:10px}.map2d-layer-group{display:flex;border:1px solid var(--border-color);border-radius:2px;overflow:hidden}.map2d-layer-btn{background:#050f23b3;border:none;color:var(--text-secondary);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;padding:7px 12px;cursor:pointer;transition:all .18s;border-right:1px solid rgba(0,140,255,.15)}.map2d-layer-btn:last-child{border-right:none}.map2d-layer-btn:hover{color:var(--text-primary);background:#008cff26}.map2d-layer-btn.is-on{color:var(--accent-cyan);background:#00ffc81a;text-shadow:0 0 6px rgba(0,255,200,.4)}.map2d-search{display:flex;align-items:center;gap:6px;position:relative}.map2d-search-input{background:#050f23cc;border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-mono);font-size:.68rem;padding:7px 10px;border-radius:2px;outline:none;width:160px;transition:all .2s}.map2d-search-input:focus{border-color:var(--accent-cyan);box-shadow:0 0 10px #00ffc840}.map2d-search-input::placeholder{color:var(--text-dim)}.map2d-search-btn{background:#0088ff26;border:1px solid var(--border-color);color:var(--accent-cyan);font-family:var(--font-mono);font-size:.66rem;padding:7px 12px;border-radius:2px;cursor:pointer;transition:all .18s}.map2d-search-btn:hover{background:#00ffc826;border-color:var(--accent-cyan)}.map2d-search-hint{position:absolute;right:56px;top:50%;transform:translateY(-50%);color:#ff6b6b;font-size:.6rem;pointer-events:none}.map2d-btn{background:#0088ff1f;border:1px solid var(--border-color);color:var(--accent-cyan);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;padding:7px 14px;border-radius:2px;cursor:pointer;transition:all .18s}.map2d-btn:hover{background:#00ffc824;border-color:var(--accent-cyan);box-shadow:0 0 12px #00ffc84d}.map2d-btn--back{font-size:.7rem;padding:7px 16px}.map2d-btn--reset{color:var(--text-secondary)}.map2d-info{position:absolute;right:20px;bottom:64px;z-index:10;min-width:220px;background:#05122de6;border:1px solid var(--border-color);border-radius:3px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 26px #0050c840,0 0 10px #00ffc81a;overflow:hidden;animation:popupIn .22s ease-out}.map2d-info:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);opacity:.8}.map2d-info-header{display:flex;align-items:center;gap:8px;padding:12px 14px 9px;border-bottom:1px solid rgba(0,140,255,.15)}.map2d-info-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan),0 0 16px var(--accent-cyan);animation:dotPulse 1.5s ease-in-out infinite;flex-shrink:0}.map2d-info-name{font-size:.85rem;font-weight:600;color:var(--text-primary);letter-spacing:.04em;flex:1}.map2d-info-close{background:none;border:none;color:var(--text-dim);font-size:1.2rem;cursor:pointer;line-height:1;padding:0 4px;font-family:var(--font-mono)}.map2d-info-close:hover{color:var(--accent-cyan)}.map2d-info-body{padding:9px 14px 13px}.map2d-info-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.66rem;border-bottom:1px solid rgba(0,140,255,.06)}.map2d-info-row:last-child{border-bottom:none}.map2d-info-label{color:var(--text-dim);font-size:.56rem;letter-spacing:.1em}.map2d-info-value{color:var(--accent-cyan);font-weight:600;text-shadow:0 0 6px rgba(0,255,200,.3)}.map2d-content{position:absolute;right:20px;top:76px;z-index:11;width:min(500px,calc(100vw - 40px));max-height:calc(100vh - 160px);display:flex;flex-direction:column;background:#05122de8;border:1px solid var(--border-color);border-radius:4px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 26px #0050c840,0 0 12px #ff3b3b33;overflow:hidden;animation:popupIn .22s ease-out}.map2d-content:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#ff3b3b,transparent);opacity:.8}.map2d-content-header{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;border-bottom:1px solid rgba(0,140,255,.15);flex-shrink:0}.map2d-content-flag{font-size:.9rem;flex-shrink:0}.map2d-content-name{font-size:.85rem;font-weight:600;color:var(--text-primary);letter-spacing:.04em;flex:1}.map2d-content-count{font-size:.6rem;color:var(--text-secondary);flex-shrink:0}.map2d-content-body{padding:10px 14px 14px;overflow-y:auto}.map2d-content-item{padding:10px 0;border-bottom:1px solid rgba(0,140,255,.1)}.map2d-content-item:last-child{border-bottom:none}.map2d-content-item-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.map2d-content-cat{flex-shrink:0;font-size:.58rem;color:var(--accent-cyan);padding:2px 7px;border:1px solid rgba(0,255,204,.3);border-radius:3px;letter-spacing:.05em}.map2d-content-title{font-size:.8rem;font-weight:600;color:var(--text-primary);letter-spacing:.03em}.map2d-content-summary{font-size:.66rem;color:var(--text-secondary);margin-bottom:6px;line-height:1.6}.map2d-content-text{font-size:.68rem;color:var(--text-primary);line-height:1.7;white-space:pre-wrap;word-break:break-word}.map2d-content-cover{display:block;margin-top:8px;max-width:100%;border-radius:3px;border:1px solid rgba(0,140,255,.2)}.map2d-content-blocks{margin-top:4px}.map2d-content-figure{margin:8px 0}.map2d-content-figure img{display:block;max-width:100%;border-radius:3px;border:1px solid rgba(0,140,255,.2)}.map2d-content-figure figcaption{margin-top:4px;font-size:.6rem;color:var(--text-secondary);text-align:center}.map2d-content-figure video{display:block;width:100%;border-radius:3px;border:1px solid rgba(0,140,255,.2);background:#000}.map2d-weather{margin:12px 14px 0;padding:12px 14px;background:#0088ff14;border:1px solid rgba(0,140,255,.25);border-radius:8px}.map2d-weather-main{display:flex;align-items:center;gap:8px}.map2d-weather-icon{font-size:1.5rem}.map2d-weather-temp{font-size:1.35rem;font-weight:600;color:var(--text-primary)}.map2d-weather-text{font-size:.78rem;color:var(--text-secondary)}.map2d-weather-meta{display:flex;gap:14px;margin-top:6px;font-size:.62rem;color:var(--text-secondary)}.map2d-dressing{margin-top:6px;font-size:.68rem;color:var(--accent-cyan);letter-spacing:.02em}.map2d-content-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;overflow-y:auto}@media(max-width:640px){.map2d-content-list{grid-template-columns:1fr}}.map2d-card{display:flex;flex-direction:column;text-align:left;background:#08162d99;border:1px solid rgba(0,140,255,.2);border-radius:6px;cursor:pointer;overflow:hidden;transition:border-color .18s,box-shadow .18s,transform .18s;padding:0;color:inherit;font-family:inherit}.map2d-card:hover{border-color:var(--accent-cyan);box-shadow:0 0 14px #00ffc833;transform:translateY(-2px)}.map2d-card-media{width:100%;height:110px;background:#00142880;overflow:hidden}.map2d-card-media img{width:100%;height:100%;object-fit:cover;display:block}.map2d-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--text-dim);background:#00142880}.map2d-card-body{padding:9px 11px 11px}.map2d-card-cat{display:inline-block;font-size:.56rem;color:var(--accent-cyan);padding:1px 6px;border:1px solid rgba(0,255,204,.3);border-radius:3px;letter-spacing:.05em;margin-bottom:6px}.map2d-card-title{font-size:.78rem;font-weight:600;color:var(--text-primary);line-height:1.4;letter-spacing:.02em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map2d-card-summary{margin-top:5px;font-size:.62rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map2d-content-pager{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid rgba(0,140,255,.15);flex-shrink:0}.map2d-pager-btn{background:none;border:1px solid rgba(0,140,255,.3);color:var(--text-secondary);font-size:.66rem;padding:5px 12px;border-radius:3px;cursor:pointer;transition:all .18s}.map2d-pager-btn:hover:not(:disabled){color:var(--accent-cyan);border-color:var(--accent-cyan)}.map2d-pager-btn:disabled{opacity:.35;cursor:not-allowed}.map2d-pager-info{font-size:.66rem;color:var(--text-secondary)}.map2d-detail{position:absolute;right:20px;top:76px;z-index:12;width:min(400px,calc(100vw - 40px));max-height:calc(100vh - 160px);display:flex;flex-direction:column;background:#05122de8;border:1px solid var(--border-color);border-radius:4px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 26px #0050c840;overflow:hidden;animation:popupIn .2s ease-out}.map2d-detail:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);opacity:.8}.map2d-detail-header{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;border-bottom:1px solid rgba(0,140,255,.15);flex-shrink:0}.map2d-detail-title{font-size:.85rem;font-weight:600;color:var(--text-primary);letter-spacing:.03em;flex:1}.map2d-detail-body{padding:12px 14px 16px;overflow-y:auto}.map2d-detail-summary{font-size:.68rem;color:var(--text-secondary);line-height:1.6;margin-bottom:10px;padding:8px 10px;background:#0088ff14;border-left:2px solid var(--accent-cyan);border-radius:2px}.map2d-media-placeholder{display:flex;align-items:center;justify-content:center;min-height:90px;padding:16px;margin:8px 0;font-size:.7rem;color:var(--text-dim);background:#00142880;border:1px dashed rgba(0,140,255,.3);border-radius:4px}.map2d-statusbar{position:absolute;left:20px;bottom:20px;z-index:10;display:flex;gap:18px;padding:8px 16px;background:#050f23b3;border:1px solid rgba(0,140,255,.18);border-radius:2px;backdrop-filter:blur(8px);pointer-events:none}.map2d-status-item{display:flex;flex-direction:column;gap:2px}.map2d-status-label{font-size:.5rem;letter-spacing:.12em;color:var(--text-dim)}.map2d-status-value{font-size:.64rem;color:var(--accent-cyan);font-weight:600;text-shadow:0 0 5px rgba(0,255,200,.3)}.map2d-legend{position:absolute;left:20px;top:64px;z-index:10;display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:#050f23b3;border:1px solid rgba(0,140,255,.18);border-radius:2px;backdrop-filter:blur(8px);pointer-events:none}.map2d-legend-item{display:flex;align-items:center;gap:8px;font-size:.58rem;color:var(--text-secondary);letter-spacing:.06em}.map2d-legend-swatch{width:14px;height:4px;border-radius:1px}.map2d-legend-swatch--province{background:#00d2ffe6;box-shadow:0 0 6px #00b4ff99}.map2d-legend-swatch--city{background:#00a5ff99;box-shadow:0 0 6px #00a5ff66}.map2d-legend-swatch--district{background:#008cff66;box-shadow:0 0 5px #008cff4d}.map2d-legend-swatch--nine{background:repeating-linear-gradient(90deg,var(--accent-cyan) 0 4px,transparent 4px 7px);box-shadow:0 0 6px #00ffc880}.map2d-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#050a1499}.map2d-spinner{width:34px;height:34px;border:2px solid rgba(0,140,255,.2);border-top-color:var(--accent-cyan);border-radius:50%;animation:map2dSpin .9s linear infinite}@keyframes map2dSpin{to{transform:rotate(360deg)}}.map2d-overlay-text{font-size:.7rem;letter-spacing:.1em;color:var(--text-secondary)}.map2d-overlay--error .map2d-overlay-text{color:#ff6b6b}.map2d-outofrange{position:absolute;top:78px;left:50%;transform:translate(-50%);z-index:12;display:flex;align-items:center;gap:8px;padding:8px 16px;background:#081424e0;border:1px solid rgba(90,184,255,.45);border-radius:2px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 0 18px #5ab8ff2e;pointer-events:none;max-width:min(92vw,560px)}.map2d-outofrange-icon{color:#5ab8ff;font-size:.9rem;line-height:1;flex-shrink:0}.map2d-outofrange-text{font-size:.66rem;letter-spacing:.05em;color:#a8d8ff}@media(max-width:768px){.map2d-entry-btn{right:16px;top:14px}.map2d-topbar{flex-wrap:wrap;gap:10px}.map2d-toolbar{margin-left:0;width:100%;flex-wrap:wrap}.map2d-search-input{width:110px}.map2d-legend{top:auto;bottom:64px}}.header{padding-top:calc(28px + env(safe-area-inset-top,0px))}.panel{bottom:calc(40px + env(safe-area-inset-bottom,0px))}@media(max-width:768px){.panel-left,.panel-right{bottom:calc(20px + env(safe-area-inset-bottom,0px))}}.corner-tag--tl,.corner-tag--tr{top:calc(32px + env(safe-area-inset-top,0px))}.bgm-enable-tip{top:calc(20px + env(safe-area-inset-top,0px))}.wish-entry{position:absolute;bottom:calc(28px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:20}.wish-entry__btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:4px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 24px #0078dc33,0 0 12px #00ffc81a,inset 0 0 30px #0050c80a;cursor:pointer;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;position:relative;overflow:hidden;transition:border-color .2s,box-shadow .2s}.wish-entry__btn:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);opacity:.7}.wish-entry__btn:hover{border-color:var(--accent-cyan);box-shadow:0 0 24px #0078dc4d,0 0 16px #00ffc833,inset 0 0 30px #0050c80a}.wish-entry__chevron{display:flex;align-items:center;color:var(--text-secondary);transition:transform .22s,color .22s}.wish-entry.is-expanded .wish-entry__chevron{transform:rotate(180deg);color:var(--accent-cyan)}.wish-panel{width:min(420px,88vw);background:var(--bg-panel);border:1px solid var(--border-color);border-radius:4px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 24px #0078dc33,0 0 12px #00ffc81a,inset 0 0 30px #0050c80a;overflow:hidden}.wish-panel--popover{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);z-index:20;animation:wishPopIn .22s ease-out}@keyframes wishPopIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.wish-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);opacity:.7}.wish-panel__header{display:flex;align-items:center;gap:8px;padding:10px 14px 8px;border-bottom:1px solid rgba(0,140,255,.15)}.wish-panel__dot{width:7px;height:7px;border-radius:50%;background:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan),0 0 14px var(--accent-cyan);animation:dotPulse 1.8s ease-in-out infinite;flex-shrink:0}.wish-panel__title{font-size:.75rem;font-weight:600;letter-spacing:.2em;color:var(--text-primary);flex:1}.wish-panel__count{font-size:.6rem;letter-spacing:.05em;color:var(--text-secondary)}.wish-panel__count.is-over{color:#ff6b6b;text-shadow:0 0 6px rgba(255,107,107,.5)}.wish-panel__body{padding:10px 14px 12px}.wish-panel__input{width:100%;background:#00142899;border:1px solid var(--border-color);border-radius:3px;color:var(--text-primary);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;padding:10px 12px;outline:none;transition:border-color .2s,box-shadow .2s}.wish-panel__input:focus{border-color:var(--accent-cyan);box-shadow:0 0 12px #00ffc838}.wish-panel__input::placeholder{color:var(--text-dim)}.wish-panel__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.wish-panel__visibility{display:flex;border:1px solid var(--border-color);border-radius:3px;overflow:hidden}.wish-panel__vis-btn{background:#050f2399;border:none;color:var(--text-secondary);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.05em;padding:7px 14px;cursor:pointer;transition:all .18s;border-right:1px solid rgba(0,140,255,.15)}.wish-panel__vis-btn:last-child{border-right:none}.wish-panel__vis-btn:hover{color:var(--text-primary);background:#008cff26}.wish-panel__vis-btn.is-active{color:var(--accent-cyan);background:#00ffc81a;text-shadow:0 0 6px rgba(0,255,200,.4)}.wish-panel__submit{background:#0088ff24;border:1px solid var(--border-color);color:var(--accent-cyan);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;padding:7px 18px;border-radius:3px;cursor:pointer;transition:all .2s;text-shadow:0 0 6px rgba(0,255,200,.4);white-space:nowrap}.wish-panel__submit:hover{background:#00ffc826;border-color:var(--accent-cyan);box-shadow:0 0 14px #00ffc84d}.wish-panel__submit:disabled{opacity:.55;cursor:not-allowed}.wish-panel__error{margin-top:8px;font-size:.6rem;letter-spacing:.05em;color:#ff6b6b;text-shadow:0 0 6px rgba(255,107,107,.4)}.wish-panel__feedback{margin-top:8px;font-size:.6rem;letter-spacing:.05em;color:var(--accent-cyan);text-shadow:0 0 6px rgba(0,255,200,.4)}.wish-tooltip{position:fixed;z-index:120;max-width:min(320px,80vw);background:#0a141eeb;border:1px solid var(--accent-cyan);border-radius:3px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 0 18px #00ffc840,0 0 6px #00ffc833;padding:10px 14px;pointer-events:none;animation:popupIn .16s ease-out}.wish-tooltip:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);opacity:.8}.wish-tooltip__content{font-size:.7rem;line-height:1.6;letter-spacing:.05em;color:var(--text-primary);word-break:break-word;white-space:pre-wrap}@media(max-width:768px){.wish-panel__submit{padding:7px 14px}.wish-panel__vis-btn{padding:7px 10px}.wish-entry__btn{padding:9px 14px}}.spin-entry-btn{position:absolute;left:28px;bottom:calc(28px + env(safe-area-inset-bottom,0px));z-index:30;width:56px;height:56px;transform:translate3d(var(--spin-x, 0px),var(--spin-y, 0px),0);transition:transform .22s cubic-bezier(.22,1,.36,1)}.spin-entry-btn.is-dragging{transition:none;z-index:60}.spin-entry-btn.is-dragging,.spin-entry-btn.is-dragging *{user-select:none;-webkit-user-select:none}.spin-entry-btn__hit{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border-radius:50%;background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-secondary);cursor:grab;touch-action:none;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 18px #0078dc38,inset 0 0 20px #0050c80f;transition:transform .22s cubic-bezier(.34,1.4,.64,1),box-shadow .22s ease,border-color .22s ease,color .22s ease,background .22s ease;-webkit-tap-highlight-color:transparent}.spin-entry-btn__hit:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#05142dd1;box-shadow:0 0 20px #00ffc857,0 0 40px #08f3,inset 0 0 20px #00ffc81a}.spin-entry-btn__hit:active{transform:scale(.95)}.spin-entry-btn__hit:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:3px}.spin-entry-btn.is-dragging .spin-entry-btn__hit{cursor:grabbing;transform:scale(1.06);border-color:var(--accent-cyan);color:var(--accent-cyan);box-shadow:0 0 24px #00ffc873,0 0 46px #0088ff47,inset 0 0 22px #00ffc824}.spin-entry-btn.is-locked .spin-entry-btn__hit{cursor:pointer}.spin-entry-btn__hit:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(0,255,200,.35);opacity:0;animation:spinEntryHalo 2.8s ease-out infinite;pointer-events:none}@keyframes spinEntryHalo{0%{transform:scale(.92);opacity:.55}70%{transform:scale(1.22);opacity:0}to{transform:scale(1.22);opacity:0}}.spin-entry-btn.is-dragging .spin-entry-btn__hit:after{opacity:0;animation:none}.spin-entry-btn__icon{display:flex;align-items:center;justify-content:center;transition:transform .32s cubic-bezier(.34,1.4,.64,1)}.spin-entry-btn__hit:hover .spin-entry-btn__icon{transform:rotate(90deg)}.spin-entry-btn__tip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translate(-6px);padding:6px 11px;border-radius:3px;background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;white-space:nowrap;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 16px #0078dc38;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .24s cubic-bezier(.22,1,.36,1);z-index:2}.spin-entry-btn__tip:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid var(--border-color)}.spin-entry-btn__hit:hover+.spin-entry-btn__tip,.spin-entry-btn__hit:focus-visible+.spin-entry-btn__tip{opacity:1;transform:translateY(-50%) translate(0)}.spin-entry-btn.is-dragging .spin-entry-btn__tip{opacity:0}@media(max-width:768px){.spin-entry-btn{left:18px;bottom:calc(20px + env(safe-area-inset-bottom,0px));width:50px;height:50px}.spin-entry-btn__tip{font-size:.68rem;padding:5px 9px}}@media(max-width:480px){.spin-entry-btn{left:14px;width:46px;height:46px}.spin-entry-btn__icon svg{width:19px;height:19px}.spin-entry-btn__tip{font-size:.64rem}}@media(prefers-reduced-motion:reduce){.spin-entry-btn,.spin-entry-btn__hit,.spin-entry-btn__icon,.spin-entry-btn__tip{transition-duration:.01ms!important}.spin-entry-btn__hit:after{animation:none}.wish-panel--popover{animation:none}.wish-entry__btn,.wish-entry__chevron{transition-duration:.01ms!important}}.wheel-modal{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:20px;background:#030814b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:wheelModalFadeIn .2s ease-out}@keyframes wheelModalFadeIn{0%{opacity:0}to{opacity:1}}.wheel-modal__panel{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(10 * var(--wheel-u));width:min(calc(360 * var(--wheel-u)),calc(100vw - 40px));max-height:calc(100svh - 40px);overflow-y:auto;padding:calc(14 * var(--wheel-u)) calc(16 * var(--wheel-u)) calc(16 * var(--wheel-u));background:var(--bg-panel);border:1px solid var(--border-color);border-radius:calc(5 * var(--wheel-u));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 0 40px #0078dc47,0 0 20px #00ffc824,inset 0 0 40px #0050c80d;animation:wheelModalZoomIn .26s cubic-bezier(.22,1,.36,1)}@keyframes wheelModalZoomIn{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.wheel-modal__panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;border-radius:calc(5 * var(--wheel-u)) calc(5 * var(--wheel-u)) 0 0;background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);opacity:.8}.wheel-modal__head{position:relative;display:flex;align-items:center;justify-content:center;width:100%;padding-bottom:calc(8 * var(--wheel-u));border-bottom:1px solid rgba(0,140,255,.14)}.wheel-modal__title{font-family:var(--font-display);font-size:.84rem;letter-spacing:.18em;color:var(--text-primary);text-shadow:0 0 12px rgba(0,255,200,.35)}.wheel-modal__close{position:absolute;right:calc(-4 * var(--wheel-u));top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:calc(26 * var(--wheel-u));height:calc(26 * var(--wheel-u));border-radius:50%;background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;padding:0;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease;-webkit-tap-highlight-color:transparent}.wheel-modal__close:hover{color:var(--accent-cyan);border-color:var(--border-color);background:#00ffc81a;transform:translateY(-50%) rotate(90deg)}.wheel-modal__close:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}.wheel-modal__wheel{position:relative;width:calc(286 * var(--wheel-u));height:calc(286 * var(--wheel-u));max-width:100%;border-radius:50%;cursor:pointer;outline:none;user-select:none;-webkit-tap-highlight-color:transparent}.wheel-modal.is-spinning .wheel-modal__wheel{cursor:wait}.wheel-modal.is-empty .wheel-modal__wheel{cursor:not-allowed}.wheel-modal__wheel:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:6px}.wheel-modal__rotor{position:absolute;inset:0;border-radius:50%;transform-origin:50% 50%;will-change:transform;box-shadow:0 0 26px #00ffc84d,0 0 58px #0088ff38}.wheel-modal__svg{width:100%;height:100%;display:block;border-radius:50%}.wheel-modal__label{pointer-events:none}.wheel-modal__pointer{position:absolute;top:calc(-5 * var(--wheel-u));left:50%;transform:translate(-50%);width:0;height:0;border-left:calc(11 * var(--wheel-u)) solid transparent;border-right:calc(11 * var(--wheel-u)) solid transparent;border-top:calc(18 * var(--wheel-u)) solid var(--accent-cyan);filter:drop-shadow(0 0 7px rgba(0,255,200,.9));z-index:3;pointer-events:none}.wheel-modal__result{min-height:calc(22 * var(--wheel-u));display:flex;align-items:center;justify-content:center;text-align:center}.wheel-modal__result-hint{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;color:var(--text-dim)}.wheel-modal__result-text{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.07em;color:var(--text-secondary)}.wheel-modal__result-name{font-style:normal;font-weight:700;font-size:1rem;margin-left:4px;color:var(--accent-cyan);text-shadow:0 0 12px rgba(0,255,200,.7)}.wheel-modal__actions{display:flex;align-items:center;justify-content:center;gap:calc(10 * var(--wheel-u));width:100%}.wheel-modal__btn{display:flex;align-items:center;justify-content:center;gap:6px;flex:1 1 0;padding:calc(9 * var(--wheel-u)) calc(14 * var(--wheel-u));border-radius:calc(3 * var(--wheel-u));background:#05142db3;border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;cursor:pointer;transition:transform .18s ease,border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease;-webkit-tap-highlight-color:transparent}.wheel-modal__btn:hover:not(:disabled){border-color:var(--accent-cyan);color:var(--accent-cyan);background:#00ffc81a;box-shadow:0 0 14px #00ffc859}.wheel-modal__btn:active:not(:disabled){transform:scale(.96)}.wheel-modal__btn:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}.wheel-modal__btn:disabled{opacity:.42;cursor:not-allowed}.wheel-modal__btn--primary{background:linear-gradient(135deg,#00ffc82e,#0088ff2e);border-color:var(--accent-cyan);color:var(--accent-cyan);box-shadow:0 0 14px #00ffc847,inset 0 0 14px #00ffc81a}.wheel-modal__btn--primary:hover:not(:disabled){background:linear-gradient(135deg,#00ffc847,#0088ff42);box-shadow:0 0 22px #00ffc87a}.wheel-modal__btn-icon{display:flex;align-items:center;justify-content:center}@media(max-width:768px){.wheel-modal{--wheel-u: .9px;padding:16px}}@media(max-width:480px){.wheel-modal{--wheel-u: .78px;padding:12px}.wheel-modal__panel{width:min(calc(360 * var(--wheel-u)),calc(100vw - 24px));max-height:calc(100svh - 24px)}}@media(max-height:560px){.wheel-modal__wheel{width:calc(210 * var(--wheel-u));height:calc(210 * var(--wheel-u))}.wheel-modal__panel{gap:calc(7 * var(--wheel-u));padding:calc(10 * var(--wheel-u)) calc(12 * var(--wheel-u)) calc(12 * var(--wheel-u))}}@media(prefers-reduced-motion:reduce){.wheel-modal,.wheel-modal__panel{animation-duration:.01ms!important}.wheel-modal__close,.wheel-modal__btn{transition-duration:.01ms!important}}.map2d-info,.map2d-statusbar,.map2d-legend{display:none!important}.map2d-content.xhs-panel{background:#fff!important;border:none!important;border-radius:12px!important;box-shadow:0 10px 40px #00000029!important;width:min(500px,calc(100vw - 32px))!important}.map2d-content.xhs-panel:before{display:none!important}.xhs-header{border-bottom:1px solid #f0f0f0!important;background:#fff;padding:14px 16px!important}.xhs-header-title{font-size:.92rem;font-weight:700;color:#333;flex:1}.xhs-header-count{font-size:.72rem;color:#999;flex-shrink:0}.xhs-close{background:none;border:none;font-size:1.4rem;color:#999;cursor:pointer;line-height:1;padding:0 2px}.xhs-weather{display:flex;align-items:center;gap:8px;margin:10px 14px 0;padding:10px 12px;background:#fff5f6;border-radius:10px;font-size:.78rem;color:#333}.xhs-weather-temp{font-weight:700;font-size:.95rem;color:#ff2442}.xhs-weather-text{color:#666;flex:1}.xhs-weather-dressing{color:#ff2442;font-size:.7rem}.xhs-feed{column-count:2;column-gap:8px;padding:12px 14px;max-height:calc(100vh - 260px);overflow-y:auto}.xhs-card{display:inline-block;width:100%;break-inside:avoid;margin-bottom:10px;background:#fff;border:1px solid #f0f0f0;border-radius:10px;cursor:pointer;overflow:hidden;padding:0;text-align:left;color:inherit;font-family:inherit;transition:box-shadow .15s}.xhs-card:hover{box-shadow:0 4px 16px #00000014}.xhs-card-cover{width:100%;aspect-ratio:3/4;background:#f5f5f5;overflow:hidden}.xhs-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.xhs-card-cover-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#ccc}.xhs-card-title{padding:8px 10px 4px;font-size:.8rem;font-weight:600;color:#333;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.xhs-card-footer{display:flex;align-items:center;gap:6px;padding:4px 10px 10px}.xhs-avatar{width:22px;height:22px;border-radius:50%;background:#ff2442;color:#fff;font-size:.68rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.xhs-avatar--lg{width:40px;height:40px;font-size:1rem}.xhs-author{font-size:.66rem;color:#999;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xhs-like{font-size:.66rem;color:#999;flex-shrink:0}.xhs-like.is-on{color:#ff2442}.xhs-detail{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;background:#fff;animation:popupIn .18s ease-out}.xhs-detail-top{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f0f0f0;background:#fff;flex-shrink:0}.xhs-back{background:none;border:none;font-size:1.5rem;color:#333;cursor:pointer;line-height:1;padding:0}.xhs-detail-top-title{font-size:.9rem;font-weight:600;color:#333;flex:1}.xhs-detail-top-more{color:#666}.xhs-detail-scroll{flex:1;overflow-y:auto;padding:16px}.xhs-detail-author{display:flex;align-items:center;gap:10px;margin-bottom:12px}.xhs-detail-author-info{flex:1}.xhs-detail-author-name{font-size:.88rem;font-weight:600;color:#333}.xhs-detail-date{font-size:.68rem;color:#bbb;margin-top:2px}.xhs-follow{background:#ff2442;color:#fff;border:none;border-radius:16px;padding:6px 16px;font-size:.76rem;cursor:pointer}.xhs-detail-title{font-size:1.05rem;font-weight:700;color:#222;line-height:1.5;margin-bottom:10px}.xhs-detail-desc{font-size:.82rem;color:#555;line-height:1.7;margin-bottom:10px}.xhs-detail-text{font-size:.85rem;color:#333;line-height:1.8;margin-bottom:8px;white-space:pre-wrap;word-break:break-word}.xhs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:10px 0;border-radius:8px;overflow:hidden}.xhs-grid img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#f5f5f5}.xhs-grid--one{grid-template-columns:1fr}.xhs-grid--one img{aspect-ratio:16/9}.xhs-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-top:1px solid #f0f0f0;background:#fff;flex-shrink:0}.xhs-bar-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;font-size:.68rem;color:#666;min-width:52px;padding:0}.xhs-heart{font-size:1.3rem;color:#bbb;line-height:1}.xhs-heart.is-on{color:#ff2442}.xhs-star{font-size:1.3rem;color:#bbb;line-height:1}.xhs-star.is-on{color:#ffa940}.xhs-comment{font-size:1.15rem;line-height:1}.xhs-bar-share{margin-left:auto;flex-direction:row;gap:4px;background:#ff2442;color:#fff;border-radius:18px;padding:8px 18px;font-size:.78rem;font-weight:600}@media(max-width:480px){.xhs-feed{column-count:1}}.xhs-card-cover{position:relative}.xhs-live-badge{position:absolute;top:8px;left:8px;background:#ff2442;color:#fff;font-size:.62rem;padding:2px 8px;border-radius:10px;z-index:2;letter-spacing:.02em}.xhs-live-player{width:100%;aspect-ratio:16/9;background:#000;border-radius:8px;margin-bottom:12px;object-fit:contain}
