:root {
      --bg: #06060a; --bg2: #0c0c12; --bg3: #111118;
      --border: rgba(255,255,255,0.05); --border2: rgba(255,255,255,0.10);
      --accent: #00d4ff; --accent2: #7c3aed; --pink: #f472b6; --gold: #fbbf24;
      --text: #f0f0f7; --text2: #8888b0; --text3: #4a4a68;
      --font: 'Inter', sans-serif; --mono: 'Space Mono', monospace;
    }
    *,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
    html { -webkit-overflow-scrolling:touch; }
    body {
      background:var(--bg); color:var(--text); font-family:var(--font);
      -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
      text-rendering:optimizeLegibility; letter-spacing:-0.01em;
      line-height:1.6;
      overflow-x:hidden; overflow-y:auto; min-height:100vh;
      -webkit-font-smoothing:antialiased;
    }
    a { text-decoration:none; color:inherit; }
    button { cursor:pointer; font-family:var(--font); border:none; outline:none; }
    img { display:block; }
    ::-webkit-scrollbar { width:3px; }
    ::-webkit-scrollbar-track { background:transparent; }
    ::-webkit-scrollbar-thumb { background:var(--accent2); border-radius:4px; }

    #scroll-progress {
      position:fixed; top:0; left:0; height:2px; z-index:9999;
      background:var(--accent); width:0%; pointer-events:none; will-change:width;
      transition:width 0.06s linear;
    }

    #loader {
      position:fixed; inset:0; z-index:10000; background:var(--bg);
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      transition:opacity 1s ease;
    }
    #loader.exit { opacity:0; visibility:hidden; pointer-events:none; }
    .ld-bg {
      position:absolute; inset:0; background-size:cover; background-position:center 20%;
      filter:blur(40px) brightness(0.12);
      transform:scale(1.35);
      transition:filter 1.2s cubic-bezier(.16,1,.3,1), transform 1.2s cubic-bezier(.16,1,.3,1);
    }
    .ld-bg.sharp { filter:blur(2px) brightness(0.22); transform:scale(1.02); }
    .ld-corona {
      position:absolute; inset:-200px; z-index:1; pointer-events:none;
      background:radial-gradient(circle at 50% 40%, rgba(0,212,255,.07) 0%, transparent 50%);
      opacity:0; transition:opacity 1s ease;
    }
    .ld-corona.in { opacity:1; }
    .ld-content { position:relative; z-index:2; text-align:center; }
    .ld-logo {
      font-family:'Outfit',sans-serif; font-size:clamp(3rem,7.5vw,7rem); font-weight:900; letter-spacing:-0.055em; line-height:1;
      opacity:0; transition:opacity .8s ease, transform .8s cubic-bezier(.16,1,.3,1);
      text-shadow:0 0 40px rgba(0,212,255,.15), 0 0 80px rgba(0,212,255,.08);
    }
    .ld-logo.in { opacity:1; }
    .ld-logo .w{color:#fff}
    .ld-logo .v{color:var(--accent)}
    #loader.exit { opacity:0; visibility:hidden; pointer-events:none; }
    .ld-sub {
      margin-top:.7rem; display:flex; align-items:center; justify-content:center; gap:.45rem;
      opacity:0; transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);
      transform:translateY(8px);
    }
    .ld-sub.in { opacity:1; transform:translateY(0); }
    .ld-link {
      font-family:var(--font); font-size:.8rem; color:var(--text3); letter-spacing:.06em;
      display:flex; align-items:center; gap:3px; transition:color .25s; line-height:1;
    }
    .ld-link:hover { color:var(--accent); }
    .ld-link svg { flex-shrink:0; width:16px; height:16px; display:block; }
    .ld-sep { color:var(--text3); opacity:.3; }
    #age-gate {
      position:fixed; inset:0; z-index:9999;
      display:none; align-items:center; justify-content:center;
      background:rgba(0,0,0,.8);
      backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    }
    #age-gate.on { display:flex; }
    #age-gate.exit { opacity:0; transition:opacity .4s; }
    .age-box {
      background:rgba(255,255,255,.025);
      border:1px solid rgba(0,212,255,.08);
      border-radius:28px; padding:3rem 2.8rem;
      max-width:420px; width:90%; text-align:center;
      backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
      box-shadow:0 20px 60px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.04), 0 0 60px rgba(0,212,255,.03);
      animation:ageIn .6s cubic-bezier(.16,1,.3,1) forwards;
      position:relative;
    }
    .age-box::before {
      content:''; position:absolute; inset:-1px; border-radius:28px;
      padding:1px;
      background:linear-gradient(135deg,rgba(0,212,255,.12),transparent 40%,transparent 60%,rgba(124,58,237,.08));
      -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite:xor; mask-composite:exclude;
      pointer-events:none;
    }
    @keyframes ageIn {
      0% { opacity:0; transform:scale(.92) translateY(20px); }
      100% { opacity:1; transform:scale(1) translateY(0); }
    }
    .age-icon { display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
    .age-icon svg { width:48px; height:48px; }
    .age-icon .icon-shield { fill:none; stroke:rgba(0,212,255,.5); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
    .age-icon .icon-shield-fill { fill:rgba(0,212,255,.1); stroke:rgba(0,212,255,.4); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
    .age-icon .icon-exclamation { fill:none; stroke:rgba(0,212,255,.6); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .age-title { font-family:'Outfit',sans-serif; font-size:1.25rem; font-weight:700; color:#fff; margin-bottom:.4rem; letter-spacing:-.02em; }
    .age-sub { font-size:.8rem; color:rgba(255,255,255,.4); line-height:1.6; margin-bottom:2rem; }
    .age-btns { display:flex; flex-direction:column; gap:.7rem; }
    .age-btn {
      padding:.9rem 1.5rem; border-radius:14px; border:1px solid rgba(255,255,255,.06);
      font-size:.82rem; font-weight:600; cursor:pointer;
      transition:all .25s; position:relative; overflow:hidden;
    }
    .age-btn-yes {
      background:linear-gradient(135deg,rgba(0,212,255,.1),rgba(124,58,237,.06));
      border-color:rgba(0,212,255,.15); color:#fff;
      box-shadow:0 0 20px rgba(0,212,255,.02);
    }
    .age-btn-yes:hover {
      background:linear-gradient(135deg,rgba(0,212,255,.2),rgba(124,58,237,.12));
      border-color:rgba(0,212,255,.25); transform:translateY(-1px);
      box-shadow:0 0 30px rgba(0,212,255,.06);
    }
    .age-btn-no {
      background:rgba(239,68,68,.04); border-color:rgba(239,68,68,.1); color:rgba(255,255,255,.45);
    }
    .age-btn-no:hover {
      background:rgba(239,68,68,.1); border-color:rgba(239,68,68,.2);
      color:#fca5a5; transform:translateY(-1px);
    }
    #signin-overlay {
      position:fixed; inset:0; z-index:9998;
      display:none; align-items:center; justify-content:center;
      background:rgba(0,0,0,.75);
    }
    #signin-overlay.on { display:flex; }
    @keyframes signinBounce {
      0% { opacity:0; transform:scale(.92) translateY(12px); }
      100% { opacity:1; transform:scale(1) translateY(0); }
    }
    .signin-box {
      background:rgba(12,12,18,.85);
      border:1px solid rgba(255,255,255,.06);
      border-radius:24px; padding:2.6rem 2.2rem;
      max-width:380px; width:90%; text-align:center;
      box-shadow:0 20px 50px rgba(0,0,0,.5);
      animation:signinBounce .4s ease-out forwards;
    }
    .signin-icon { margin-bottom:1rem; }
    .signin-icon svg { stroke:var(--accent); opacity:.8; }
    .signin-title { font-family:'Outfit',sans-serif; font-size:1.15rem; font-weight:700; color:#fff; margin-bottom:.35rem; letter-spacing:-.02em; }
    .signin-sub { font-size:.8rem; color:rgba(255,255,255,.35); line-height:1.6; margin-bottom:1.8rem; }
    .signin-encrypt {
      display:flex; align-items:center; justify-content:center; gap:.4rem;
      font-size:.7rem; font-weight:500; color:var(--accent); letter-spacing:.02em;
      margin-bottom:1.2rem; opacity:.7;
    }
    .signin-g-btn, .signin-e-btn {
      display:flex; align-items:center; justify-content:center; gap:.6rem;
      width:100%; padding:.85rem 1.2rem; border-radius:14px;
      background:#fff; color:#333; font-size:.85rem; font-weight:600;
      border:none; cursor:pointer; transition:transform .2s;
      font-family:var(--font);
    }
    .signin-g-btn:hover, .signin-e-btn:hover { transform:scale(1.03); }
    .signin-g-btn svg, .signin-e-btn svg { width:20px; height:20px; flex-shrink:0; }

    .signin-cancel {
      background:none; border:none; color:rgba(255,255,255,.3); font-size:.75rem;
      cursor:pointer; transition:color .2s; padding:.3rem;
    }
    .signin-cancel:hover { color:rgba(255,255,255,.6); }
    .signin-providers { display:flex; flex-direction:column; gap:.6rem; margin-bottom:.7rem; }
    .signin-divider { display:flex; align-items:center; gap:.6rem; font-size:.65rem; color:rgba(255,255,255,.2); letter-spacing:.04em; }
    .signin-divider::before, .signin-divider::after { content:''; flex:1; height:1px; background:rgba(255,255,255,.06); }
    .email-auth-overlay {
      position:fixed; inset:0; z-index:9999;
      display:none; align-items:center; justify-content:center;
      background:rgba(0,0,0,.75);
    }
    .email-auth-overlay.on { display:flex; }
    .email-auth-box {
      background:rgba(12,12,18,.85);
      border:1px solid rgba(255,255,255,.06);
      border-radius:24px; padding:2.6rem 2.2rem;
      max-width:380px; width:90%; text-align:center;
      box-shadow:0 20px 50px rgba(0,0,0,.5);
      animation:signinBounce .4s ease-out forwards;
    }
    .email-auth-icon { margin-bottom:.6rem; }
    .email-auth-icon svg { stroke:var(--accent); opacity:.8; }
    .email-auth-brand { margin-bottom:.15rem; }
    .email-auth-title { font-size:.8rem; color:rgba(255,255,255,.35); margin-bottom:1.4rem; }
    .email-auth-input {
      width:100%; padding:.8rem 1rem; border-radius:12px; border:1px solid rgba(255,255,255,.06);
      background:rgba(255,255,255,.03); color:#fff; font-size:.85rem; font-family:var(--font);
      outline:none; transition:border-color .25s;
      margin-bottom:.7rem; box-sizing:border-box;
    }
    .email-auth-input:focus { border-color:rgba(0,212,255,.25); }
    .email-auth-input::placeholder { color:rgba(255,255,255,.2); }
    .email-auth-msg { font-size:.7rem; margin-bottom:.6rem; min-height:0; }
    .email-auth-msg.err { color:#ef4444; }
    .email-auth-msg.ok { color:#22c55e; }
    .email-auth-submit {
      width:100%; padding:.8rem; border-radius:12px; border:none;
      background:#00d4ff; color:#000; font-size:.85rem; font-weight:700;
      cursor:pointer; font-family:var(--font); transition:transform .2s;
    }
    .email-auth-submit:hover { transform:scale(1.02); }

    .email-auth-verify { padding:.5rem 0; }
    .email-auth-verify-icon { margin-bottom:.6rem; }
    .email-auth-verify-icon svg { stroke:#00d4ff; opacity:.8; }
    .email-auth-verify-title { font-size:.95rem; font-weight:600; color:#fff; margin-bottom:.3rem; }
    .email-auth-verify-sub { font-size:.75rem; color:rgba(255,255,255,.35); line-height:1.5; margin-bottom:1rem; }
    .email-auth-verify-sub span { color:#00d4ff; font-weight:500; }
    .email-auth-verify-btn {
      padding:.65rem 1.4rem; border-radius:12px; border:1px solid rgba(0,212,255,.2);
      background:rgba(0,212,255,.06); color:#00d4ff; font-size:.75rem; font-weight:600;
      cursor:pointer; font-family:var(--font); transition:background .2s;
    }
    .email-auth-verify-btn:hover { background:rgba(0,212,255,.12); }

    #site-bg {
      position:fixed; inset:0; z-index:-3; background-size:cover; background-position:center 20%;
      filter:blur(30px) brightness(0.04); transform:scale(1.1);
      pointer-events:none; transition:background-image 1s ease;
    }
    #bg-anim {
      position:fixed; inset:0; z-index:-2; pointer-events:none;
      background:
        radial-gradient(ellipse at 20% 50%, rgba(0,212,255,.03) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 50%, rgba(124,58,237,.03) 0%, transparent 50%);
      animation:bgPulse 8s ease-in-out infinite alternate;
    }
    @keyframes bgPulse { 0%{opacity:.3;transform:scale(1)} 100%{opacity:.6;transform:scale(1.05)} }

    nav {
      position:fixed; top:0; left:0; right:0; z-index:1000;
      opacity:0; transform:translateY(-14px);
      animation:upK 0.65s 1.5s forwards cubic-bezier(0.16,1,0.3,1);
    }
    @keyframes upK { to{opacity:1;transform:translateY(0)} }
    .nav-inner {
      margin:12px 20px; display:flex; align-items:center; justify-content:space-between;
      gap:.8rem; padding:.7rem 1.2rem;
      background:rgba(6,6,10,.35);
      border:1px solid rgba(255,255,255,.06); border-radius:100px;
      box-shadow:0 8px 32px rgba(0,0,0,.25);
      backdrop-filter:blur(20px) saturate(1.2); -webkit-backdrop-filter:blur(20px) saturate(1.2);
      transition:margin .4s cubic-bezier(.16,1,.3,1), padding .4s cubic-bezier(.16,1,.3,1), 
                  border-radius .4s cubic-bezier(.16,1,.3,1), background .4s cubic-bezier(.16,1,.3,1),
                  box-shadow .4s cubic-bezier(.16,1,.3,1);
    }
    .nav-inner.shrunk {
      margin:0; padding:.4rem 1.2rem; border-radius:0; border:none;
      background:linear-gradient(180deg,rgba(6,6,10,.55) 0%,rgba(6,6,10,.2) 70%,transparent 100%);
      box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
    }
    .nav-logo {
      font-family:'Outfit',sans-serif; font-weight:900; font-size:1.05rem; letter-spacing:-0.04em; flex-shrink:0;
      user-select:none; color:#fff; position:relative; overflow:visible;
      text-shadow:0 0 30px rgba(0,212,255,.25),0 0 60px rgba(0,212,255,.08);
    }
    .nav-inner.shrunk .nav-logo { font-size:.85rem; }
    .nav-logo .w, .nav-logo .v { display:inline-block; }
    .nav-logo .w {
      animation:moveW 10s cubic-bezier(.65,0,.35,1) infinite;
    }
    .nav-logo .v {
      animation:moveV 10s cubic-bezier(.65,0,.35,1) infinite;
    }
    @keyframes moveW {
      0%,8%,92%,100% { transform:translateX(0) scale(1); color:#fff; text-shadow:0 0 30px rgba(0,212,255,.25),0 0 60px rgba(0,212,255,.08); }
      20% { transform:translateX(55px) scale(1.06); color:#fff; text-shadow:0 0 40px rgba(0,212,255,.06); }
      25% { transform:translateX(55px) scale(1); color:rgba(255,255,255,.25); text-shadow:none; }
      45% { transform:translateX(55px); color:rgba(255,255,255,.55); text-shadow:0 0 30px rgba(0,212,255,.12); }
      55% { transform:translateX(55px); color:rgba(255,255,255,.25); text-shadow:none; }
      70% { transform:translateX(55px) scale(1); color:#fff; text-shadow:0 0 40px rgba(0,212,255,.06); }
      75% { transform:translateX(0) scale(1.06); color:#fff; text-shadow:0 0 30px rgba(0,212,255,.25),0 0 60px rgba(0,212,255,.08); }
      80% { transform:translateX(0) scale(1); }
    }
    @keyframes moveV {
      0%,8%,92%,100% { transform:translateX(0) scale(1); color:var(--accent); text-shadow:0 0 30px rgba(0,212,255,.3),0 0 60px rgba(0,212,255,.1); }
      20% { transform:translateX(-45px) scale(1.06); color:var(--accent); text-shadow:0 0 40px rgba(0,212,255,.08); }
      25% { transform:translateX(-45px) scale(1); color:rgba(167,139,250,.25); text-shadow:none; }
      45% { transform:translateX(-45px); color:rgba(0,212,255,.55); text-shadow:0 0 30px rgba(0,212,255,.15); }
      55% { transform:translateX(-45px); color:rgba(244,114,182,.25); text-shadow:none; }
      70% { transform:translateX(-45px) scale(1); color:var(--accent); text-shadow:0 0 40px rgba(0,212,255,.08); }
      75% { transform:translateX(0) scale(1.06); color:var(--accent); text-shadow:0 0 30px rgba(0,212,255,.3),0 0 60px rgba(0,212,255,.1); }
      80% { transform:translateX(0) scale(1); }
    }
    .nav-right { display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
    .nav-btn {
      display:flex; align-items:center; gap:.35rem; padding:.4rem .75rem; border-radius:50px;
      border:1px solid rgba(255,255,255,.08); color:#fff; font-size:.7rem; font-weight:500;
      letter-spacing:-0.01em;
      background:rgba(255,255,255,.03); transition:background .2s;
    }
    .nav-btn:hover { background:rgba(255,255,255,.08); }
    .dl-btn {
      display:flex; align-items:center; gap:.35rem; padding:.4rem .85rem; border-radius:50px;
      background:linear-gradient(135deg,rgba(0,212,255,.2),rgba(124,58,237,.15));
      border:1px solid rgba(0,212,255,.3); color:#fff; font-size:.7rem; font-weight:600;
      letter-spacing:-0.01em;
      transition:background .2s, box-shadow .2s, transform .15s; cursor:pointer;
      box-shadow:0 0 12px rgba(0,212,255,.08);
    }
    .dl-btn:hover {
      background:linear-gradient(135deg,rgba(0,212,255,.3),rgba(124,58,237,.25));
      box-shadow:0 0 20px rgba(0,212,255,.15);
      transform:translateY(-1px);
    }
    .dl-progress { display:none; align-items:center; gap:.6rem; width:100%; padding:.4rem 1.8rem 0; }
    .dl-progress.on { display:flex; }
    .dl-bar-wrap { flex:1; max-width:300px; height:3px; border-radius:3px; background:rgba(255,255,255,.06); overflow:hidden; }
    .dl-bar { height:100%; width:0%; border-radius:3px; background:linear-gradient(90deg,var(--accent),var(--accent2)); transition:width .3s ease; }
    .dl-text { font-family:var(--font); font-size:.5rem; color:var(--text3); white-space:nowrap; letter-spacing:.02em; font-weight:500; min-width:50px; }
    [data-tip] { position:relative; }
    [data-tip]::after {
      content:attr(data-tip); position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%) scale(.95);
      background:var(--bg2); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
      border:1px solid var(--border2); border-radius:8px;
      padding:.35rem .75rem; font-family:var(--font); font-size:.65rem; font-weight:500;
      color:var(--text2); white-space:nowrap; letter-spacing:.01em;
      opacity:0; pointer-events:none; transition:opacity .2s, transform .2s cubic-bezier(.16,1,.3,1);
      z-index:100; box-shadow:0 4px 20px rgba(0,0,0,.3);
    }
    [data-tip]:hover::after { opacity:1; transform:translateX(-50%) scale(1); }
    .report-btn {
      display:flex; align-items:center; gap:.35rem; padding:.4rem .85rem; border-radius:50px;
      background:linear-gradient(135deg,rgba(245,158,11,.18),rgba(239,68,68,.12));
      border:1px solid rgba(245,158,11,.28); color:#fff; font-size:.7rem; font-weight:600;
      letter-spacing:-0.01em;
      transition:background .2s, box-shadow .2s, transform .15s; cursor:pointer;
      box-shadow:0 0 12px rgba(245,158,11,.06);
    }
    .report-btn:hover {
      background:linear-gradient(135deg,rgba(245,158,11,.28),rgba(239,68,68,.2));
      box-shadow:0 0 20px rgba(245,158,11,.12);
      transform:translateY(-1px);
    }
    .report-overlay {
      position:fixed; inset:0; z-index:9000; background:rgba(0,0,0,0);
      display:none; align-items:center; justify-content:center;
    }
    .report-overlay.on {
      display:flex; background:rgba(0,0,0,.7);
    }
    .report-overlay-inner {
      background:var(--bg2); border:1px solid var(--border2); border-radius:16px;
      padding:1.8rem; max-width:480px; width:92%; max-height:90vh; overflow-y:auto;
      animation:reportIn .4s cubic-bezier(.16,1,.3,1) both;
    }
    @keyframes reportIn {
      0% { transform:scale(.92) translateY(14px); opacity:0; }
      100% { transform:scale(1) translateY(0); opacity:1; }
    }
    .report-overlay.closing .report-overlay-inner {
      animation:reportOut .2s ease both;
    }
    @keyframes reportOut {
      0% { transform:scale(1) translateY(0); opacity:1; }
      100% { transform:scale(.95) translateY(6px); opacity:0; }
    }
    .report-title {
      font-family:'Outfit',sans-serif; font-size:1.15rem; font-weight:700;
      margin-bottom:.2rem; color:var(--text); letter-spacing:-0.01em;
    }
    .report-sub {
      font-size:.75rem; color:rgba(255,255,255,.45); margin-bottom:1.4rem; letter-spacing:.01em;
      line-height:1.4; padding-right:1.2rem;
    }
    .report-section { margin-bottom:1.2rem; }
    .report-label {
      font-size:.7rem; font-weight:600; color:#e0e0e0; letter-spacing:.045em;
      text-transform:uppercase; margin-bottom:.55rem; display:block;
    }
    .report-overlay-inner > * {
      animation:morphUp .35s cubic-bezier(.16,1,.3,1) both;
    }
    .report-overlay-inner > :nth-child(1) { animation-delay:.02s; }
    .report-overlay-inner > :nth-child(2) { animation-delay:.06s; }
    .report-overlay-inner > :nth-child(3) { animation-delay:.1s; }
    .report-overlay-inner > :nth-child(4) { animation-delay:.14s; }
    .report-overlay-inner > :nth-child(5) { animation-delay:.18s; }
    .report-overlay-inner > :nth-child(6) { animation-delay:.22s; }
    .report-overlay-inner > :nth-child(7) { animation-delay:.26s; }
    .report-overlay-inner > :nth-child(8) { animation-delay:.3s; }
    .report-overlay.closing .report-overlay-inner > * {
      animation:morphDown .18s ease both;
    }
    .report-overlay.closing .report-overlay-inner > :nth-child(1) { animation-delay:0s; }
    .report-overlay.closing .report-overlay-inner > :nth-child(2) { animation-delay:.02s; }
    .report-overlay.closing .report-overlay-inner > :nth-child(3) { animation-delay:.04s; }
    .report-overlay.closing .report-overlay-inner > :nth-child(4) { animation-delay:.06s; }
    .report-overlay.closing .report-overlay-inner > :nth-child(5) { animation-delay:.08s; }
    .report-overlay.closing .report-overlay-inner > :nth-child(6) { animation-delay:.1s; }
    .report-overlay.closing .report-overlay-inner > :nth-child(7) { animation-delay:.12s; }
    .report-overlay.closing .report-overlay-inner > :nth-child(8) { animation-delay:.14s; }
    @keyframes morphUp {
      0% { transform:translateY(12px); opacity:0; }
      100% { transform:translateY(0); opacity:1; }
    }
    @keyframes morphDown {
      0% { transform:translateY(0); opacity:1; }
      100% { transform:translateY(8px); opacity:0; }
    }
    .report-label-warn {
      font-size:.62rem; color:rgba(255,255,255,.32); font-weight:400; text-transform:none;
      letter-spacing:.01em; margin-left:.4rem;
    }
    .report-types {
      display:flex; flex-wrap:wrap; gap:.4rem;
    }
    .report-type {
      padding:.4rem .9rem; border-radius:50px; border:1px solid rgba(255,255,255,.1);
      background:rgba(255,255,255,.03); color:rgba(255,255,255,.55); font-size:.7rem; font-weight:500;
      cursor:pointer; transition:background .2s, border-color .2s, color .2s, box-shadow .2s; font-family:var(--font);
    }
    .report-type:hover { color:#fff; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.08); }
    .report-type.selected {
      background:rgba(239,68,68,.22); border-color:#ef4444;
      color:#fff; box-shadow:0 0 18px rgba(239,68,68,.25);
      animation:selectPop .3s cubic-bezier(.16,1,.3,1);
    }
    @keyframes selectPop {
      0% { transform:scale(1); }
      35% { transform:scale(1.1); }
      100% { transform:scale(1); }
    }
    .report-input {
      width:100%; padding:.65rem .85rem; border-radius:10px; border:1px solid rgba(255,255,255,.1);
      background:rgba(255,255,255,.04); color:#e8e8e8;
      font-family:var(--font); font-size:.82rem; outline:none;
      transition:border-color .2s; box-sizing:border-box;
    }
    .report-input:focus { border-color:#ef4444; }
    .report-input::placeholder { color:rgba(255,255,255,.25); font-size:.75rem; }
    .report-textarea {
      width:100%; min-height:90px; resize:vertical; padding:.65rem .85rem;
      border-radius:10px; border:1px solid rgba(255,255,255,.1);
      background:rgba(255,255,255,.04); color:#e8e8e8;
      font-family:var(--font); font-size:.82rem; line-height:1.5;
      outline:none; transition:border-color .2s; box-sizing:border-box;
    }
    .report-textarea:focus { border-color:#ef4444; }
    .report-textarea::placeholder { color:rgba(255,255,255,.25); font-size:.75rem; }
    .report-input.shake, .report-textarea.shake, .report-types.shake {
      border-color:#ef4444 !important; box-shadow:0 0 14px rgba(239,68,68,.25) !important;
      animation:shake .4s cubic-bezier(.16,1,.3,1);
    }
    .report-types.shake { padding:.35rem .85rem; border-radius:10px; border:1px solid transparent; display:flex; }
    .shake-leave { transition:border-color .5s ease, box-shadow .5s ease !important; }
    @keyframes shake {
      0%,100% { transform:translateX(0); }
      20% { transform:translateX(-6px); }
      40% { transform:translateX(5px); }
      60% { transform:translateX(-3px); }
      80% { transform:translateX(2px); }
    }
    .report-upload {
      display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
    }
    .report-upload-btn {
      padding:.35rem .85rem; border-radius:50px; border:1px solid rgba(255,255,255,.1);
      background:rgba(255,255,255,.04); color:rgba(255,255,255,.55);
      font-size:.68rem; font-weight:500; cursor:pointer; font-family:var(--font);
      transition:background .2s, border-color .2s, color .2s;
    }
    .report-upload-btn:hover { color:#fff; border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.07); box-shadow:0 0 18px rgba(239,68,68,.15); }
    .report-upload-name {
      font-size:.65rem; color:rgba(255,255,255,.4); max-width:200px;
      overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    }
    .report-upload-size {
      font-size:.6rem; color:rgba(255,255,255,.3); font-weight:500;
    }
    .report-upload-clear {
      background:none; border:none; color:rgba(255,255,255,.3); cursor:pointer;
      font-size:.8rem; padding:0 2px; transition:color .2s;
    }
    .report-upload-clear:hover { color:#ef4444; }
    .report-upload-preview {
      width:60px; height:40px; border-radius:6px; object-fit:cover;
      border:1px solid rgba(255,255,255,.1);
    }
    .report-upload-has { align-items:center; gap:.5rem; display:none; }
    .report-upload-has.show { display:flex; }
    .report-progress {
      width:100%; margin-top:.8rem; display:none; flex-direction:column; gap:.35rem;
    }
    .report-progress.on { display:flex; }
    .report-progress-bar {
      width:100%; height:3px; border-radius:3px; background:rgba(255,255,255,.06);
      overflow:hidden; position:relative;
    }
    .report-progress-fill {
      height:100%; width:0%; border-radius:3px;
      background:linear-gradient(90deg,#f59e0b,#ef4444);
      transition:width .35s cubic-bezier(.16,1,.3,1);
      position:relative;
    }
    .report-progress-fill::after {
      content:''; position:absolute; inset:0;
      background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
      animation:shimmer 1.2s ease-in-out infinite;
    }
    @keyframes shimmer {
      0% { transform:translateX(-100%); }
      100% { transform:translateX(100%); }
    }
    .report-progress-text {
      font-size:.6rem; color:rgba(255,255,255,.35); font-weight:500;
      letter-spacing:.04em; display:flex; justify-content:space-between;
    }
    .report-actions {
      display:flex; gap:.5rem; margin-top:1.4rem; justify-content:flex-end;
      border-top:1px solid var(--border); padding-top:1rem;
    }
    .report-submit {
      padding:.5rem 1.3rem; border-radius:50px; border:none;
      background:linear-gradient(135deg,rgba(245,158,11,.22),rgba(239,68,68,.16));
      border:1px solid rgba(245,158,11,.35); color:#fff; font-size:.72rem; font-weight:600;
      cursor:pointer; transition:background .2s, box-shadow .2s, transform .15s; font-family:var(--font);
    }
    .report-submit:hover {
      background:linear-gradient(135deg,rgba(245,158,11,.32),rgba(239,68,68,.26));
      box-shadow:0 0 28px rgba(239,68,68,.3), 0 0 60px rgba(245,158,11,.1);
      transform:translateY(-1px);
    }
    .report-submit:disabled { opacity:.4; pointer-events:none; transform:none; }
    .report-cancel {
      padding:.5rem 1.3rem; border-radius:50px; border:1px solid var(--border);
      background:none; color:var(--text3); font-size:.72rem; font-weight:500;
      cursor:pointer; transition:color .2s, border-color .2s; font-family:var(--font);
    }
    .report-cancel:hover { color:var(--text2); border-color:var(--border2); }
    @media (max-width:600px) {
      .report-overlay-inner { padding:1.2rem; max-width:100%; border-radius:12px; }
      .report-types { gap:.3rem; }
      .report-type { font-size:.6rem; padding:.3rem .65rem; }
    }
    .ctx-menu {
      position:fixed; z-index:9999; background:var(--bg2); border:1px solid var(--border2);
      border-radius:10px; padding:.35rem 0; min-width:150px;
      backdrop-filter:blur(12px); box-shadow:0 8px 32px rgba(0,0,0,.5);
      opacity:0; pointer-events:none; transition:opacity .15s, transform .15s cubic-bezier(.16,1,.3,1);
      transform:scale(.96) translateY(-4px);
    }
    .ctx-menu.on { opacity:1; pointer-events:auto; transform:scale(1) translateY(0); }
    .ctx-item {
      padding:.45rem 1rem; font-size:.72rem; color:rgba(255,255,255,.7); cursor:pointer;
      transition:background .15s; font-family:var(--font); display:flex; align-items:center; gap:.4rem;
    }
    .ctx-item:hover { background:rgba(255,255,255,.06); color:#fff; }
    .g-search {
      padding:.25rem .55rem; border-radius:7px; border:1px solid var(--border);
      background:rgba(255,255,255,.04); color:var(--text); font-family:var(--font);
      font-size:.62rem; outline:none; width:60px; transition:border-color .2s, width .2s;
    }
    .g-search:focus { border-color:var(--accent); width:90px; }
    .g-search::placeholder { color:var(--text3); font-size:.6rem; }
    .today-badge {
      position:absolute; top:4px; left:4px; background:linear-gradient(135deg,#f59e0b,#ef4444);
      border-radius:6px; padding:.12rem .45rem; font-size:.5rem; font-weight:700;
      color:#fff; letter-spacing:.04em; text-transform:uppercase; z-index:2;
      box-shadow:0 0 12px rgba(245,158,11,.3);
    }

    .lb-share-btn {
      position:fixed; bottom:1.6rem; right:calc(1.6rem + 255px); padding:.5rem .65rem; border-radius:11px;
      font-size:.7rem; font-weight:600; display:flex; align-items:center;
      background:rgba(255,255,255,.06); border:1px solid var(--border2); color:var(--text2);
      cursor:pointer; transition:background .2s, color .2s; z-index:6002;
    }
    .lb-share-btn:hover { background:rgba(255,255,255,.12); color:#fff; transform:translateY(-2px); }
    .lb-fav-btn {
      position:fixed; bottom:1.6rem; right:calc(1.6rem + 305px); padding:.5rem .65rem; border-radius:11px;
      font-size:.9rem; font-weight:600; display:flex; align-items:center;
      background:rgba(255,255,255,.06); border:1px solid var(--border2); color:var(--text2);
      cursor:pointer; transition:background .2s, color .2s, transform .2s; z-index:6002; line-height:1;
    }
    .lb-fav-btn:hover { background:rgba(255,255,255,.12); color:var(--gold); transform:translateY(-2px); }
    .lb-fav-btn.on { color:var(--gold); background:rgba(251,191,36,.15); border-color:rgba(251,191,36,.25); text-shadow:0 0 8px rgba(251,191,36,.3); }
    .lb-fav-btn.on:hover { background:rgba(251,191,36,.2); }
    .lb-random-btn { bottom:1.6rem; left:calc(1.6rem + 46px + 46px + 46px); }

    .fav-btn:hover { background:linear-gradient(135deg,rgba(244,114,182,.24),rgba(244,114,182,.07)); }
    .fav-btn .fc {
      font-family:var(--mono); font-size:.6rem; background:rgba(0,0,0,.28);
      padding:.12rem .38rem; border-radius:16px; min-width:20px; text-align:center;
    }
    .auth-btn {
      display:flex; align-items:center; gap:.4rem; padding:.5rem .9rem; border-radius:50px;
      border:1px solid rgba(255,255,255,.08); color:rgba(255,255,255,.6); font-size:.8rem; font-weight:500;
      background:rgba(255,255,255,.03); transition:background .2s, border-color .2s, color .2s;
      cursor:pointer; font-family:var(--font); flex-shrink:0;
    }
    .auth-btn:hover { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.14); color:#fff; }
    .auth-btn svg { width:17px; height:17px; flex-shrink:0; }
    .user-avatar {
      width:26px; height:26px; border-radius:50%; cursor:pointer; object-fit:cover; flex-shrink:0;
      border:2px solid rgba(0,212,255,.15);
      box-shadow:0 0 16px rgba(0,212,255,.04);
      transition:transform .3s cubic-bezier(.16,1,.3,1), border-color .3s, box-shadow .3s;
    }
    .user-avatar:hover {
      transform:scale(1.15);
      border-color:rgba(0,212,255,.4);
      box-shadow:0 0 24px rgba(0,212,255,.15), 0 0 0 2px rgba(0,212,255,.04);
    }
    .user-card {
      position:fixed; top:3.2rem; right:13.2rem; z-index:999; min-width:200px;
      background:rgba(10,10,16,.88); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
      border:1px solid rgba(255,255,255,.06); border-radius:14px;
      padding:1.2rem 1.2rem .9rem; text-align:center;
      box-shadow:0 12px 48px rgba(0,0,0,.5);
      opacity:0; pointer-events:none; transform:translateY(-6px) scale(.96);
      transition:opacity .25s, transform .25s cubic-bezier(.16,1,.3,1);
    }
    .user-card.on { opacity:1; pointer-events:auto; transform:translateY(0) scale(1); }
    .user-card-avatar {
      width:48px; height:48px; border-radius:50%; object-fit:cover; margin:0 auto .6rem;
      border:2px solid rgba(0,212,255,.2);
      box-shadow:0 0 20px rgba(0,212,255,.08);
    }
    .user-card-name {
      font-size:.75rem; font-weight:600; color:var(--text); margin-bottom:.15rem;
    }
    .user-card-email {
      font-size:.6rem; color:var(--text3); margin-bottom:.8rem; word-break:break-all;
    }
    .user-card-signout {
      padding:.35rem .9rem; border-radius:50px; border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03); color:var(--text3); font-size:.62rem; font-weight:500;
      cursor:pointer; font-family:var(--font); transition:background .2s, color .2s, border-color .2s;
      width:100%;
    }
    .user-card-signout:hover { background:rgba(239,68,68,.12); border-color:rgba(239,68,68,.3); color:#ef4444; }

    .featured-wrap { margin:0; padding:0; opacity:0; animation:upK .75s 1.6s forwards; }
    .featured {
      position:relative; height:100vh; min-height:500px; overflow:hidden;
      border-bottom:1px solid var(--border); cursor:pointer;
    }
    .feat-bg {
      position:absolute; inset:0; background-size:cover; background-position:center 20%;
      transform:scale(1.03); transition:transform 1.5s cubic-bezier(.16,1,.3,1);
      will-change:background-position, transform;
    }
    .feat-bg-next {
      position:absolute; inset:0; background-size:cover; background-position:center 20%;
      transform:scale(1.05); opacity:0;
      transition:opacity 1s ease, transform 1.5s cubic-bezier(.16,1,.3,1);
    }
    .feat-overlay {
      position:absolute; inset:0; pointer-events:none;
      background:linear-gradient(to top,rgba(6,6,10,.92) 0%,transparent 50%);
    }
    .swipe-hint {
      position:absolute; bottom:1rem; left:50%; transform:translateX(-50%);
      z-index:6; display:flex; flex-direction:column; align-items:center; gap:.3rem;
      pointer-events:none; opacity:0;
      animation:swipeHintIn .8s 2.5s forwards;
    }
    @keyframes swipeHintIn {
      0%{opacity:0;transform:translateX(-50%) translateY(8px)}
      100%{opacity:1;transform:translateX(-50%) translateY(0)}
    }
    .swipe-hint-arrow {
      width:26px; height:26px; border-radius:50%;
      background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1);
      display:flex; align-items:center; justify-content:center;
      animation:bounceDown 1.4s infinite;
    }
    .swipe-hint-arrow svg { width:11px; height:11px; opacity:.45; }
    @keyframes bounceDown { 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }
    .swipe-hint-text {
      font-family:var(--font); font-size:.6rem; letter-spacing:.14em;
      color:rgba(255,255,255,.25); text-transform:uppercase; font-weight:500;
    }

    .scroll-gallery-section { margin:0 0 3.5rem; opacity:0; animation:upK .65s 1.7s forwards; }
    .recent-strip-section { margin:0 0 2.5rem; display:none; }
    .recent-strip-section.has-items { display:block; }
    .recent-label {
      font-family:var(--font); font-size:.6rem; color:var(--text3);
      padding:0 1.8rem; margin-bottom:.6rem; letter-spacing:.04em;
    }
    .new-strip-section { margin:2rem 0 2.5rem; padding:0; clear:both; }
    .new-label {
      text-align:left; font-family:'Outfit',sans-serif; font-weight:900; font-size:1.05rem; letter-spacing:-0.04em;
      padding:0 1.8rem; margin-bottom:.8rem; user-select:none; overflow:hidden;
    }
    .new-label .n1 { color:var(--accent); display:inline-block; }
    .new-label .n2 { color:var(--accent2); display:inline-block; }
    .new-thumb {
      flex-shrink:0; width:200px; height:130px; border-radius:11px;
      cursor:pointer; border:1px solid rgba(0,212,255,.15);
      box-shadow:0 0 12px rgba(0,212,255,.08);
      position:relative; z-index:1;
      transition:transform .2s, filter .2s; will-change:transform;
    }
    .new-thumb img { width:100%; height:100%; object-fit:cover; pointer-events:none; border-radius:11px; }
    .new-thumb { box-shadow:0 0 12px rgba(0,212,255,.1); }
    .new-thumb:hover {
      transform:scale(1.06);
      filter:brightness(1.08);
    }
    .scroll-track {
      display:flex; gap:9px; padding:2px 1.8rem 5px;
      overflow-x:auto; -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
    }
    .scroll-track::-webkit-scrollbar { display:none; }
    .scroll-thumb {
      flex-shrink:0; width:200px; height:130px; border-radius:11px;
      cursor:pointer; border:1px solid rgba(255,255,255,.04);
      position:relative; z-index:1;
      transition:transform .2s, filter .2s; will-change:transform;
      content-visibility:auto; contain-intrinsic-size:130px;
    }
    .scroll-thumb img { width:100%; height:100%; object-fit:cover; pointer-events:none; }
    .scroll-thumb:hover {
      transform:scale(1.06);
      filter:brightness(1.08);
    }

    .gallery-section { padding:0 1.8rem 4.5rem; }
    .gallery-header {
      display:flex; align-items:center; justify-content:space-between;
      margin-bottom:1.6rem; flex-wrap:wrap; gap:.6rem;
    }
    .gallery-actions {
      display:flex; align-items:center; flex-wrap:wrap; gap:.5rem;
    }
    .sort-tabs { display:flex; gap:.25rem; }
    .sort-tab {
      padding:.3rem .7rem; border-radius:7px; font-family:var(--font); font-size:.65rem;
      color:var(--text3); border:1px solid var(--border); cursor:pointer; font-weight:500;
      background:none; transition:color .2s, border-color .2s, background .2s;
    }
    .sort-tab:hover { color:var(--text2); border-color:var(--border2); }
    .sort-tab.active { color:var(--accent); border-color:rgba(0,212,255,.2); background:rgba(0,212,255,.05); }
    .sort-tab[data-sort=favs].active { color:var(--gold); border-color:rgba(251,191,36,.24); background:rgba(251,191,36,.05); }
    .g-action-btn {
      padding:.3rem .7rem; border-radius:7px; font-family:var(--font); font-size:.65rem;
      color:var(--text3); border:1px solid var(--border); cursor:pointer; font-weight:500;
      background:none; transition:color .2s, border-color .2s;
    }
    .g-action-btn:hover { color:var(--text2); border-color:var(--border2); }

    .color-picker { display:inline-flex; align-items:center; gap:.35rem; padding:.2rem 0; }
    .color-dot {
      width:16px; height:16px; border-radius:50%; cursor:pointer;
      border:2px solid transparent; transition:border-color .2s, transform .2s;
    }
    .color-dot:hover { transform:scale(1.15); }
    .color-dot.active { border-color:#fff; }
    .color-search-label {
      display:flex; align-items:center; gap:.25rem; cursor:pointer; font-size:.6rem;
      color:var(--text3); margin-left:.2rem; transition:color .2s;
    }
    .color-search-label:hover { color:var(--text2); }
    .color-search-label input[type=color] {
      width:18px; height:18px; border:none; border-radius:50%; cursor:pointer;
      padding:0; background:none; border:2px solid transparent;
    }
    .color-search-label input[type=color]::-webkit-color-swatch-wrapper { padding:0; }
    .color-search-label input[type=color]::-webkit-color-swatch { border:none; border-radius:50%; }

    .masonry { columns:4 280px; column-gap:12px; }
    .m-item {
      position:relative; cursor:pointer;
      opacity:0; transform:translateY(50px) scale(0.92);
      transition:opacity 1s cubic-bezier(.4,0,.2,1),transform 1s cubic-bezier(.4,0,.2,1), box-shadow .3s;
      background:var(--bg2);
      perspective:800px; transform-style:preserve-3d;
      content-visibility:auto; contain-intrinsic-size:400px;
    }
    .m-item.vis { opacity:1; transform:translateY(0) scale(1); }
    .m-item:hover { box-shadow:0 18px 50px rgba(0,0,0,.7); z-index:2; }
    .m-item img {
      width:100%; height:auto; display:block; pointer-events:none;
      transition:transform .15s ease-out;
      backface-visibility:hidden;
    }
    .m-inner { overflow:hidden; border-radius:14px; position:relative; }
    .m-overlay {
      position:absolute; inset:0;
      background:linear-gradient(to top,rgba(6,6,10,.85) 0%,transparent 40%);
      opacity:0; transition:opacity .2s;
      display:flex; flex-direction:column; justify-content:flex-end; padding:.7rem;
      pointer-events:none;
    }
    .m-item:hover .m-overlay { opacity:1; }
    .new-badge {
      position:absolute; top:6px; right:6px; z-index:3;
      background:var(--accent); color:#fff; font-size:.55rem; font-weight:700;
      padding:2px 7px; border-radius:20px; line-height:1.3;
      pointer-events:none; box-shadow:0 2px 8px rgba(0,0,0,.4);
    }

    .empty-state {
      text-align:center; padding:6rem 2rem; font-family:var(--font); font-size:.85rem;
      color:var(--text3); display:none;
    }
    .empty-state.show { display:block; }

    #pagination {
      display:flex; align-items:center; justify-content:center; gap:.35rem;
      padding:1.5rem 0 .5rem; flex-wrap:wrap;
    }
    #page-nav {
      display:flex; align-items:center; justify-content:center; gap:.35rem;
      padding:0 0 1.5rem; flex-wrap:wrap;
    }
    #pagination .page-btn, #page-nav .page-btn {
      min-width:32px; height:32px; border-radius:8px; border:1px solid var(--border);
      background:none; color:var(--text3); font-family:var(--font); font-size:.7rem;
      font-weight:500; cursor:pointer; transition:all .2s; padding:0 .55rem;
    }
    #pagination .page-btn:hover, #page-nav .page-btn:hover { color:var(--text2); border-color:var(--border2); }
    #pagination .page-btn.active, #page-nav .page-btn.active { color:var(--accent); border-color:rgba(0,212,255,.24); background:rgba(0,212,255,.05); }
    #pagination .page-btn.disabled, #page-nav .page-btn.disabled { opacity:.2; pointer-events:none; }

    #lb {
      position:fixed; inset:0; z-index:6000; display:none;
      align-items:center; justify-content:center;
      background:rgba(0,0,0,.95);
    }
    #lb.on { display:flex; }
    #lb-img-wrap {
      display:flex; align-items:center; justify-content:center; position:relative;
      perspective:1200px; cursor:grab;
    }
    #lb-img {
      max-width:90vw; max-height:82vh; object-fit:contain; border-radius:14px;
      user-select:none; pointer-events:none; display:block;
      transition:opacity .3s cubic-bezier(.16,1,.3,1), transform .35s cubic-bezier(.16,1,.3,1);
      backface-visibility:hidden;
    }
    #lb-spinner {
      position:absolute; width:40px; height:40px;
      border:3px solid rgba(255,255,255,.08);
      border-top-color:rgba(255,255,255,.5);
      border-radius:50%;
      animation:spin .8s linear infinite;
      pointer-events:none;
    }
    @keyframes spin { to { transform:rotate(360deg); } }
    .lb-btn {
      position:fixed; width:42px; height:42px; border-radius:50%;
      background:rgba(255,255,255,.05); border:1px solid var(--border);
      color:#fff; font-size:1.1rem; display:flex; align-items:center; justify-content:center;
      cursor:pointer; transition:background .2s; z-index:6002;
    }
    .lb-btn:hover { background:rgba(255,255,255,.14); }
    .lb-btn.active { background:rgba(0,212,255,.15); border-color:rgba(0,212,255,.3); }
    #lb-close { top:1.2rem; right:1.2rem; font-size:.85rem; }

    #lb-ss { bottom:1.6rem; left:1.6rem; font-size:.85rem; width:38px; height:38px; }
    #lb-fs { bottom:1.6rem; left:calc(1.6rem + 46px); font-size:.8rem; width:38px; height:38px; }
    #lb-prev { left:1.2rem; top:50%; transform:translateY(-50%); }
    #lb-next { right:1.2rem; top:50%; transform:translateY(-50%); }
    .lb-dl-btn {
      position:fixed; bottom:1.6rem; right:1.6rem; padding:.55rem 1.2rem; border-radius:11px;
      font-size:.78rem; font-weight:700; display:flex; align-items:center; gap:.4rem;
      background:linear-gradient(135deg,var(--accent2),var(--accent)); color:#fff;
      cursor:pointer; transition:background .2s, box-shadow .2s, transform .15s; border:none; z-index:6002;
    }
    .lb-dl-btn:hover { transform:translateY(-2px); }
    .lb-dl-btn.done {
      background:linear-gradient(135deg,#22c55e,#16a34a);
      transform:translateY(0) scale(1.05);
      box-shadow:0 4px 24px rgba(34,197,94,.4);
      pointer-events:none;
    }
    .lb-dl-btn svg { transition:transform .3s cubic-bezier(.16,1,.3,1); }
    .lb-device-btn {
      position:fixed; bottom:1.6rem;       right:calc(1.6rem + 155px); padding:.5rem .65rem; border-radius:11px;
      font-size:.7rem; font-weight:600; display:flex; align-items:center;
      background:rgba(255,255,255,.06); border:1px solid var(--border2); color:#fff;
      cursor:pointer; transition:background .2s, opacity .2s; z-index:6002;
    }
    .lb-device-btn:hover { background:rgba(255,255,255,.12); transform:translateY(-2px); }
    .lb-report-btn {
      position:fixed; bottom:1.6rem;       right:calc(1.6rem + 205px); padding:.5rem .65rem; border-radius:11px;
      font-size:.7rem; font-weight:600; display:flex; align-items:center;
      background:rgba(255,255,255,.06); border:1px solid var(--border2); color:var(--text2);
      cursor:pointer; transition:background .2s, color .2s; z-index:6002;
    }
    .lb-report-btn:hover { background:rgba(255,255,255,.12); color:#fff; transform:translateY(-2px); }
    #preview-overlay {
      position:fixed; inset:0; z-index:7000;
      background:rgba(0,0,0,.85);
      display:none; align-items:center; justify-content:center;
      backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    }
    #preview-overlay.on { display:flex; }
    #preview-overlay.exit { opacity:0; transition:opacity .35s; }
    .preview-mockup {
      position:relative; display:flex; align-items:center; justify-content:center;
      animation:previewIn .5s cubic-bezier(.16,1,.3,1) forwards;
    }
    @keyframes previewIn {
      0% { opacity:0; transform:scale(.88) translateY(20px); }
      100% { opacity:1; transform:scale(1) translateY(0); }
    }
    .preview-close {
      position:absolute; top:-3rem; right:-.2rem; background:none; border:none;
      cursor:pointer; z-index:7001; opacity:.4; transition:opacity .2s, transform .2s;
      padding:4px;
    }
    .preview-close:hover { opacity:1; transform:scale(1.1); }
    .preview-close svg { width:18px; height:18px; stroke:rgba(255,255,255,.6); stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
    .preview-device {
      width:280px; height:560px; border-radius:44px;
      background-size:cover; background-position:center;
      position:relative; overflow:hidden; cursor:pointer; user-select:none;
      box-shadow:
        0 0 0 2px rgba(255,255,255,.06),
        0 0 0 4px rgba(0,0,0,.4),
        0 0 80px rgba(0,212,255,.06);
      transition:box-shadow .3s;
    }
    .preview-device::before {
      content:''; position:absolute; top:0; left:0; right:0; bottom:0;
      border-radius:44px;
      padding:2px;
      background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.02) 30%,rgba(0,0,0,.2) 70%,rgba(255,255,255,.04) 100%);
      -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite:xor; mask-composite:exclude;
      pointer-events:none;
    }
    .preview-device-notch {
      position:absolute; top:10px; left:50%; transform:translateX(-50%);
      width:100px; height:28px; border-radius:20px;
      background:rgba(0,0,0,.8); border:1px solid rgba(255,255,255,.04);
      z-index:3; display:flex; align-items:center; justify-content:center; gap:8px;
      backdrop-filter:blur(4px);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
    }
    .preview-device-notch-dot {
      width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.06);
    }
    .preview-device-notch-dot.on { background:#00d4ff; box-shadow:0 0 6px rgba(0,212,255,.3); }
    .preview-device::after {
      content:''; position:absolute; bottom:8px; left:50%; transform:translateX(-50%);
      width:110px; height:4px; border-radius:20px;
      background:rgba(255,255,255,.06); z-index:3;
    }
    .preview-device-label {
      position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
      font-family:'Outfit',sans-serif; font-size:.8rem; font-weight:900;
      color:rgba(255,255,255,.05); letter-spacing:-0.04em; white-space:nowrap; z-index:3;
      text-shadow:0 0 40px rgba(0,212,255,.04);
      pointer-events:none;
    }
    .preview-device-label .v { color:rgba(0,212,255,.08); }
    .preview-device-watermark {
      position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
      font-family:'Outfit',sans-serif; font-size:1.6rem; font-weight:900;
      color:rgba(255,255,255,.15); letter-spacing:-0.04em; white-space:nowrap; z-index:2;
      text-shadow:0 0 60px rgba(0,212,255,.08);
      pointer-events:none; user-select:none;
    }
    .preview-device:hover { box-shadow:0 0 0 2px rgba(255,255,255,.08), 0 0 0 4px rgba(0,0,0,.4), 0 0 100px rgba(0,212,255,.08); }
    .preview-nav-hint {
      position:absolute; top:50%; transform:translateY(-50%);
      color:rgba(255,255,255,.08); font-size:1.5rem; z-index:2;
      transition:color .3s, transform .3s; pointer-events:none;
    }
    .preview-nav-hint.left { left:-2.2rem; }
    .preview-nav-hint.right { right:-2.2rem; }
    .preview-device:hover ~ .preview-nav-hint,
    .preview-mockup:hover .preview-nav-hint { color:rgba(255,255,255,.15); }
    .preview-device:active { transform:scale(.98); transition:transform .1s; }
    @media (max-width:540px) {
      .lb-device-btn { bottom:1rem; right:calc(1rem + 130px); padding:.35rem .55rem; font-size:.6rem; }
      .lb-report-btn { bottom:1rem; right:calc(1rem + 170px); padding:.35rem .55rem; font-size:.6rem; }
      .lb-share-btn { bottom:1rem; right:calc(1rem + 210px); padding:.35rem .55rem; font-size:.6rem; display:flex; align-items:center; }
      .lb-fav-btn { bottom:1rem; right:calc(1rem + 250px); padding:.35rem .55rem; font-size:.7rem; }
      .lb-dl-btn { bottom:1rem; padding:.45rem 1rem; font-size:.7rem; }
      .preview-device { width:200px; height:400px; border-radius:32px; }
      .preview-device::before { border-radius:32px; }
      .preview-device-notch { width:70px; height:22px; top:7px; border-radius:16px; gap:6px; }
      .preview-device-notch-dot { width:4px; height:4px; }
      .preview-device::after { width:80px; height:3px; }
      .preview-device-label { font-size:.4rem; bottom:20px; }
      .preview-device-watermark { font-size:1.1rem; }
      .preview-nav-hint { display:none; }
    }
    #lb-similar-wrap {
      position:fixed; bottom:4.5rem; left:50%; transform:translateX(-50%);
      z-index:6001; display:none; flex-direction:column; align-items:center;
      gap:6px; max-width:90vw;
    }
    #lb-similar-wrap.on { display:flex; }
    .lb-similar-label {
      font-size:.55rem; color:var(--text3); letter-spacing:.06em; text-transform:uppercase;
    }
    #lb-similar-wrap .scroll-track {
      padding:0; gap:6px; overflow-x:auto;
    }
    #lb-similar-wrap .scroll-thumb {
      width:90px; height:58px; flex-shrink:0;
    }
    #lb-sim-btn {
      bottom:1.6rem; left:calc(1.6rem + 46px + 46px); font-size:.8rem; width:38px; height:38px;
    }
    #scroll-top {
      position:fixed; bottom:1.6rem; left:1.6rem; z-index:500; width:42px; height:42px; border-radius:50%;
      background:rgba(255,255,255,.04); border:1px solid var(--border); color:#fff;
      font-size:1rem; display:none; align-items:center; justify-content:center;
      cursor:pointer; transition:opacity .2s, transform .2s, background .2s; backdrop-filter:blur(8px);
    }
    #scroll-top.show { display:flex; }
    #scroll-top:hover { background:rgba(255,255,255,.1); transform:translateY(-2px); }

    .dots-section {
      padding:4rem 2rem 2rem; max-width:960px; margin:0 auto; text-align:center;
      position:relative;
    }
    .dots-section::before, .dots-section::after {
      content:''; position:absolute; top:50%; transform:translateY(-50%);
      width:280px; height:280px; border-radius:50%; pointer-events:none; z-index:-1;
    }
    .dots-section::before {
      left:-100px;
      background:radial-gradient(circle,rgba(251,191,36,.06) 0%,transparent 70%);
    }
    .dots-section::after {
      right:-100px;
      background:radial-gradient(circle,rgba(251,191,36,.04) 0%,transparent 70%);
    }
    .dots-card {
      display:inline-flex; align-items:center; gap:1.5rem;
      background:rgba(255,255,255,.03);
      border:1px solid rgba(255,255,255,.06);
      border-radius:16px; padding:1.8rem 2.5rem;
      backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
      transition:background .4s cubic-bezier(.16,1,.3,1), border-color .4s cubic-bezier(.16,1,.3,1), transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s cubic-bezier(.16,1,.3,1);
    }
    .dots-card:hover {
      background:rgba(255,255,255,.05);
      border-color:rgba(251,191,36,.2);
      transform:translateY(-3px);
      box-shadow:0 12px 40px rgba(0,0,0,.4), 0 0 40px rgba(251,191,36,.06), -80px 0 80px -40px rgba(251,191,36,.06), 80px 0 80px -40px rgba(251,191,36,.06);
    }
    .dots-icon {
      width:52px; height:52px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
      background:linear-gradient(135deg,rgba(251,191,36,.1),rgba(251,191,36,.04));
      border-radius:14px; border:1px solid rgba(251,191,36,.12);
      transition:background .35s, border-color .35s, box-shadow .35s, color .35s;
    }
    .dots-card:hover .dots-icon {
      background:linear-gradient(135deg,rgba(251,191,36,.14),rgba(251,191,36,.06));
      border-color:rgba(251,191,36,.2);
      box-shadow:0 0 20px rgba(251,191,36,.06);
    }
    .dots-icon svg { width:24px; height:24px; color:var(--gold); stroke-width:1.5; stroke-linejoin:round; }
    .dots-text { text-align:left; }
    .dots-title {
      font-size:.7rem; font-weight:700; letter-spacing:.08em; margin-bottom:.3rem;
      color:var(--gold);
    }
    .dots-desc {
      font-size:.65rem; color:var(--text2); line-height:1.6; margin-bottom:.4rem;
    }
    .dots-desc strong { color:var(--text); font-weight:600; }
    .dots-link {
      display:inline-flex; align-items:center; gap:.35rem;
      font-family:var(--mono); font-size:.55rem; color:var(--text3);
      transition:color .25s; letter-spacing:.02em;
    }
    .dots-link:hover { color:var(--gold); }

    footer {
      text-align:center; padding:3.5rem 2rem 2.5rem;
      border-top:1px solid rgba(255,255,255,.04);
      position:relative;
    }
    footer::before {
      content:''; position:absolute; top:0; left:10%; right:10%; height:1px;
      background:linear-gradient(90deg,transparent,rgba(251,191,36,.08),rgba(0,212,255,.08),transparent);
    }
    .foot-logo { font-family:'Outfit',sans-serif; font-size:1.6rem; font-weight:900; letter-spacing:-0.05em; margin-bottom:.4rem; user-select:none; }
    .foot-logo span { color:var(--accent); }
    .foot-stats { display:flex; gap:2.5rem; justify-content:center; flex-wrap:wrap; margin-bottom:1.2rem; }
    .foot-stat { font-family:var(--font); font-size:.55rem; color:var(--text3); text-align:center; letter-spacing:.04em; }
    .foot-stat-num { display:block; font-size:.8rem; font-weight:700; color:var(--text); margin-bottom:.05rem; letter-spacing:-.02em; }
    .foot-social {
      display:flex; align-items:center; justify-content:center; gap:.6rem; margin-bottom:1rem;
    }
    .foot-social a {
      display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%;
      background:rgba(255,255,255,.03); border:1px solid var(--border);
      color:var(--text3); transition:color .3s, background .3s, border-color .3s, transform .3s, box-shadow .3s; font-size:.75rem;
    }
    .foot-social a:hover {
      background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.12);
      color:var(--accent); transform:translateY(-2px);
      box-shadow:0 4px 16px rgba(0,0,0,.3);
    }
    .foot-social a svg { width:16px; height:16px; }
    .foot-soc-link[data-tip]::after { top:auto; bottom:calc(100% + 10px); }
    .foot-copy { font-family:var(--font); font-size:.5rem; color:var(--text3); letter-spacing:.06em; font-weight:400; }

    #toasts {
      position:fixed; bottom:1.2rem; right:1.2rem; z-index:9000;
      display:flex; flex-direction:column; gap:.35rem; pointer-events:none;
    }
    .toast {
      padding:.6rem 1rem; background:rgba(15,15,22,.96); border:1px solid var(--border2);
      border-radius:10px; font-family:var(--font); font-size:.7rem; color:var(--text);
      animation:toastInK .3s cubic-bezier(.16,1,.3,1);
      box-shadow:0 6px 24px rgba(0,0,0,.7); pointer-events:auto;
    }
    .toast.ok { border-left:2px solid var(--accent); }
    .toast.err { border-left:2px solid #ff4444; }
    .toast.warn { border-left:2px solid var(--gold); }
    @keyframes toastInK { from{opacity:0;transform:translateX(14px)} to{opacity:1;transform:translateX(0)} }

    .shortcuts-overlay {
      position:fixed; inset:0; z-index:8000; background:rgba(0,0,0,.8);
      display:none; align-items:center; justify-content:center;
      backdrop-filter:blur(6px);
    }
    .shortcuts-overlay.on { display:flex; }
    .shortcuts-content {
      background:var(--bg2); border:1px solid var(--border2); border-radius:16px;
      padding:2rem; max-width:380px; width:90%;
    }
    .shortcuts-title {
      font-family:'Outfit',sans-serif; font-size:1.1rem; font-weight:700;
      color:var(--text);
    }
    .shortcuts-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
    .shortcuts-close {
      background:none; border:none; color:var(--text3); cursor:pointer; padding:.25rem;
      border-radius:6px; display:flex; align-items:center; transition:color .2s, background .2s;
    }
    .shortcuts-close:hover { color:var(--text); background:rgba(255,255,255,.08); }
    .shortcuts-grid { display:flex; flex-direction:column; gap:.7rem; }
    .shortcuts-grid span {
      font-size:.8rem; color:var(--text2); display:flex; align-items:center; gap:.5rem;
    }
    .shortcuts-grid kbd {
      font-family:var(--mono); font-size:.7rem; background:rgba(255,255,255,.08);
      padding:.15rem .55rem; border-radius:6px; border:1px solid rgba(255,255,255,.12);
      color:var(--text); min-width:24px; text-align:center;
    }

    .rev { opacity:0; transform:translateY(26px); transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1); }
    .rev.in { opacity:1; transform:translateY(0); }

    @media (max-width:900px) {
      .nav-inner { margin:10px 14px; padding:.5rem .8rem; border-radius:100px; }
      .nav-inner.shrunk { margin:0; padding:.24rem .6rem; border-radius:0; border:none; }
      .featured { height:60vh; min-height:350px; }
      .gallery-section { padding:0 1.2rem 3rem; }
      .masonry { columns:2 170px; column-gap:9px; }
      .m-item { margin-bottom:9px; }
      .scroll-thumb { width:130px; height:86px; }
      .new-thumb { width:160px; height:105px; }
      #scroll-top { left:auto; right:1rem; bottom:1rem; }
    }
    @media (min-width:541px) and (max-width:900px) { .masonry { columns:3 180px; column-gap:10px; } }
    @media (max-width:540px) {
      .nav-inner { padding:.42rem .7rem; margin:6px 10px; border-radius:100px; }
      .nav-inner.shrunk { padding:.2rem .5rem; margin:0; border-radius:0; border:none; }
      .featured { height:45vh; min-height:260px; }
      .gallery-section { padding:0 .8rem 2rem; }
      .sort-tab { font-size:.6rem; padding:.25rem .6rem; }
      .g-action-btn { font-size:.55rem; padding:.2rem .5rem; }
      .gallery-actions { gap:.3rem; }
      .masonry { columns:2 140px; column-gap:7px; }
      .m-item { margin-bottom:7px; border-radius:10px; }
      .scroll-thumb { width:110px; height:72px; }
      .new-thumb { width:140px; height:92px; }
      .dots-section { padding:2.5rem 1rem 1.5rem; }
      .dots-section::before, .dots-section::after { width:160px; height:160px; }
      .dots-section::before { left:-60px; }
      .dots-section::after { right:-60px; }
      .dots-card { flex-direction:column; text-align:center; padding:1.5rem 1.5rem; gap:1rem; }
      .dots-text { text-align:center; }
      footer { padding:2.5rem 1rem 1.5rem; }
      .foot-stat-num { font-size:.7rem; }
      #toasts { bottom:.7rem; right:.7rem; left:.7rem; }

      #lb-close { top:.8rem; right:.8rem; width:36px; height:36px; font-size:.75rem; }
      #lb-ss { bottom:1rem; left:1rem; width:34px; height:34px; font-size:.75rem; }
      #lb-fs { bottom:1rem; left:calc(1rem + 40px); width:34px; height:34px; font-size:.7rem; }
      #lb-sim-btn { bottom:1rem; left:calc(1rem + 40px + 40px); width:34px; height:34px; font-size:.7rem; }
      .lb-dl-btn { padding:.45rem 1rem; font-size:.7rem; }
      .nav-btn { font-size:.6rem; padding:.25rem .45rem; }
      .auth-btn { font-size:.65rem; padding:.3rem .55rem; }
      .dl-btn { font-size:.6rem; padding:.25rem .5rem; }
      .report-btn { font-size:.6rem; padding:.25rem .5rem; }
      .user-card { right:8.5rem; min-width:170px; }
    }
    @media (max-width:400px) {
      .nav-right { gap:.2rem; }
      .nav-btn { padding:.2rem .35rem; font-size:.55rem; }
      .dl-btn { padding:.2rem .4rem; font-size:.55rem; }
      .report-btn { font-size:.55rem; padding:.2rem .4rem; }
      .auth-btn { font-size:.6rem; padding:.25rem .5rem; }

      .user-card { right:6.5rem; min-width:150px; }
      .lb-device-btn { bottom:.7rem; right:calc(.7rem + 105px); padding:.3rem .45rem; font-size:.55rem; }
      .lb-report-btn { bottom:.7rem; right:calc(.7rem + 140px); padding:.3rem .45rem; font-size:.55rem; }
      .lb-share-btn { bottom:.7rem; right:calc(.7rem + 175px); padding:.3rem .45rem; font-size:.55rem; display:flex; align-items:center; }
      .lb-fav-btn { bottom:.7rem; right:calc(.7rem + 210px); padding:.3rem .45rem; font-size:.6rem; }
      .lb-dl-btn { bottom:.7rem; padding:.35rem .7rem; font-size:.6rem; }
      .lb-ss { bottom:.7rem; left:.7rem; }
      .lb-fs { bottom:.7rem; left:calc(.7rem + 34px); }
      .lb-sim-btn { bottom:.7rem; left:calc(.7rem + 68px); }
    }
    @media (min-width:1400px) { .masonry { columns:5 260px; column-gap:13px; } }
    @media (min-width:1800px) { .masonry { columns:6 270px; column-gap:14px; } }
    @media (prefers-reduced-motion:reduce) {
      *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    }
    .data-saver #bg-anim { display:none; }
    .data-saver .new-thumb:hover { transform:none !important; filter:none !important; }
    .data-saver .scroll-thumb:hover { transform:none !important; filter:none !important; }
    .data-saver .m-item:hover { transform:none !important; box-shadow:none !important; }
    .data-saver .m-item:hover img { transform:none !important; }
    .data-saver .dots-card:hover { transform:none !important; }
    .data-saver .nav-inner.shrunk { backdrop-filter:none !important; }
    .data-saver .ld-bg { transition:none !important; }
    .data-saver .ld-logo { transition:none !important; }
    .data-saver .lb-btn { display:none; }

    .pwa-install {
      position: fixed;
      bottom: 2rem;
      right: 2rem;
      z-index: 999;
      display: none;
      align-items: center;
      gap: .5rem;
      padding: .6rem 1.2rem;
      background: rgba(6,6,10,.92);
      border: 1px solid rgba(0,212,255,.3);
      border-radius: 50px;
      color: rgba(255,255,255,.85);
      font-size: .85rem;
      font-weight: 500;
      cursor: pointer;
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      transition: .3s;
      box-shadow: 0 0 20px rgba(0,212,255,.08);
      user-select: none;
    }
    .pwa-install.show { display: flex; }
    .pwa-install:hover {
      border-color: rgba(0,212,255,.6);
      box-shadow: 0 0 30px rgba(0,212,255,.15);
      color: #fff;
    }
    .pwa-install svg { flex-shrink: 0; }

    .pwa-ios-overlay {
      position: fixed;
      top: 0; left: 0; right: 0; bottom: 0;
      z-index: 10000;
      background: rgba(0,0,0,.7);
      display: flex;
      align-items: center;
      justify-content: center;
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
    }
    .pwa-ios-box {
      background: rgba(12,12,18,.96);
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 16px;
      padding: 2rem;
      max-width: 340px;
      width: 90%;
      text-align: center;
      box-shadow: 0 0 60px rgba(0,212,255,.06);
    }
    .pwa-ios-title {
      font-size: 1.2rem;
      font-weight: 700;
      color: rgba(255,255,255,.9);
      margin-bottom: 1.5rem;
    }
    .pwa-ios-steps { text-align: left; }
    .pwa-ios-step {
      display: flex;
      align-items: center;
      gap: .75rem;
      padding: .6rem 0;
      color: rgba(255,255,255,.7);
      font-size: .85rem;
      line-height: 1.4;
    }
    .pwa-ios-step b { color: rgba(255,255,255,.9); }
    .pwa-ios-num {
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: rgba(0,212,255,.12);
      border: 1px solid rgba(0,212,255,.2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: .7rem;
      font-weight: 600;
      color: var(--accent);
      flex-shrink: 0;
    }
    .pwa-ios-icon {
      font-size: .9rem;
      vertical-align: middle;
    }
    .pwa-ios-btn {
      margin-top: 1.5rem;
      padding: .6rem 2rem;
      border: 1px solid rgba(0,212,255,.4);
      border-radius: 50px;
      background: transparent;
      color: var(--accent);
      font-size: .85rem;
      font-weight: 600;
      cursor: pointer;
      transition: .2s;
    }
    .pwa-ios-btn:hover {
      background: rgba(0,212,255,.1);
      border-color: rgba(0,212,255,.6);
    }

    @media (max-width:600px) {
      .pwa-install { bottom: 1rem; right: 1rem; padding: .5rem 1rem; font-size: .8rem; }
      .pwa-ios-box { padding: 1.5rem; }
      .pwa-ios-title { font-size: 1.1rem; }
    }