:root{--t-fast: .15s;--t-normal: .25s;--t-slow: .3s;--t-ease-out: cubic-bezier(.22, 1, .36, 1);--t-ease-in-out: cubic-bezier(.4, 0, .2, 1)}.page-leaving{animation:page-out var(--t-slow) var(--t-ease-out) forwards}.page-entering{animation:page-in var(--t-slow) var(--t-ease-out) forwards}@keyframes page-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.drawer-slide{transition:transform var(--t-normal) var(--t-ease-out)}.drawer-slide-left{transform:translate(-100%)}.drawer-slide-left.drawer-open{transform:translate(0)}.drawer-slide-right{transform:translate(100%)}.drawer-slide-right.drawer-open{transform:translate(0)}.drawer-overlay{transition:opacity var(--t-normal) var(--t-ease-out);opacity:0;pointer-events:none}.drawer-open~.drawer-overlay,.drawer-overlay.drawer-open{opacity:1;pointer-events:auto}.modal-animated .modal-backdrop{transition:opacity var(--t-normal) var(--t-ease-out);opacity:0;pointer-events:none}.modal-animated.modal-open .modal-backdrop{opacity:1;pointer-events:auto}.modal-animated .modal-panel{transition:transform var(--t-normal) var(--t-ease-out),opacity var(--t-normal) var(--t-ease-out);transform:scale(.95);opacity:0}.modal-animated.modal-open .modal-panel{transform:scale(1);opacity:1}.nav-link{transition:transform var(--t-fast) var(--t-ease-out),color var(--t-fast) var(--t-ease-out),background var(--t-fast) var(--t-ease-out)}.nav-link:active{transform:scale(.95)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#0f172a;font-family:sans-serif;overscroll-behavior:none;-webkit-overflow-scrolling:auto;-webkit-tap-highlight-color:transparent}#mapContainer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#app-splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;background:#0f172a}.splash-content{display:flex;flex-direction:column;align-items:center;gap:20px}.splash-logo{font-size:64px;animation:splash-pulse 2s ease-in-out infinite}.splash-title{font-size:28px;font-weight:700;color:#fff;margin:0;letter-spacing:4px}.splash-progress-bar{width:260px;height:4px;background:#ffffff1f;border-radius:2px;overflow:hidden}.splash-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:2px;transition:width .4s ease}.splash-status{font-size:13px;color:#ffffff8c;margin:0}@keyframes splash-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}.app-navbar{position:fixed;top:0;left:0;right:0;z-index:5000;display:flex;align-items:center;gap:8px;padding:0 20px;height:56px;background:#0f172ac7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 4px 24px #00000040}.nav-brand{font-size:16px;font-weight:700;color:#fff;letter-spacing:1px;flex-shrink:0;margin-right:16px}.nav-hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;padding:6px;border:none;border-radius:8px;background:#ffffff14;cursor:pointer;flex-shrink:0;transition:background var(--t-fast)}.nav-hamburger:hover{background:#ffffff26}.nav-hamburger-line{display:block;width:20px;height:2px;background:#fff;border-radius:1px;transition:transform var(--t-normal) var(--t-ease-out),opacity var(--t-normal) var(--t-ease-out);transform-origin:center}.nav-hamburger.active .nav-hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-hamburger.active .nav-hamburger-line:nth-child(2){opacity:0}.nav-hamburger.active .nav-hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-links{display:flex;align-items:center;gap:4px;flex:1;justify-content:flex-end}.nav-link{padding:8px 16px;border:none;border-radius:8px;background:transparent;color:#ffffffb3;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--t-fast),color var(--t-fast);white-space:nowrap;letter-spacing:.5px}.nav-link:hover{background:#ffffff14;color:#fff}.nav-link[data-action=hot]:hover{color:#fb923c}.nav-link[data-action=ranking]:hover{color:#facc15}.nav-link[data-action=favorites]:hover{color:#fbbf24}.menu-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:7000;pointer-events:none}.menu-drawer.open{pointer-events:auto}.menu-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;opacity:0;transition:opacity var(--t-normal) var(--t-ease-out)}.menu-drawer.open .menu-drawer-overlay{opacity:1}.menu-drawer-panel{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80vw;background:#0f172af2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid rgba(255,255,255,.08);box-shadow:8px 0 40px #0006;transform:translate(-100%);transition:transform var(--t-normal) var(--t-ease-out);display:flex;flex-direction:column}.menu-drawer.open .menu-drawer-panel{transform:translate(0)}.menu-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.menu-drawer-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:1px}.menu-drawer-close{width:32px;height:32px;border:none;border-radius:50%;background:#ffffff14;color:#fff9;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),color var(--t-fast)}.menu-drawer-close:hover{background:#ffffff2e;color:#fff}.menu-drawer-body{flex:1;overflow-y:auto;padding:12px 0}.menu-drawer-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 24px;border:none;background:transparent;color:#fffc;font-size:15px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--t-fast),color var(--t-fast);text-align:left}.menu-drawer-item:hover{background:#ffffff0f;color:#fff}.menu-item-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0}.menu-drawer-body::-webkit-scrollbar{width:3px}.menu-drawer-body::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}#spot-sidebar{position:fixed;top:0;right:0;width:420px;height:100%;z-index:6000;pointer-events:none}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;opacity:0;transition:opacity var(--t-slow) var(--t-ease-out);pointer-events:none}#spot-sidebar.open .sidebar-overlay{opacity:1;pointer-events:auto}.sidebar-panel{position:absolute;top:0;right:0;width:420px;height:100%;background:#0f172aa6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-left:1px solid rgba(255,255,255,.08);box-shadow:-8px 0 40px #0000004d;transform:translate(100%);transition:transform var(--t-slow) var(--t-ease-out);pointer-events:auto;display:flex;flex-direction:column;overflow:hidden}#spot-sidebar.open .sidebar-panel{transform:translate(0)}.sidebar-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border:2px solid rgba(255,255,255,.2);border-radius:50%;background:#0f172aa6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#ffffffd9;font-size:22px;font-weight:300;cursor:pointer;z-index:20;display:flex;align-items:center;justify-content:center;transition:transform var(--t-normal) var(--t-ease-out),background var(--t-fast),color var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);line-height:1}.sidebar-close:hover{background:#ef444459;border-color:#ef444499;color:#fff;transform:rotate(90deg) scale(1.12);box-shadow:0 0 18px #ef444466,0 0 40px #ef444426}.sidebar-close:active{transform:rotate(90deg) scale(.95)}.sidebar-scroll{flex:1;overflow-y:auto;padding:0 0 32px}.sidebar-scroll::-webkit-scrollbar{width:4px}.sidebar-scroll::-webkit-scrollbar-track{background:transparent}.sidebar-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.sidebar-hero{position:relative;width:100%;height:240px;background:linear-gradient(135deg,#1e293b,#334155);overflow:hidden}.sidebar-hero img{width:100%;height:100%;object-fit:cover}.sidebar-hero .hero-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:64px;color:#ffffff26}.sidebar-hero .hero-title-overlay{position:absolute;bottom:0;left:0;right:0;padding:60px 24px 20px;background:linear-gradient(transparent,#0f172ad9)}.sidebar-hero .hero-title-overlay h2{margin:0;font-size:22px;font-weight:700;color:#fff;letter-spacing:.5px}.sidebar-hero .hero-title-overlay p{margin:6px 0 0;font-size:13px;color:#ffffff8c;line-height:1.5}.sidebar-section-title{margin:24px 24px 12px;font-size:13px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:1.5px}.photo-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin:0 24px 8px}.photo-grid .photo-item{aspect-ratio:1;border-radius:8px;overflow:hidden;background:#ffffff0d;cursor:pointer;transition:transform var(--t-fast)}.photo-grid .photo-item:hover{transform:scale(1.04)}.photo-grid .photo-item img{width:100%;height:100%;object-fit:cover;display:block}.photo-grid .photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:20px;color:#ffffff26}.photo-empty,.comment-empty{margin:0 24px 16px;font-size:13px;color:#ffffff4d;text-align:center;padding:16px 0}.comment-list{margin:0 24px 8px;display:flex;flex-direction:column;gap:10px}.comment-bubble{padding:12px 16px;background:#ffffff12;border:1px solid rgba(255,255,255,.06);border-radius:12px}.comment-bubble .comment-author{font-size:12px;font-weight:600;color:#fff9;margin-bottom:4px}.comment-bubble .comment-text{font-size:14px;color:#ffffffd9;line-height:1.6;word-break:break-word}#add-form{position:fixed;top:80px;left:24px;z-index:1001}.add-form-body{width:270px;padding:22px 20px 18px;background:#ffffff26;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.25);border-radius:16px;box-shadow:0 8px 32px #0000001f;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.add-form-body h3{margin:0 0 14px;font-size:15px;font-weight:600;color:#fffffff2;letter-spacing:.5px}.add-form-body input,.add-form-body textarea{width:100%;padding:10px 13px;margin-bottom:10px;border:1px solid rgba(255,255,255,.2);border-radius:10px;font-size:13px;font-family:inherit;box-sizing:border-box;outline:none;background:#ffffff1f;color:#fffffff2;transition:background var(--t-fast),border-color var(--t-fast)}.add-form-body input::placeholder,.add-form-body textarea::placeholder{color:#ffffff80}.add-form-body input:focus,.add-form-body textarea:focus{border-color:#ffffff80;background:#ffffff2e}#add-submit{width:100%;padding:10px 0;border:none;border-radius:10px;background:#fff3;color:#fffffff2;font-size:14px;font-weight:500;cursor:pointer;transition:background var(--t-fast);letter-spacing:1px}#add-submit:hover{background:#ffffff4d}#add-submit:active{background:#ffffff26}.add-form-status{margin:10px 0 0;font-size:12px;text-align:center;min-height:18px;color:#fffc}.sidebar-comment-form{margin:0 24px 32px}.sidebar-comment-form textarea{width:100%;padding:10px 13px;margin-bottom:10px;border:1px solid rgba(255,255,255,.15);border-radius:10px;font-size:13px;font-family:inherit;box-sizing:border-box;outline:none;background:#ffffff14;color:#ffffffe6;transition:background var(--t-fast),border-color var(--t-fast);resize:vertical}.sidebar-comment-form textarea::placeholder{color:#fff6}.sidebar-comment-form textarea:focus{border-color:#fff6;background:#ffffff1f}.sidebar-comment-form textarea:disabled{opacity:.4;cursor:not-allowed}#comment-submit-btn{width:100%;padding:10px 0;border:none;border-radius:10px;background:#ffffff26;color:#ffffffe6;font-size:14px;font-weight:500;cursor:pointer;transition:background var(--t-fast);letter-spacing:.5px}#comment-submit-btn:hover:not(:disabled){background:#ffffff40}#comment-submit-btn:active:not(:disabled){background:#ffffff1a}#comment-submit-btn:disabled{opacity:.4;cursor:not-allowed}.comment-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.comment-author-name{font-size:13px;font-weight:600;color:#ffffffbf}.comment-time{font-size:11px;color:#ffffff59;margin-left:auto}.comment-delete-btn{margin-left:8px;padding:2px 8px;border:none;border-radius:4px;background:#ff505026;color:#ff7878cc;font-size:11px;cursor:pointer;transition:background .15s}.comment-delete-btn:hover{background:#ff50504d}.auth-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;pointer-events:none;display:flex;align-items:center;justify-content:center}.auth-modal.open{pointer-events:auto}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;opacity:0;transition:opacity var(--t-normal) var(--t-ease-out);pointer-events:none}.auth-modal.open .auth-modal-overlay{opacity:1;pointer-events:auto}.auth-modal-panel{position:relative;width:420px;max-width:90vw;padding:36px 28px 28px;background:#0f172abf;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.12);border-radius:20px;box-shadow:0 20px 60px #0006;opacity:0;transform:translateY(20px) scale(.96);transition:opacity .3s ease,transform .3s cubic-bezier(.1,1,.1,1)}.auth-modal.open .auth-modal-panel{opacity:1;transform:translateY(0) scale(1)}.auth-modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff14;color:#fff9;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),color var(--t-fast)}.auth-modal-close:hover{background:#ffffff2e;color:#fff}.auth-form h2{margin:0 0 4px;font-size:22px;font-weight:700;color:#fff;text-align:center}.auth-form-sub{margin:0 0 20px;font-size:13px;color:#ffffff73;text-align:center}.edit-avatar-section{display:flex;flex-direction:column;align-items:center;margin-bottom:16px}.edit-avatar-label{cursor:pointer;display:block}.edit-avatar-ring{width:96px;height:96px;border-radius:50%;border:2px solid rgba(99,102,241,.6);background:#0f172ae6;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;transition:border-color .2s}.edit-avatar-label:hover .edit-avatar-ring{border-color:#818cf8e6}.edit-avatar-img{width:100%;height:100%;object-fit:cover;display:none}.edit-avatar-ring:before{content:"👤";font-size:42px;opacity:.5;position:absolute;pointer-events:none}.edit-avatar-hover{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--t-fast);color:#fff;font-size:13px;font-weight:500;pointer-events:none}.edit-avatar-label:hover .edit-avatar-hover{opacity:1}.edit-avatar-uploading{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000bf;display:none;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff;font-size:12px}.edit-avatar-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:edit-avatar-spin .7s linear infinite}@keyframes edit-avatar-spin{to{transform:rotate(360deg)}}.edit-avatar-hint{margin:8px 0 0;font-size:12px;color:#fff6;text-align:center}.auth-form input{width:100%;padding:12px 14px;margin-bottom:12px;border:1px solid rgba(255,255,255,.15);border-radius:10px;font-size:14px;font-family:inherit;box-sizing:border-box;outline:none;background:#ffffff14;color:#fffffff2;transition:background var(--t-fast),border-color var(--t-fast)}.auth-form input::placeholder{color:#ffffff59}.auth-form input:focus{border-color:#fff6;background:#ffffff1f}.auth-form button{width:100%;padding:12px 0;margin-top:4px;border:none;border-radius:10px;background:#fff3;color:#fffffff2;font-size:15px;font-weight:500;cursor:pointer;transition:background var(--t-fast);letter-spacing:.5px}.auth-form button:hover{background:#ffffff4d}.auth-form button:active{background:#ffffff26}.auth-form-switch{margin:14px 0 0;font-size:13px;color:#ffffff73;text-align:center}.auth-form-switch span{color:#ffffffbf;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.auth-form-switch span:hover{color:#fff}.auth-form-error{margin:10px 0 0;font-size:12px;color:#ff5050f2;text-align:center;min-height:18px}#auth-user-btn{position:fixed;top:68px;right:24px;z-index:1602;display:flex;align-items:center;gap:8px;padding:8px 16px 8px 10px;background:#ffffff1f;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.18);border-radius:24px;cursor:pointer;transition:background var(--t-fast)}#auth-user-btn:hover{background:#fff3}.auth-user-avatar{width:28px;height:28px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;font-size:14px;color:#ffffffe6;flex-shrink:0;overflow:hidden}.auth-user-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.auth-user-label{font-size:13px;color:#ffffffd9;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.auth-user-menu{position:fixed;top:124px;right:24px;z-index:1603;width:180px;background:#0f172acc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #0000004d;overflow:hidden;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}.auth-user-menu.open{opacity:1;transform:translateY(0);pointer-events:auto}.auth-menu-item{display:flex;align-items:center;gap:10px;padding:13px 18px;font-size:13px;color:#ffffffb8;cursor:pointer;transition:background .18s ease,color .18s ease;-webkit-user-select:none;user-select:none}.auth-menu-item-icon{font-size:15px;width:22px;text-align:center;flex-shrink:0;opacity:.7;transition:opacity .18s ease}.auth-menu-item:hover{background:#ffffff0f;color:#fff}.auth-menu-item:hover .auth-menu-item-icon{opacity:1}.auth-menu-item--danger:hover{background:#ef44441f;color:#fca5a5}.auth-menu-item--danger:hover .auth-menu-item-icon{opacity:1}.auth-menu-item+.auth-menu-item{border-top:1px solid rgba(255,255,255,.06)}.sidebar-actions{display:flex;gap:6px;margin:16px 24px 0;flex-wrap:wrap}.sidebar-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 0;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#ffffff0f;color:#ffffffb3;font-size:13px;font-family:inherit;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.sidebar-action-btn:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff}.sidebar-action-btn.active{background:#ff505026;border-color:#ff505066;color:#ff8080}.sidebar-action-btn:disabled{opacity:.5;cursor:not-allowed}.sidebar-action-btn span:last-child{font-size:11px;color:#fff6;min-width:16px;text-align:center}#edit-profile-modal .auth-form input{margin-bottom:12px}#edit-profile-submit{width:100%;padding:12px 0;margin-top:4px;border:none;border-radius:10px;background:#fff3;color:#fffffff2;font-size:15px;font-weight:500;cursor:pointer;transition:background var(--t-fast);letter-spacing:.5px}#edit-profile-submit:hover{background:#ffffff4d}#edit-profile-submit:active{background:#ffffff26}.profile-center-panel{max-width:500px;padding:0!important;overflow:hidden;background:#0f172ad1!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1)!important;border-radius:20px!important;box-shadow:0 20px 40px #00000080,0 0 0 1px #ffffff0a inset}.profile-center-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;color:#fff6;font-size:14px;gap:16px}.pc-spinner{width:28px;height:28px;border:2px solid rgba(255,255,255,.1);border-top-color:#63b3edcc;border-radius:50%;animation:pc-spin .8s linear infinite}@keyframes pc-spin{to{transform:rotate(360deg)}}.profile-center-body{display:flex;flex-direction:column}.pc-avatar-section{display:flex;flex-direction:column;align-items:center;padding:36px 28px 12px}.pc-avatar-ring{width:88px;height:88px;border-radius:50%;padding:4px;background:linear-gradient(135deg,#7c3aed,#3b82f6,#06b6d4);box-shadow:0 0 24px #6366f140}.pc-avatar-img{width:80px;height:80px;border-radius:50%;object-fit:cover;display:block;background:#0f172ae6;border:2px solid rgba(15,23,42,.6)}.pc-display-name{margin:16px 0 4px;font-size:20px;font-weight:700;color:#fff;text-align:center;letter-spacing:.5px}.pc-bio{margin:0;font-size:13px;color:#fff6;text-align:center;max-width:280px;line-height:1.5}.profile-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 28px 20px}.profile-stat-card{display:flex;flex-direction:column;align-items:center;padding:18px 8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05);border-radius:12px;transition:background .25s ease,border-color .25s ease}.profile-stat-card:hover{background:#ffffff12;border-color:#ffffff1a}.profile-stat-num{font-size:24px;font-weight:700;background:linear-gradient(135deg,#93c5fd,#67e8f9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.profile-stat-label{margin-top:4px;font-size:11px;color:#ffffff59;letter-spacing:.5px;text-transform:uppercase}.pc-footprints{margin:0 28px 6px}.pc-footprints-title{font-size:12px;font-weight:600;color:#ffffff59;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.pc-footprints-list{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.pc-footprints-list::-webkit-scrollbar{width:3px}.pc-footprints-list::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.pc-footprints-empty{padding:12px 0;font-size:12px;color:#fff3;text-align:center}.pc-footprint-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#ffffff08;border:1px solid rgba(255,255,255,.04);border-radius:10px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.pc-footprint-item:hover{background:#ffffff12;border-color:#ffffff1a}.pc-footprint-name{font-size:13px;color:#ffffffbf;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-footprint-arrow{font-size:12px;color:#fff3;flex-shrink:0;margin-left:8px}.pc-actions{display:flex;flex-direction:column;gap:8px;padding:20px 28px 28px}.pc-action-btn{width:100%;padding:12px 0;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0f;color:#fffc;font-size:14px;font-family:inherit;cursor:pointer;transition:all var(--t-normal) var(--t-ease-out)}.pc-action-btn:hover{background:#ffffff1f;border-color:#fff3;color:#fff}.pc-action-btn-logout{width:100%;padding:12px 0;border:1px solid rgba(239,68,68,.4);border-radius:10px;background:transparent;color:#ef4444d9;font-size:14px;font-family:inherit;cursor:pointer;transition:all var(--t-normal) var(--t-ease-out)}.pc-action-btn-logout:hover{background:#ef4444d9;border-color:#ef4444d9;color:#fff;box-shadow:0 0 20px #ef44444d}.pc-action-btn-logout:disabled{opacity:.4;cursor:not-allowed}.spot-pioneer-guide{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3500;display:flex;align-items:center;justify-content:center;animation:pioneerFadeIn .35s ease}@keyframes pioneerFadeIn{0%{opacity:0}to{opacity:1}}.spot-pioneer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.spot-pioneer-panel{position:relative;width:400px;max-width:92vw;padding:0;background:#0f172ae0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;box-shadow:0 20px 50px #0000008c,0 0 0 1px #ffffff0a inset,0 0 40px #3b82f614;overflow:hidden}.spot-pioneer-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff14;color:#fff9;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),color var(--t-fast);z-index:1}.spot-pioneer-close:hover{background:#ffffff2e;color:#fff}.spot-pioneer-hero{text-align:center;padding:40px 28px 20px}.spot-pioneer-icon{font-size:48px;display:block;margin-bottom:12px;filter:drop-shadow(0 0 12px rgba(59,130,246,.3))}.spot-pioneer-hero h2{margin:0 0 8px;font-size:22px;font-weight:700;color:#fff;letter-spacing:.5px}.spot-pioneer-hero p{margin:0;font-size:13px;color:#ffffff80;line-height:1.7}.spot-pioneer-coords{margin-top:12px!important;font-size:12px!important;color:#ffffff4d!important;font-family:SF Mono,Cascadia Code,monospace}.spot-pioneer-form{padding:0 28px 28px}.spot-pioneer-form input,.spot-pioneer-form textarea{width:100%;padding:12px 14px;margin-bottom:10px;border:1px solid rgba(255,255,255,.12);border-radius:10px;font-size:14px;font-family:inherit;box-sizing:border-box;outline:none;background:#ffffff0f;color:#fffffff2;transition:background var(--t-fast),border-color var(--t-fast)}.spot-pioneer-form input::placeholder,.spot-pioneer-form textarea::placeholder{color:#ffffff4d}.spot-pioneer-form input:focus,.spot-pioneer-form textarea:focus{border-color:#63b3ed80;background:#ffffff1a}.spot-pioneer-form textarea{resize:vertical;min-height:60px}.spot-pioneer-btn{width:100%;padding:14px 0;margin-top:6px;border:2px solid transparent;border-radius:12px;background:linear-gradient(#0f172ae6,#0f172ae6) padding-box,linear-gradient(135deg,#3b82f6,#06b6d4,#10b981) border-box;color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;letter-spacing:1px;transition:all var(--t-normal) var(--t-ease-out);animation:pioneerPulse 2.5s ease-in-out infinite}.spot-pioneer-btn:hover{background:linear-gradient(#1e3250f2,#1e3250f2) padding-box,linear-gradient(135deg,#60a5fa,#22d3ee,#34d399) border-box;box-shadow:0 0 20px #3b82f659,0 0 40px #06b6d426;transform:translateY(-1px)}.spot-pioneer-btn:active{transform:translateY(0)}.spot-pioneer-btn:disabled{opacity:.5;cursor:not-allowed;animation:none}@keyframes pioneerPulse{0%,to{box-shadow:0 0 8px #3b82f626,0 0 16px #06b6d414}50%{box-shadow:0 0 16px #3b82f64d,0 0 32px #06b6d42e}}.spot-pioneer-status{margin:12px 0 0;font-size:12px;text-align:center;min-height:18px;color:#fff9}.hero-hot-badge{display:inline-block;padding:3px 12px;margin-top:6px;border-radius:9999px;font-size:11px;font-weight:600;color:#fff;background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 2px 8px #f973164d;letter-spacing:.5px}.hot-ranking-panel{position:fixed;top:50%;right:24px;transform:translateY(-50%);z-index:2001;width:300px;max-height:70vh;background:#0f172ac7;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 20px 60px #0006;display:flex;flex-direction:column;opacity:0;pointer-events:none;transform:translateY(-50%) translate(20px);transition:opacity .3s ease,transform .3s ease}.hot-ranking-panel.open{opacity:1;pointer-events:auto;transform:translateY(-50%) translate(0)}.hot-ranking-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.hot-ranking-title{font-size:14px;font-weight:600;color:#fff;letter-spacing:.5px}.hot-ranking-close{width:28px;height:28px;border:none;border-radius:50%;background:#ffffff14;color:#fff9;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast)}.hot-ranking-close:hover{background:#ffffff2e;color:#fff}.hot-ranking-list{overflow-y:auto;padding:8px 0;flex:1}.hot-ranking-list::-webkit-scrollbar{width:4px}.hot-ranking-list::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.hot-ranking-item{display:flex;align-items:center;gap:12px;padding:10px 20px;transition:background .15s}.hot-ranking-item:hover{background:#ffffff0a}.hot-ranking-index{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#ffffff80;background:#ffffff0f;flex-shrink:0}.hot-ranking-index--top{color:#fff;background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 2px 8px #f973164d}.hot-ranking-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.hot-ranking-name{font-size:13px;font-weight:500;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hot-ranking-city{font-size:11px;color:#ffffff59}.hot-ranking-views{font-size:12px;color:#ffffff73;flex-shrink:0}.hot-ranking-loading,.hot-ranking-empty{padding:24px 20px;text-align:center;font-size:13px;color:#fff6}.spot-list-toggle{position:absolute;right:-56px;top:50%;transform:translateY(-50%);width:56px;height:56px;padding:0;z-index:50;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:#0f172a94;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .3s ease,transform .3s cubic-bezier(.1,1,.1,1);box-shadow:0 4px 24px #0000004d;outline:none;-webkit-user-select:none;user-select:none}.spot-list-toggle-arrow{display:block;color:currentColor;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.spot-list-toggle:hover{background:#0f172ac7;color:#fff;border-color:#ffffff59;box-shadow:0 4px 28px #0006,0 0 22px #63b3ed40;transform:translateY(-50%) scale(1.06)}.spot-list-toggle--open{border-color:#ffffff40;color:#ffffffe0}.spot-list-panel{position:fixed;top:56px;left:-300px;bottom:0;width:300px;max-width:85vw;z-index:1500;background:#0f172ad9;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-right:1px solid rgba(255,255,255,.08);box-shadow:4px 0 40px #0000004d;display:flex;flex-direction:column;transition:left .4s cubic-bezier(.1,1,.1,1)}.spot-list-panel.open{left:0}.spot-list-header{display:flex;align-items:center;gap:8px;padding:20px 20px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.spot-list-title{font-size:15px;font-weight:600;color:#fff;letter-spacing:.5px;flex:1}.spot-list-count{font-size:12px;color:#fff6;background:#ffffff0f;padding:2px 10px;border-radius:9999px}.spot-list-close{width:28px;height:28px;border:none;border-radius:50%;background:#ffffff14;color:#fff9;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast);flex-shrink:0}.spot-list-create-post{padding:6px 14px;background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;border:none;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 10px #ef44444d;transition:all .25s;flex-shrink:0;white-space:nowrap}.spot-list-create-post:hover{transform:translateY(-1px);box-shadow:0 4px 16px #ef444473}.spot-list-create-post:active{transform:scale(.96)}.spot-list-close:hover{background:#ffffff2e;color:#fff}.spot-list-body{flex:1;overflow-y:auto;padding:8px 0}.spot-list-body::-webkit-scrollbar{width:4px}.spot-list-body::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.spot-list-loading,.spot-list-empty{padding:32px 20px;text-align:center;font-size:13px;color:#fff6}.spot-list-item{display:flex;align-items:center;gap:10px;padding:12px 20px;cursor:pointer;transition:background .15s}.spot-list-item:hover{background:#ffffff0d}.spot-list-item-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.spot-list-item-name{font-size:13px;font-weight:500;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spot-list-item-city{font-size:11px;color:#ffffff59}.spot-list-item-badge{flex-shrink:0;padding:2px 10px;border-radius:9999px;font-size:10px;font-weight:600;color:#fff;background:linear-gradient(135deg,#f97316,#ef4444)}.spot-list-light-btn{flex-shrink:0;width:32px;height:32px;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#ffffff0a;color:#ffffff40;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;position:relative;z-index:2}.spot-list-light-btn:hover{background:#ff7b2526;border-color:#ff7b2566;color:#ff9f4b;transform:scale(1.1)}.spot-list-light-btn--active{background:#ff7b2533;border-color:#ff7b2580;color:#ff7b25;text-shadow:0 0 8px rgba(255,123,37,.5)}.spot-list-light-btn--active:hover{background:#ff501e4d;color:#f96}.spot-list-light-btn:disabled{opacity:.4;cursor:wait;transform:none}.spot-search-container{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:1600;width:360px;max-width:calc(100vw - 32px)}.spot-search-input-wrap{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#0f172ab3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);border-radius:14px;box-shadow:0 8px 32px #0000004d;transition:border-color .2s}.spot-search-input-wrap:focus-within{border-color:#ffffff4d}.spot-search-icon{font-size:16px;flex-shrink:0;opacity:.6}.spot-search-input{flex:1;border:none;outline:none;background:transparent;color:#fff;font-size:14px;font-family:inherit;min-width:0}.spot-search-input::placeholder{color:#fff6}.spot-search-clear{width:22px;height:22px;border:none;border-radius:50%;background:#ffffff1f;color:#fff9;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--t-fast);line-height:1}.spot-search-clear:hover{background:#ffffff38}.spot-search-dropdown{margin-top:6px;background:#0f172ad1;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 12px 40px #00000059;max-height:320px;overflow-y:auto;display:none}.spot-search-dropdown.open{display:block}.spot-search-dropdown::-webkit-scrollbar{width:4px}.spot-search-dropdown::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.spot-search-loading,.spot-search-empty{padding:20px 16px;text-align:center;font-size:13px;color:#fff6}.spot-search-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .15s}.spot-search-item:hover,.spot-search-item--first{background:#ffffff0f}.spot-search-item-icon{font-size:14px;flex-shrink:0;opacity:.6}.spot-search-item-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.spot-search-item-name{font-size:13px;font-weight:500;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spot-search-item-city{font-size:11px;color:#ffffff59}.spot-search-item-badge{flex-shrink:0;font-size:13px}.share-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10500;pointer-events:none;display:flex;align-items:center;justify-content:center}.share-modal.open{pointer-events:auto}.share-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;opacity:0;transition:opacity var(--t-normal) var(--t-ease-out);pointer-events:none}.share-modal.open .share-modal-overlay{opacity:1;pointer-events:auto}.share-modal-panel{position:relative;width:400px;max-width:90vw;padding:0;background:#0f172ad1;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.1);border-radius:20px;box-shadow:0 20px 50px #0000008c,0 0 0 1px #ffffff0a inset;opacity:0;transform:translateY(20px) scale(.96);transition:opacity .3s ease,transform .3s cubic-bezier(.1,1,.1,1);overflow:hidden}.share-modal.open .share-modal-panel{opacity:1;transform:translateY(0) scale(1)}.share-modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff14;color:#fff9;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),color var(--t-fast);z-index:1;line-height:1}.share-modal-close:hover{background:#ffffff2e;color:#fff}.share-modal-header{padding:32px 28px 0;text-align:center}.share-modal-header h2{margin:0 0 4px;font-size:20px;font-weight:700;color:#fff;letter-spacing:.5px}.share-modal-header p{margin:0;font-size:13px;color:#ffffff73}.share-modal-actions{display:flex;flex-direction:column;gap:8px;padding:24px 28px}.share-btn{display:flex;align-items:center;gap:14px;width:100%;padding:14px 18px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff0d;color:#ffffffd9;font-size:15px;font-family:inherit;cursor:pointer;transition:background var(--t-fast) var(--t-ease-out),border-color var(--t-fast) var(--t-ease-out),transform var(--t-fast) var(--t-ease-out),box-shadow var(--t-fast) var(--t-ease-out);text-align:left}.share-btn:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40;transform:translateY(-1px);box-shadow:0 4px 20px #0000004d}.share-btn:active:not(:disabled){transform:scale(.97);background:#ffffff14}.share-btn--disabled,.share-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.share-btn-icon{width:40px;height:40px;border-radius:10px;background:#ffffff14;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff9;transition:background var(--t-fast),color var(--t-fast)}.share-btn:hover:not(:disabled) .share-btn-icon{background:#ffffff26;color:#fff}.share-btn-label{flex:1;font-weight:500}.share-btn-tag{font-size:11px;padding:3px 10px;border-radius:9999px;background:#ffffff0f;color:#ffffff4d;font-weight:400;letter-spacing:.5px;white-space:nowrap;flex-shrink:0}.share-modal-cancel{display:block;width:calc(100% - 56px);margin:0 28px 28px;padding:12px 0;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff0d;color:#fff9;font-size:14px;font-family:inherit;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);text-align:center}.share-modal-cancel:hover{background:#ffffff1a;color:#ffffffd9;border-color:#fff3}.share-modal-cancel:active{transform:scale(.97);background:#ffffff0f}#qr-modal{z-index:10600}.qr-modal-panel{width:360px!important;max-width:90vw!important}.qr-code-area{display:flex;align-items:center;justify-content:center;padding:0 28px 16px}.qr-code-area canvas{display:block;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#fff;padding:8px}.qr-loading{padding:40px 0;color:#fff6;font-size:13px}.qr-tip{padding:0 28px 20px;text-align:center;font-size:12px;color:#ffffff59}.qr-actions{display:flex;gap:10px;padding:0 28px 28px}.qr-actions .share-modal-cancel{flex:1;width:auto;margin:0}.share-trigger-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 0;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#ffffff0f;color:#ffffffb3;font-size:13px;font-family:inherit;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform var(--t-fast)}.share-trigger-btn:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff}.share-trigger-btn:active{transform:scale(.95)}@media(max-width:768px){.share-modal-panel{width:95vw;max-width:350px}.share-modal-header{padding:28px 20px 0}.share-modal-header h2{font-size:18px}.share-modal-actions{padding:20px;gap:6px}.share-btn{padding:12px 14px;font-size:14px}.share-btn-icon{width:36px;height:36px}.share-modal-cancel{width:calc(100% - 40px);margin:0 20px 24px}}@media(max-width:768px){body.device-mobile{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}.app-navbar{height:52px;padding:0 12px;gap:8px;justify-content:space-between}.nav-brand{font-size:14px;margin-right:0}.nav-hamburger{display:flex;order:-1}.nav-links{display:none}#mapContainer{top:52px;height:calc(100dvh - 52px);height:calc(100vh - 52px)}.spot-list-panel{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;height:55vh;max-height:60vh;border-right:none;border-top:1px solid rgba(255,255,255,.08);border-radius:20px 20px 0 0;transform:translateY(100%);transition:transform .35s cubic-bezier(.1,1,.1,1)}.spot-list-panel.open{transform:translateY(0)}.spot-list-header{padding:16px 20px 12px}.spot-search-container{top:64px;width:calc(100vw - 32px);max-width:100%}.spot-search-input{font-size:13px}.auth-modal-panel{width:95vw!important;max-width:350px!important;padding:28px 20px 24px!important}.auth-form h2{font-size:19px}.auth-form-sub{font-size:12px;margin-bottom:16px}.auth-form input{padding:10px 12px;font-size:13px;margin-bottom:10px}.auth-form button{padding:10px 0;font-size:14px}.profile-center-panel{width:95vw!important;max-width:350px!important}.pc-avatar-section{padding:28px 20px 10px}.pc-display-name{font-size:18px}.pc-bio{font-size:12px;max-width:240px}.profile-stats-grid{margin:18px 20px 14px;gap:8px}.profile-stat-card{padding:14px 6px}.profile-stat-num{font-size:20px}.profile-stat-label{font-size:10px}.pc-footprints{margin:0 20px 6px}.pc-actions{padding:16px 20px 24px}.pc-action-btn,.pc-action-btn-logout{font-size:13px;padding:10px 0}.hot-ranking-panel{right:50%;transform:translate(50%,-50%) scale(.95);width:calc(100vw - 24px);max-width:400px;max-height:60vh;border-radius:16px}.hot-ranking-panel.open{transform:translate(50%,-50%) scale(1)}.hot-ranking-item{padding:12px 16px;gap:8px;border-radius:10px;margin:0 8px 4px;background:#ffffff0a;border:1px solid rgba(255,255,255,.04)}.hot-ranking-item:hover{background:#ffffff12;border-color:#ffffff14}.hot-ranking-name{font-size:12px}.hot-ranking-views{font-size:11px}.hot-ranking-header{padding:14px 16px 10px}.hot-ranking-title{font-size:13px}.hot-ranking-loading,.hot-ranking-empty{padding:20px 16px;font-size:12px}#spot-sidebar .sidebar-panel{width:100vw!important;max-width:100vw}#spot-sidebar{width:100vw;max-width:100vw}.sidebar-hero{height:180px}.sidebar-hero .hero-title-overlay h2{font-size:18px}.sidebar-hero .hero-title-overlay p{font-size:12px}.sidebar-actions{margin:12px 16px 0;gap:6px}.sidebar-action-btn{padding:8px 0;font-size:12px}.sidebar-section-title{margin:18px 16px 10px;font-size:11px}.sidebar-comment-form{margin:0 16px 24px}.sidebar-comment-form textarea{font-size:12px;padding:8px 11px}.comment-list{margin:0 16px 8px}.comment-bubble{padding:10px 14px}.comment-bubble .comment-text{font-size:13px}.photo-grid{gap:4px;margin:0 16px 8px}.sidebar-close{top:12px;right:12px;width:36px;height:36px;font-size:20px}.spot-list-toggle{display:none}.spot-pioneer-panel{width:92vw;max-width:92vw}.spot-pioneer-hero{padding:32px 20px 16px}.spot-pioneer-hero h2{font-size:19px}.spot-pioneer-hero p{font-size:12px}.spot-pioneer-form{padding:0 20px 24px}.spot-pioneer-form input,.spot-pioneer-form textarea{padding:10px 12px;font-size:13px}.spot-pioneer-btn{padding:12px 0;font-size:14px}#add-form{top:64px;left:12px}.add-form-body{width:240px;padding:18px 16px 14px}.add-form-body h3{font-size:13px}.add-form-body input,.add-form-body textarea{padding:8px 11px;font-size:12px}#add-submit{font-size:13px}#auth-user-btn{top:64px;right:12px;padding:6px 12px 6px 8px;border-radius:20px}.auth-user-label{font-size:12px;max-width:80px}.auth-user-menu{top:108px;right:12px;width:160px}.auth-menu-item{font-size:12px;padding:10px 14px}html,body{font-size:14px}}@media(min-width:769px)and (max-width:1024px){.spot-search-container{width:340px}.spot-list-panel,.hot-ranking-panel{width:280px}.auth-modal-panel{width:400px}.profile-center-panel{max-width:450px}}@media(min-width:1025px){.spot-search-container{width:400px}.spot-list-panel{width:300px}}.create-post-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:none;align-items:center;justify-content:center}.create-post-modal.open{display:flex}.create-post-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.create-post-panel{position:relative;width:540px;max-width:92vw;max-height:88vh;overflow-y:auto;background:#141826f5;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;box-shadow:0 16px 64px #0000008c;animation:create-post-in .3s cubic-bezier(.16,1,.3,1)}@keyframes create-post-in{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.create-post-close{position:absolute;top:14px;right:16px;background:none;border:none;color:#ffffff80;font-size:26px;line-height:1;cursor:pointer;transition:color var(--t-fast);z-index:2}.create-post-close:hover{color:#ffffffe6}.create-post-header{padding:28px 28px 0;text-align:center}.create-post-header h2{margin:0 0 8px;font-size:22px;color:#f1f5f9}.create-post-header p{margin:0;font-size:14px;color:#ffffff80}.create-post-form{padding:20px 28px 28px;display:flex;flex-direction:column;gap:16px}.create-post-label{font-size:13px;font-weight:600;color:#ffffffb3;margin-bottom:-10px}.create-post-required{color:#ef4444}.create-post-optional{color:#ffffff59;font-weight:400}.create-post-input,.create-post-textarea{width:100%;padding:12px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#e2e8f0;font-size:14px;outline:none;transition:border-color .2s,background .2s;box-sizing:border-box;font-family:inherit}.create-post-input:focus,.create-post-textarea:focus{border-color:#ef444480;background:#ffffff14}.create-post-input::placeholder,.create-post-textarea::placeholder{color:#ffffff4d}.create-post-textarea{resize:vertical;min-height:100px}.create-post-stars{display:flex;align-items:center;gap:4px}.create-post-star{font-size:28px;color:#ffffff26;cursor:pointer;transition:color .15s,transform .15s;-webkit-user-select:none;user-select:none}.create-post-star:hover{transform:scale(1.2)}.create-post-star.active{color:#fbbf24;text-shadow:0 0 8px rgba(251,191,36,.5)}.create-post-rating-text{margin-left:10px;font-size:13px;color:#ffffff80}.create-post-image-area{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}.create-post-image-previews{display:contents}.create-post-image-item{width:80px;height:80px;border-radius:10px;overflow:hidden;position:relative;border:2px solid rgba(255,255,255,.1);flex-shrink:0}.create-post-image-item img{width:100%;height:100%;object-fit:cover}.create-post-image-item.uploading{display:flex;align-items:center;justify-content:center;background:#ffffff0a}.create-post-image-remove{position:absolute;top:2px;right:2px;width:22px;height:22px;background:#000000b3;color:#fff;border:none;border-radius:50%;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--t-fast)}.create-post-image-item:hover .create-post-image-remove{opacity:1}.create-post-image-spinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.1);border-top-color:#f97316;border-radius:50%;animation:create-post-spin .8s linear infinite}@keyframes create-post-spin{to{transform:rotate(360deg)}}.create-post-add-image{width:80px;height:80px;border:2px dashed rgba(255,255,255,.2);border-radius:10px;background:#ffffff08;color:#fff6;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;transition:all var(--t-fast);flex-shrink:0}.create-post-add-image:hover{border-color:#ef444466;color:#ffffffb3;background:#ffffff0f}.create-post-add-icon{font-size:22px;line-height:1}.create-post-actions{display:flex;gap:12px;margin-top:4px}.create-post-btn-cancel{flex:1;padding:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#ffffffb3;font-size:14px;cursor:pointer;transition:all var(--t-fast);font-weight:500}.create-post-btn-cancel:hover{background:#ffffff1a}.create-post-btn-submit{flex:2;padding:12px;background:linear-gradient(135deg,#ef4444,#f97316);border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s;box-shadow:0 4px 16px #ef44444d}.create-post-btn-submit:hover{box-shadow:0 6px 24px #ef444473;transform:translateY(-1px)}.create-post-btn-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.create-post-status{margin:0;font-size:13px;text-align:center;min-height:20px;color:#fff9}@media(max-width:768px){.create-post-panel{width:100%;max-width:100%;max-height:100dvh;border-radius:20px 20px 0 0;margin-top:auto;animation:create-post-in-mobile .3s cubic-bezier(.16,1,.3,1)}@keyframes create-post-in-mobile{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.create-post-form{padding:16px 18px 24px}.create-post-header{padding:20px 18px 0}.create-post-image-item,.create-post-add-image{width:64px;height:64px}}.community-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:none;flex-direction:column;background:#0b1120;color:#e2e8f0}.community-page.open{display:flex}.community-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#0f172af2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;z-index:2}.community-topbar-left{display:flex;align-items:center;gap:12px}.community-back-btn{width:36px;height:36px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#ffffff0d;color:#ffffffb3;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--t-fast)}.community-back-btn:hover{background:#ffffff1f;color:#fff}.community-share-btn{width:36px;height:36px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#ffffff0d;color:#ffffffb3;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);flex-shrink:0}.community-share-btn:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff}.community-brand{display:flex;align-items:center;gap:8px}.community-brand-icon{font-size:20px}.community-brand-text{font-size:17px;font-weight:700;color:#f1f5f9}.community-topbar-right{display:flex;align-items:center}.community-create-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px #ef44444d;transition:all .25s}.community-create-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #ef444473}.community-search-bar{padding:12px 20px;background:#0b1120cc;border-bottom:1px solid rgba(255,255,255,.05);flex-shrink:0}.community-search-wrap{display:flex;align-items:center;gap:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:0 14px;transition:border-color .2s,background .2s}.community-search-wrap:focus-within{border-color:#ef444466;background:#ffffff14}.community-search-icon{font-size:16px;flex-shrink:0;opacity:.5}.community-search-input{flex:1;padding:10px 0;background:none;border:none;color:#e2e8f0;font-size:14px;outline:none;font-family:inherit}.community-search-input::placeholder{color:#ffffff40}.community-search-clear{width:24px;height:24px;border:none;border-radius:50%;background:#ffffff14;color:#ffffff80;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--t-fast)}.community-search-clear:hover{background:#ffffff26;color:#fff}.community-search-count{font-size:12px;color:#ffffff4d;flex-shrink:0;min-width:50px;text-align:right}.community-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:24px 20px 40px;scroll-behavior:smooth}.community-loading,.community-empty,.community-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:#ffffff80}.community-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.08);border-top-color:#f97316;border-radius:50%;animation:community-spin .8s linear infinite;margin-bottom:16px}@keyframes community-spin{to{transform:rotate(360deg)}}.community-empty-icon{font-size:56px;margin-bottom:16px}.community-empty h3{margin:0 0 8px;font-size:20px;color:#94a3b8}.community-empty p{margin:0 0 24px;font-size:14px;color:#ffffff59}.community-empty-btn{padding:12px 28px;background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px #ef44444d;transition:all .25s}.community-empty-btn:hover{transform:translateY(-1px)}.community-error-icon{font-size:48px;margin-bottom:12px}.community-error p{margin:0 0 20px;font-size:14px}.community-retry-btn{padding:10px 24px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#e2e8f0;font-size:14px;cursor:pointer;transition:all var(--t-fast)}.community-retry-btn:hover{background:#ffffff24}.community-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.community-card{background:#141928d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.07);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s,box-shadow .25s,transform .25s}.community-card:hover{border-color:#ef444440;box-shadow:0 8px 32px #ef44441a;transform:translateY(-2px)}.community-card-header{display:flex;align-items:center;gap:12px;padding:16px 18px 10px}.community-card-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid rgba(255,255,255,.1)}.community-card-avatar-img{width:100%;height:100%;object-fit:cover}.community-card-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#ffffff0d;font-size:20px}.community-card-author{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.community-card-username{font-size:14px;font-weight:600;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.community-card-time{font-size:12px;color:#ffffff59}.community-card-rating{display:flex;gap:2px;flex-shrink:0}.community-star{font-size:14px;color:#ffffff1f;transition:color var(--t-fast)}.community-star.active{color:#fbbf24;text-shadow:0 0 6px rgba(251,191,36,.4)}.community-card-body{padding:0 18px 14px}.community-card-title{margin:0 0 8px;font-size:16px;font-weight:700;color:#f1f5f9;line-height:1.4}.community-card-content{margin:0;font-size:14px;color:#fff9;line-height:1.7;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.community-card-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;padding:0 18px 16px}.community-card-img-wrap{aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:transform var(--t-fast)}.community-card-img-wrap:hover{transform:scale(1.05)}.community-card-img{width:100%;height:100%;object-fit:cover;display:block}.community-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:11000;display:flex;align-items:center;justify-content:center;animation:community-lightbox-in .2s ease}@keyframes community-lightbox-in{0%{opacity:0}to{opacity:1}}.community-lightbox-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.community-lightbox-close{position:absolute;top:20px;right:24px;z-index:2;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#fff;font-size:28px;line-height:1;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast)}.community-lightbox-close:hover{background:#ffffff26}.community-lightbox-img{position:relative;z-index:1;max-width:90vw;max-height:90vh;border-radius:8px;box-shadow:0 16px 64px #0009}@media(max-width:768px){.community-topbar{padding:10px 14px}.community-brand-text{font-size:15px}.community-create-btn{padding:8px 14px;font-size:13px;gap:4px}.community-body{padding:16px 12px 32px}.community-grid{grid-template-columns:1fr;gap:14px}.community-card-header{padding:12px 14px 8px}.community-card-body{padding:0 14px 12px}.community-card-images{padding:0 14px 12px;grid-template-columns:repeat(3,1fr)}.community-lightbox-img{max-width:96vw;max-height:80vh}}
