:root {
  --bg:#0d0d0d;--surface:#161616;--surface2:#1f1f1f;--border:#2a2a2a;
  --accent:#c8a96e;--accent2:#8c6b3e;--text:#e8e2d9;--muted:#6b6560;
  --danger:#c94040;--liked:#e05c5c;--radius:6px;
  --display:'DM Serif Display',Georgia,serif;
  --mono:'DM Mono','Courier New',monospace;
}
body.nsfw-zone { --accent:#e05c5c; --accent2:#b03a3a; }
.logo-18{display:none;font-size:11px;color:#e05c5c;letter-spacing:.06em;font-family:var(--mono);font-weight:700;vertical-align:super;margin-left:4px}
body.nsfw-zone .logo-18{display:inline}
.vip-title-lock { color: var(--accent); }

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden;scrollbar-gutter:stable}
body{background:var(--bg);color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.6;min-height:100vh;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:var(--mono)}
img{display:block;max-width:100%}
input,select{font-family:var(--mono);font-size:14px;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:10px 12px;width:100%;outline:none;transition:border-color .2s}
input:focus,select:focus{border-color:var(--accent)}

/* ── Zone strip ── */
.zone-strip{display:flex;align-items:center;justify-content:center;gap:16px;padding:5px 32px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--border);position:relative;z-index:1}
.zone-strip.sfw-strip{background:#0a140a;color:#4caf50}
.zone-strip.nsfw-strip{background:#140a0a;color:#e05c5c}
.zone-switch-btn{background:transparent;border:1px solid currentColor;color:inherit;padding:2px 12px;border-radius:20px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.75;transition:opacity .2s}
.zone-switch-btn:hover{opacity:1}

/* ── Navbar ── */
.navbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:24px;padding:0 20px 0 36px;height:68px;background:rgba(13,13,13,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-logo{font-family:var(--display);font-size:26px;letter-spacing:.02em;white-space:nowrap;cursor:pointer;color:#fff !important}
.nav-logo .logo-letter{display:inline-block;color:#fff !important}
.nav-logo .logo-letter.gold{color:var(--accent) !important}
body.nsfw-zone .nav-logo .logo-letter.gold{color:#e05c5c !important}
.nav-logo span{color:var(--accent)}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-link{padding:7px 16px;border-radius:4px;color:var(--muted);font-size:14px;letter-spacing:.06em;text-transform:uppercase;transition:color .2s}
.nav-link:hover{color:var(--text)}
.nav-link.active{color:var(--accent)}
.upload-btn{background:var(--accent);color:#0d0d0d!important;font-weight:500;border:none;padding:8px 20px;border-radius:4px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;transition:background .2s;display:flex;align-items:center;gap:7px}
.upload-btn-plus{font-size:20px;font-weight:700;line-height:1;margin-left:-4px}
.upload-btn:hover{background:var(--accent2)}
.nav-right{display:flex;align-items:center;gap:12px;margin-left:auto;padding-right:10px}

/* ── Footer Modal ── */
.footer-modal-overlay{position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(8px)}
.footer-modal-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.footer-modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--border);background:var(--surface2);flex-shrink:0}
.footer-modal-head h3{font-family:var(--display);font-size:20px}
.footer-modal-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;transition:color .2s}
.footer-modal-close:hover{color:var(--text)}
.footer-modal-body{padding:28px;overflow-y:auto;font-size:14px;line-height:1.8;color:rgba(255,255,255,.55)}
.footer-modal-body h4{font-family:var(--display);font-size:16px;color:var(--text);margin:20px 0 8px}
.footer-modal-body h4:first-child{margin-top:0}
.footer-modal-body p{margin-bottom:12px}
.footer-modal-body .template-notice{background:var(--surface2);border:1px solid var(--accent);border-radius:8px;padding:12px 16px;color:var(--accent);font-size:12px;margin-bottom:20px;letter-spacing:.04em}
.signup-overlay{position:fixed;inset:0;z-index:998;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:24px}
.signup-overlay.anim-scroll{animation:fadeIn .8s ease both}
.signup-box{position:relative;display:flex;background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;max-width:820px;width:100%;max-height:92vh;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.signup-overlay.anim-scroll{animation:fadeIn .8s ease both}
.signup-overlay.anim-scroll .signup-box{animation:slideUp .5s ease 0.6s both}
.signup-overlay.anim-login  .signup-box{animation:slideUp .4s ease 0.15s both}
.signup-overlay.anim-post   .signup-box{animation:slideUp .4s ease 0.15s both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{transform:translateY(28px);opacity:0}to{transform:translateY(0);opacity:1}}
.signup-x{position:absolute;top:14px;right:14px;z-index:10;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.15);color:#fff;width:30px;height:30px;border-radius:50%;font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}
.signup-x:hover{background:var(--danger);border-color:var(--danger)}

/* Left branding panel */
.signup-left{width:280px;flex-shrink:0;background:linear-gradient(160deg,#161616 0%,#1f1500 100%);padding:48px 36px;display:flex;flex-direction:column;gap:0;border-right:1px solid var(--border)}
.signup-logo{font-family:var(--display);font-size:26px;margin-bottom:10px;color:var(--text)}
.signup-logo span{color:var(--accent)}
.signup-tagline{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:32px}
.signup-perks{list-style:none;display:flex;flex-direction:column;gap:13px;margin-bottom:auto}
.signup-perks li{font-size:13px;color:var(--text);display:flex;align-items:center;gap:10px}
.signup-already{margin-top:32px;font-size:12px;color:var(--muted)}
.signup-switch-btn{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:0;text-decoration:underline;font-family:var(--mono)}

/* Right form panel */
.signup-right{flex:1;padding:48px 40px;display:flex;flex-direction:column;overflow-y:auto}
.signup-heading{font-family:var(--display);font-size:30px;margin-bottom:6px;color:var(--text)}
.signup-sub{font-size:13px;color:var(--muted);margin-bottom:28px}
.signup-fields{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}
.signup-field{display:flex;flex-direction:column;gap:6px}
.signup-field label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.signup-field input{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:11px 14px;font-family:var(--mono);font-size:14px;outline:none;transition:border-color .2s;width:100%}
.signup-field input:focus{border-color:var(--accent)}
.signup-handle-wrap{display:flex;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:border-color .2s}
.signup-handle-wrap:focus-within{border-color:var(--accent)}
.signup-at{padding:0 12px;color:var(--muted);font-size:14px;border-right:1px solid var(--border);background:var(--surface);line-height:44px;flex-shrink:0}
.signup-handle-wrap input{border:none;background:transparent;border-radius:0;flex:1}
.signup-submit{background:var(--accent);color:#0d0d0d;border:none;padding:13px;border-radius:8px;font-size:14px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .2s,transform .15s;width:100%;font-family:var(--mono);margin-bottom:14px}
.signup-submit:hover{background:var(--accent2);transform:translateY(-1px)}
.signup-terms{font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:0}
.signup-terms a{color:var(--accent)}
.signup-skip{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;margin-top:auto;padding-top:20px;font-family:var(--mono);text-align:left;transition:color .2s}
.signup-skip:hover{color:var(--text)}

@media(max-width:640px){
  .signup-box{flex-direction:column;max-height:95vh}
  .signup-left{width:100%;padding:28px 28px 20px;border-right:none;border-bottom:1px solid var(--border)}
  .signup-perks{display:none}
  .signup-right{padding:28px}
}
/* ── Comments ── */
.modal-comments{border-top:1px solid var(--border);margin-top:2px;display:flex;flex-direction:column;flex:1;min-height:0}
.comments-head{display:flex;align-items:center;gap:8px;padding:4px 16px 6px;flex-shrink:0}
.comments-title{font-size:13px;font-weight:600;color:var(--text);letter-spacing:.04em;text-transform:uppercase;font-family:var(--mono)}
.comments-count{font-size:11px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);padding:1px 8px;border-radius:10px}
.comments-list{flex:1;overflow-y:scroll;padding:0 16px 8px;display:flex;flex-direction:column;gap:12px;position:relative;scrollbar-width:thin;scrollbar-color:var(--border) transparent;overscroll-behavior:contain}
.comments-list::-webkit-scrollbar{width:4px}
.comments-list::-webkit-scrollbar-track{background:transparent}
.comments-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
.comments-list::-webkit-scrollbar-thumb:hover{background:var(--muted)}
.comments-empty{font-size:13px;color:var(--muted);text-align:center;padding:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%}
.comment-item{display:flex;flex-direction:row;gap:8px;align-items:flex-start}
.comment-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;overflow:hidden;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff}
.comment-avatar img{width:32px;height:32px;object-fit:cover;border-radius:50%}
.comment-body{flex:1;min-width:0}
.comment-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:2px}
.comment-name{font-size:12px;font-weight:600;color:var(--text)}
.comment-crown{font-size:14px;display:inline-block;vertical-align:top;line-height:1;margin-left:3px;margin-top:-8px;filter:drop-shadow(0 0 3px rgba(200,169,110,.6))}
.comment-time{font-size:10px;color:var(--muted)}
.comment-text{font-size:13px;color:var(--muted);line-height:1.5;word-break:break-word}
.comment-actions{display:flex;align-items:center;gap:12px;margin-top:5px}
.comment-like-btn{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px;padding:0;transition:color .2s}
.comment-like-btn:hover{color:var(--danger)}
.comment-like-btn.liked{color:var(--danger)}
.comment-like-count{font-size:11px}
/* Input row */
.comment-input-row{display:flex;align-items:center;gap:10px;padding:10px 16px 14px;border-top:1px solid var(--border);flex-shrink:0}
.comment-input-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;background:var(--surface2);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}

.comment-input-avatar img{width:100%;height:100%;object-fit:cover}
.comment-input-wrap{flex:1;display:flex;align-items:center;gap:8px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:0 6px 0 14px;transition:border-color .2s}
.comment-input-wrap:focus-within{border-color:var(--accent)}
.comment-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:13px;padding:8px 0;font-family:var(--mono)}
.comment-input::placeholder{color:var(--muted)}
.comment-send-btn{background:var(--accent);color:#0d0d0d;border:none;width:28px;height:28px;border-radius:50%;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}
.comment-send-btn:hover{background:var(--accent2)}
/* GIF comment button */
.comment-gif-btn{background:none;border:1px solid var(--border);color:rgba(255,255,255,.7);font-size:9px;font-weight:800;letter-spacing:.04em;padding:3px 6px;border-radius:6px;cursor:pointer;flex-shrink:0;transition:all .2s;font-family:var(--mono)}
.comment-gif-btn:hover{border-color:var(--accent);color:var(--accent)}
/* GIF picker panel */
.comment-gif-picker{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:#0a0a0a;border:1px solid var(--border);border-radius:12px;padding:10px;z-index:50;box-shadow:0 8px 32px rgba(0,0,0,.8)}
.comment-gif-search{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 12px;font-size:12px;font-family:var(--mono);outline:none;box-sizing:border-box;margin-bottom:8px}
.comment-gif-search:focus{border-color:var(--accent)}
.comment-gif-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:320px;overflow-y:auto}
.comment-gif-empty{text-align:center;color:var(--muted);font-size:12px;padding:24px 0}
.comment-gif-item{aspect-ratio:1;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--surface2)}
.comment-gif-item img{width:100%;height:100%;object-fit:cover}
.comment-gif-item:hover{opacity:.8}
#public-profile-page{padding-bottom:80px;min-height:100vh}
/* ── VIP Modal ── */
.vip-overlay{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:24px}
.vip-box{position:relative;background:linear-gradient(160deg,#141400 0%,#1a1600 60%,#0d0d0d 100%);border:1px solid rgba(200,169,110,.3);border-radius:18px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 0 60px rgba(200,169,110,.15),0 24px 60px rgba(0,0,0,.6);animation:slideUp .35s ease}
.vip-close{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.6);width:28px;height:28px;border-radius:50%;font-size:13px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
.vip-close:hover{background:var(--danger);border-color:var(--danger);color:#fff}
.vip-head{text-align:center;padding:36px 32px 20px}
.vip-crown{font-size:48px;margin-bottom:12px;filter:drop-shadow(0 0 16px rgba(200,169,110,.6))}
.vip-title{font-family:var(--display);font-size:26px;color:var(--text);margin-bottom:8px}
.vip-title span{color:var(--accent)}
.vip-subtitle{font-size:13px;color:var(--muted);line-height:1.6}
.vip-price-row{display:flex;align-items:baseline;justify-content:center;gap:8px;padding:8px 32px 20px;border-bottom:1px solid rgba(200,169,110,.15)}
.vip-price{font-family:var(--display);font-size:52px;color:var(--accent);line-height:1}
.vip-price-label{font-size:16px;color:var(--muted)}
.vip-price-tag{font-size:11px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);padding:3px 10px;border-radius:20px;margin-left:4px}
.vip-benefits{padding:20px 32px;display:flex;flex-direction:column;gap:14px}
.vip-benefit{display:flex;align-items:flex-start;gap:14px}
.vip-b-icon{font-size:20px;flex-shrink:0;margin-top:1px}
.vip-benefit strong{font-size:13px;color:var(--text);display:block;margin-bottom:2px}
.vip-benefit p{font-size:12px;color:var(--muted);margin:0;line-height:1.5}
.vip-cta-wrap{padding:20px 32px 32px;border-top:1px solid rgba(200,169,110,.15)}
.vip-cta{width:100%;background:var(--accent);color:#0d0d0d;border:none;padding:14px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:var(--mono);transition:all .2s;letter-spacing:.04em;margin-bottom:12px;display:block}
.vip-cta:hover{background:var(--accent2);transform:translateY(-1px)}
.vip-legal{font-size:11px;color:var(--muted);text-align:center;line-height:1.6}
.vip-legal a{color:var(--accent)}
.vip-crown-badge{font-size:26px;margin-left:6px;filter:drop-shadow(0 0 6px rgba(200,169,110,.7));vertical-align:top;position:relative;top:2px}
.btn-get-vip{background:linear-gradient(135deg,#2a1f0a,#1a1400);border:1px solid var(--accent);color:var(--accent);padding:7px 16px;border-radius:var(--radius);font-size:12px;white-space:nowrap;transition:all .2s;cursor:pointer;font-family:var(--mono);letter-spacing:.04em}
.btn-get-vip:hover{background:var(--accent);color:#0d0d0d}
.btn-get-vip.hidden{display:none}
.btn-prof-settings{background:var(--surface2);border:1px solid var(--border);color:var(--muted);padding:7px 16px;border-radius:var(--radius);font-size:12px;white-space:nowrap;transition:all .2s;cursor:pointer;font-family:var(--mono);letter-spacing:.04em}
.btn-prof-settings:hover{border-color:rgba(255,255,255,.3);color:var(--text)}

/* ── Admin Control Panel ─────────────────────────────────────────────────────── */
.admin-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.admin-modal{background:#0f1117;border:1px solid rgba(255,255,255,.1);border-radius:16px;width:min(1100px,96vw);height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 32px 100px rgba(0,0,0,.8)}
.admin-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);flex-shrink:0}
.admin-header-left{display:flex;align-items:center;gap:14px}
.admin-header-badge{font-size:28px;line-height:1}
.admin-header-title{font-size:18px;font-weight:700;color:#fff;margin:0}
.admin-header-sub{font-size:12px;color:rgba(255,255,255,.4)}
.admin-close-btn{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.6);width:32px;height:32px;border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
.admin-close-btn:hover{background:rgba(255,80,80,.2);color:#f66;border-color:rgba(255,80,80,.3)}
.admin-tabs-bar{display:flex;gap:2px;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(0,0,0,.2);flex-shrink:0;overflow-x:auto}
.admin-tab-btn{background:none;border:none;color:rgba(255,255,255,.45);font-size:13.5px;font-weight:500;padding:8px 16px;border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap;display:flex;align-items:center;gap:6px}
.admin-tab-btn:hover{background:rgba(255,255,255,.07);color:rgba(255,255,255,.8)}
.admin-tab-btn.active{background:rgba(255,255,255,.1);color:#fff;font-weight:600}
.admin-badge-count{background:#e05;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;min-width:16px;text-align:center}
.admin-body{flex:1;overflow-y:auto;padding:24px}
.admin-tab-pane{}
/* Stats grid */
.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:28px}
.admin-stat-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:18px 16px;text-align:center;transition:border-color .2s}
.admin-stat-card:hover{border-color:rgba(255,255,255,.15)}
.asc-icon{font-size:22px;margin-bottom:8px}
.asc-val{font-size:26px;font-weight:700;color:#fff;margin-bottom:4px}
.asc-label{font-size:11px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.5px}
/* Quick actions */
.admin-section-title{font-size:13px;font-weight:600;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px}
.admin-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.admin-qa-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.8);padding:10px 18px;border-radius:10px;font-size:13.5px;cursor:pointer;transition:all .2s}
.admin-qa-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.admin-breakdown-row{display:flex;flex-wrap:wrap;gap:12px}
.admin-breakdown-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:14px 20px;min-width:120px}
.abc-label{font-size:11px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.abc-val{font-size:22px;font-weight:700;color:#fff}
/* Toolbar */
.admin-toolbar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center}
.admin-search{flex:1;min-width:180px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff;padding:9px 14px;border-radius:8px;font-size:13.5px;outline:none}
.admin-search::placeholder{color:rgba(255,255,255,.3)}
.admin-search:focus{border-color:rgba(255,255,255,.25)}
.admin-filter-group{display:flex;gap:6px;flex-wrap:wrap}
.admin-filter-btn{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5);padding:7px 14px;border-radius:7px;font-size:12.5px;cursor:pointer;transition:all .2s}
.admin-filter-btn:hover{background:rgba(255,255,255,.09);color:rgba(255,255,255,.8)}
.admin-filter-btn.active{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff;font-weight:600}
/* Table */
.admin-table-wrap{width:100%}
.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}
.admin-table th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.07)}
.admin-table td{padding:12px 12px;border-bottom:1px solid rgba(255,255,255,.05);color:rgba(255,255,255,.8);vertical-align:middle}
.admin-table tr:hover td{background:rgba(255,255,255,.02)}
.admin-loading{padding:48px;text-align:center;color:rgba(255,255,255,.3);font-size:14px}
.admin-empty{padding:48px;text-align:center;color:rgba(255,255,255,.3);font-size:14px}
/* User row badges */
.admin-badge-vip{background:rgba(255,200,0,.15);color:#ffc800;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;border:1px solid rgba(255,200,0,.3)}
.admin-badge-admin{background:rgba(100,180,255,.12);color:#64b4ff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;border:1px solid rgba(100,180,255,.25)}
.admin-badge-banned{background:rgba(255,60,60,.12);color:#ff4444;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;border:1px solid rgba(255,60,60,.25)}
/* Action buttons in table */
.admin-action-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.7);padding:4px 8px;border-radius:6px;font-size:11px;cursor:pointer;transition:all .2s;white-space:nowrap}
.admin-action-btn:hover{background:rgba(255,255,255,.12);color:#fff}
.admin-action-btn.danger{background:rgba(255,60,60,.08);border-color:rgba(255,60,60,.2);color:#ff6b6b}
.admin-action-btn.danger:hover{background:rgba(255,60,60,.18);color:#ff4444}
.admin-action-btn.success{background:rgba(0,200,100,.08);border-color:rgba(0,200,100,.2);color:#00c864}
.admin-action-btn.success:hover{background:rgba(0,200,100,.18)}
.admin-actions-cell{display:flex;gap:4px;flex-wrap:nowrap;align-items:center}
/* Post thumbnail */
.admin-post-thumb{width:48px;height:36px;object-fit:cover;border-radius:5px;border:1px solid rgba(255,255,255,.1)}
/* Report card */
.admin-report-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:16px;margin-bottom:12px}
.admin-report-card.urgent{border-color:rgba(255,100,0,.3);background:rgba(255,100,0,.04)}
.arc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:12px;flex-wrap:wrap}
.arc-reason{font-weight:600;color:#fff;font-size:14px}
.arc-meta{font-size:12px;color:rgba(255,255,255,.4)}
.arc-post-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.arc-post-thumb{width:64px;height:48px;object-fit:cover;border-radius:7px;border:1px solid rgba(255,255,255,.1);flex-shrink:0}
.arc-post-info{flex:1}
.arc-post-title{font-size:13px;color:rgba(255,255,255,.8);margin-bottom:3px}
.arc-post-uploader{font-size:11px;color:rgba(255,255,255,.4)}
.arc-actions{display:flex;gap:8px;flex-wrap:wrap}
/* Pagination */
.admin-pagination{display:flex;gap:8px;margin-top:16px;justify-content:center;flex-wrap:wrap}
.admin-page-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.6);padding:6px 14px;border-radius:7px;font-size:13px;cursor:pointer;transition:all .2s}
.admin-page-btn:hover{background:rgba(255,255,255,.1);color:#fff}
.admin-page-btn.active{background:rgba(255,255,255,.15);color:#fff;font-weight:600;border-color:rgba(255,255,255,.25)}
/* Token adjust inline */
.admin-token-row{display:flex;gap:6px;align-items:center}
.admin-token-input{width:70px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);color:#fff;padding:5px 8px;border-radius:6px;font-size:13px;text-align:center;outline:none}
/* VIP card */
.admin-vip-card{display:flex;align-items:center;justify-content:space-between;background:rgba(255,200,0,.04);border:1px solid rgba(255,200,0,.12);border-radius:10px;padding:12px 16px;margin-bottom:8px}
.avc-left{display:flex;align-items:center;gap:12px}
.avc-avatar{width:36px;height:36px;border-radius:50%;background:rgba(255,200,0,.15);display:flex;align-items:center;justify-content:center;font-size:16px}
.avc-name{font-weight:600;color:#fff;font-size:14px}
.avc-meta{font-size:12px;color:rgba(255,255,255,.4)}
/* Confirm dialog */
.admin-confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9999;display:flex;align-items:center;justify-content:center}
.admin-confirm-box{background:#151820;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:32px 28px;text-align:center;max-width:340px;width:90%;box-shadow:0 24px 60px rgba(0,0,0,.8)}
.admin-confirm-icon{font-size:40px;margin-bottom:12px}
.admin-confirm-msg{color:rgba(255,255,255,.85);font-size:15px;margin:0 0 24px;line-height:1.5}
.admin-confirm-btns{display:flex;gap:10px;justify-content:center}
.admin-confirm-cancel{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7);padding:10px 24px;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}
.admin-confirm-cancel:hover{background:rgba(255,255,255,.13)}
.admin-confirm-ok{background:#e05050;border:none;color:#fff;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}
.admin-confirm-ok:hover{background:#cc3535}
/* Nav admin button */
.nav-dd-admin-btn{color:#f0a020 !important;font-weight:600}
.admin-ai-zone-btn{color:#c4b5fd !important;border-color:rgba(167,139,250,.35) !important}
.admin-ai-zone-btn.active{background:rgba(167,139,250,.2) !important;border-color:rgba(167,139,250,.6) !important;color:#c4b5fd !important}
/* ── Settings modal ──────────────────────────────────────────────────────────── */
.settings-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:min(480px,94vw);max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.settings-body{padding:24px}
.settings-section{padding:20px 0;border-bottom:1px solid var(--border)}
.settings-section:last-child{border-bottom:none}
.settings-section-title{font-family:var(--display);font-size:15px;margin-bottom:16px;color:var(--text)}
.settings-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.settings-label{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-family:var(--mono)}
.settings-input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-size:13px;font-family:var(--mono);transition:border-color .2s;width:100%;box-sizing:border-box}
.settings-input:focus{outline:none;border-color:var(--accent)}
.settings-hint{font-size:12px;color:var(--muted);margin-bottom:14px;line-height:1.5}
.settings-error{font-size:12px;color:var(--danger);margin-bottom:12px;padding:8px 12px;background:rgba(255,60,60,.08);border:1px solid rgba(255,60,60,.2);border-radius:6px}
.settings-save-btn{background:var(--accent);border:none;color:#0d0d0d;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:700;font-family:var(--mono);cursor:pointer;transition:opacity .2s;letter-spacing:.04em}
.settings-save-btn:hover{opacity:.85}
.settings-cancel-btn{background:var(--surface2);border:1px solid var(--border);color:var(--muted);padding:10px 20px;border-radius:8px;font-size:13px;font-family:var(--mono);cursor:pointer;transition:all .2s}
.settings-cancel-btn:hover{border-color:rgba(255,255,255,.3);color:var(--text)}
.settings-delete-btn{background:rgba(255,60,60,.12);border:1px solid var(--danger);color:var(--danger);padding:9px 18px;border-radius:8px;font-size:12px;font-family:var(--mono);cursor:pointer;transition:all .2s;letter-spacing:.04em}
.settings-delete-btn:hover{background:var(--danger);color:#fff}
.settings-danger-zone{border-top:1px solid rgba(255,60,60,.2)!important}

/* ── Edit post modal ─────────────────────────────────────────────────────────── */
.edit-post-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:min(440px,94vw);box-shadow:0 24px 80px rgba(0,0,0,.6)}
.edit-post-body{padding:24px}

/* ── Comment 3-dot menu ──────────────────────────────────────────────────────── */
.comment-menu-wrap{position:relative;margin-left:auto;flex-shrink:0}
.comment-menu-btn{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:color .15s}
.comment-menu-btn:hover{color:var(--text)}
.comment-menu-drop{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5);min-width:120px;z-index:80;overflow:hidden}
.comment-menu-item{display:block;width:100%;text-align:left;background:none;border:none;padding:10px 14px;font-size:12px;font-family:var(--mono);color:var(--muted);cursor:pointer;transition:background .15s}
.comment-menu-item:hover{background:var(--surface2);color:var(--text)}
.comment-menu-item.danger{color:var(--danger)}
.comment-menu-item.danger:hover{background:rgba(255,60,60,.1)}
.pub-back-btn{position:absolute;top:14px;left:-110px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.9);font-size:12px;padding:6px 14px;border-radius:20px;cursor:pointer;transition:all .2s;backdrop-filter:blur(6px);white-space:nowrap;z-index:10}
.pub-back-btn:hover{border-color:var(--accent);color:var(--accent)}
.pub-follow-btn{background:var(--accent);color:#0d0d0d;border:none;padding:9px 24px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;font-family:var(--mono)}
.pub-follow-btn:hover{background:var(--accent2);transform:translateY(-1px)}
.pub-follow-btn.following{background:var(--surface2);color:var(--text);border:1px solid var(--border)}
.pub-follow-btn.following:hover{border-color:var(--danger);color:var(--danger)}
.pub-share-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:9px 18px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s;font-family:var(--mono)}
.pub-share-btn:hover{border-color:var(--accent);color:var(--accent)}
/* ── Public profile zone toggle ── */
.pub-zone-bar{display:flex;align-items:center;gap:12px;padding:8px 0 4px;margin-top:-8px}
.pub-zone-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color .3s}
.pub-zone-label.active{color:var(--text)}
.pub-zone-toggle{position:relative;width:52px;height:28px;cursor:pointer;flex-shrink:0}
.pub-zone-toggle input{opacity:0;width:0;height:0;position:absolute}
.pub-zone-track{position:absolute;inset:0;border-radius:14px;background:#2a2a2a;border:1px solid rgba(255,255,255,.1);transition:background .3s}
.pub-zone-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s,background .3s;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.pub-zone-toggle input:checked ~ .pub-zone-track{background:#3a0a0a;border-color:rgba(224,92,92,.3)}
.pub-zone-toggle input:checked ~ .pub-zone-thumb{transform:translateX(24px);background:#e05c5c}
.pub-zone-toggle input:not(:checked) ~ .pub-zone-thumb{background:#4caf50}
.pub-zone-toggle input:not(:checked) ~ .pub-zone-track{background:#0a1a0a;border-color:rgba(76,175,80,.3)}
#public-profile-page.pub-nsfw-mode .prof-stats-bar{border-color:rgba(224,92,92,.2)}
#public-profile-page.pub-nsfw-mode .prof-tab.active{color:#e05c5c;border-color:#e05c5c}
#public-profile-page.pub-nsfw-mode .pub-follow-btn{background:#e05c5c}
#public-profile-page.pub-nsfw-mode{background:linear-gradient(180deg,#1a0505 0%,var(--bg) 300px)}
#nsfw-profile{background:linear-gradient(180deg,#1a0505 0%,var(--bg) 300px)}
#public-profile-page.pub-nsfw-mode .zone-strip{display:none}
/* pub nsfw strip shown inside profile page */
#public-profile-page .pub-nsfw-strip{display:none;background:rgba(224,92,92,.08);border-bottom:1px solid rgba(224,92,92,.2);padding:8px 24px;font-size:12px;color:#e05c5c;text-align:center}
#public-profile-page.pub-nsfw-mode .pub-nsfw-strip{display:block}
#public-profile-page.pub-nsfw-mode .pub-av-initial{color:#e05c5c}
#public-profile-page.pub-nsfw-mode .prof-tab.active{color:#e05c5c;border-color:#e05c5c}
#public-profile-page.pub-nsfw-mode .pub-follow-btn{background:#e05c5c}
.modal-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.modal-cat-pill{display:inline-block;background:rgba(200,169,110,.18);color:var(--accent);padding:4px 12px;border-radius:5px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.modal-desc{font-size:13px;color:var(--muted);margin:10px 0 4px;line-height:1.5}
.modal-report-btn{background:none;border:1px solid var(--border);color:var(--muted);width:32px;height:32px;border-radius:50%;cursor:pointer;transition:all .2s;flex-shrink:0;font-size:14px;display:flex;align-items:center;justify-content:center}
.modal-report-btn:hover{border-color:var(--danger);background:rgba(201,64,64,.1)}
/* ── Report modal ── */
.report-overlay{position:fixed;inset:0;z-index:1050;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:flex-start;padding:24px;padding-left:calc(50% - 440px)}
.report-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:440px;overflow:hidden}
.report-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface2)}
.report-head h3{font-family:var(--display);font-size:18px}
.report-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;transition:color .2s}
.report-close:hover{color:var(--text)}
.report-body{padding:20px}
.report-sub{font-size:13px;color:var(--muted);margin-bottom:18px;line-height:1.6}
.report-options{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.report-option{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text);cursor:pointer;padding:9px 12px;border-radius:8px;border:1px solid var(--border);transition:all .2s}
.report-option:hover{border-color:var(--accent);background:var(--surface2)}
.report-option input{accent-color:var(--accent);width:15px;height:15px;flex-shrink:0}
.report-detail-label{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.report-detail-label textarea{font-family:var(--mono);resize:vertical;min-height:72px;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;font-size:13px;outline:none;transition:border-color .2s}
.report-detail-label textarea:focus{border-color:var(--accent)}
.report-foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface2)}
.report-cancel{background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:9px 20px;border-radius:var(--radius);font-size:13px;cursor:pointer;transition:all .2s}
.report-cancel:hover{color:var(--text)}
.report-submit{background:var(--danger);border:none;color:#fff;padding:9px 22px;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s}
.report-submit:hover{opacity:.85}

.sr-filter-tabs{display:flex;gap:0;flex-wrap:wrap}
.sr-ftab{background:none;border:none;border-bottom:2px solid transparent;color:#b0aa9f;padding:14px 20px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;cursor:pointer;transition:all .25s;font-weight:600;border-radius:0;text-transform:uppercase}
.sr-ftab:hover{color:rgba(255,255,255,.7)}
.sr-ftab.active{color:var(--accent);border-bottom-color:var(--accent)}
/* List view for profiles/playlists/categories */
.sr-list{display:flex;flex-direction:column;gap:0;padding:2px}
.sr-list-item{display:flex;align-items:center;gap:16px;padding:14px 24px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .15s}
.sr-list-item:hover{background:rgba(255,255,255,.03)}
.sr-list-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;overflow:hidden;border:1px solid var(--border)}
.sr-list-thumb img{width:100%;height:100%;object-fit:cover}
.sr-list-info{flex:1}
.sr-list-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px;letter-spacing:.01em}
.sr-list-sub{font-size:11px;color:var(--muted);font-family:var(--mono);letter-spacing:.03em}
.sr-list-arrow{color:var(--muted);font-size:18px}
/* ── Finder page ── */
@keyframes sr-page-in{0%{opacity:0;transform:translateY(18px) scale(.98)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes sr-results-in{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:translateY(0)}}
.sr-results-panel:not(.hidden) ~ * { display: none }
#search-results-page{animation:none}
#search-results-page.sr-typing .sr-finder-wrap{justify-content:flex-start;padding-top:48px;transition:padding-top .6s cubic-bezier(.16,1,.3,1)}
#search-results-page.sr-typing .sr-finder-logo{font-size:clamp(30px,4vw,44px);margin-bottom:4px}
#search-results-page.sr-typing .sr-finder-sub{font-size:10px;margin-bottom:16px}
#search-results-page.sr-typing .sr-finder-search{height:52px;max-width:800px}
.sr-finder-logo,.sr-finder-sub,.sr-finder-search{transition:font-size .6s ease,height .6s ease,margin-bottom .6s ease,max-width .6s ease}
@keyframes sr-content-in{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:translateY(0)}}
.sr-finder-logo{animation:sr-content-in .45s cubic-bezier(.16,1,.3,1) .05s both}
.sr-finder-sub{animation:sr-content-in .45s cubic-bezier(.16,1,.3,1) .1s both}
.sr-finder-search{animation:sr-content-in .45s cubic-bezier(.16,1,.3,1) .15s both}
.sr-finder-wrap{display:flex;flex-direction:column;align-items:center;padding:0 40px 0;min-height:100vh;justify-content:center;padding-bottom:38vh;transition:justify-content 0s}
.sr-finder-logo{font-family:var(--display);font-size:clamp(32px,5vw,56px);color:var(--text);margin-bottom:6px;letter-spacing:-.02em}
.sr-finder-logo span{color:var(--accent)}
.sr-finder-sub{font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.28);letter-spacing:.14em;text-transform:uppercase;margin-bottom:36px}
.sr-finder-search{width:100%;max-width:620px;display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:0 26px;height:66px;transition:border-color .25s,box-shadow .25s,background .25s;cursor:text}
.sr-finder-search:focus-within{background:rgba(255,255,255,.09);border-color:var(--accent);box-shadow:0 0 0 4px rgba(200,169,110,.11)}
.sr-finder-search input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:19px;font-family:inherit;letter-spacing:-.01em}
.sr-finder-search input::placeholder{color:rgba(255,255,255,.22)}
.sr-finder-clear{background:rgba(255,255,255,.09);border:none;color:rgba(255,255,255,.45);font-size:12px;cursor:pointer;padding:4px 9px;border-radius:20px;transition:all .2s;line-height:1;flex-shrink:0}
.sr-finder-clear:hover{background:rgba(255,255,255,.16);color:var(--text)}
.sr-finder-back{margin-top:20px;background:none;border:none;color:rgba(255,255,255,.25);font-family:var(--mono);font-size:10px;letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:color .2s;padding:6px 12px}
.sr-finder-back:hover{color:var(--accent)}
.sr-results-panel{width:100%;max-width:1200px;margin-top:32px;animation:sr-results-in .28s ease both}
.sr-results-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:0;width:100%}
.sr-ai-filter-row{display:flex;align-items:center;padding:8px 0 4px;gap:8px}
.sr-filter-tabs{display:flex;gap:0;flex-wrap:wrap}
.sr-ftab{background:none;border:none;border-bottom:2px solid transparent;color:#b0aa9f;padding:12px 18px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;cursor:pointer;transition:all .2s;font-weight:600;border-radius:0;text-transform:uppercase;margin-bottom:-1px}
.sr-ftab:hover{color:rgba(255,255,255,.7)}
.sr-ftab.active{color:var(--accent);border-bottom-color:var(--accent)}
.sr-results-controls{display:flex;align-items:center;gap:10px;padding-bottom:4px;margin-top:8px}
.sr-back-btn{background:none;border:none;color:rgba(255,255,255,.4);padding:6px 0;font-family:var(--mono);font-size:11px;cursor:pointer;transition:color .2s;flex-shrink:0;letter-spacing:.06em;display:flex;align-items:center;gap:5px;text-transform:uppercase}
.sr-back-btn:hover{color:var(--accent)}
.sr-count{font-size:11px;color:rgba(255,255,255,.3);white-space:nowrap;font-family:var(--mono);letter-spacing:.06em}
.sr-header{display:none}

/* Inline search bar on results page */
/* sr-search-wrap deprecated */

.sr-search-icon{display:none}





/* Autocomplete dropdown */
.sr-autocomplete{
  position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:var(--surface);border:1px solid var(--border);
  border-radius:10px;overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:100;
}
.sr-ac-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .15s;font-size:13px;color:var(--text)}
.sr-ac-item:hover{background:var(--surface2)}
.sr-ac-icon{font-size:15px;width:20px;text-align:center;flex-shrink:0}
.sr-ac-text{flex:1}
.sr-ac-text mark{background:none;color:var(--accent);font-weight:600}
.sr-ac-type{font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.sr-no-results{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px;font-family:var(--mono);letter-spacing:.04em}
.sr-body{padding:0;width:100%}
.sr-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;gap:16px;text-align:center}
.sr-empty-icon{font-size:52px;opacity:.4}
.sr-empty-text{font-size:15px;color:rgba(255,255,255,.35);font-family:var(--mono);letter-spacing:.04em;line-height:1.6}
.sr-media-toggle{display:flex;background:var(--surface2);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:20px;position:relative;top:10px}
.sr-mt-btn{flex:1;background:none;border:none;color:var(--muted);padding:9px 16px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;cursor:pointer;transition:all .2s}
.sr-mt-btn.active{background:var(--accent);color:#0d0d0d;font-weight:700}
.sr-suggested{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px;align-items:center}
.sr-suggested-label{font-size:10px;color:#b0aa9f;letter-spacing:.1em;text-transform:uppercase;align-self:center;flex-shrink:0;font-family:var(--mono)}
.sr-cat-chip{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.04);border:1px solid var(--border);color:var(--text);padding:7px 16px;border-radius:30px;font-size:12px;cursor:pointer;transition:all .2s;letter-spacing:.04em;font-family:var(--mono)}
.sr-cat-chip.active,.sr-cat-chip:hover{border-color:var(--accent);color:var(--accent);background:rgba(200,169,110,.06)}

.sr-cat-chip .chip-icon{font-size:15px}
.sr-cat-chip .chip-count{font-size:10px;color:#b0aa9f;margin-left:2px}

.sr-sort-wrap{position:relative}
.sr-sort-btn{display:flex;align-items:center;gap:8px;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:8px 16px;border-radius:8px;font-family:var(--mono);font-size:13px;cursor:pointer;transition:all .2s}
.sr-sort-btn:hover{border-color:var(--accent)}
.sr-sort-arrow{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text);transition:transform .2s}
.sr-sort-wrap.open .sr-sort-arrow{transform:rotate(180deg)}
.sr-sort-drop{position:absolute;top:calc(100% + 6px);left:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:100;min-width:170px}
.sr-sort-item{width:100%;text-align:left;background:none;border:none;color:var(--muted);padding:11px 16px;font-family:var(--mono);font-size:13px;cursor:pointer;transition:background .15s;display:block}
.sr-sort-item:hover{background:var(--surface2);color:var(--text)}
.sr-sort-item.active{color:var(--accent);background:var(--surface2)}
.nav-search-icon-btn{width:38px;height:38px;border-radius:50%;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;z-index:2;transition:opacity .2s}
.nav-search-icon-btn:hover{opacity:.7}
.nav-search-wrap{position:relative;display:flex;align-items:center}
.nav-search-bar{
  display:flex;align-items:center;gap:8px;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:22px;padding:0 14px;height:38px;
  width:0;overflow:hidden;opacity:0;
  transition:width .35s ease,opacity .25s ease,border-color .2s;
  position:absolute;right:44px;
}
.nav-search-bar.open{width:240px;opacity:1;border-color:var(--accent)}
.nav-search-input{background:none;border:none;outline:none;color:var(--text);font-family:var(--mono);font-size:13px;width:100%;min-width:0}
.nav-search-input::placeholder{color:var(--muted)}
.nav-search-clear{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;padding:0;line-height:1;transition:color .2s;flex-shrink:0}
.nav-search-clear:hover{color:var(--text)}
.search-dropdown{
  position:absolute;top:calc(100% + 8px);right:0;
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;overflow:hidden;
  box-shadow:0 8px 32px rgba(0,0,0,.5);
  z-index:200;max-height:380px;overflow-y:auto;min-width:300px;
}
.search-section-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 14px 4px;font-weight:600}
.search-item{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;transition:background .15s}
.search-item:hover{background:var(--surface2)}
.search-item-icon{width:36px;height:36px;border-radius:8px;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;overflow:hidden}
.search-item-icon img{width:100%;height:100%;object-fit:cover}
.search-item-info{flex:1;min-width:0}
.search-item-name{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-item-sub{font-size:11px;color:var(--muted)}
.search-item-badge{font-size:10px;background:var(--surface2);border:1px solid var(--border);color:var(--muted);padding:2px 8px;border-radius:10px;white-space:nowrap}
.search-empty{text-align:center;padding:28px 14px;color:var(--muted);font-size:13px}
.search-divider{height:1px;background:var(--border)}
.zone-badge{display:flex;align-items:center;gap:7px;padding:5px 13px 5px 8px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:2px solid transparent;transition:all .25s;user-select:none}
.zone-badge.sfw{background:#0a140a;color:#4caf50;border-color:#1a3a1a}
.zone-badge.sfw:hover{border-color:#4caf50}
.zone-badge.nsfw{background:#140a0a;color:#e05c5c;border-color:#3a1a1a}
.zone-badge.nsfw:hover{border-color:#e05c5c}
.zone-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.zone-badge.sfw .zone-dot{background:#4caf50}
.zone-badge.nsfw .zone-dot{background:#e05c5c;box-shadow:0 0 6px #e05c5c88}

/* ── Profile pill ── */
/* ── Nav profile dropdown ── */
.nav-dd-logout{color:var(--danger)!important}
.nav-dd-logout:hover{background:rgba(201,64,64,.1)!important;color:var(--danger)!important}
.nav-dd-auth-btn{color:var(--muted);font-size:13px}
.nav-dd-auth-btn:hover{background:var(--surface2);color:var(--accent)}
.nav-profile{display:flex;align-items:center;gap:6px;padding:3px 8px 3px 3px;border-radius:30px;border:1px solid var(--border);background:var(--surface2);transition:border-color .2s;cursor:pointer;user-select:none}
.nav-profile:hover,.nav-profile.active{border-color:var(--accent)}
.nav-profile-chevron{
  width:0;height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:7px solid var(--text);
  margin-left:6px;flex-shrink:0;
  transition:transform .2s;opacity:.75;
}
.nav-profile-wrap.open .nav-profile-chevron{transform:rotate(180deg)}
.nav-avatar-ring{width:38px;height:38px;border-radius:50%;border:2px solid var(--accent);overflow:hidden;flex-shrink:0}
.nav-avatar{width:100%;height:100%;object-fit:cover;display:block}
.nav-profile-name{font-size:12px;color:var(--text);white-space:nowrap}

.nav-dropdown{
  position:absolute;top:calc(100% + 6px);right:-12px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;min-width:360px;
  box-shadow:0 8px 32px rgba(0,0,0,.5);
  overflow:hidden;z-index:200;
}
.nav-dropdown-user{display:flex;align-items:center;gap:14px;padding:18px 16px;background:var(--surface2)}
.nav-dd-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);flex-shrink:0}
.nav-dd-name{font-size:17px;font-weight:700;color:var(--text)}
.nav-dd-handle{font-size:13px;color:#b0aa9f}
.nav-dropdown-divider{height:1px;background:var(--border)}
.nav-dd-item{width:100%;text-align:left;background:none;border:none;color:var(--text);padding:11px 16px;font-size:13px;cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:8px}
.nav-dd-item:hover{background:var(--surface2);color:var(--accent)}
.nav-bell-wrap{position:relative}
.nav-bell{position:relative;background:var(--surface2);border:1px solid var(--border);color:var(--text);width:42px;height:42px;border-radius:50%;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s}
.nav-bell:hover{border-color:var(--accent)}
.nav-bell-dot{position:absolute;top:4px;right:4px;width:9px;height:9px;background:#e05c5c;border-radius:50%;border:2px solid var(--bg);display:none}
.nav-bell-dot.active{display:block}
.bell-dropdown{
  position:absolute;top:calc(100% + 10px);right:-10px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;width:300px;
  box-shadow:0 8px 32px rgba(0,0,0,.5);
  overflow:hidden;z-index:200;
}
.bell-dd-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 16px;border-bottom:1px solid var(--border);
  background:var(--surface2);
  font-size:13px;font-weight:600;color:var(--text);letter-spacing:.02em;
}
.bell-dd-clear{background:none;border:none;color:var(--muted);font-size:11px;cursor:pointer;transition:color .2s}
.bell-dd-clear:hover{color:var(--accent)}
.bell-empty{text-align:center;padding:32px 20px;color:var(--muted);font-size:13px}
.bell-item{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--border);transition:background .15s;cursor:pointer}
.bell-item:hover{background:var(--surface2)}
.bell-item:last-child{border-bottom:none}
.bell-item-icon{font-size:24px;flex-shrink:0;margin-top:1px;line-height:1}
.bell-item-text{flex:1;font-size:12px;line-height:1.5;color:var(--text)}
.bell-item-time{font-size:10px;color:var(--muted);margin-top:3px}
.bell-item.unread{background:rgba(200,169,110,.05)}
.bell-token-amount{color:#4caf50;font-weight:700}
.nav-bell-wrap{position:relative}
.bell-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:300px;max-height:480px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.5);overflow:hidden;z-index:200;display:flex;flex-direction:column}
.bell-dd-head{padding:10px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);background:var(--surface2);flex-shrink:0}
.bell-dd-title{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:auto}
.bell-tab{background:none;border:1px solid var(--border);color:var(--muted);padding:4px 10px;border-radius:20px;font-size:11px;cursor:pointer;transition:all .2s;font-family:var(--mono);white-space:nowrap}
.bell-tab#bell-tab-sfw.active{border-color:#4caf50;color:#4caf50;background:rgba(76,175,80,.1)}
.bell-tab#bell-tab-nsfw.active{border-color:#e05c5c;color:#e05c5c;background:rgba(224,92,92,.1)}
.bell-tab:hover{opacity:.8}
.bell-dd-body{flex:1;overflow-y:auto;min-height:120px;max-height:360px;position:relative}
.bell-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px;width:100%;box-sizing:border-box}
.bell-notif{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.bell-notif:hover{background:var(--surface2)}
.bell-notif-icon{font-size:20px;flex-shrink:0}
.bell-notif-text{font-size:12px;color:var(--text);line-height:1.5}
.bell-notif-time{font-size:10px;color:var(--muted);margin-top:2px}


/* ══ BELL COUNT BADGE ══ */
.nav-bell-count{position:absolute;top:2px;right:2px;min-width:17px;height:17px;background:#e05c5c;color:#fff;font-size:10px;font-weight:700;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg);pointer-events:none;line-height:1}
.nav-bell-count.hidden{display:none}
@keyframes bellShake{0%,100%{transform:rotate(0)}15%{transform:rotate(18deg)}30%{transform:rotate(-16deg)}45%{transform:rotate(12deg)}60%{transform:rotate(-10deg)}75%{transform:rotate(6deg)}90%{transform:rotate(-4deg)}}
.nav-bell.shake{animation:bellShake .55s ease both;transform-origin:50% 0}

/* ══ REWARDS MODAL ══ */
.rewards-overlay{position:fixed;inset:0;z-index:1050;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(6px)}
.rewards-overlay.hidden{display:none}
.rewards-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.rewards-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);background:var(--surface2);flex-shrink:0}
.rewards-title{font-family:var(--display);font-size:20px;color:var(--text)}
.rewards-header-tokens{font-size:13px;font-weight:600;color:var(--accent);font-family:var(--mono);margin-left:auto;margin-right:12px}
body.nsfw-zone .rewards-header-tokens{color:#e05c5c}
.rewards-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:0;line-height:1;transition:color .2s}
.rewards-close:hover{color:var(--text)}
.rewards-sub{font-size:12px;color:var(--muted);padding:14px 22px 4px;letter-spacing:.03em;flex-shrink:0}
.rewards-body{overflow-y:auto;padding:10px 22px 22px;display:flex;flex-direction:column;gap:6px}
.rewards-section{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:14px 0 6px;font-family:var(--mono)}
.rewards-milestone{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);transition:border-color .2s}
.rewards-milestone.done{border-color:var(--accent);background:rgba(200,169,110,.06)}
body.nsfw-zone .rewards-milestone.done{border-color:#e05c5c;background:rgba(224,92,92,.06)}
.rewards-milestone-top{display:flex;align-items:center;gap:10px}
.rewards-milestone-icon{font-size:18px;flex-shrink:0;width:28px;text-align:center}
.rewards-milestone-info{flex:1;min-width:0}
.rewards-milestone-name{font-size:13px;color:var(--text);font-weight:600}
.rewards-milestone-reward{font-size:11px;color:var(--accent);margin-top:1px}
body.nsfw-zone .rewards-milestone-reward{color:#e05c5c}
.rewards-milestone-check{font-size:16px;flex-shrink:0;opacity:0;transition:opacity .3s}
.rewards-milestone.done .rewards-milestone-check{opacity:1}
.rewards-progress-wrap{height:5px;background:var(--border);border-radius:999px;overflow:hidden}
.rewards-progress-bar{height:100%;background:var(--accent);border-radius:999px;transition:width .6s ease}
body.nsfw-zone .rewards-progress-bar{background:#e05c5c}
.rewards-milestone.done .rewards-progress-bar{background:#4caf50}
.rewards-progress-label{font-size:10px;color:var(--muted);text-align:right}

/* ══ ACTIVITY TOAST (top-right, stacked) ══ */
@keyframes actToastIn{from{opacity:0;transform:translateX(24px) translateY(-6px)}to{opacity:1;transform:translateX(0) translateY(0)}}
@keyframes actToastOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(28px)}}
.activity-toast{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 6px 20px rgba(0,0,0,.55);min-width:240px;max-width:320px;pointer-events:auto;animation:actToastIn .55s cubic-bezier(.2,0,.4,1) both}
.activity-toast.hiding{animation:actToastOut .5s cubic-bezier(.2,0,.8,1) forwards}
.activity-toast-icon{font-size:18px;flex-shrink:0}
.activity-toast-text{font-size:12px;color:var(--text);line-height:1.4;flex:1}

/* ══ MILESTONE TOAST ══ */
.milestone-toast{position:fixed;top:80px;right:20px;z-index:1200;pointer-events:none}
.milestone-toast.hidden{display:none}
.milestone-toast-inner{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 18px;display:flex;flex-direction:column;gap:4px;box-shadow:0 8px 24px rgba(0,0,0,.6);min-width:220px;transform:translateY(-8px);animation:toastIn .35s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}
.milestone-toast.hiding .milestone-toast-inner{animation:toastOut 3s cubic-bezier(.2,0,.8,1) forwards}
.milestone-toast-tokens{font-size:16px;font-weight:700;color:#4caf50;font-family:var(--display)}
.milestone-toast-text{font-size:12px;color:var(--muted);line-height:1.4}
.rewards-social-btn{background:var(--accent);color:#0d0d0d;border:none;border-radius:999px;padding:5px 16px;font-size:12px;font-weight:600;font-family:var(--mono);cursor:pointer;flex-shrink:0;transition:opacity .2s}
.rewards-social-btn:hover{opacity:.8}
body.nsfw-zone .rewards-social-btn{background:#e05c5c;color:#0d0d0d}

.nav-dd-badge{background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:10px;padding:1px 7px;border-radius:10px;margin-left:auto}
.badge-18{font-size:10px;font-weight:700;color:inherit;letter-spacing:.06em;margin-left:2px;opacity:.8}

/* ── Age gate ── */
.age-gate{position:fixed;inset:0;z-index:999;background:rgba(13,13,13,.97);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(10px)}
.age-gate-box{max-width:460px;width:100%;text-align:center;border:1px solid #3a1a1a;border-radius:14px;padding:52px 40px;background:var(--surface)}
.age-gate-icon{font-size:52px;margin-bottom:18px}
.age-gate-box h2{font-family:var(--display);font-size:38px;margin-bottom:10px}
.age-gate-box p{color:var(--muted);font-size:13px;line-height:1.7;margin-bottom:28px}
.age-gate-btns{display:flex;gap:12px;justify-content:center}
.age-yes{background:var(--danger);color:#fff;border:none;padding:13px 32px;border-radius:var(--radius);font-size:14px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;transition:opacity .2s}
.age-yes:hover{opacity:.85}
.age-no{background:var(--surface2);color:var(--muted);border:1px solid var(--border);padding:13px 32px;border-radius:var(--radius);font-size:14px;letter-spacing:.06em;text-transform:uppercase;transition:all .2s}
.age-no:hover{border-color:var(--muted);color:var(--text)}
.age-legal{margin-top:22px;font-size:10px;color:var(--muted);line-height:1.6}

/* ── Pages ── */
.page{display:none;padding-bottom:80px}
#search-results-page{padding-bottom:80px;min-height:100vh;overflow-y:auto;max-height:100vh;background:transparent;position:relative;z-index:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}
#search-results-page::-webkit-scrollbar{width:4px}
#search-results-page::-webkit-scrollbar-track{background:transparent}
#search-results-page::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:4px}

/* ── Search page intro — ink drop ── */
#sr-intro-overlay{position:fixed;inset:0;z-index:10000;background:#0d0d0d;overflow:hidden;pointer-events:none}
#sr-ink-drop{position:absolute;left:50%;width:18px;height:28px;transform:translateX(-50%);top:-40px}
#sr-ink-drop svg{width:100%;height:100%}
#sr-ink-ripple{position:absolute;left:50%;top:50%;width:0;height:0;border-radius:50%;transform:translate(-50%,-50%);opacity:0}
@keyframes sr-drop-fall{0%{top:-40px;opacity:1}100%{top:calc(50% - 14px);opacity:1}}
@keyframes sr-drop-splat{0%{transform:translateX(-50%) scale(1);opacity:1}60%{transform:translateX(-50%) scale(0.4) scaleY(1.6);opacity:0.6}100%{transform:translateX(-50%) scale(0) scaleY(2.5);opacity:0}}
@keyframes sr-ripple-expand{0%{width:0;height:0;opacity:1}100%{width:300vmax;height:300vmax;opacity:1}}
@keyframes sr-overlay-reveal{0%{opacity:1}100%{opacity:0}}
.page.active{display:block;position:relative;z-index:1}

/* ── Hero ── */
.hero{padding:72px 48px 6px;border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(200,169,110,.07) 0%,transparent 70%);pointer-events:none}
body.nsfw-zone .hero::before{background:radial-gradient(ellipse at 70% 50%,rgba(224,92,92,.07) 0%,transparent 70%)}
.hero-sub{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.hero-title{font-family:var(--display);font-size:clamp(44px,6vw,82px);line-height:1.05}
.hero-title em{font-style:italic;color:var(--accent)}
.hero-content-row{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap}
.hero-counter{display:flex;align-items:center;gap:14px;padding:16px 24px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;backdrop-filter:blur(6px);flex-shrink:0;align-self:flex-end;transform:translate(12px,32px)}
.hero-counter-num{font-family:var(--display);font-size:clamp(28px,3.5vw,48px);color:var(--accent);line-height:1;font-style:italic;transition:color .3s}
.hero-counter-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#b0aa9f;line-height:1.6}
.hero-counter-tag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);display:block;margin-top:48px;text-align:right;margin-left:24px}

/* Hero shader canvas — fills hero via hero's overflow:hidden */
.hero-shader-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.2s ease;display:block}
.hero-shader-canvas.active{opacity:1}
/* All other hero children float above the canvas */
.hero>*:not(.hero-shader-canvas){position:relative;z-index:1}

/* ── Tag bar ── */
.tag-bar-wrap{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--border);padding:0 16px 0 12px;background:var(--bg)}
/* ── Pics / GIFs media toggle ── */
.media-type-toggle{display:inline-flex;align-items:center;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:3px;margin-top:8px;margin-left:-32px}
.media-type-toggle.prof-media-toggle{margin:0;margin-left:0}
.prof-gallery-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 12px 0}
.prof-gallery-toolbar .ai-filter-btn{margin-left:auto;margin-right:0}
.prof-sort-toggle{display:flex;align-items:center;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:2px}
.prof-sort-btn{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:6px;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.prof-sort-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.4)}
.media-type-btn{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:5px 14px;border-radius:16px;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:background .2s,color .2s}
.media-type-btn.active{background:var(--accent);color:#000}
.nsfw-zone .media-type-btn.active{background:#e05c5c;color:#fff}
.dice-btn{flex-shrink:0;width:34px;height:34px;border-radius:8px;border:1px solid #b8860b;background:linear-gradient(135deg,#1a1400,#2a1f0a);color:#d4a017;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .1s}
.dice-btn svg{width:18px;height:18px}
.dice-btn:hover{background:linear-gradient(135deg,#2a1f0a,#3a2e0a);color:#f0c040;border-color:#f0c040}
.dice-btn.spinning{animation:dice-spin .4s ease}
.nsfw-zone .dice-btn{border-color:#7a1a1a;background:linear-gradient(135deg,#1a0505,#2a0a0a);color:#e05c5c}
.nsfw-zone .dice-btn:hover{background:linear-gradient(135deg,#2a0a0a,#3a0f0f);color:#ff7070;border-color:#e05c5c}
@keyframes dice-spin{0%{transform:rotate(0) scale(1)}40%{transform:rotate(180deg) scale(1.2)}100%{transform:rotate(360deg) scale(1)}}
.tag-bar{display:flex;gap:8px;padding:12px 0;flex-wrap:wrap;align-items:center;border:none;flex:1;margin-left:8px}
.gallery-sort-wrap{position:relative;flex-shrink:0}
.gallery-sort-btn{width:44px;height:44px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:0}
.gallery-sort-btn:hover{border-color:var(--accent);color:var(--accent)}
.gallery-sort-chevron{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid currentColor;transition:transform .2s;flex-shrink:0}
.gallery-sort-wrap.open .gallery-sort-chevron{transform:rotate(180deg)}
.gallery-sort-drop{position:absolute;top:calc(100% + 8px);left:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:100;min-width:160px}
.gallery-sort-item{width:100%;text-align:left;background:none;border:none;color:var(--muted);padding:10px 16px;font-family:var(--mono);font-size:13px;cursor:pointer;transition:background .15s;display:block}
.gallery-sort-item:hover{background:var(--surface2);color:var(--text)}
.gallery-sort-item.active{color:var(--accent)}
.tag{background:var(--surface2);border:1px solid var(--border);color:var(--muted);padding:5px 14px;border-radius:20px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;transition:all .2s}
.tag:hover{border-color:var(--accent);color:var(--accent)}
.tag.active{background:var(--accent);border-color:var(--accent);color:#0d0d0d}

/* ── Gallery ── */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2px;padding:2px;position:relative}
:root { --card-ratio: 9/16; }
.card{position:relative;aspect-ratio:var(--card-ratio);overflow:hidden;background:var(--surface2);cursor:pointer;animation:cardFadeIn .3s ease both}
/* Video placeholder overlay cards */
.vid-placeholder{position:absolute;inset:-2px;z-index:5;background:#0d0d0d;display:flex;align-items:center;justify-content:center;pointer-events:all;transition:opacity .5s ease;overflow:hidden}
.vid-placeholder.fade-out{opacity:0;pointer-events:none}
.vid-placeholder-logo{font-family:var(--display);font-size:clamp(16px,1.8vw,24px);letter-spacing:.02em;user-select:none;white-space:nowrap;color:rgba(255,255,255,.8);animation:ph-bounce .7s ease-in-out infinite}
.vid-placeholder-logo span{color:rgba(200,169,110,.95)}
body.nsfw-zone .vid-placeholder-logo span{color:rgba(224,92,92,.95)}
@keyframes ph-bounce{0%,100%{transform:translateY(0);opacity:.8}50%{transform:translateY(-6px);opacity:1}}
.card video{background:var(--surface2)}
.card img{background:var(--surface2)}
@keyframes cardFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.card img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform .4s ease}
.card:hover img{transform:scale(1.05)}
.card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 50%);opacity:0;transition:opacity .3s;display:flex;flex-direction:column;justify-content:flex-end;padding:16px}
.card:hover .card-overlay{opacity:1}
.card-cat{display:inline-block;align-self:flex-start;background:rgba(200,169,110,.22);color:var(--accent);padding:3px 9px;border-radius:4px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;max-width:fit-content}
.card-meta{font-size:12px;color:rgba(255,255,255,.65)}
.card-follow-btn{background:rgba(200,169,110,.85);color:#0d0d0d;border:none;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;cursor:pointer;font-family:var(--mono);letter-spacing:.05em;flex-shrink:0;transition:background .2s}
.card-follow-btn:hover{background:var(--accent)}
.card-follow-btn.nsfw{background:rgba(224,92,92,.85);color:#0d0d0d}
.card-follow-btn.nsfw:hover{background:#e05c5c;color:#0d0d0d}
.card-follow-btn.following{background:rgba(255,255,255,.15);color:rgba(255,255,255,.7)}
.card-follow-btn.following:hover{background:rgba(224,92,92,.3);color:#e05c5c}
.card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.card-tag{background:rgba(200,169,110,.2);color:var(--accent);padding:2px 7px;border-radius:3px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.like-btn{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);border-radius:50%;width:36px;height:36px;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .4s,border-color .4s,color .2s,transform .2s;z-index:2}
.like-btn.like-pop-gold{animation:like-pop-gold 1.1s cubic-bezier(.36,.07,.19,.97) forwards}
.like-btn.like-pop-red {animation:like-pop-red  1.1s cubic-bezier(.36,.07,.19,.97) forwards}
@keyframes like-pop-gold{
  0%  {background:rgba(0,0,0,.55);border-color:rgba(255,255,255,.15);transform:scale(1);    color:rgba(255,255,255,.7)}
  10% {background:#b8860b;        border-color:#b8860b;              transform:scale(1.35); color:#fff}
  25% {background:#8B6914;        border-color:#8B6914;              transform:scale(0.9);  color:#fff}
  40% {background:#b8860b;        border-color:#b8860b;              transform:scale(1.15); color:#fff}
  65% {background:#b8860b;        border-color:#b8860b;              transform:scale(1.05); color:#fff}
  100%{background:rgba(0,0,0,.55);border-color:rgba(255,255,255,.15);transform:scale(1);    color:#f5a500}
}
@keyframes like-pop-red{
  0%  {background:rgba(0,0,0,.55);border-color:rgba(255,255,255,.15);transform:scale(1);    color:rgba(255,255,255,.7)}
  10% {background:#e05c5c;        border-color:#e05c5c;              transform:scale(1.35); color:#fff}
  25% {background:#c0392b;        border-color:#c0392b;              transform:scale(0.9);  color:#fff}
  40% {background:#e05c5c;        border-color:#e05c5c;              transform:scale(1.15); color:#fff}
  65% {background:#e05c5c;        border-color:#e05c5c;              transform:scale(1.05); color:#fff}
  100%{background:rgba(0,0,0,.55);border-color:rgba(255,255,255,.15);transform:scale(1);    color:#e05c5c}
}
.like-burst{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none;z-index:10;animation:like-burst 1.4s cubic-bezier(.17,.67,.35,1.2) forwards;line-height:0}
@keyframes like-burst{
  0%  {transform:translate(-50%,-50%) scale(0);   opacity:1}
  15% {transform:translate(-50%,-50%) scale(1.4); opacity:1}
  35% {transform:translate(-50%,-50%) scale(1.1); opacity:1}
  55% {transform:translate(-50%,-50%) scale(1.25);opacity:1}
  100%{transform:translate(-50%,-50%) scale(1.6); opacity:0}
}
.like-particles{position:absolute;top:50%;left:50%;pointer-events:none;z-index:9}
.like-particle{position:absolute;width:10px;height:10px;border-radius:50%;background:#e05c5c;animation:like-particle .6s ease forwards}
.like-spark{position:absolute;width:4px;height:22px;border-radius:3px;transform-origin:center bottom;pointer-events:none;z-index:9}
@keyframes like-particle{
  0%  {transform:translate(-50%,-50%) scale(1);opacity:1}
  100%{opacity:0}
}
@keyframes like-spark{
  0%  {transform:translate(-50%,-50%) scaleY(1);opacity:1}
  40% {opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scaleY(0.2)}
}
.like-btn:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3);color:#fff;transform:scale(1.1)}
.like-btn.liked{background:rgba(0,0,0,.55);border-color:rgba(255,255,255,.15);color:#f5a500}
.nsfw-zone .like-btn.liked{color:#e05c5c}

/* ── Profile ── */
.profile-header{display:flex;gap:40px;align-items:flex-start;padding:56px 48px 40px;border-bottom:1px solid var(--border)}
.profile-avatar-wrap{position:relative;flex-shrink:0}
.profile-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;border:2px solid var(--accent)}
.profile-badge{position:absolute;bottom:0;right:0;background:var(--accent);color:#0d0d0d;font-size:10px;padding:2px 7px;border-radius:10px;letter-spacing:.06em}
.profile-username{font-family:var(--display);font-size:32px;margin-bottom:8px}
.profile-bio{color:var(--muted);margin-bottom:20px;max-width:480px}
.profile-stats{display:flex;gap:28px;font-size:13px;color:var(--muted)}
.profile-stats strong{color:var(--accent);font-size:18px;display:block}
.section-title{font-family:var(--display);font-size:22px;padding:28px 32px 12px}

/* ── Page header ── */
.page-header{padding:56px 48px 32px}
.page-header h2{font-family:var(--display);font-size:40px;margin-bottom:6px}
.page-sub{color:#b0aa9f;font-size:13px}

/* ── Upload ── */
.upload-container{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:48px;max-width:960px}
.upload-drop{border:2px dashed var(--border);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 40px;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s;aspect-ratio:1}
.upload-drop:hover,.upload-drop.drag-over{border-color:var(--accent);color:var(--accent)}
.drop-icon{font-size:40px}
.upload-form{display:flex;flex-direction:column;gap:18px}
.upload-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.upload-form textarea{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;color:var(--text);font-size:13px;font-family:var(--mono);transition:border-color .2s;line-height:1.5}
.upload-form textarea:focus{outline:none;border-color:var(--accent)}
.tag-pill-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:7px 10px;min-height:42px;cursor:text;transition:border-color .2s}
.tag-pill-wrap:focus-within{border-color:var(--accent)}
.upload-form.nsfw-dest .tag-pill-wrap:focus-within{border-color:#e05c5c}
.tag-pill-list{display:contents}
.tag-pill{display:inline-flex;align-items:center;gap:4px;background:rgba(200,169,110,.15);border:1px solid rgba(200,169,110,.3);color:var(--accent);font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:3px 8px;border-radius:20px;white-space:nowrap}
.nsfw-zone .tag-pill,.upload-form.nsfw-dest .tag-pill{background:rgba(224,92,92,.12);border-color:rgba(224,92,92,.3);color:#e05c5c}
.tag-pill-x{cursor:pointer;font-size:12px;line-height:1;color:rgba(255,255,255,.4);margin-left:2px;padding:0 1px}
.tag-pill-x:hover{color:#fff}
.tag-pill-text{background:none;border:none;outline:none;color:var(--text);font-family:var(--mono);font-size:13px;padding:2px 2px;min-width:60px;flex:1;width:auto}
.preview-img{width:100%;max-height:600px;height:auto;border-radius:var(--radius);object-fit:contain;display:block;background:transparent;margin:0 auto}
/* Clip preview — tall enough to show the 9:16 video properly */
video.vtg-clip-prev{width:100%;min-height:380px;max-height:600px;object-fit:contain;display:block;border-radius:10px;background:var(--surface2);border:1px solid var(--border);margin-bottom:8px}
video.vtg-clip-prev::-webkit-media-controls-picture-in-picture-button,
video.mp4-prev::-webkit-media-controls-picture-in-picture-button,
video.mp4-prev::-webkit-media-controls-fullscreen-button,
video.vtg-clip-prev::-webkit-media-controls-fullscreen-button{display:none!important}
video.mp4-prev{display:block}
.btn-primary{background:var(--accent);color:#0d0d0d;border:none;padding:12px 28px;border-radius:var(--radius);font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;transition:background .2s,transform .15s}
.btn-primary:hover{background:var(--accent2);transform:translateY(-1px)}
.upload-msg{font-size:13px;color:var(--accent);min-height:20px}
/* ── Upload converter badge ── */
.upload-conv-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.3);color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;border-radius:20px;cursor:pointer;transition:all .2s;width:fit-content;margin-left:120px}
.preview-clear{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:2}
.preview-clear:hover{background:#e05c5c;border-color:#e05c5c;color:#fff}
.upload-conv-badge:hover{background:rgba(200,169,110,.2);border-color:var(--accent)}
.upload-form.nsfw-dest .upload-conv-badge{background:rgba(224,92,92,.1);border-color:rgba(224,92,92,.3);color:#e05c5c}
.upload-form.nsfw-dest .upload-conv-badge:hover{background:rgba(224,92,92,.2);border-color:#e05c5c}
.upload-form.nsfw-dest select,.upload-form.nsfw-dest input{border-color:rgba(224,92,92,.3)}
.upload-form.nsfw-dest select:focus,.upload-form.nsfw-dest input:focus{border-color:#e05c5c}
.upload-form.nsfw-dest .btn-primary{background:#e05c5c;color:#fff}
.upload-type-bar{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.upload-type-toggle{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:3px;gap:2px}
.upload-type-btn{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 16px;border-radius:20px;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:all .2s}
.upload-type-btn.active{background:var(--accent);color:#0d0d0d}
/* ── Video to GIF converter ── */
.gif-converter{border:1px solid var(--border);border-radius:10px;padding:20px;background:var(--surface);display:flex;flex-direction:column;gap:12px}
.gif-converter-title{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}
.gif-conv-drop{border:2px dashed var(--border);border-radius:8px;padding:24px 16px;text-align:center;cursor:pointer;color:var(--muted);font-size:13px;transition:border-color .2s}
.gif-conv-drop:hover{border-color:var(--accent);color:var(--accent)}
.gif-conv-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.gif-conv-controls label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}
.gif-conv-controls input[type=range]{width:100px;accent-color:var(--accent)}
.gif-conv-preview{max-width:100%;border-radius:6px;border:1px solid var(--border)}
.gif-conv-progress{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden}
.gif-conv-bar{height:100%;background:var(--accent);width:0%;transition:width .2s;border-radius:2px}

/* ── Modal ── */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:800;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}

/* Box — two column */

/* Left image — bigger */
.modal-box{position:relative;display:grid;grid-template-columns:1fr 1fr 360px;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;max-width:1040px;width:100%;max-height:84vh}
.modal-img-side{grid-column:1/3;display:flex;align-items:stretch;background:#000;overflow:hidden;height:84vh}
.modal-media-wrap{width:100%;height:100%;overflow:hidden;display:flex;justify-content:center;align-items:center;background:#000;flex-shrink:0;position:relative;padding:0 12px;box-sizing:border-box}
/* Slide system — viewport uses inset:0 12px so it sits inside the padding, giving videos the same side bars */
.modal-slide-viewport{position:absolute;top:0;bottom:0;left:12px;right:12px;overflow:hidden}
.modal-slide-strip{display:flex;flex-direction:column;width:100%;}
.modal-slide-panel{width:100%;height:33.333%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#000;position:relative;overflow:hidden}
.modal-slide-panel img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.modal-slide-panel.is-image{padding:0 10px}
.modal-slide-panel video{width:100%;height:100%;object-fit:cover;display:block}
/* Legacy img/video — sit inside the padding naturally */
.modal-media-wrap>img{width:calc(100% + 16px);height:100%;object-fit:cover;object-position:center;display:block;margin:0 -8px}
.modal-media-wrap>video{width:100%;height:100%;object-fit:cover;display:block}
/* TikTok-style slide: viewport clips the strip */
.modal-info-side{grid-column:3/4;width:100%;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;border-left:1px solid var(--border);height:84vh;max-height:84vh}
.modal-playpause-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0.5);pointer-events:none;opacity:0;z-index:10;transition:none}
.modal-playpause-icon.flash{animation:pp-flash .5s ease-out forwards}
@keyframes pp-flash{0%{opacity:1;transform:translate(-50%,-50%) scale(0.6)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-50%) scale(0.9)}}

/* Right info panel */

/* Close */
.modal-close{position:absolute;top:12px;right:14px;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.15);color:#fff;width:32px;height:32px;border-radius:50%;font-size:14px;z-index:10;display:flex;align-items:center;justify-content:center;transition:background .2s}
.modal-close:hover{background:var(--danger);border-color:var(--danger)}
.modal-img-side.showing-image .modal-close{right:28px}

/* Uploader row — clickable */
.modal-uploader-row{display:flex;align-items:center;gap:10px;padding:16px;cursor:pointer;transition:background .2s}
.modal-uploader-row:hover{background:var(--surface2)}
.modal-uploader-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#0d0d0d;border:2px solid var(--accent)}
.modal-uploader-info{flex:1;display:flex;flex-direction:column;gap:1px}
.modal-uploader-name{font-size:13px;font-weight:600;color:var(--text)}
.modal-uploader-sub{font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.modal-follow-btn{background:var(--accent);color:#0d0d0d;border:none;padding:5px 14px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;transition:background .2s;flex-shrink:0}
.modal-follow-btn:hover{background:var(--accent2)}

.modal-divider{height:1px;background:var(--border)}

/* Stats row — views + likes */
.modal-stats-row{display:flex;gap:0;border-bottom:1px solid var(--border)}
.modal-stat{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;font-size:12px;color:var(--muted);border-right:1px solid var(--border)}
.modal-stat:last-child{border-right:none}
.modal-stat-icon{font-size:14px}
.modal-stat-num{font-weight:600;color:var(--text);font-size:13px}

/* Content meta */
.modal-content-meta{padding:16px 16px 12px;}
.modal-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.modal-tags:empty{display:none}
.modal-user-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.modal-user-tags:empty{display:none}
.modal-hashtag{color:rgba(255,255,255,.55);font-family:var(--mono);font-size:11px;letter-spacing:.04em}

/* Vertical nav arrows — stacked on right edge of image */
.modal-nav-stack{position:absolute;right:385px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px;z-index:10}
.modal-nav-btn{width:40px;height:40px;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.15);color:#fff;border-radius:10px;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;line-height:1}
.modal-nav-btn:hover{background:var(--accent);border-color:var(--accent);color:#0d0d0d}
.modal-nav-btn:disabled{opacity:.2;cursor:default}
.modal-nav-btn:disabled:hover{background:rgba(0,0,0,.6);border-color:rgba(255,255,255,.15);color:#fff}

/* Actions */
/* Modal TikTok-style floating hearts */
.modal-tiktok-heart{
  position:fixed;
  pointer-events:none;
  animation:tiktok-heart-rise 1.3s ease-out forwards;
  z-index:9999;
  user-select:none;
  will-change:transform,opacity;
}
@keyframes tiktok-heart-rise{
  0%  {opacity:1;transform:translateY(0)    scale(0.3)}
  15% {opacity:1;transform:translateY(-12px) scale(1.35)}
  30% {opacity:.9;transform:translateY(-28px) scale(1.0)}
  55% {opacity:.4;transform:translateY(-55px) scale(1.05)}
  100%{opacity:0;transform:translateY(-80px)  scale(0.85)}
}
.modal-actions{display:flex;border-top:1px solid var(--border)}
.modal-action-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;background:none;border:none;border-right:1px solid var(--border);color:var(--muted);transition:all .2s;cursor:pointer}
.modal-action-btn:last-child{border-right:none}
.modal-action-btn:hover{background:var(--surface2);color:var(--text)}
.modal-action-btn.liked .action-icon{color:var(--liked)}
.modal-action-btn.liked .action-label{color:var(--liked)}
body:not(.nsfw-zone) .modal-action-btn.liked .action-icon{color:#f5a500}
body:not(.nsfw-zone) .modal-action-btn.liked .action-label{color:#f5a500}
.action-icon{font-size:18px;line-height:1}
.action-label{font-size:10px;letter-spacing:.06em;text-transform:uppercase}

/* Share toast */
.modal-share-toast{position:absolute;bottom:64px;left:50%;transform:translateX(-50%);background:var(--accent);color:#0d0d0d;padding:7px 18px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none}

/* Counts on cards */
.card-counts{display:flex;gap:8px;position:absolute;bottom:10px;left:10px;z-index:3}
.card-count{background:rgba(0,0,0,.6);color:#fff;font-size:10px;padding:2px 7px;border-radius:10px;display:flex;align-items:center;gap:3px}

@media(max-width:780px){
  .modal-box{flex-direction:column;max-height:95vh}
  .modal-info-side{width:100%;border-top:1px solid var(--border);border-left:none}
  .modal-img-side{min-height:240px;max-height:50vw;flex:none}
  .modal-nav-stack{display:none}
  .modal-close{right:12px;top:12px}
}

/* ── Categories ── */
@keyframes catPageIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
#sfw-categories.page.active,#nsfw-categories.page.active{animation:catPageIn .65s cubic-bezier(.16,1,.3,1) both}
.cat-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;padding:24px 28px}
.cat-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color .25s,transform .25s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:0;position:relative}
.cat-card:hover{border-color:var(--accent);transform:translateY(-3px)}
.cat-card img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;flex-shrink:0}
.cat-img-placeholder{width:100%;aspect-ratio:1/1;background:var(--surface);display:block}
.cat-name{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-weight:500;padding:9px 8px 3px}
.cat-count{font-size:10px;color:#b0aa9f;padding-bottom:5px}
.cat-gallery-title{font-family:var(--display);font-size:22px;padding:28px 32px 12px;display:flex;align-items:center;gap:10px}
.cat-ai-filter-btn{margin-left:0!important;margin-right:0!important;height:32px;padding:0 11px;font-size:10px}
.back-btn{font-family:var(--mono);font-size:12px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);padding:4px 12px;border-radius:4px;cursor:pointer;transition:color .2s,border-color .2s}
.back-btn:hover{color:var(--accent);border-color:var(--accent)}

/* ── Profile redesign ── */
.prof-wrap{max-width:960px;margin:0 auto;padding-bottom:60px}
#sfw-pgallery,#nsfw-pgallery,#sfw-pgallery-liked,#nsfw-pgallery-liked,#pub-gallery{grid-template-columns:repeat(3,1fr)}
.prof-cover{height:280px;background:linear-gradient(135deg,#1a1a1a 0%,#2a1f0f 100%);position:relative;overflow:visible}
body.nsfw-zone .prof-cover{background:linear-gradient(135deg,#1a0a0a 0%,#2a0f0f 100%)}
.cover-edit-btn{
  position:absolute;top:14px;right:14px;
  background:rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.25);
  color:rgba(255,255,255,.9);
  font-size:12px;padding:6px 14px;border-radius:20px;
  cursor:pointer;transition:all .2s;
  backdrop-filter:blur(6px);
  letter-spacing:.04em;display:flex;align-items:center;gap:6px;
}
.cover-edit-btn:hover{background:rgba(0,0,0,.7);border-color:rgba(255,255,255,.5);color:#fff}
.prof-avatar-outer{position:absolute;bottom:-50px;left:40px}
.prof-avatar-ring{width:130px;height:130px;border-radius:50%;border:5px solid var(--bg);overflow:hidden;background:var(--surface2)}
.prof-avatar{width:100%;height:100%;object-fit:cover;display:block}
.avatar-edit-btn{position:absolute;bottom:8px;right:4px;width:32px;height:32px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);color:#0d0d0d;font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}
.avatar-edit-btn:hover{background:var(--accent2)}
.prof-body{padding:60px 40px 0}
.prof-top-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.prof-identity{flex:1}
.prof-name-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.prof-handle{font-size:13px;color:var(--muted);display:block;margin-bottom:8px}
.prof-display-name{font-family:var(--display);font-size:28px;color:var(--text)}
.prof-handle{font-size:14px;color:var(--muted)}
.prof-bio-text{color:var(--text);font-size:14px;line-height:1.6;margin-bottom:10px;max-width:520px}
.prof-meta-row{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.prof-meta-item{display:flex;align-items:center;gap:5px}
.prof-link{color:var(--accent)}
.prof-link:hover{text-decoration:underline}
.btn-edit-profile{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:8px 18px;border-radius:var(--radius);font-size:13px;white-space:nowrap;transition:all .2s;flex-shrink:0}
.btn-edit-profile:hover{border-color:var(--accent);color:var(--accent)}
.prof-stats-bar{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:28px;background:var(--surface)}
.prof-stat{flex:1;text-align:center;padding:16px 8px;border-right:1px solid var(--border)}
.prof-stat:last-child{border-right:none}
.prof-stat strong{display:block;font-size:22px;color:var(--accent);font-family:var(--display)}
.prof-stat span{font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.prof-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:2px}
.prof-tab{background:none;border:none;color:var(--muted);font-size:13px;padding:10px 22px;letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}
.prof-tab:hover{color:var(--text)}
.prof-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.prof-tab-content{display:none;padding-top:4px}
.prof-tab-content.active{display:block}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:24px 0}
.about-card{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:14px 18px}
.about-card-full{grid-column:1/-1}
.about-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.about-val{font-size:14px;color:var(--text)}

/* ── Playlists ── */
.playlist-header{display:flex;align-items:center;justify-content:space-between;padding:20px 32px 8px}
.btn-new-playlist{background:var(--accent);color:#0d0d0d;border:none;padding:7px 16px;border-radius:var(--radius);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .2s}
.btn-new-playlist:hover{background:var(--accent2)}
.playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;padding:8px 32px 32px}
.pl-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color .2s,transform .2s}
.pl-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.pl-card-thumb{height:120px;background:var(--surface);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;overflow:hidden}
.pl-card-thumb img{width:100%;height:100%;object-fit:cover}
.pl-empty-thumb{display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--muted);grid-column:1/-1;grid-row:1/-1}
.pl-card-info{padding:12px 14px}
.pl-card-name{font-size:14px;font-weight:500;color:var(--text);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-card-count{font-size:11px;color:var(--muted)}
.pl-card-actions{display:flex;padding:0 14px 12px}
.pl-privacy-bar{display:flex;gap:6px;align-items:center}
.pl-privacy-btn{background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:600;padding:5px 14px;border-radius:20px;cursor:pointer;transition:all .2s;letter-spacing:.04em}
.pl-privacy-btn.active{background:var(--accent);border-color:var(--accent);color:#0d0d0d}
.pl-card-private-badge{font-size:10px;color:var(--muted);margin-left:6px;opacity:.7}
.pl-card-del{background:none;border:1px solid var(--border);color:var(--muted);font-size:11px;padding:3px 10px;border-radius:4px;cursor:pointer;transition:all .2s;margin-left:auto}
.pl-card-del:hover{border-color:var(--danger);color:var(--danger)}
.pl-overlay{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:24px}
#playlist-modal,#new-playlist-modal{z-index:900}
.pl-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:420px;overflow:hidden}
.pl-box-sm{max-width:380px}
.pl-box-lg{max-width:860px;max-height:85vh;display:flex;flex-direction:column}
.pl-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface2)}
.pl-head h3{font-family:var(--display);font-size:18px}
.pl-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;transition:color .2s}
.pl-close:hover{color:var(--text)}
.pl-body{padding:16px 20px;display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto}
.pl-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:all .2s;background:var(--surface2)}
.pl-item:hover{border-color:var(--accent);background:var(--surface)}
.pl-item-thumb{width:44px;height:44px;border-radius:6px;object-fit:cover;background:var(--surface);flex-shrink:0}
.pl-item-info{flex:1}
.pl-item-name{font-size:13px;font-weight:500;color:var(--text)}
.pl-item-count{font-size:11px;color:var(--muted)}
.pl-item-check{font-size:18px;color:var(--accent)}
.pl-empty-state{text-align:center;padding:24px;color:var(--muted);font-size:13px}
.pl-foot{padding:12px 20px;border-top:1px solid var(--border)}
.pl-new-btn{width:100%;background:none;border:1px dashed var(--border);color:var(--muted);padding:10px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s}
.pl-new-btn:hover{border-color:var(--accent);color:var(--accent)}
.pl-toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:var(--accent);color:#0d0d0d;padding:8px 20px;border-radius:20px;font-size:12px;font-weight:600;z-index:800;pointer-events:none}

/* ── Profile editor modal ── */
.prof-editor-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(8px)}
.prof-editor-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:500px;overflow:hidden}
.prof-editor-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--border);background:var(--surface2)}
.prof-editor-head h3{font-family:var(--display);font-size:20px}
.prof-editor-close{background:none;border:none;color:var(--muted);font-size:20px;transition:color .2s}
.prof-editor-close:hover{color:var(--text)}
.prof-editor-settings-btn{background:none;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:13px;padding:4px 10px;border-radius:6px;cursor:pointer;transition:background .2s}
.prof-editor-settings-btn:hover{background:rgba(255,255,255,.1)}
.prof-editor-body{padding:24px;display:flex;flex-direction:column;gap:20px;max-height:65vh;overflow-y:auto}
.prof-editor-avatar-row{display:flex;justify-content:center}
.prof-editor-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}
.prof-editor-avatar-wrap img{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--accent)}
.editor-avatar-btn{background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size:12px;padding:4px 14px;border-radius:12px;cursor:pointer;transition:all .2s}
.editor-avatar-btn:hover{border-color:var(--accent);color:var(--accent)}
.prof-editor-fields{display:flex;flex-direction:column;gap:14px}
.prof-editor-label{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.prof-editor-label textarea{font-family:var(--mono);resize:vertical;min-height:80px;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:10px 12px;font-size:14px;outline:none;transition:border-color .2s}
.prof-editor-label textarea:focus{border-color:var(--accent)}
.prof-editor-handle-wrap{display:flex;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s}
.prof-editor-handle-wrap:focus-within{border-color:var(--accent)}
.prof-editor-at{padding:0 10px;color:var(--muted);font-size:14px;border-right:1px solid var(--border);background:var(--surface);line-height:42px}
.prof-editor-handle-wrap input{border:none;background:transparent;border-radius:0}
.prof-editor-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border);background:var(--surface2)}
.prof-editor-cancel{background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:9px 20px;border-radius:var(--radius);font-size:13px;transition:all .2s}
.prof-editor-cancel:hover{color:var(--text)}
.prof-editor-save{background:var(--accent);border:none;color:#0d0d0d;padding:9px 22px;border-radius:var(--radius);font-size:13px;font-weight:600;transition:background .2s}
.prof-editor-save:hover{background:var(--accent2)}

@media(max-width:600px){
  .prof-body{padding:64px 20px 0}
  .prof-top-row{flex-direction:column}
  .about-grid{grid-template-columns:1fr}
  .about-card-full{grid-column:1}
  .prof-avatar-outer{left:20px}
}
.hidden{display:none!important}

/* ── Footer ── */
.site-footer{
  background:#0a0a0a;
  border-top:1px solid var(--border);
  padding:0;margin-top:auto;
  position:relative;overflow:hidden;
}
.site-footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
}
.footer-inner{
  max-width:1200px;margin:0 auto;padding:64px 48px 0;
}
.footer-top{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.06);
}
.footer-brand{display:block}
.footer-logo{font-family:var(--display);font-size:28px;margin-bottom:12px;letter-spacing:-.01em;color:#fff}
.footer-logo span{color:var(--accent)}
.footer-tagline{color:var(--muted);font-size:13px;line-height:1.8;max-width:240px;margin-bottom:24px}
.footer-socials{display:flex;gap:8px;flex-wrap:wrap}
.social-btn{
  width:38px;height:38px;border-radius:10px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);
  transition:all .2s;text-decoration:none;
}
.social-btn svg{transition:transform .2s}
.social-btn:hover{background:var(--accent);border-color:var(--accent);color:#0d0d0d;transform:translateY(-2px)}
.social-btn:hover svg{transform:scale(1.1)}
.footer-col{display:block}
.footer-col h4{
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin-bottom:18px;font-weight:600;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-col ul li a{
  color:rgba(255,255,255,.45);font-size:13px;transition:all .2s;
  text-decoration:none;display:inline-flex;align-items:center;gap:6px;
}
.footer-col ul li a::before{content:'';width:0;height:1px;background:var(--accent);transition:width .2s;display:inline-block}
.footer-col ul li a:hover{color:var(--text);padding-left:4px}
.footer-col ul li a:hover::before{width:8px}

/* Footer mid strip */
.footer-mid{
  display:flex;align-items:center;justify-content:space-between;
  padding:24px 0;border-bottom:1px solid rgba(255,255,255,.06);
  flex-wrap:wrap;gap:16px;
}
.footer-mid-label{font-size:11px;color:rgba(255,255,255,.3);letter-spacing:.08em;text-transform:uppercase}
.footer-badges{display:flex;gap:8px;flex-wrap:wrap}
.footer-badge{
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 12px;border-radius:20px;
  border:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.35);
}
.footer-badge.age{border-color:rgba(201,64,64,.5);color:#c94040}

/* Footer bottom */
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:12px;padding:20px 0 32px;
}
.footer-copy{font-size:11px;color:rgba(255,255,255,.25);line-height:1.6}
.footer-copy strong{color:rgba(255,255,255,.4)}
.footer-legal-links{display:flex;gap:16px;flex-wrap:wrap}
.footer-legal-links a{font-size:11px;color:rgba(255,255,255,.25);text-decoration:none;transition:color .2s}
.footer-legal-links a:hover{color:var(--accent)}

@media(max-width:860px){
  .footer-top{grid-template-columns:1fr 1fr;gap:32px}
  .footer-inner{padding:48px 24px 0}
}
@media(max-width:500px){
  .footer-top{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .footer-mid{flex-direction:column;align-items:flex-start}
}

@media(max-width:720px){
  .upload-container{grid-template-columns:1fr;padding:24px}
  .profile-header{flex-direction:column;gap:20px;padding:32px 24px}
  .navbar{padding:0 16px;gap:8px}
  .hero{padding:48px 24px 32px}
  .nav-profile-name{display:none}
}

/* ══ 3D CAROUSEL ══ */
.carousel-wrap{position:relative;width:100%;height:280px;display:flex;align-items:center;justify-content:center;margin:0 0 8px;overflow:hidden;user-select:none;-webkit-user-select:none}
.carousel-wrap.carousel-hero{width:380px;height:200px;flex-shrink:0;margin:0;overflow:visible}
.carousel-stage{position:relative;width:100%;height:260px;perspective:900px;transform-style:preserve-3d}
.carousel-hero .carousel-stage{height:190px;perspective:600px}
.carousel-item{position:absolute;top:50%;left:50%;width:180px;height:230px;margin:-115px -90px;border-radius:10px;overflow:hidden;cursor:pointer;transition:box-shadow .3s;backface-visibility:hidden;border:1px solid rgba(255,255,255,.08);user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
.carousel-hero .carousel-item{width:120px;height:155px;margin:-77px -60px;border-radius:7px}
.carousel-item img,.carousel-item video,.carousel-item canvas{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;user-select:none;-webkit-user-select:none}
.carousel-item-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px 12px;background:linear-gradient(transparent,rgba(0,0,0,.85));font-size:11px;color:#fff;font-family:var(--mono);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:1}
.carousel-item.front{box-shadow:0 8px 40px rgba(0,0,0,.6),0 0 0 2px var(--accent)}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.15);color:#fff;width:40px;height:40px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.carousel-arrow:hover{background:var(--accent);border-color:var(--accent);color:#0d0d0d}
.carousel-arrow-left{left:12px}
.carousel-arrow-right{right:12px}
.carousel-hero .carousel-arrow-left{left:-143px}
.carousel-hero .carousel-arrow-right{right:-143px}
.nsfw-zone .carousel-item.front{box-shadow:0 8px 40px rgba(0,0,0,.6),0 0 0 2px #e05c5c}

/* ══ SITE LOADER ══ */
#site-loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0d0d0d;animation:loader-exit .6s ease 2.8s forwards}
@keyframes loader-exit{0%{opacity:1;pointer-events:all}100%{opacity:0;pointer-events:none}}
.loader-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(200,169,110,.11) 0%,transparent 65%)}
.loader-scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.12) 2px,rgba(0,0,0,.12) 4px);pointer-events:none;opacity:.35}
.loader-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:32px}
.loader-logo{font-family:'DM Serif Display',Georgia,serif;font-size:clamp(64px,12vw,100px);letter-spacing:-.01em;line-height:1;animation:loader-logo-in .8s cubic-bezier(.16,1,.3,1) .15s both}
@keyframes loader-logo-in{0%{opacity:0;transform:translateY(28px) scale(.92);filter:blur(8px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
.loader-gif{color:#fff}
.loader-lock{color:#c8a96e}
.loader-bar-wrap{width:200px;height:2px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;animation:loader-fade-in .4s ease .8s both}
.loader-bar{height:100%;width:0;background:linear-gradient(90deg,#8c6b3e,#c8a96e,#e8d5a3,#c8a96e);border-radius:2px;animation:loader-bar-fill 1.6s cubic-bezier(.4,0,.15,1) .8s both;box-shadow:0 0 16px rgba(200,169,110,.7)}
@keyframes loader-bar-fill{0%{width:0;opacity:1}90%{width:100%;opacity:1}100%{width:100%;opacity:0}}
.loader-tag{font-family:'DM Mono','Courier New',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(200,169,110,.45);animation:loader-fade-in .5s ease 1.1s both}
@keyframes loader-fade-in{from{opacity:0}to{opacity:1}}
.loader-wipe{position:absolute;inset:0;background:#0d0d0d;transform:translateX(-100%);animation:loader-wipe .5s cubic-bezier(.76,0,.24,1) 2.6s both}
@keyframes loader-wipe{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}


/* Bubble button */
.scroll-top-btn{
  position:fixed;bottom:88px;right:27px;z-index:800;
  width:40px;height:40px;border-radius:50%;
  background:var(--surface2);
  border:none;
  color:var(--accent);
  display:none;align-items:center;justify-content:center;
  cursor:pointer;
  transition:color .2s,transform .2s;
}
.scroll-top-btn.visible{display:flex}
.scroll-top-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}
.ai-bubble{
  position:fixed;bottom:24px;right:24px;z-index:800;
  width:54px;height:54px;border-radius:50%;
  background:var(--surface2);
  border:none;
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s;
  cursor:pointer;
}
.ai-bubble:hover{transform:scale(1.08)}
.ai-bubble-dot{position:absolute;top:3px;right:3px;width:11px;height:11px;border-radius:50%;background:#4caf50;border:2px solid var(--bg)}

/* Chat window */
.ai-chat{
  position:fixed;bottom:88px;right:24px;z-index:800;
  width:320px;background:var(--surface);
  border:1px solid var(--border);border-radius:16px;
  box-shadow:0 8px 40px rgba(0,0,0,.6);
  display:flex;flex-direction:column;overflow:hidden;
  transform:scale(.92) translateY(10px);
  opacity:0;pointer-events:none;
  transition:transform .22s ease,opacity .22s ease;
  transform-origin:bottom right;
}
.ai-chat.open{transform:scale(1) translateY(0);opacity:1;pointer-events:all}

/* Header */
.ai-chat-head{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;border-bottom:1px solid var(--border);
  background:var(--surface2);
}
.ai-head-avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,#c8a96e 0%,#7a5530 100%);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.ai-head-info{flex:1}
.ai-head-name{font-size:13px;font-weight:500;color:var(--text)}
.ai-head-status{font-size:10px;color:#4caf50;letter-spacing:.06em}
.ai-chat-close{background:none;border:none;color:var(--muted);font-size:18px;padding:0 4px;transition:color .2s}
.ai-chat-close:hover{color:var(--text)}

/* Messages */
.ai-messages{
  flex:1;padding:16px;display:flex;flex-direction:column;gap:10px;
  overflow-y:auto;max-height:300px;min-height:220px;
}
.ai-msg{max-width:85%;font-size:13px;line-height:1.5;padding:9px 12px;border-radius:12px}
.ai-msg.bot{background:var(--surface2);color:var(--text);border-bottom-left-radius:3px;align-self:flex-start}
.ai-msg.user{background:var(--accent);color:#0d0d0d;border-bottom-right-radius:3px;align-self:flex-end}
.ai-msg.typing{color:var(--muted);font-style:italic}

/* Quick replies */
.ai-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px}
.ai-qbtn{
  background:var(--surface2);border:1px solid var(--border);
  color:var(--muted);font-size:11px;padding:4px 10px;border-radius:12px;
  transition:all .2s;letter-spacing:.03em;
}
.ai-qbtn:hover{border-color:var(--accent);color:var(--accent)}

/* Input row */
.ai-input-row{
  display:flex;gap:8px;padding:12px 14px;
  border-top:1px solid var(--border);background:var(--surface2);
}
.ai-input{
  flex:1;background:var(--surface);border:1px solid var(--border);
  color:var(--text);border-radius:20px;padding:8px 14px;
  font-size:13px;outline:none;transition:border-color .2s;
  font-family:var(--mono);
}
.ai-input:focus{border-color:var(--accent)}
.ai-send{
  background:var(--accent);color:#0d0d0d;border:none;
  width:34px;height:34px;border-radius:50%;font-size:15px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:background .2s;
}
.ai-send:hover{background:var(--accent2)}

/* ══ IMAGE CROP POPUP ══ */
.ic-overlay{position:fixed;inset:0;z-index:1300;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;padding:20px}
.ic-overlay.hidden{display:none}
.ic-popup{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.6);animation:slideUp .3s ease}
.ic-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface2);border-bottom:1px solid var(--border);flex-shrink:0}
.ic-head-title{font-family:var(--display);font-size:17px;color:var(--text)}
.ic-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}
.ic-close:hover{background:var(--danger);color:#fff}
.ic-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}
.ic-preview-outer{position:relative;width:100%;background:#000;border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:grab}
.ic-preview-outer:active{cursor:grabbing}
.ic-preview-img{display:block;width:100%;pointer-events:none}
.ic-crop-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
.ic-drag-layer{position:absolute;inset:0}
.ic-hint{font-size:11px;color:var(--muted);text-align:center;letter-spacing:.04em}
.ic-actions{display:flex;gap:10px;padding-top:4px;flex-shrink:0}
.ic-btn-confirm{flex:1;background:var(--accent);color:#0d0d0d;border:none;padding:11px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:.06em;cursor:pointer;font-family:var(--mono);transition:all .2s}
.ic-btn-confirm:hover{background:var(--accent2)}
.ic-btn-cancel{background:var(--surface2);color:var(--muted);border:1px solid var(--border);padding:11px 16px;border-radius:8px;font-size:12px;cursor:pointer;font-family:var(--mono);transition:all .2s}
.ic-btn-cancel:hover{color:var(--text)}
body.nsfw-zone .ic-btn-confirm{background:#e05c5c;color:#fff}

/* ══ VIDEO → CLIP CREATOR POPUP ══ */
.vtg-overlay{position:fixed;inset:0;z-index:1200;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:20px}
.vtg-overlay.hidden{display:none}
.vtg-popup{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:660px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.6);animation:slideUp .3s ease}
.vtg-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--surface2);border-bottom:1px solid var(--border);flex-shrink:0}
.vtg-head-logo{font-family:var(--display);font-size:22px;color:#fff;letter-spacing:.02em}
.vtg-head-logo span{color:var(--accent)}
body.nsfw-zone .vtg-head-logo span{color:#e05c5c}
.vtg-head-sub{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:10px;padding-left:10px;border-left:1px solid var(--border)}
.vtg-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}
.vtg-close:hover{background:var(--danger);color:#fff}
.vtg-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;display:flex;flex-direction:column;gap:18px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.vtg-step{display:flex;flex-direction:column;gap:16px}
.vtg-step.hidden{display:none}
/* Drop zone */
.vtg-dropzone{border:2px dashed var(--border);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s;color:var(--muted);position:relative}
.vtg-dropzone:hover,.vtg-dropzone.drag-over{border-color:var(--accent);color:var(--accent);background:rgba(200,169,110,.04)}
.vtg-dropzone-icon{font-size:36px;margin-bottom:10px}
.vtg-dropzone-text{font-size:14px;letter-spacing:.04em}
.vtg-dropzone-sub{font-size:11px;opacity:.6;margin-top:4px}
.vtg-error{background:rgba(201,64,64,.12);border:1px solid rgba(201,64,64,.4);color:#e07070;border-radius:8px;padding:10px 14px;font-size:12px;letter-spacing:.03em;display:none}
.vtg-error.show{display:block}
/* Section labels */
.vtg-section-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:4px}
/* Video preview — full video shown, crop outline drawn on top */
.vtg-preview-outer{position:relative;width:100%;background:#000;border:1px solid var(--border);border-radius:10px;overflow:hidden;flex-shrink:0}
.vtg-preview-full{display:block;width:100%;max-height:280px;object-fit:contain;pointer-events:none}
.vtg-crop-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
/* Crop drag target — invisible layer on top */
.vtg-preview-wrap{position:absolute;top:0;left:0;width:100%;height:100%;cursor:grab;background:transparent}
.vtg-preview-wrap:active{cursor:grabbing}
.vtg-preview-video{display:none}
.vtg-crop-frame{display:none}
.vtg-crop-label{position:absolute;top:6px;left:6px;background:rgba(200,169,110,.9);color:#0d0d0d;font-size:10px;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:10px;pointer-events:none;z-index:4}
.vtg-drag-hint{position:relative;text-align:center;font-size:9px;color:var(--muted);letter-spacing:.06em;pointer-events:none;margin-top:6px;padding:0}
/* Aspect ratio toggle */
.vtg-aspect-row{display:flex;gap:8px;align-items:center}
.vtg-aspect-btn{background:var(--surface2);border:1px solid var(--border);color:var(--muted);padding:5px 14px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.06em;cursor:pointer;transition:all .2s;font-family:var(--mono)}
.vtg-aspect-btn.active{background:rgba(200,169,110,.15);border-color:var(--accent);color:var(--accent)}
/* Timeline */
.vtg-timeline-wrap{position:relative;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.vtg-tl-canvas{width:100%;height:56px;border-radius:6px;cursor:crosshair;display:block}
.vtg-tl-controls{display:flex;align-items:center;gap:10px}
.vtg-tl-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);width:36px;height:36px;border-radius:8px;font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}
.vtg-tl-btn:hover{border-color:var(--accent);color:var(--accent)}
.vtg-tl-mute{font-size:13px}
.vtg-tl-info{font-size:11px;color:var(--muted);flex:1;letter-spacing:.04em}
/* Clip length row — pill */
.vtg-dur-row{display:flex;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:30px;padding:10px 18px}
.vtg-dur-label{font-size:11px;color:var(--muted);white-space:nowrap;min-width:90px}
.vtg-dur-slider{flex:1;-webkit-appearance:none;appearance:none;height:5px;border-radius:3px;background:var(--border);outline:none;cursor:pointer}
.vtg-dur-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #0d0d0d;box-shadow:0 0 0 2px var(--accent)}
.vtg-dur-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #0d0d0d;box-shadow:0 0 0 2px var(--accent)}
/* Volume row — pill */
.vtg-sound-row{display:flex;align-items:center;gap:10px;padding:10px 18px;background:var(--surface2);border:1px solid var(--border);border-radius:30px;flex-wrap:wrap}
.vtg-sound-label{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px;min-width:60px}
.vtg-vol-slider{flex:1;min-width:80px;-webkit-appearance:none;appearance:none;height:5px;border-radius:3px;background:var(--border);outline:none;cursor:pointer}
.vtg-vol-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #0d0d0d;box-shadow:0 0 0 2px var(--accent)}
.vtg-vol-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #0d0d0d;box-shadow:0 0 0 2px var(--accent)}
.vtg-vol-pct{font-size:11px;color:var(--muted);min-width:32px;text-align:right}
.vtg-sound-label{flex:1;font-size:13px;color:var(--text);display:flex;align-items:center;gap:8px}
.vtg-toggle{position:relative;width:42px;height:24px;flex-shrink:0}
.vtg-toggle input{opacity:0;width:0;height:0;position:absolute}
.vtg-toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:12px;cursor:pointer;transition:background .2s}
.vtg-toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}
.vtg-toggle input:checked + .vtg-toggle-slider{background:var(--accent)}
.vtg-toggle input:checked + .vtg-toggle-slider::before{transform:translateX(18px)}
/* Cover images */
.vtg-cover-row{display:flex;gap:10px}
.vtg-cover-pick{flex:1;aspect-ratio:9/16;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid var(--border);transition:all .2s;position:relative;background:#000}
.vtg-cover-pick canvas{width:100%;height:100%;object-fit:cover;display:block}
.vtg-cover-pick.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(200,169,110,.3)}
.vtg-cover-pick-label{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.7);font-size:9px;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:4px;color:var(--muted)}
.vtg-cover-pick.active .vtg-cover-pick-label{color:var(--accent)}
/* Action row */
.vtg-action-row{display:flex;gap:10px;align-items:center;padding-top:4px}
.vtg-btn-primary{flex:1;background:var(--accent);color:#0d0d0d;border:none;padding:12px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:.06em;cursor:pointer;font-family:var(--mono);transition:all .2s;text-transform:uppercase}
.vtg-btn-primary:hover{background:var(--accent2);transform:translateY(-1px)}
.vtg-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}
.vtg-btn-sec{background:var(--surface2);color:var(--muted);border:1px solid var(--border);padding:12px 18px;border-radius:8px;font-size:12px;cursor:pointer;font-family:var(--mono);transition:all .2s;letter-spacing:.04em}
.vtg-btn-sec:hover{color:var(--text);border-color:var(--text)}
/* Progress bar */
.vtg-progress-wrap{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px;display:none}
.vtg-progress-wrap.show{display:flex}
.vtg-progress-text{font-size:12px;color:var(--muted);letter-spacing:.04em}
.vtg-progress-bar-outer{height:6px;background:var(--border);border-radius:3px;overflow:hidden}
.vtg-progress-bar-inner{height:100%;background:var(--accent);border-radius:3px;width:0%;transition:width .2s}
/* Open button badge */
.vtg-open-btn{display:inline-flex;align-items:center;gap:7px;background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.35);color:var(--accent);padding:6px 15px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:all .2s;font-family:var(--mono);white-space:nowrap}
.vtg-open-btn:hover{background:rgba(200,169,110,.2);border-color:var(--accent)}
body.nsfw-zone .vtg-open-btn{background:rgba(224,92,92,.1);border-color:rgba(224,92,92,.35);color:#e05c5c}
body.nsfw-zone .vtg-open-btn:hover{background:rgba(224,92,92,.2);border-color:#e05c5c}
body.nsfw-zone .vtg-crop-label{background:rgba(224,92,92,.9)}
body.nsfw-zone .vtg-toggle input:checked + .vtg-toggle-slider{background:#e05c5c}
body.nsfw-zone .vtg-btn-primary{background:#e05c5c;color:#fff}
body.nsfw-zone .vtg-btn-primary:hover{background:#b03a3a}
body.nsfw-zone .vtg-section-label{color:#e05c5c}

/* ══ AI CREATOR PAGE ══ */

/* Shader canvas — fixed behind AI creator pages only */
#ai-shader-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.2s ease;display:block}
#ai-shader-canvas.active{opacity:1}

/* Hero banner — modern minimal */
.ai-hero{padding:44px 24px 40px;text-align:center;background:transparent;position:relative;z-index:1}
.ai-hero-inner{position:relative;z-index:1}
.ai-hero-eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px}
.ai-hero-line{flex:0 0 40px;height:1px;background:var(--border)}
.ai-hero-label{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ai-hero-title{font-family:var(--display);font-size:clamp(32px,5vw,54px);font-weight:400;color:var(--text);letter-spacing:.01em;margin-bottom:10px;line-height:1.05}
.ai-hero-sub{color:var(--muted);font-size:13px;line-height:1.6;max-width:360px;margin:0 auto}


/* Wrap + panel — sits above shader canvas */
.ai-creator-wrap{max-width:860px;margin:0 auto;padding:18px 24px 80px;position:relative;z-index:1}
.ai-gen-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:32px;padding-top:52px;display:flex;flex-direction:column;gap:28px;margin-bottom:40px;box-shadow:0 4px 40px rgba(0,0,0,.25);position:relative}
.ai-panel-section{display:flex;flex-direction:column;gap:10px}

/* Labels + hint */
.ai-prompt-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.ai-prompt-hint{font-size:11px;color:var(--muted);opacity:.7;margin-top:4px}
.ai-prompt-box{width:100%;min-height:100px;resize:vertical;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:14px 16px;font-family:var(--mono);font-size:14px;line-height:1.7;outline:none;transition:border-color .25s,box-shadow .25s}
.ai-prompt-box:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(200,169,110,.12)}
body.nsfw-zone .ai-prompt-box:focus{border-color:#e05c5c;box-shadow:0 0 0 3px rgba(224,92,92,.12)}

/* Model cards */
.ai-model-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:560px){.ai-model-cards{grid-template-columns:1fr}}
.ai-model-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:16px;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;user-select:none}
.ai-model-card:hover{border-color:var(--accent);background:rgba(200,169,110,.05)}
.ai-model-card.selected{border-color:var(--accent);background:rgba(200,169,110,.08);box-shadow:0 0 0 1px var(--accent)}
body.nsfw-zone .ai-model-card:hover{border-color:#e05c5c;background:rgba(224,92,92,.05)}
body.nsfw-zone .ai-model-card.selected{border-color:#e05c5c;background:rgba(224,92,92,.08);box-shadow:0 0 0 1px #e05c5c}
.ai-model-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ai-model-icon{font-size:20px;line-height:1}
.ai-model-cost{font-size:11px;color:var(--muted);font-family:var(--mono);letter-spacing:.04em;background:var(--surface);border:1px solid var(--border);padding:2px 8px;border-radius:20px}
.ai-model-card.selected .ai-model-cost{border-color:var(--accent);color:var(--accent)}
body.nsfw-zone .ai-model-card.selected .ai-model-cost{border-color:#e05c5c;color:#e05c5c}
.ai-model-name{font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px;font-family:var(--display)}
.ai-model-desc{font-size:12px;color:var(--muted);line-height:1.5}

/* Bottom row: output toggle + generate */
.ai-panel-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--border)}

/* SFW/NSFW generation toggle */
.ai-zone-toggle{display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;flex-shrink:0}
.ai-zone-btn{background:transparent;border:none;color:var(--muted);padding:9px 20px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.ai-zone-btn.active{background:var(--accent);color:#0d0d0d;font-weight:500}
body.nsfw-zone .ai-zone-btn.active{background:#e05c5c;color:#fff}

/* Generate button — glow style */
.ai-gen-btn{position:relative;overflow:hidden;background:var(--accent);color:#0d0d0d;border:none;border-radius:999px;padding:12px 36px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:10px;box-shadow:0 0 10px rgba(200,169,110,.25),0 2px 8px rgba(0,0,0,.35);transition:box-shadow .2s,transform .15s}
.ai-gen-btn-label{display:flex;align-items:center;gap:6px;pointer-events:none}
.ai-gen-btn::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.12) 0%,transparent 65%);pointer-events:none}
.ai-gen-btn:hover{box-shadow:0 0 18px rgba(200,169,110,.4),0 4px 12px rgba(0,0,0,.4);transform:translateY(-1px)}
.ai-gen-btn:active{transform:scale(.97) translateY(1px);box-shadow:0 0 8px rgba(200,169,110,.2)}
.ai-gen-btn:active .ai-gen-btn-label{transform:none}
body.nsfw-zone .ai-gen-btn{background:#e05c5c;color:#0d0d0d;box-shadow:0 0 8px rgba(224,92,92,.15),0 2px 8px rgba(0,0,0,.35)}
body.nsfw-zone .ai-gen-btn:hover{color:#0d0d0d;box-shadow:0 0 16px rgba(224,92,92,.28),0 4px 12px rgba(0,0,0,.4)}
body.nsfw-zone .ai-gen-btn:active{box-shadow:0 0 6px rgba(224,92,92,.12)}
.ai-gen-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}

/* Spinner */
.ai-spinner{width:15px;height:15px;border:2px solid rgba(0,0,0,.2);border-top-color:#0d0d0d;border-radius:50%;animation:spin .7s linear infinite;display:none;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
body.nsfw-zone .ai-spinner{border-top-color:#fff;border-color:rgba(255,255,255,.2)}

/* Results section */
.ai-results-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.ai-results-count{font-size:11px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);padding:2px 10px;border-radius:20px}
.ai-results-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:700px){.ai-results-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.ai-results-grid{grid-template-columns:1fr}}
/* Result cards — match gallery .card exactly */
.ai-result-card{position:relative;aspect-ratio:9/16;overflow:hidden;background:var(--surface2);cursor:pointer;animation:cardFadeIn .3s ease both;transform:translateZ(0)}
/* Placeholder skeleton card */
.ai-result-placeholder{cursor:default;background:var(--surface2);animation:aiPhShimmer 1.6s ease-in-out infinite}
@keyframes aiPhShimmer{0%,100%{background:var(--surface2)}50%{background:rgba(255,255,255,.07)}}
.ai-ph-logo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:0;font-family:var(--display);font-size:20px;letter-spacing:-.01em;opacity:.25}
.ai-ph-gif{color:var(--accent)}
.ai-ph-lock{color:#fff}
.ai-result-card img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);transition:transform .4s ease}
.ai-result-card:hover img{transform:scale(1.05)}
.ai-result-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.88) 0%,transparent 55%);opacity:0;transition:opacity .25s;display:flex;flex-direction:column;justify-content:flex-end;padding:10px;gap:6px;will-change:opacity}
.ai-result-card:hover .ai-result-overlay{opacity:1}
.ai-result-prompt{font-family:var(--display);font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.ai-result-actions{display:flex;gap:6px;flex-wrap:wrap}
.ai-result-btn{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:6px;padding:4px 3px;font-family:var(--mono);font-size:9px;letter-spacing:.04em;cursor:pointer;transition:background .15s,border-color .15s}
.ai-result-btn:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.5)}

/* AI Creator — white label + hint text */
.ai-prompt-label-white{font-size:13px;letter-spacing:.04em;text-transform:none;color:var(--text);font-weight:500;margin-bottom:2px}
.ai-prompt-hint-white{font-size:12px;color:rgba(232,226,217,.6);margin-top:5px}

/* AI Creator — pic/vid type toggle */
.ai-type-toggle{display:flex;gap:8px;width:fit-content}
.ai-type-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface2);border:1.5px solid var(--border);color:var(--muted);padding:10px 22px 8px;border-radius:10px;font-family:var(--mono);font-size:11px;letter-spacing:.07em;cursor:pointer;transition:all .2s;text-transform:uppercase;font-weight:500}
.ai-type-btn .ai-type-icon{font-size:17px;line-height:1;display:block}
.ai-type-btn:hover:not(.active){border-color:rgba(255,255,255,.22);color:var(--text);background:rgba(255,255,255,.04)}
.ai-type-btn.active{background:rgba(200,169,110,.08);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
body.nsfw-zone .ai-type-btn.active{background:rgba(224,92,92,.08);border-color:#e05c5c;color:#e05c5c;box-shadow:0 0 0 1px #e05c5c inset}

/* ── AI badge on gallery cards — bottom-right, hover only ── */
.ai-badge{position:absolute;bottom:8px;right:8px;left:auto;z-index:3;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:20px;pointer-events:none;opacity:0;transition:opacity .18s}
.card:hover .ai-badge{opacity:1}
/* ── AI badge on upload preview (bottom-right, shows on hover) ── */
.upload-ai-badge{position:absolute;bottom:8px;right:8px;z-index:4;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:20px;pointer-events:none;opacity:0;transition:opacity .2s}
#sfw-pwrap:hover .upload-ai-badge,#nsfw-pwrap:hover .upload-ai-badge{opacity:1}
/* ── AI badge inside modal (bottom-right of media) ── */
.modal-ai-badge{position:absolute;bottom:12px;right:24px;left:auto;z-index:5;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);color:#fff;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 11px;border-radius:20px;pointer-events:none}

/* ── AI filter toggle button (left of dice btn) ── */
.ai-filter-btn{flex-shrink:0;margin-left:auto;margin-right:6px;height:34px;padding:0 13px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:5px;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;white-space:nowrap;opacity:.55}
.ai-filter-btn:hover{opacity:.85;border-color:rgba(255,255,255,.3);color:var(--text)}
/* SFW — green when on */
body:not(.nsfw-zone) .ai-filter-btn.ai-filter-on{background:rgba(52,199,89,.15);border-color:rgba(52,199,89,.55);color:#34c759;opacity:1;box-shadow:0 0 0 1px rgba(52,199,89,.25)}
/* NSFW — red when on */
body.nsfw-zone .ai-filter-btn.ai-filter-on{background:rgba(224,92,92,.15);border-color:rgba(224,92,92,.55);color:#e05c5c;opacity:1;box-shadow:0 0 0 1px rgba(224,92,92,.25)}

/* ── AI-only sub-toolbar ── */
.ai-only-toolbar{display:flex;align-items:center;gap:8px;padding:8px 16px 6px;background:rgba(167,139,250,.07);border-bottom:1px solid rgba(167,139,250,.18);flex-wrap:wrap}
.ai-only-toolbar.hidden{display:none!important}
.ai-only-label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(167,139,250,.8);margin-right:4px}
.ai-only-group{display:flex;gap:4px}
.ai-only-divider{width:1px;height:20px;background:rgba(255,255,255,.12);margin:0 4px;align-self:center}
.ai-only-type-btn,.ai-only-zone-btn{height:28px;padding:0 12px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:var(--muted);font-size:11px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.ai-only-type-btn:hover,.ai-only-zone-btn:hover{border-color:rgba(167,139,250,.5);color:#c4b5fd}
.ai-only-type-btn.active,.ai-only-zone-btn.active{background:rgba(167,139,250,.2);border-color:rgba(167,139,250,.6);color:#c4b5fd}

/* ── Token display in dropdown (top-right of user row) ── */
.nav-dd-tokens{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.3);border-radius:9px;padding:6px 12px;cursor:pointer;flex-shrink:0;transition:background .2s,border-color .2s;min-width:58px}
.nav-dd-tokens:hover{background:rgba(200,169,110,.2);border-color:var(--accent)}
.nav-dd-tokens.hidden{display:none!important}
.nav-dd-token-icon{font-size:11px;color:var(--accent);line-height:1}
.nav-dd-tokens #nav-dd-token-count{font-family:var(--display);font-size:19px;color:var(--accent);line-height:1;font-weight:400}
.nav-dd-token-label{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;line-height:1}

/* ── Buy Tokens modal ── */
.buy-tokens-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:620px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.buy-tokens-body{padding:28px 28px 32px}
.buy-tokens-sub{color:var(--muted);font-size:13px;line-height:1.6;margin-bottom:24px}
.buy-tokens-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
@media(max-width:500px){.buy-tokens-grid{grid-template-columns:1fr}}
.buy-token-card{position:relative;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:22px 16px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:border-color .2s}
.buy-token-card.featured{border-color:var(--accent);background:rgba(200,169,110,.06)}
.buy-token-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--accent);color:#0d0d0d;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 12px;border-radius:20px;white-space:nowrap}
.buy-token-amount{font-family:var(--display);font-size:36px;color:var(--text);line-height:1}
.buy-token-label{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.buy-token-desc{font-size:12px;color:var(--muted);line-height:1.5;margin:4px 0}
.buy-token-price{font-family:var(--display);font-size:22px;color:var(--accent);margin:4px 0}
.buy-token-btn{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:9px;border-radius:var(--radius);font-family:var(--mono);font-size:11px;letter-spacing:.06em;cursor:pointer;transition:border-color .2s,color .2s;margin-top:4px}
.buy-token-btn:hover{border-color:var(--accent);color:var(--accent)}
.buy-token-card.featured .buy-token-btn{border-color:var(--accent);color:var(--accent)}
.buy-tokens-note{font-size:11px;color:var(--muted);text-align:center;opacity:.7}

/* ── AI Result Lightbox ── */
.ai-lightbox{position:fixed;inset:0;z-index:1200;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;gap:16px;padding:20px;backdrop-filter:blur(10px)}
.ai-lightbox.hidden{display:none}
.ai-lb-content{display:flex;flex-direction:column;align-items:center;gap:14px;max-height:90vh}
.ai-lb-img{height:auto;width:min(520px,88vw);max-height:80vh;object-fit:contain;border-radius:10px;box-shadow:0 16px 60px rgba(0,0,0,.6)}
.ai-lb-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px;flex-wrap:wrap}
.ai-lb-counter{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.06em;white-space:nowrap}
.ai-lb-actions{display:flex;gap:8px}
.ai-lb-close{position:fixed;top:20px;right:24px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff;width:36px;height:36px;border-radius:50%;font-size:14px;cursor:pointer;transition:background .2s;z-index:10;display:flex;align-items:center;justify-content:center}
.ai-lb-close:hover{background:var(--danger)}
.ai-lb-arrow{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#fff;width:44px;height:44px;border-radius:50%;font-size:26px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}
.ai-lb-arrow:hover{background:rgba(255,255,255,.16)}

/* ── AI Style Presets ── */
.ai-style-optional{font-size:10px;color:var(--muted);letter-spacing:.04em;font-weight:400;text-transform:none;margin-left:4px}
.ai-style-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:600px){.ai-style-grid{grid-template-columns:repeat(2,1fr)}}
.ai-style-btn{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:var(--radius);padding:10px 8px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;cursor:pointer;transition:background .18s,border-color .18s,color .18s,box-shadow .18s;text-align:center;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-style-btn:hover{border-color:var(--accent);color:var(--text);background:rgba(200,169,110,.06)}
.ai-style-btn.active{background:rgba(200,169,110,.12);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 12px rgba(200,169,110,.18);font-weight:500}
body.nsfw-zone .ai-style-btn:hover{border-color:#e05c5c;background:rgba(224,92,92,.06)}
body.nsfw-zone .ai-style-btn.active{background:rgba(224,92,92,.12);border-color:#e05c5c;color:#e05c5c;box-shadow:0 0 0 1px #e05c5c,0 0 12px rgba(224,92,92,.18)}
/* Style category dropdown */
.ai-style-dropdown{margin-top:8px;width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:9px 12px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .18s}
.ai-style-dropdown:focus{outline:none;border-color:var(--accent)}
.ai-style-dropdown option{background:var(--surface);color:var(--text)}
body.nsfw-zone .ai-style-dropdown:focus{border-color:#e05c5c}
/* In-panel token pill — absolute top-right of .ai-gen-panel */
.ai-panel-token-pill{display:flex;align-items:center;gap:5px;padding:7px 12px;background:rgba(200,169,110,.08);border:1px solid rgba(200,169,110,.3);border-radius:20px;cursor:pointer;transition:background .18s,border-color .18s;position:absolute;top:16px;right:20px}
.ai-panel-token-pill:hover{background:rgba(200,169,110,.15);border-color:var(--accent)}
.ai-panel-token-icon{color:var(--accent);font-size:13px;line-height:1}
.ai-panel-token-pill .ai-panel-token-count{font-family:var(--display);font-size:16px;font-weight:600;color:var(--accent);line-height:1}
.ai-panel-token-label{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
body.nsfw-zone .ai-panel-token-pill{background:rgba(224,92,92,.08);border-color:rgba(224,92,92,.3)}
body.nsfw-zone .ai-panel-token-pill:hover{background:rgba(224,92,92,.15);border-color:#e05c5c}
body.nsfw-zone .ai-panel-token-icon,body.nsfw-zone .ai-panel-token-pill .ai-panel-token-count{color:#e05c5c}

/* Nav AI button — lives inside .nav-links, styled as an accent pill */
.nav-ai-btn{background:rgba(200,169,110,.12);border:1px solid rgba(200,169,110,.35);color:var(--accent);padding:6px 14px;border-radius:20px;font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .2s,border-color .2s,color .2s;white-space:nowrap;margin-left:8px}
.nav-ai-btn:hover{background:rgba(200,169,110,.22);border-color:var(--accent)}
body.nsfw-zone .nav-ai-btn{background:rgba(224,92,92,.12);border-color:rgba(224,92,92,.35);color:#e05c5c}
body.nsfw-zone .nav-ai-btn:hover{background:rgba(224,92,92,.22);border-color:#e05c5c}

/* AI Page Loader — clone of site loader */
.ai-page-loader{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#0d0d0d}
.ai-page-loader.hidden{display:none}
.ai-page-loader-logo{font-family:'DM Serif Display',Georgia,serif;font-size:clamp(64px,12vw,100px);letter-spacing:-.01em;line-height:1;animation:loader-logo-in .8s cubic-bezier(.16,1,.3,1) .15s both}
.ai-page-loader-ai{color:var(--accent)}
.ai-page-loader-wipe{position:absolute;inset:0;background:#0d0d0d;transform:translateX(-100%);pointer-events:none}
.ai-page-loader-wipe.go{animation:loader-wipe .5s cubic-bezier(.76,0,.24,1) forwards}
/* NSFW red theme */
body.nsfw-zone .ai-page-loader-ai{color:#e05c5c}
body.nsfw-zone .ai-page-loader .loader-lock{color:#e05c5c}
body.nsfw-zone .ai-page-loader .loader-bg{background:radial-gradient(ellipse at 50% 50%,rgba(224,92,92,.13) 0%,transparent 65%)}
body.nsfw-zone .ai-page-loader .loader-bar{background:linear-gradient(90deg,#8c2020,#e05c5c,#f0a0a0,#e05c5c);box-shadow:0 0 16px rgba(224,92,92,.7)}

/* ── AI Creator: Safety Banner ── */
.ai-safety-wrap{max-width:860px;margin:0 auto;padding:0 24px 10px;position:relative;z-index:1}
#nsfw-safety-wrap{margin-top:-14px}
#nsfw-ai-creator .ai-creator-wrap{padding-top:8px}
.ai-safety-rules{background:rgba(201,64,64,.07);border:1px solid rgba(201,64,64,.3);border-radius:12px;padding:20px 24px;display:flex;align-items:flex-start;gap:18px}
.ai-safety-icon{font-size:24px;flex-shrink:0;margin-top:2px}
.ai-safety-content{flex:1;min-width:0}
.ai-safety-title{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#e05c5c;font-weight:700;margin-bottom:8px}
.ai-safety-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
.ai-safety-list li{font-size:12px;color:#b0aa9f;padding-left:14px;position:relative}
.ai-safety-list li::before{content:'·';position:absolute;left:0;color:#e05c5c}
.ai-safety-agree{display:flex;align-items:center;gap:8px;cursor:pointer;flex-shrink:0;align-self:center}
.ai-safety-agree input[type=checkbox]{width:16px;height:16px;accent-color:#e05c5c;cursor:pointer;flex-shrink:0}
.ai-safety-agree span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#b0aa9f;white-space:nowrap}
.ai-safety-wrap.agreed .ai-safety-rules{background:rgba(76,175,80,.05);border-color:rgba(76,175,80,.25)}
.ai-safety-wrap.agreed .ai-safety-title{color:#4caf50}
.ai-safety-wrap.agreed .ai-safety-list li::before{color:#4caf50}

/* ── AI Creator: Prompt Tools (toggle row) ── */
.ai-prompt-tools{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.ai-tool-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--surface2);border-bottom:1px solid var(--border);transition:background .2s}
.ai-tool-toggle:last-child{border-bottom:none}
.ai-tool-toggle:hover{background:rgba(255,255,255,.03)}
.ai-tool-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.ai-tool-label{font-size:12px;color:var(--text);font-weight:600;letter-spacing:.02em}
.ai-tool-desc{font-size:11px;color:var(--muted)}
.ai-toggle-switch{position:relative;width:40px;height:22px;flex-shrink:0;cursor:pointer}
.ai-toggle-switch input{opacity:0;width:0;height:0;position:absolute}
.ai-toggle-track{position:absolute;inset:0;background:rgba(255,255,255,.1);border-radius:11px;transition:background .2s;border:1px solid rgba(255,255,255,.12)}
.ai-toggle-track::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:2px;left:2px;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.ai-toggle-switch input:checked+.ai-toggle-track{background:var(--accent);border-color:var(--accent)}
.ai-toggle-switch input:checked+.ai-toggle-track::after{transform:translateX(18px)}
body.nsfw-zone .ai-toggle-switch input:checked+.ai-toggle-track{background:#e05c5c;border-color:#e05c5c}

/* ── AI Creator: Full prompt preview ── */
.ai-fullprompt-preview{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:12px;color:#b0aa9f;line-height:1.6;font-family:var(--mono);min-height:48px;white-space:pre-wrap;word-break:break-word}

/* ── AI Creator: Negative prompt box ── */
.ai-negprompt-box{min-height:64px;resize:vertical}

/* ── AI Creator: Style + Advanced row header ── */
.ai-style-adv-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}

/* ── AI Creator: Style tag chip ── */
.ai-style-tag{display:inline-flex;align-items:center;gap:6px;background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.35);border-radius:20px;padding:5px 10px 5px 12px;font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.04em;margin-top:8px}
body.nsfw-zone .ai-style-tag{background:rgba(224,92,92,.1);border-color:rgba(224,92,92,.35);color:#e05c5c}
.ai-style-tag-clear{background:none;border:none;color:inherit;cursor:pointer;font-size:14px;line-height:1;opacity:.7;padding:0 2px;transition:opacity .15s}
.ai-style-tag-clear:hover{opacity:1}

/* ── AI Creator: Custom style dropdown ── */
.ai-style-dd-wrap{position:relative}
.ai-style-dd-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface2);border:1px solid var(--border);color:#b0aa9f;padding:9px 12px;border-radius:var(--radius);font-family:var(--mono);font-size:12px;letter-spacing:.04em;cursor:pointer;transition:border-color .18s,color .18s;text-align:left}
.ai-style-dd-btn:hover,.ai-style-dd-btn.open{border-color:var(--accent);color:var(--text)}
body.nsfw-zone .ai-style-dd-btn:hover,body.nsfw-zone .ai-style-dd-btn.open{border-color:#e05c5c}
.ai-style-dd-btn.has-val{color:var(--text)}
.ai-style-dd-arrow{font-size:10px;flex-shrink:0;transition:transform .18s}
.ai-style-dd-btn.open .ai-style-dd-arrow{transform:rotate(180deg)}
.ai-style-dd-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;overflow-y:auto;max-height:260px;box-shadow:0 8px 28px rgba(0,0,0,.5)}
.ai-style-dd-list.hidden{display:none}
.ai-style-dd-item{padding:9px 14px;font-family:var(--mono);font-size:12px;color:#b0aa9f;cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:8px;letter-spacing:.03em}
.ai-style-dd-item:hover{background:rgba(255,255,255,.05);color:var(--text)}
.ai-style-dd-item.active{color:var(--accent);background:rgba(200,169,110,.06)}
body.nsfw-zone .ai-style-dd-item.active{color:#e05c5c;background:rgba(224,92,92,.06)}

/* ── AI Creator: Advanced button + popup ── */
.ai-advanced-wrap{position:relative}
.ai-advanced-btn{display:inline-flex;align-items:center;gap:7px;background:var(--surface2);border:1px solid var(--border);color:#b0aa9f;padding:7px 12px;border-radius:var(--radius);font-family:var(--mono);font-size:11px;letter-spacing:.05em;cursor:pointer;transition:border-color .18s,color .18s,background .18s;white-space:nowrap}
.ai-advanced-btn:hover,.ai-advanced-btn.open{border-color:var(--accent);color:var(--text);background:rgba(200,169,110,.06)}
body.nsfw-zone .ai-advanced-btn:hover,body.nsfw-zone .ai-advanced-btn.open{border-color:#e05c5c;background:rgba(224,92,92,.06)}
.ai-advanced-chevron{font-size:10px;transition:transform .18s;display:inline-block}
.ai-advanced-btn.open .ai-advanced-chevron{transform:rotate(180deg)}
.ai-advanced-popup{position:absolute;top:calc(100% + 8px);right:0;left:auto;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;min-width:310px;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.ai-advanced-popup.hidden{display:none}

/* ── AI Creator: NSFW selector dropdowns ── */
.ai-selector-rows{display:flex;flex-direction:column;gap:10px}
.ai-selector-row{display:flex;gap:10px;flex-wrap:wrap}
.ai-selector-wrap{position:relative;flex:1;min-width:120px}
.ai-selector-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:6px;background:var(--surface2);border:1px solid var(--border);color:#b0aa9f;padding:9px 12px;border-radius:var(--radius);font-family:var(--mono);font-size:11px;letter-spacing:.04em;cursor:pointer;transition:border-color .18s,color .18s;text-align:left}
.ai-selector-btn:hover,.ai-selector-btn.open{border-color:#e05c5c;color:#e05c5c}
.ai-selector-btn .ai-selector-val{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-selector-btn .ai-selector-arrow{font-size:9px;flex-shrink:0;transition:transform .18s}
.ai-selector-btn.open .ai-selector-arrow{transform:rotate(180deg)}
.ai-selector-popup{position:absolute;top:calc(100% + 6px);left:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;box-shadow:0 8px 28px rgba(0,0,0,.5);min-width:280px;max-height:340px;overflow-y:auto}
.ai-selector-popup.hidden{display:none}
.ai-sel-option{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;padding:8px 6px;border-radius:8px;transition:background .15s}
.ai-sel-option:hover{background:rgba(255,255,255,.04)}
.ai-sel-preview{width:72px;height:72px;background:#111;border-radius:6px;border:2px solid transparent;transition:border-color .15s;flex-shrink:0}
.ai-sel-option.active .ai-sel-preview{border-color:#e05c5c}
.ai-sel-label{font-family:var(--mono);font-size:10px;color:#b0aa9f;text-align:center;line-height:1.3;letter-spacing:.03em}
.ai-sel-option.active .ai-sel-label{color:#e05c5c}
.ai-sel-coming-soon{opacity:.65}
.ai-sel-preview-soon{position:relative;background:repeating-linear-gradient(45deg,#111 0,#111 6px,#1a1a1a 6px,#1a1a1a 12px)}
.ai-sel-coming-soon:hover{background:rgba(255,255,255,.03)}

/* ── AI Creator: NSFW chips (pose/clothing/location/character) ── */
.ai-chip-row{display:flex;flex-wrap:wrap;gap:8px}
.ai-chip{background:var(--surface2);border:1px solid var(--border);color:#b0aa9f;padding:6px 14px;border-radius:20px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;cursor:pointer;transition:all .18s;text-transform:capitalize}
.ai-chip:hover{border-color:#e05c5c;color:#e05c5c}
.ai-chip.active{background:rgba(224,92,92,.12);border-color:#e05c5c;color:#e05c5c}

/* ── AI Creator: Image to Video button ── */
.ai-to-video-btn{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#b0aa9f;border-radius:0 0 6px 6px;padding:4px 4px;font-family:var(--mono);font-size:9px;letter-spacing:.04em;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:4px}
.ai-to-video-btn:hover{background:rgba(200,169,110,.1);border-color:rgba(200,169,110,.4);color:var(--accent)}
body.nsfw-zone .ai-to-video-btn:hover{background:rgba(224,92,92,.1);border-color:rgba(224,92,92,.4);color:#e05c5c}
.ai-to-video-btn.processing{opacity:.5;pointer-events:none}

/* Upload page AI banner */
.upload-ai-banner{display:flex;align-items:center;justify-content:space-between;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:14px 18px;margin-bottom:0}
.upload-ai-banner-text{font-size:13px;color:var(--muted);line-height:1.5}
.upload-ai-banner-text strong{color:var(--text);display:block;margin-bottom:2px}
.upload-ai-banner-btn{background:var(--accent);color:#0d0d0d;border:none;border-radius:var(--radius);padding:8px 18px;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .2s;flex-shrink:0}
.upload-ai-banner-btn:hover{background:var(--accent2)}
body.nsfw-zone .upload-ai-banner-btn{background:#e05c5c;color:#fff}
body.nsfw-zone .upload-ai-banner-btn:hover{background:#b03a3a}

/* ══ AI Zone Page ══ */
.ai-zone-page{position:fixed;inset:0;z-index:200;background:var(--bg);overflow-y:auto;display:flex;flex-direction:column}
.ai-zone-page.hidden{display:none!important}
.ai-zone-header{display:flex;align-items:center;gap:16px;padding:12px 20px;background:rgba(167,139,250,.08);border-bottom:1px solid rgba(167,139,250,.2);flex-wrap:wrap;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}
.ai-zone-back-btn{height:34px;padding:0 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07);color:var(--muted);font-size:12px;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
.ai-zone-back-btn:hover{background:rgba(255,255,255,.12);color:var(--text)}
.ai-zone-title{font-family:var(--display);font-size:18px;color:#c4b5fd;letter-spacing:.04em;flex:1;white-space:nowrap}
.ai-zone-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ai-zone-type-group,.ai-zone-filter-group{display:flex;gap:4px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:3px}
.ai-zone-type-btn,.ai-zone-filter-btn{height:28px;padding:0 12px;border-radius:6px;border:none;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
.ai-zone-type-btn:hover,.ai-zone-filter-btn:hover{color:var(--text)}
.ai-zone-type-btn.active{background:rgba(167,139,250,.25);color:#c4b5fd}
.ai-zone-filter-btn.active{background:rgba(167,139,250,.25);color:#c4b5fd}
#aiz-zone-sfw.active{background:rgba(52,199,89,.18);color:#34c759}
#aiz-zone-nsfw.active{background:rgba(224,92,92,.18);color:#e05c5c}
.ai-zone-count-bar{padding:8px 20px 4px;font-size:12px;color:rgba(255,255,255,.35)}
.ai-zone-gallery{padding:12px 16px;gap:10px}

/* ── AI Zone strip button ── */
.ai-zone-strip-btn{background:rgba(167,139,250,.12)!important;border-color:rgba(167,139,250,.4)!important;color:#c4b5fd!important}
.ai-zone-strip-btn:hover{background:rgba(167,139,250,.25)!important}

/* ── Category cover edit button (admin only, injected by JS) ── */
.cat-edit-btn{position:absolute;top:5px;right:5px;background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:6px;padding:3px 7px;font-size:11px;cursor:pointer;z-index:3;backdrop-filter:blur(4px);line-height:1.4;transition:background .15s}
.cat-edit-btn:hover{background:rgba(200,169,110,.85);border-color:var(--accent)}
.cat-del-btn{right:auto;left:5px;background:rgba(0,0,0,.72)}
.cat-del-btn:hover{background:rgba(224,92,92,.85);border-color:#e05c5c}

/* ── Add Category row (admin only) ── */
.cat-add-row{padding:10px 28px 0;display:flex;justify-content:flex-start}
.cat-add-btn{background:rgba(200,169,110,.1);border:1px dashed rgba(200,169,110,.4);color:var(--accent);border-radius:8px;padding:7px 18px;font-size:12px;font-family:var(--mono);cursor:pointer;transition:background .2s,border-color .2s}
.cat-add-btn:hover{background:rgba(200,169,110,.2);border-color:var(--accent)}

/* ── Cover editor modal ── */
.cat-cover-editor-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:420px;overflow:hidden}
.cat-cover-editor-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-family:var(--display);font-size:16px;color:var(--text)}
.cat-cover-editor-body{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px}
#cce-preview{width:260px;height:260px;border-radius:10px;overflow:hidden;border:1px solid var(--border);cursor:crosshair;background:var(--surface2);position:relative;user-select:none}
#cce-crosshair{position:absolute;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 0 3px rgba(0,0,0,.8))}
.cce-hint{font-size:11px;color:rgba(255,255,255,.38);text-align:center;margin:0}
.cce-source-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.cce-file-label{display:inline-flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 16px;cursor:pointer;font-size:13px;color:var(--text);transition:border-color .2s;font-family:var(--mono)}
.cce-file-label:hover{border-color:var(--accent)}
.cce-file-label input{display:none}
.cce-btns{display:flex;gap:10px;width:100%}
.cce-btns .admin-confirm-ok{flex:1}

/* ── Add Category modal fields ── */
.add-cat-field{width:100%;display:flex;flex-direction:column;gap:4px}
.add-cat-field label{font-size:11px;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.06em}
.add-cat-field input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 14px;font-size:13px;font-family:var(--mono);outline:none;transition:border-color .2s;width:100%;box-sizing:border-box}
.add-cat-field input:focus{border-color:var(--accent)}

/* ── Admin panel Category Management section ── */
.admin-cat-mgmt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.admin-cat-mgmt-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.acm-label{font-size:12px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.06em}

/* ── Upload page tabs ── */
.upload-page-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin:0 0 0;padding:0 32px;max-width:960px}
.upload-page-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-size:13px;letter-spacing:.07em;text-transform:uppercase;padding:10px 20px;cursor:pointer;transition:color .2s,border-color .2s;position:relative;bottom:-1px}
.upload-page-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.upload-page-tab:hover:not(.active){color:var(--text)}
.upload-tab-content{display:block}
.upload-tab-content.hidden{display:none}
.pending-badge{background:#e05c5c;color:#fff;font-size:10px;border-radius:8px;padding:1px 6px;margin-left:4px;font-weight:700;vertical-align:middle}

/* ── Upload My Posts grid ── */
.upload-myposts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:24px 32px}
.upload-mypost-card{position:relative;border-radius:10px;overflow:hidden;background:var(--surface2);border:1px solid var(--border);aspect-ratio:9/16;cursor:pointer}
.upload-mypost-card img,.upload-mypost-card video{width:100%;height:100%;object-fit:cover}
.upload-mypost-info{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;background:linear-gradient(transparent,rgba(0,0,0,.75));font-size:11px;color:rgba(255,255,255,.7)}

/* ── Upload Pending list ── */
@keyframes pendingCardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.upload-pending-list{display:flex;flex-direction:column;gap:14px;padding:24px 32px;max-width:700px}
.upload-pending-card{background:rgba(200,169,110,.06);border:1px solid rgba(200,169,110,.25);border-radius:10px;padding:16px;display:flex;gap:14px;align-items:flex-start;animation:pendingCardIn .35s ease both}
.nsfw-sidebar .upload-pending-card,.nsfw-upload .upload-pending-card{background:rgba(224,92,92,.06);border-color:rgba(224,92,92,.25)}
.upc-thumb{width:72px;height:96px;object-fit:cover;border-radius:7px;flex-shrink:0;background:#111;display:block}
.upc-body{flex:1;min-width:0}
.upc-flag{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}
.nsfw-sidebar .upc-flag,.nsfw-upload .upc-flag{color:#e05c5c}
.upc-msg{font-size:13px;color:rgba(255,255,255,.75);margin-bottom:10px;line-height:1.5}
.upc-actions{display:flex;gap:8px}

/* ── Admin report warn button ── */
.admin-action-btn.warn{background:rgba(255,140,0,.08);border-color:rgba(255,140,0,.25);color:#ff8c4a}
.admin-action-btn.warn:hover{background:rgba(255,140,0,.18);color:#ffa050}

/* ── Upload 3-column layout ── */
.upload-container-3col{grid-template-columns:minmax(300px,400px) minmax(300px,400px) 3fr;max-width:2400px;gap:28px}
@media(max-width:1300px){.upload-container-3col{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr)}}
@media(max-width:760px){.upload-container-3col{grid-template-columns:1fr}}

/* ── Upload sidebar (My Posts / Pending) ── */
.upload-sidebar{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;overflow:hidden;height:fit-content;position:sticky;top:90px;width:100%}
.upload-sidebar-tabs{display:flex;border-bottom:1px solid var(--border)}
.upload-sidebar-tab{flex:1;padding:14px 10px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-size:13px;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:color .2s,border-color .2s;position:relative;bottom:-1px}
.upload-sidebar-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.upload-sidebar-tab:hover:not(.active){color:var(--text)}
.nsfw-sidebar .upload-sidebar-tab.active{color:#e05c5c;border-bottom-color:#e05c5c}
.upload-sidebar-content{overflow:hidden;padding:16px}
.upload-sidebar-content.hidden{display:none}

/* ── My Posts mini-grid inside sidebar ── */
.upload-sidebar-content .upload-mypost-card{aspect-ratio:9/16;min-height:100px}

/* ── Sidebar pagination ── */
.sidebar-pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px 14px;border-top:1px solid var(--border);flex-wrap:wrap}
.sidebar-pag-num{background:rgba(255,255,255,.06);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;transition:background .15s,color .15s;min-width:30px}
.sidebar-pag-num:hover{background:rgba(255,255,255,.12);color:var(--text)}
.sidebar-pag-num.active{background:rgba(200,169,110,.15);border-color:var(--accent);color:var(--accent)}
.nsfw-sidebar .sidebar-pag-num.active{background:rgba(224,92,92,.15);border-color:#e05c5c;color:#e05c5c}
.admin-delete-reason-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.75);border-radius:7px;padding:9px 14px;font-size:13px;text-align:left;cursor:pointer;transition:all .15s;font-family:var(--mono)}
.admin-delete-reason-btn:hover,.admin-delete-reason-btn.selected{background:rgba(224,92,92,.15);border-color:#e05c5c;color:#fff}

/* ── Pending cards inside sidebar ── */
.upload-sidebar-content .upload-pending-card{padding:16px;gap:16px}
.upload-sidebar-content .upc-thumb{width:100px;height:140px}

/* ── Bell notification thumbnails ── */
.bell-notif-thumb{width:56px;height:56px;object-fit:cover;border-radius:7px;flex-shrink:0;background:#1a1a1a;display:block;margin-right:4px}
.bell-item-clickable{transition:background .15s}
.bell-item-clickable:hover{background:rgba(255,255,255,.06)}
/* Admin pending preview zone-aware select */
#appp-cat option{background:#1a1a1a;color:#fff}

/* ── Wave Uploader ── */
.wave-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:10px}
.wave-header-actions{display:flex;gap:8px}
.wave-step{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:14px}
.wave-step-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.wave-row{display:flex;gap:10px;align-items:center}
.wave-zone-btn{background:rgba(255,255,255,.06);border:1px solid var(--border);color:var(--muted);padding:7px 16px;border-radius:8px;cursor:pointer;font-size:12px;font-family:var(--mono);transition:all .18s}
.wave-zone-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(200,169,110,.12)}
.wave-bot-list{display:flex;flex-wrap:wrap;gap:6px}
.wave-bot-chip{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.07);border:1px solid var(--border);border-radius:20px;padding:4px 10px 4px 8px;font-size:11px;color:var(--text);cursor:default}
.wave-bot-chip.active{border-color:var(--accent);background:rgba(200,169,110,.1);color:var(--accent)}
.wave-bot-chip-check{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}
.wave-drop{border:2px dashed var(--border);border-radius:12px;padding:36px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.wave-drop:hover,.wave-drop.drag-over{border-color:var(--accent);background:rgba(200,169,110,.05)}
.wave-drop-icon{font-size:32px;margin-bottom:8px}
.wave-drop-text{font-size:14px;color:var(--text);margin-bottom:4px}
.wave-drop-sub{font-size:11px;color:var(--muted)}
.wave-dup-warning{background:rgba(224,92,92,.1);border:1px solid rgba(224,92,92,.3);border-radius:8px;padding:8px 12px;font-size:12px;color:#e05c5c;margin-top:8px}
.wave-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:8px}
.wave-check-all-wrap{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer;white-space:nowrap}
.wave-check-all-wrap input{accent-color:var(--accent);cursor:pointer}
.wave-bulk-assign{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.wave-cat-select{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:5px 8px;border-radius:6px;font-size:11px;font-family:var(--mono)}
.wave-file-count{font-size:11px;color:var(--muted);white-space:nowrap;margin-left:auto}
.wave-pagination{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.wave-page-btn{background:rgba(255,255,255,.07);border:1px solid var(--border);color:var(--muted);padding:4px 9px;border-radius:5px;cursor:pointer;font-size:11px;transition:all .15s}
.wave-page-btn:hover,.wave-page-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(200,169,110,.1)}
.wave-page-btn:disabled{opacity:.35;cursor:default}
.wave-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.wave-card{position:relative;border:2px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface2);transition:border-color .15s}
.wave-card.selected{border-color:var(--accent)}
.wave-card.has-error{border-color:#e05c5c}
.wave-card.is-dup{border-color:#f59e0b}
.wave-card-thumb{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#111}
.wave-card-thumb-vid{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#111}
.wave-card-check{position:absolute;top:5px;left:5px;width:16px;height:16px;accent-color:var(--accent);cursor:pointer;z-index:2}
.wave-card-badge{position:absolute;top:5px;right:5px;font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 5px;border-radius:4px;text-transform:uppercase}
.wave-card-badge.vid{background:rgba(0,0,0,.75);color:#a78bfa}
.wave-card-badge.dup{background:rgba(245,158,11,.2);color:#f59e0b}
.wave-card-foot{padding:5px 6px;background:rgba(0,0,0,.5)}
.wave-card-name{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.wave-card-cat{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:10px;padding:3px 4px;border-radius:4px;font-family:var(--mono)}
.wave-card-tags{font-size:9px;color:rgba(200,169,110,.7);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wave-card-del{position:absolute;top:5px;right:5px;width:20px;height:20px;border-radius:4px;border:none;background:rgba(0,0,0,.75);color:#ff6b6b;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;z-index:6;line-height:1;padding:0}
.wave-card:hover .wave-card-del{opacity:1}
.wave-card-del:hover{background:rgba(201,64,64,.9);color:#fff}
.wave-schedule-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer;flex-wrap:wrap}
.wave-schedule-label input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}
.wave-schedule-input{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:4px 8px;border-radius:6px;width:60px;font-size:12px;text-align:center}
.wave-schedule-input:disabled{opacity:.4}
.wave-upload-bar{margin-top:14px}
.wave-progress-track{height:8px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden;margin-bottom:6px}
.wave-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#f59e0b);border-radius:4px;transition:width .3s;width:0%}
.wave-progress-label{font-size:11px;color:var(--muted);text-align:center}
.wave-submit-btn{background:linear-gradient(135deg,rgba(200,169,110,.2),rgba(200,169,110,.1));border:1px solid var(--accent);color:var(--accent);padding:10px 24px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;letter-spacing:.04em;transition:all .2s}
.wave-submit-btn:hover{background:rgba(200,169,110,.25);box-shadow:0 0 16px rgba(200,169,110,.2)}
.wave-submit-btn:disabled{opacity:.4;cursor:not-allowed}
.wave-result-msg{font-size:13px;padding:8px 14px;border-radius:7px;border:1px solid}
.wave-result-msg.success{background:rgba(76,175,80,.1);border-color:rgba(76,175,80,.3);color:#4caf50}
.wave-result-msg.error{background:rgba(224,92,92,.1);border-color:rgba(224,92,92,.3);color:#e05c5c}

/* ── AI Settings Tab ───────────────────────────────────────────────────── */
.ai-settings-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px;margin-bottom:14px}
.ai-settings-card-title{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}
.ai-settings-row{display:flex;align-items:center;gap:14px;margin-bottom:11px}
.ai-settings-row:last-child{margin-bottom:0}
.ai-settings-toggle-row{justify-content:space-between}
.ai-settings-label{font-size:13px;color:var(--text);min-width:220px;flex-shrink:0}
.ai-settings-key-wrap{display:flex;align-items:center;gap:6px;flex:1}
.ai-settings-input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:7px 11px;font-size:13px;font-family:monospace;width:100%;outline:none;transition:border-color .15s}
.ai-settings-input:focus{border-color:var(--accent)}
.ai-settings-num{width:90px;font-family:inherit}
.ai-settings-select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:7px 11px;font-size:13px;outline:none;cursor:pointer;flex:1}
.ai-settings-eye-btn{background:none;border:1px solid var(--border);border-radius:6px;color:var(--muted);cursor:pointer;padding:5px 9px;font-size:14px;transition:color .15s;flex-shrink:0}
.ai-settings-eye-btn:hover{color:var(--text)}
/* Toggle switch */
.ai-toggle-switch{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0}
.ai-toggle-switch input{opacity:0;width:0;height:0}
.ai-toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,.1);border-radius:24px;cursor:pointer;transition:background .2s}
.ai-toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}
.ai-toggle-switch input:checked+.ai-toggle-slider{background:var(--accent)}
.ai-toggle-switch input:checked+.ai-toggle-slider::before{transform:translateX(18px)}

/* ── Banned Words Popup ──────────────────────────────────────────────────── */
.bw-builtin-tag{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--muted);font-size:11px;padding:3px 9px;border-radius:20px}
.bw-builtin-sfw{border-color:rgba(200,169,110,.3);color:var(--accent)}
.bw-word-tag{display:inline-flex;align-items:center;gap:6px;background:rgba(224,92,92,.1);border:1px solid rgba(224,92,92,.25);color:#e0a0a0;font-size:12px;padding:4px 10px;border-radius:20px;margin:3px}
.bw-word-tag button{background:none;border:none;color:#e05c5c;cursor:pointer;font-size:14px;line-height:1;padding:0;opacity:.7;transition:opacity .15s}
.bw-word-tag button:hover{opacity:1}
