.tab-bar{position:relative;z-index:100;display:flex;flex-direction:row;align-items:center;justify-content:space-around;height:var(--tab-bar-h);background:#f4f2ecf5;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(42,41,39,.08);padding-bottom:env(safe-area-inset-bottom,0px);flex-shrink:0;order:2}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:none;cursor:pointer;padding:8px 0;position:relative;-webkit-tap-highlight-color:transparent;transition:opacity .2s ease;min-width:0}.tab-btn:active{opacity:.7}.tab-btn.tab-center{flex:1;padding:4px 0}.tab-center-ring{width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(42,41,39,.25);display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .3s ease}.tab-btn.active .tab-center-ring{border-color:var(--ink)}.tab-center-dot{width:28px;height:28px;border-radius:50%;background:#2a29270d;display:flex;align-items:center;justify-content:center;transition:background .3s ease}.tab-btn.active .tab-center-dot{background:#2a29271a}.tab-icon{width:22px;height:22px;transition:color .3s ease}.tab-btn.tab-center .tab-icon{width:20px;height:20px}.tab-label{font-family:var(--font-serif-cn);font-size:10px;font-weight:400;color:var(--ink-light);letter-spacing:.04em;transition:color .3s ease;line-height:1}.tab-btn.active .tab-label{color:var(--ink)}.tab-indicator{position:absolute;top:6px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:var(--ink);opacity:0;transition:opacity .3s ease}.tab-btn.active .tab-indicator{opacity:1}.tab-logo,.tab-footer{display:none}@media (min-width: 768px){.tab-bar{flex-direction:column;width:70px;height:100%;height:100dvh;border-top:none;border-right:1px solid rgba(42,41,39,.08);order:0;align-items:center;justify-content:flex-start;gap:0;padding-top:0;padding-bottom:16px}.tab-logo{display:flex;align-items:center;justify-content:center;width:100%;height:72px;flex-shrink:0;border-bottom:1px solid rgba(42,41,39,.06);margin-bottom:8px}.tab-logo-glyph{font-family:var(--font-serif-en);font-size:28px;font-style:italic;font-weight:300;color:var(--ink);letter-spacing:-.02em;line-height:1;-webkit-user-select:none;user-select:none}.tab-btn{flex:0 0 auto;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:14px 0;position:relative}.tab-indicator{top:50%;left:0;transform:translateY(-50%);width:2px;height:24px;border-radius:0 2px 2px 0;background:var(--ink);opacity:0}.tab-btn.active .tab-indicator{opacity:1}.tab-label{font-size:9px;letter-spacing:.06em}.tab-btn.tab-center{flex:0 0 auto;width:100%;padding:14px 0}.tab-center-ring{width:44px;height:44px}.tab-center-dot{width:30px;height:30px}.tab-btn.tab-center .tab-icon{width:16px;height:16px}.tab-footer{display:flex;align-items:center;justify-content:center;margin-top:auto;padding:12px 0}.tab-footer-text{font-family:var(--font-mono);font-size:8px;color:#2a292740;letter-spacing:.1em;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);-webkit-user-select:none;user-select:none}}.explore-tab{min-height:100%;background:var(--paper);padding-bottom:24px}.explore-header{padding:20px 20px 16px;background:var(--paper);position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(42,41,39,.06)}.explore-header-inner{display:flex;align-items:baseline;gap:10px}.explore-logo{font-family:var(--font-serif-en);font-size:36px;font-weight:300;color:var(--ink);letter-spacing:-.02em;line-height:1;font-style:italic}.explore-subtitle{font-family:var(--font-serif-cn);font-size:14px;font-weight:300;color:var(--ink-light);letter-spacing:.12em}.explore-tagline{font-family:var(--font-mono);font-size:9px;color:var(--ink-light);letter-spacing:.12em;opacity:.6;margin-top:2px}.explore-search-bar{display:none}@media (min-width: 768px){.explore-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px}.explore-header-inner{flex-shrink:0}.explore-search-bar{display:flex;flex:1;justify-content:center;max-width:480px;margin:0 auto}.explore-search-input{width:100%;padding:9px 16px;background:var(--paper);border:1px solid rgba(42,41,39,.18);border-radius:var(--radius-xl);color:var(--ink);font-family:var(--font-serif-cn);font-size:13px;letter-spacing:.04em;outline:none;transition:border-color .25s ease,box-shadow .25s ease}.explore-search-input::placeholder{color:#2a292752;font-family:var(--font-serif-cn)}.explore-search-input:focus{border-color:#2a292766;box-shadow:0 2px 12px #2a29270f}.explore-tagline{display:none}}.explore-grid{columns:2;column-gap:12px;padding:12px 16px 0}.explore-grid>div{break-inside:avoid;margin-bottom:12px}@media (min-width: 768px){.explore-grid{columns:3;column-gap:16px;padding:16px 24px 0}.explore-grid>div{margin-bottom:16px}}@media (min-width: 1024px){.explore-grid{columns:4;column-gap:18px}}@media (min-width: 1400px){.explore-grid{columns:5;column-gap:20px;padding:20px 32px 0}.explore-grid>div{margin-bottom:20px}}@media (min-width: 1800px){.explore-grid{columns:6}}.sound-card{background:#fff;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;box-shadow:0 2px 12px #2a29270f;transition:transform .4s var(--ease-water),box-shadow .4s var(--ease-water);-webkit-tap-highlight-color:transparent;position:relative;display:flex;flex-direction:column}.sound-card:active{transform:scale(.97);box-shadow:0 1px 6px #2a29271a}.card-image-wrap{position:relative;overflow:hidden;flex-shrink:0}.card-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease-water)}.sound-card:active .card-img{transform:scale(1.04)}.card-waveform{position:absolute;bottom:8px;left:8px;display:flex;align-items:flex-end;gap:2px;height:20px;background:#00000047;padding:4px 6px;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.waveform-bar{width:2.5px;border-radius:2px;background:#ffffffd9;animation:waveBarAnim var(--bar-dur, .8s) ease-in-out infinite alternate;transform-origin:bottom}@keyframes waveBarAnim{0%{height:var(--bar-min, 4px)}to{height:var(--bar-max, 16px)}}.card-badge{position:absolute;top:8px;right:8px;font-family:var(--font-serif-cn);font-size:9px;font-weight:400;letter-spacing:.06em;padding:3px 7px;border-radius:20px;background:#1b1b4bb8;color:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap}.card-body{padding:10px 10px 8px;display:flex;flex-direction:column;gap:4px;flex:1}.card-title{font-family:var(--font-serif-cn);font-size:12px;font-weight:400;color:var(--ink);line-height:1.45;letter-spacing:.02em}.card-location{font-family:var(--font-mono);font-size:9px;color:var(--ink-light);letter-spacing:.06em;opacity:.75}.card-footer{display:flex;align-items:center;justify-content:space-between;padding:0 10px 10px;margin-top:auto}.card-creator{display:flex;align-items:center;gap:5px}.creator-avatar{width:18px;height:18px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.creator-avatar-letter{font-family:var(--font-serif-en);font-size:9px;color:#ffffffd9;font-style:italic}.creator-name{font-family:var(--font-body);font-size:9px;color:var(--ink-light);opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}.card-stats{display:flex;align-items:center;gap:6px}.card-stat{display:flex;align-items:center;gap:2px;font-family:var(--font-mono);font-size:9px;color:var(--ink-light);opacity:.65}.card-stat svg{width:10px;height:10px;flex-shrink:0}.create-tab{min-height:100%;background:var(--paper);display:flex;flex-direction:column;padding:0 0 env(safe-area-inset-bottom,0px);color:var(--ink)}@media (min-width: 768px){.create-tab{max-width:600px;margin:0 auto;width:100%}}.create-header{display:flex;align-items:center;justify-content:space-between;padding:52px 20px 0}.create-header-left{font-family:var(--font-serif-cn);font-size:22px;font-weight:400;color:var(--ink);letter-spacing:.04em}.create-header-right{font-family:var(--font-serif-en);font-size:15px;font-style:italic;color:var(--ink-light);letter-spacing:.04em}.create-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:20px 0}.create-viz-wrap{position:relative;display:flex;align-items:center;justify-content:center}.create-spin-ring{position:absolute;width:310px;height:310px;border-radius:50%;border:1px dashed rgba(42,41,39,.15);animation:createRingSpin 20s linear infinite;pointer-events:none}.create-spin-ring:before{content:"";position:absolute;top:-3px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:#2a29274d}@keyframes createRingSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.create-tab.recording .create-spin-ring{animation-duration:4s;border-color:#8b3a3a4d}.create-record-btn{position:absolute;width:76px;height:76px;border-radius:50%;background:none;border:2px solid rgba(42,41,39,.25);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .4s var(--ease-water),transform .2s ease;-webkit-tap-highlight-color:transparent}.create-record-btn:active{transform:scale(.92)}.create-record-btn.recording{border-color:#8b3a3aa6}.create-record-inner{width:52px;height:52px;border-radius:50%;background:#2a29270f;display:flex;align-items:center;justify-content:center;transition:background .4s var(--ease-water)}.create-record-btn.recording .create-record-inner{background:#8b3a3a1a}.record-dot{width:16px;height:16px;border-radius:4px;background:var(--ink);transition:border-radius .3s ease,background .3s ease,width .3s ease,height .3s ease}.create-record-btn.recording .record-dot{border-radius:3px;background:#8b3a3a;width:14px;height:14px}@keyframes createPulse{0%{box-shadow:0 0 #8b3a3a40}70%{box-shadow:0 0 0 18px #8b3a3a00}to{box-shadow:0 0 #8b3a3a00}}.create-record-btn.recording{animation:createPulse 1.8s ease-out infinite}.create-modes{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding:0 20px;-webkit-overflow-scrolling:touch}.create-mode-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:20px;border:1px solid rgba(42,41,39,.18);background:#2a29270a;color:var(--ink-light);font-family:var(--font-serif-cn);font-size:11px;cursor:pointer;white-space:nowrap;transition:border-color .25s ease,color .25s ease,background .25s ease;-webkit-tap-highlight-color:transparent;letter-spacing:.04em}.create-mode-btn.active{border-color:var(--ink);color:var(--paper);background:var(--ink)}.mode-emoji{font-size:12px;line-height:1}.create-context{width:100%;padding:0 20px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.create-context-text{font-family:var(--font-serif-cn);font-size:13px;color:var(--ink-light);text-align:center;letter-spacing:.06em}.create-timecode{font-family:var(--font-mono);font-size:22px;color:#2a292773;letter-spacing:.12em}.create-timecode.recording{color:#8b3a3acc}.create-sample-rate{font-family:var(--font-mono);font-size:9px;color:#2a292766;letter-spacing:.14em}.create-text-input{width:100%;background:#2a292708;border:1px solid rgba(42,41,39,.15);border-radius:var(--radius-md);padding:12px 14px;color:var(--ink);font-family:var(--font-serif-cn);font-size:13px;resize:none;outline:none;line-height:1.6;letter-spacing:.04em;transition:border-color .25s ease}.create-text-input::placeholder{color:#2a29274d}.create-text-input:focus{border-color:#2a292766}.create-upload-zone{width:100%;border:1.5px dashed rgba(42,41,39,.2);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:border-color .25s ease,background .25s ease}.create-upload-zone:hover,.create-upload-zone:focus-within{border-color:#2a292766;background:#2a292708}.create-upload-icon{font-size:24px;opacity:.4}.create-upload-text{font-family:var(--font-serif-cn);font-size:12px;color:var(--ink-light);letter-spacing:.06em}.create-random-btn{display:flex;align-items:center;gap:10px;padding:12px 24px;border-radius:var(--radius-lg);border:1px solid rgba(42,41,39,.2);background:#2a29270a;color:var(--ink-light);font-family:var(--font-serif-cn);font-size:13px;cursor:pointer;transition:all .3s ease;letter-spacing:.06em}.create-random-btn:hover{border-color:#2a292780;background:#2a292714;color:var(--ink)}.dice-anim{display:inline-block;font-size:18px;animation:diceSpin 4s linear infinite}@keyframes diceSpin{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}to{transform:rotate(360deg)}}.create-result{width:100%;padding:0 20px;display:flex;flex-direction:column;gap:12px;animation:fadeInUp .4s var(--ease-water) forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.create-result-label{font-family:var(--font-serif-cn);font-size:13px;color:var(--ink-light);text-align:center;letter-spacing:.08em}.create-result-player{display:flex;align-items:center;gap:12px;background:#2a29270a;border:1px solid rgba(42,41,39,.1);border-radius:var(--radius-md);padding:12px 14px}.result-play-btn{width:36px;height:36px;border-radius:50%;background:#2a292714;border:1px solid rgba(42,41,39,.2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .2s ease}.result-play-btn:active{background:#2a292726}.result-info{flex:1;overflow:hidden}.result-title{font-family:var(--font-serif-cn);font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.04em}.result-duration{font-family:var(--font-mono);font-size:9px;color:var(--ink-light);letter-spacing:.1em;margin-top:2px;opacity:.7}.create-share-btn{width:100%;padding:14px;border-radius:var(--radius-md);border:none;background:var(--ink);color:var(--paper);font-family:var(--font-serif-cn);font-size:14px;cursor:pointer;letter-spacing:.08em;transition:opacity .2s ease}.create-share-btn:active{opacity:.82}.create-footer{padding:12px 20px 20px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(42,41,39,.06)}.create-status{font-family:var(--font-mono);font-size:9px;color:#2a292747;letter-spacing:.14em}.create-status-value{color:#2a292780}.create-footer-right{display:flex;align-items:center;gap:10px}.create-generating{font-family:var(--font-mono);font-size:10px;color:#2a292773;letter-spacing:.1em;animation:blink 1s ease infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.discover-tab{height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}.discover-map-container{position:relative;flex:1;overflow:hidden;width:100%}.discover-map{width:100%;height:100%;background:var(--paper)}.discover-overlay-search{position:absolute;top:16px;left:16px;right:16px;z-index:1000}.discover-search-wrap{position:relative;display:flex;align-items:center}.discover-search-icon{position:absolute;left:14px;pointer-events:none;opacity:.4;flex-shrink:0;z-index:1}.discover-search-input{width:100%;padding:12px 14px 12px 40px;background:#f4f2ecf0;border:1px solid rgba(42,41,39,.15);border-radius:var(--radius-lg);color:var(--ink);font-family:var(--font-serif-cn);font-size:13px;outline:none;letter-spacing:.04em;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:border-color .25s ease,background .25s ease;box-shadow:0 4px 20px #2a29271a}.discover-search-input::placeholder{color:#2a292759}.discover-search-input:focus{border-color:#2a292766;background:#f4f2ecfa}.discover-overlay-filters{position:absolute;bottom:16px;left:16px;z-index:1000;display:flex;gap:8px;flex-wrap:wrap;max-width:calc(100% - 32px)}.discover-filter-btn{padding:8px 18px;border-radius:20px;border:1px solid rgba(42,41,39,.18);background:#f4f2ece6;color:var(--ink-light);font-family:var(--font-serif-cn);font-size:12px;cursor:pointer;white-space:nowrap;letter-spacing:.04em;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 10px #2a292714;transition:border-color .25s ease,color .25s ease,background .25s ease;-webkit-tap-highlight-color:transparent}.discover-filter-btn.active{border-color:var(--ink);color:var(--paper);background:var(--ink)}.discover-count-badge{position:absolute;top:72px;right:16px;z-index:1000;font-family:var(--font-mono);font-size:10px;color:var(--ink-light);background:#f4f2ece6;border:1px solid rgba(42,41,39,.1);border-radius:12px;padding:5px 10px;letter-spacing:.06em;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.map-marker-dot{width:14px;height:14px;border-radius:50%;background:var(--ink);border:2px solid rgba(244,242,236,.9);box-shadow:0 0 0 3px #2a292726,0 2px 8px #2a292740;cursor:pointer;transition:transform .2s ease}.map-marker-dot:hover{transform:scale(1.3)}.theta-popup .leaflet-popup-content-wrapper{background:#f4f2ecfa;border:1px solid rgba(42,41,39,.1);border-radius:12px;box-shadow:0 8px 32px #2a29272e;padding:0;overflow:hidden;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--ink)}.theta-popup .leaflet-popup-tip{background:#f4f2ecfa}.theta-popup .leaflet-popup-content{margin:0;width:220px!important}.map-popup{display:flex;flex-direction:column;overflow:hidden}.map-popup-img{width:100%;height:110px;object-fit:cover;display:block;flex-shrink:0}.map-popup-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px}.map-popup-badge{display:inline-block;font-family:var(--font-serif-cn);font-size:9px;letter-spacing:.06em;padding:2px 8px;border-radius:10px;background:#2a292712;color:var(--ink-light);border:1px solid rgba(42,41,39,.15);align-self:flex-start}.map-popup-title{font-family:var(--font-serif-cn);font-size:13px;color:var(--ink);line-height:1.4;letter-spacing:.03em;margin:2px 0 0}.map-popup-location{font-family:var(--font-mono);font-size:9px;color:var(--ink-light);letter-spacing:.08em;opacity:.7}.map-popup-play{margin-top:8px;padding:7px 0;width:100%;background:var(--ink);border:none;border-radius:8px;color:var(--paper);font-family:var(--font-serif-cn);font-size:12px;letter-spacing:.06em;cursor:pointer;transition:opacity .2s ease}.map-popup-play:hover{opacity:.85}.map-popup-play:active{opacity:.7}.leaflet-control-zoom{margin-right:16px!important;margin-bottom:80px!important}.soundscape-experience{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000;overflow:hidden;cursor:none;touch-action:pan-x pan-y}.soundscape-experience:hover{cursor:default}.soundscape-experience canvas{display:block;width:100%!important;height:100%!important;position:absolute;top:0;right:0;bottom:0;left:0}.soundscape-experience.phase-entering{opacity:0;animation:sc-fadeIn 1.2s cubic-bezier(.19,1,.22,1) forwards}.soundscape-experience.phase-immersed{opacity:1}.soundscape-experience.phase-exiting{opacity:0;transition:opacity .7s cubic-bezier(.19,1,.22,1)}@keyframes sc-fadeIn{0%{opacity:0}to{opacity:1}}.sc-name{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;pointer-events:none;opacity:0;transition:opacity 1.5s cubic-bezier(.19,1,.22,1)}.sc-name.visible{opacity:1}.sc-name-zh{font-family:"Noto Serif SC",Songti SC,serif;font-size:clamp(28px,6vw,52px);font-weight:300;color:#ffffffeb;letter-spacing:.15em;text-shadow:0 0 60px rgba(0,0,0,.8),0 0 120px rgba(0,0,0,.4)}.sc-name-en{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(12px,2vw,16px);font-weight:300;font-style:italic;color:#ffffff80;letter-spacing:.1em;text-shadow:0 0 40px rgba(0,0,0,.6)}.sc-name-desc{font-family:"Noto Serif SC",serif;font-size:clamp(11px,1.5vw,14px);font-weight:300;color:#ffffff59;max-width:320px;line-height:1.8;letter-spacing:.05em;text-shadow:0 0 30px rgba(0,0,0,.5)}.sc-back{position:absolute;top:max(env(safe-area-inset-top,16px),16px);left:16px;z-index:20;width:44px;height:44px;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#ffffff80;-webkit-tap-highlight-color:transparent;opacity:0;transition:opacity .8s ease,background .2s ease}.sc-back.visible{opacity:1}.sc-back:hover{background:#ffffff1f;color:#fffc}.sc-back:active{transform:scale(.92)}.sc-location{position:absolute;bottom:max(env(safe-area-inset-bottom,24px),24px);left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:8px;pointer-events:none;opacity:0;transition:opacity .8s ease}.sc-location.visible{opacity:1}.sc-location-dot{width:4px;height:4px;border-radius:50%;background:#fff6;animation:sc-breathe 3s ease-in-out infinite}@keyframes sc-breathe{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.sc-location-text{font-family:JetBrains Mono,monospace;font-size:10px;color:#ffffff4d;letter-spacing:.08em}.sc-location-style{font-family:"Noto Serif SC",serif;font-size:9px;color:#fff3;padding:2px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.08);letter-spacing:.06em}@media (max-width: 480px){.sc-name-desc{max-width:260px;padding:0 20px}.sc-back{top:max(env(safe-area-inset-top,12px),12px);left:12px;width:40px;height:40px}}:root{--navy: #1B1B4B;--ice-blue: #3AA8D8;--paper: #F4F2EC;--ink: #2A2927;--ink-light: #5A5855;--purple: #6B3FA0;--dark-bg: #151619;--dark-bg-2: #0e0e14;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 32px;--shadow-cool: 0 4px 24px rgba(58, 168, 216, .08);--shadow-deep: 0 8px 40px rgba(0, 0, 0, .32);--ease-water: cubic-bezier(.19, 1, .22, 1);--duration: .5s;--font-serif-cn: "Noto Serif SC", "Songti SC", "SimSun", serif;--font-serif-en: "Cormorant Garamond", "Georgia", serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--tab-bar-h: 72px}#root{display:flex;justify-content:stretch;align-items:stretch;background:var(--paper);min-height:100%}.app-shell{position:relative;width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}@media (min-width: 768px){.app-shell{flex-direction:row}}.tab-content{flex:1;overflow:hidden;position:relative;min-width:0}.tab-panel{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--duration) var(--ease-water),transform var(--duration) var(--ease-water)}.tab-panel.map-panel{overflow:hidden}.tab-panel.active{opacity:1;transform:translateY(0);pointer-events:all}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono{font-family:var(--font-mono)}.serif-cn{font-family:var(--font-serif-cn)}.serif-en{font-family:var(--font-serif-en)}
