*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#app{width:100%;min-height:100vh}.app{width:100%;min-height:100vh;display:flex;flex-direction:column;transition:background-color .2s}.app.dark{background:var(--tg-theme-bg-color, #1a1a2e);color:var(--tg-theme-text-color, #e0e0e0)}.app.light{background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #1a1a1a)}.loading{flex:1;display:flex;align-items:center;justify-content:center}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--tg-theme-button-color, #e91e63);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px}.error button{background:var(--tg-theme-button-color, #e91e63);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:12px;padding:12px 32px;font-size:16px;cursor:pointer}.media-container{width:100%;aspect-ratio:2 / 3;position:relative;overflow:hidden;background:#000}.photo-wrapper,.video-wrapper{width:100%;height:100%;position:absolute;top:0;left:0;cursor:pointer}.photo-wrapper{z-index:2;transition:opacity .5s ease}.photo-wrapper.fade-out{opacity:0;pointer-events:none}.video-wrapper{z-index:1}.media{width:100%;height:100%;object-fit:cover;display:block}.play-badge{position:absolute;bottom:16px;right:16px;width:48px;height:48px;background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff}.unmute-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;padding:8px 20px;border-radius:20px;font-size:13px;pointer-events:none;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.message-area{padding:20px 20px 12px}.message{font-size:18px;line-height:1.5;font-weight:500}.date{display:block;margin-top:8px;font-size:13px;opacity:.5}.actions{padding:8px 20px 32px;display:flex;align-items:center;gap:12px}.like-btn{background:none;border:none;font-size:28px;cursor:pointer;padding:4px;transition:transform .15s ease}.like-btn:active{transform:scale(.85)}.like-btn.pop{animation:popHeart .6s ease}@keyframes popHeart{0%{transform:scale(1)}30%{transform:scale(1.4)}60%{transform:scale(.9)}to{transform:scale(1)}}.next-btn{flex:1;background:var(--tg-theme-button-color, #e91e63);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:12px;padding:12px 0;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .15s}.next-btn:disabled{opacity:.6}.next-btn:active{opacity:.8}.credits-btn{background:var(--tg-theme-secondary-bg-color, rgba(255,255,255,.1));color:inherit;border:none;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:420px;background:var(--tg-theme-bg-color, #1a1a2e);border-radius:20px 20px 0 0;padding:24px 20px 32px;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal h3{font-size:20px;margin-bottom:8px}.modal-desc{font-size:14px;opacity:.6;margin-bottom:20px}.packages{display:flex;flex-direction:column;gap:10px}.pkg-btn{display:flex;justify-content:space-between;align-items:center;background:var(--tg-theme-secondary-bg-color, rgba(255,255,255,.08));border:none;border-radius:14px;padding:16px 20px;color:inherit;font-size:16px;cursor:pointer;transition:background .15s}.pkg-btn:active{background:var(--tg-theme-button-color, #e91e63)}.pkg-credits{font-weight:600}.pkg-price{opacity:.7}.modal-close{width:100%;margin-top:16px;background:none;border:none;color:var(--tg-theme-link-color, #64b5f6);font-size:16px;padding:12px;cursor:pointer}.tab-bar{display:flex;padding:8px 16px;gap:4px;position:sticky;top:0;z-index:50;background:inherit}.tab{flex:1;background:none;border:none;color:inherit;font-size:15px;font-weight:500;padding:10px 0;cursor:pointer;opacity:.5;border-bottom:2px solid transparent;transition:opacity .2s,border-color .2s}.tab.active{opacity:1;border-bottom-color:var(--tg-theme-button-color, #e91e63);font-weight:600}.gallery-page{flex:1;padding:8px}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.gallery-item{position:relative;aspect-ratio:2 / 3;overflow:hidden;border-radius:4px;cursor:pointer;background:var(--tg-theme-secondary-bg-color, rgba(255,255,255,.05))}.gallery-thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s}.gallery-item:active .gallery-thumb{transform:scale(.96)}.gallery-video-badge{position:absolute;top:6px;right:6px;width:24px;height:24px;background:#00000080;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff}.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;opacity:.6;text-align:center}.gallery-empty-btn{background:var(--tg-theme-button-color, #e91e63);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:12px;padding:12px 24px;font-size:15px;font-weight:600;cursor:pointer}.gallery-load-more{display:block;width:100%;margin-top:16px;padding:14px;background:var(--tg-theme-secondary-bg-color, rgba(255,255,255,.08));color:inherit;border:none;border-radius:12px;font-size:15px;font-weight:500;cursor:pointer}.gallery-load-more:disabled{opacity:.5}.gallery-detail{width:100%;max-width:420px;background:var(--tg-theme-bg-color, #1a1a2e);border-radius:20px 20px 0 0;padding:0 0 32px;animation:slideUp .3s ease;overflow:hidden}.gallery-detail-img{width:100%;aspect-ratio:2 / 3;object-fit:cover;display:block}
