:root{--primary:#ff6b9d;--primary-light:#ff9ec4;--primary-dark:#e5558a;--secondary:#f78fb3;--secondary-light:#ffb3c1;--accent:#ffc2d1;--bg:#fff5f7;--bg-card:#fff;--text:#1a1a2e;--text-muted:#888;--border:#f0e4e8;--radius:12px;--radius-lg:16px;--shadow:0 2px 12px #ff6b9d1a;--shadow-lg:0 4px 24px #ff6b9d26;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.5;overflow-x:hidden}.home-page{height:100dvh}.map3d-container{-webkit-overflow-scrolling:touch;width:100%;height:calc(100dvh - 186px);min-height:360px}a{color:var(--primary);text-decoration:none}button{cursor:pointer;font:inherit;background:0 0;border:none;outline:none}input,textarea{font:inherit;border:2px solid var(--border);border-radius:var(--radius);background:#fff;outline:none;width:100%;padding:12px 16px;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #ff6b9d26}textarea{resize:vertical;min-height:100px}.page{min-height:100dvh;padding:16px;padding-top:calc(76px + var(--safe-top));padding-bottom:calc(16px + var(--safe-bottom))}.page-with-nav{padding-bottom:calc(80px + var(--safe-bottom))}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;transition:transform .2s,box-shadow .2s}.card:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;cursor:pointer;border:none;border-radius:24px;justify-content:center;align-items:center;gap:6px;padding:10px 24px;font-size:.9rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #ff6b9d4d}.btn-primary:active{transform:scale(.96)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0;border-radius:20px;justify-content:center;align-items:center;gap:4px;padding:8px 16px;font-size:.85rem;transition:all .2s;display:inline-flex}.btn-ghost:hover{color:var(--primary);background:#ff6b9d0d}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes homeWave{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes orbFloat{0%,to{opacity:.55;transform:translate(0)scale(1)}33%{opacity:.85;transform:translate(50px,-35px)scale(1.25)}66%{opacity:.45;transform:translate(-35px,25px)scale(.9)}}.home-bg{background:linear-gradient(135deg,#2a1520 0%,#3a1f2c 25%,#4a2436 50%,#3a2233 75%,#2a1520 100%) 0 0/300% 300%;animation:18s ease-in-out infinite homeWave}.home-bg-grid{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(8,1fr);gap:2px;padding:0;display:grid}@media (width<=768px){.home-bg-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(4,1fr)}}.bg-cell{background:#140a1259;border-radius:0;position:relative;overflow:hidden}.bg-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.bg-fadein{animation:1.8s cubic-bezier(.25,.8,.25,1) bgFadeIn}.bg-fadeout{object-fit:cover;opacity:0;width:100%;height:100%;animation:1.1s ease-in forwards bgFadeOut;position:absolute;inset:0}@keyframes bgFadeIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes bgFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}.home-orb{animation:9s ease-in-out infinite orbFloat}.fade-in{animation:.3s ease-out fadeIn}.fade-in-up{animation:.4s ease-out fadeInUp}::-webkit-scrollbar{width:4px;height:4px}.gallery-masonry{columns:3;column-gap:8px}@media (width<=768px){.gallery-masonry{columns:2}}@media (width>=1025px){.gallery-masonry{columns:4}}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));align-items:start;gap:8px;display:grid}@media (width<=480px){.gallery-grid{grid-template-columns:repeat(4,1fr);gap:4px}}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:2px}::selection{background:var(--primary-light);color:#fff}@media (width<=768px){.hide-mobile{display:none!important}.show-mobile{display:block!important}.page{padding:12px;padding-top:calc(72px + env(safe-area-inset-top,0px))}header{padding:10px 12px!important}header nav a{font-size:.8rem!important}.filter-bar{display:none!important}.mobile-filter-btn{display:block!important}.masonry-grid{grid-template-columns:repeat(2,1fr)!important}.grid-layout{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))!important}.flipbook-page{padding:12px!important}.stats-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important;justify-content:flex-start!important;gap:4px!important;padding:6px 8px!important;overflow-x:auto!important}.stats-bar>*{flex-shrink:0}.admin-sidebar{border-bottom:1px solid #ffffff0f!important;border-right:none!important;flex-direction:row!important;gap:4px!important;width:100%!important;padding:8px 12px!important;overflow-x:auto!important}.admin-sidebar button{white-space:nowrap!important;border-bottom:2px solid #0000!important;border-left:none!important;flex-shrink:0!important;font-size:.75rem!important}.admin-sidebar button.active{border-left:none!important;border-bottom:2px solid var(--primary)!important}.admin-content{padding:16px!important}.admin-media-grid{grid-template-columns:repeat(2,1fr)!important}.photo-viewer{padding:8px!important}.music-player-btn{width:44px!important;height:44px!important;font-size:1.1rem!important}}@media (width>=769px) and (width<=1024px){.hide-desktop{display:none!important}.show-desktop{display:block!important}.masonry-grid,.admin-media-grid{grid-template-columns:repeat(3,1fr)!important}}@media (width>=1025px){.hide-desktop{display:none!important}.show-desktop{display:block!important}.masonry-grid,.admin-media-grid{grid-template-columns:repeat(4,1fr)!important}}@supports (padding:max(0px)){.safe-area-bottom{padding-bottom:max(16px, env(safe-area-inset-bottom,16px))}.safe-area-top{padding-top:max(16px, env(safe-area-inset-top,16px))}}@media (pointer:coarse){button,a,.clickable{min-width:44px;min-height:44px}input,select,textarea{font-size:16px!important}}@media (prefers-color-scheme:dark){.card{background:#fffffff2}}body.platform-ios .hide-desktop,body.platform-mobile .hide-desktop{display:none!important}body.platform-ios .hide-mobile,body.platform-mobile .hide-mobile{display:block!important}body.platform-ios .gallery-grid,body.platform-mobile .gallery-grid{grid-template-columns:repeat(4,1fr)!important;gap:4px!important}body.platform-ios .gallery-masonry,body.platform-mobile .gallery-masonry{columns:2!important}body.platform-ios .page,body.platform-mobile .page{padding-left:10px;padding-right:10px}body.platform-ios .page-with-nav,body.platform-mobile .page-with-nav{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}body.platform-ios button,body.platform-ios a,body.platform-ios .clickable{min-width:44px;min-height:44px}body.platform-ios .modal-sheet,body.platform-mobile .modal-sheet{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))!important}body.platform-ios input,body.platform-ios select,body.platform-ios textarea{font-size:16px!important}body.platform-desktop .page{max-width:1280px;margin:0 auto}body.platform-desktop .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}body.platform-desktop .gallery-masonry{columns:4}body.platform-desktop .admin-content{max-width:1400px}body.platform-desktop .page-with-nav{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}@media (hover:none) and (pointer:coarse){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
