:root{--bg:#080808;--surface:#111;--glass:rgba(255,255,255,.06);--glass-border:rgba(255,255,255,.12);--text:#f0ede8;--muted:rgba(240,237,232,.4);--accent:#c8ff00}
*{margin:0;padding:0;box-sizing:border-box;cursor:none}
body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;overflow:hidden;width:100vw;height:100vh;position:relative}
h1,h2,h3{font-family:'Bebas Neue',cursive;font-weight:400;letter-spacing:1px}

/* Cursor */
.cursor{position:fixed;width:12px;height:12px;background:var(--text);border-radius:50%;pointer-events:none;mix-blend-mode:difference;z-index:9999;transform:translate(-50%,-50%);transition:width .2s,height .2s}
.cursor.hov{width:32px;height:32px;background:var(--accent);mix-blend-mode:normal}

/* BG */
#bg{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;transition:opacity .6s ease, object-fit 0s;opacity:0;background:#111}
body.fs #bg{object-fit:contain;background:#000}
.vig{position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.75) 100%),linear-gradient(to right,rgba(0,0,0,.75) 0%,transparent 45%),linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 45%)}

/* UI */
.ui{position:fixed;inset:0;z-index:10;pointer-events:none;transition:opacity .4s}
.ui>*{pointer-events:auto}
body.fs .ui{opacity:0;pointer-events:none!important}

/* Exit FS btn */
.exit-fs{position:fixed;top:20px;right:20px;z-index:100;display:none;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid var(--glass-border);color:var(--text);align-items:center;justify-content:center;pointer-events:auto}
body.fs .exit-fs{display:flex}
body.fs .vig,body.fs .grain,body.fs .scan{opacity:0!important;pointer-events:none;transition:opacity .4s}

/* Top Left */
.tl{position:fixed;top:48px;left:48px;z-index:10;max-width:50vw}
.tl .cat{font-family:'Space Mono',monospace;font-size:.8rem;color:var(--accent);text-transform:uppercase;letter-spacing:3px;margin-bottom:10px;opacity:.9}
.tl h1{font-size:clamp(3rem,8vw,7rem);line-height:.88;text-transform:uppercase;text-shadow:0 4px 40px rgba(0,0,0,.7);margin-bottom:6px;animation:titleIn .8s cubic-bezier(.22,1,.36,1)}
.tl .app{font-size:1rem;color:var(--muted);letter-spacing:1px}
@keyframes titleIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

/* Top Center - Category Nav */
.tc{position:fixed;top:36px;left:50%;transform:translateX(-50%);z-index:12;background:rgba(0,0,0,.4);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:40px;padding:6px;display:flex;gap:4px;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.pill{padding:9px 18px;border-radius:28px;border:none;background:transparent;color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:500;font-size:.85rem;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}
.pill:hover{color:var(--text);background:rgba(255,255,255,.06)}
.pill.on{background:var(--text);color:var(--bg);box-shadow:0 2px 12px rgba(255,255,255,.15)}

/* Right Center - Glass Buttons */
.rc{position:fixed;right:40px;top:50%;transform:translateY(-50%);z-index:11;display:flex;flex-direction:column;gap:14px}
.gb{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 20px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.1);color:var(--text);display:flex;align-items:center;justify-content:center;position:relative;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .3s}
.gb svg{width:22px;height:22px;flex-shrink:0}
.gb:hover{transform:scale(1.12);background:rgba(255,255,255,.16)}
.gb::after{content:attr(data-tip);position:absolute;right:calc(100% + 16px);background:rgba(8,8,8,.9);backdrop-filter:blur(8px);padding:7px 12px;border-radius:6px;border:1px solid var(--glass-border);font-size:.78rem;white-space:nowrap;font-family:'Space Mono',monospace;opacity:0;pointer-events:none;transform:translateX(8px);transition:all .25s}
.gb:hover::after{opacity:1;transform:translateX(0)}

/* Bottom Right - Thumbnails */
.br{position:fixed;right:40px;bottom:32px;z-index:11;display:flex;gap:10px;align-items:flex-end}
.th{width:88px;height:56px;border-radius:8px;overflow:hidden;border:2px solid rgba(255,255,255,.1);position:relative;transition:all .3s cubic-bezier(.34,1.56,.64,1);background:rgba(255,255,255,.04);flex-shrink:0}
.th img{width:100%;height:100%;object-fit:cover;display:block}
.th::after{content:attr(data-i);position:absolute;bottom:3px;left:5px;font-family:'Space Mono',monospace;font-size:.65rem;color:#fff;text-shadow:0 1px 3px #000}
.th:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.35)}
.th.on{border-color:var(--accent);box-shadow:0 0 16px rgba(200,255,0,.35)}

/* Bottom Left */
.bl{position:fixed;left:48px;bottom:40px;z-index:11;display:flex;align-items:center;gap:28px}
.counter{font-family:'Space Mono',monospace;font-size:1.3rem;letter-spacing:2px}

/* Side Panel */
.panel{position:fixed;top:0;right:0;width:380px;height:100%;background:rgba(8,8,8,.88);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-left:1px solid var(--glass-border);transform:translateX(100%);transition:transform .5s cubic-bezier(.22,1,.36,1);z-index:50;padding:48px 32px;display:flex;flex-direction:column;overflow:hidden}
.panel.open{transform:translateX(0)}
.xbtn{position:absolute;top:28px;right:28px;background:none;border:none;color:var(--text);opacity:.5;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}
.xbtn:hover{background:rgba(255,255,255,.1);opacity:1;transform:scale(1.1)}
.xbtn svg{width:22px;height:22px}
.ptag{font-family:'Space Mono',monospace;color:var(--accent);font-size:.8rem;text-transform:uppercase;margin-bottom:14px;letter-spacing:1px}
.pttl{font-size:3rem;margin-bottom:24px;line-height:1;text-transform:uppercase}
.pbody{font-size:1.05rem;color:var(--muted);line-height:1.7;flex:1;overflow-y:auto;padding-right:10px}
.pbody::-webkit-scrollbar{width:3px}
.pbody::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
.pbox{background:rgba(0,0,0,.6);border:1px solid var(--glass-border);border-radius:10px;padding:18px;font-family:'Space Mono',monospace;font-size:.85rem;color:var(--text);line-height:1.6;margin-bottom:24px;word-break:break-word}
.cpbtn{width:100%;padding:14px;border-radius:8px;border:1px solid var(--glass-border);background:rgba(255,255,255,.05);color:var(--text);font-family:'Space Mono',monospace;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.85rem;text-transform:uppercase;letter-spacing:1px}
.cpbtn:hover{background:rgba(255,255,255,.15);border-color:var(--accent)}
.cpbtn svg{width:16px;height:16px}

/* Toast */
#toasts{position:fixed;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:10px;z-index:9000;pointer-events:none}
.toast{background:rgba(200,255,0,.12);backdrop-filter:blur(12px);border:1px solid rgba(200,255,0,.25);padding:12px 24px;border-radius:28px;font-family:'Space Mono',monospace;font-size:.82rem;color:var(--accent);animation:tIn .4s cubic-bezier(.34,1.56,.64,1),tOut .4s 2.8s forwards;box-shadow:0 8px 24px rgba(0,0,0,.4)}
@keyframes tIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes tOut{to{opacity:0;transform:translateY(-12px)}}

/* Grain overlay */
.grain{position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Scanline */
.scan{position:fixed;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px)}

/* ═══════════════════════════════════════════
   RESPONSIVE — Touch devices hide cursor
   ═══════════════════════════════════════════ */
@media(hover:none){
  *{cursor:auto!important}
  .cursor{display:none!important}
}

/* ═══════════════════════════════════════════
   RESPONSIVE — Tablet (≤1024px)
   ═══════════════════════════════════════════ */
@media(max-width:1024px){
  .tl{top:80px;left:28px;max-width:55vw}
  .tl h1{font-size:clamp(2.4rem,7vw,5rem)}

  .tc{top:16px;left:12px;right:12px;transform:none;max-width:100vw;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:5px;gap:3px}
  .tc::-webkit-scrollbar{display:none}
  .pill{padding:8px 14px;font-size:.8rem;flex-shrink:0}

  .rc{right:16px;gap:10px}
  .gb{width:46px;height:46px}
  .gb::after{display:none}

  .br{right:16px;bottom:20px;gap:8px;max-width:calc(100vw - 32px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .br::-webkit-scrollbar{display:none}
  .th{width:72px;height:46px}

  .bl{left:28px;bottom:24px}
  .counter{font-size:1.1rem}

  .panel{width:340px;padding:40px 24px}
  .pttl{font-size:2.4rem}
}

/* ═══════════════════════════════════════════
   RESPONSIVE — Small Tablet / Large Phone (≤768px)
   ═══════════════════════════════════════════ */
@media(max-width:768px){
  .tl{top:72px;left:20px;max-width:65vw}
  .tl h1{font-size:clamp(2rem,8vw,3.6rem)}
  .tl .app{font-size:.85rem}
  .tl .cat{font-size:.72rem;letter-spacing:2px}

  .tc{top:10px;border-radius:28px}
  .pill{padding:7px 12px;font-size:.75rem}

  .rc{flex-direction:row;top:auto;right:auto;bottom:64px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.45);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:40px;padding:8px 12px;gap:8px}
  .gb{width:44px;height:44px}

  .br{bottom:12px;right:12px;left:60px;justify-content:flex-start;overflow-x:auto}
  .th{width:56px;height:38px;border-radius:6px}

  .bl{left:16px;bottom:12px}
  .counter{font-size:1rem}

  .panel{width:100%;max-width:100vw;padding:36px 20px}
  .pttl{font-size:2rem;margin-bottom:16px}
  .pbody{font-size:.95rem}
  .pbox{font-size:.8rem;padding:14px}
}

/* ═══════════════════════════════════════════
   RESPONSIVE — Mobile (≤480px)
   ═══════════════════════════════════════════ */
@media(max-width:480px){
  .tl{top:64px;left:16px;max-width:75vw}
  .tl h1{font-size:clamp(1.6rem,10vw,2.8rem);margin-bottom:4px}
  .tl .app{font-size:.75rem}
  .tl .cat{font-size:.68rem;letter-spacing:1.5px;margin-bottom:6px}

  .tc{top:8px;left:8px;right:8px;padding:4px;gap:2px;border-radius:24px}
  .pill{padding:6px 10px;font-size:.7rem}

  .rc{bottom:56px;padding:6px 10px;gap:6px;border-radius:32px}
  .gb{width:40px;height:40px}
  .gb svg{width:18px;height:18px}

  .br{bottom:8px;left:52px;right:8px;gap:6px;justify-content:flex-start;overflow-x:auto}
  .th{width:48px;height:32px;border-radius:5px;border-width:1.5px}
  .th::after{font-size:.55rem}

  .bl{left:12px;bottom:10px}
  .counter{font-size:.85rem}

  .panel{padding:28px 16px}
  .pttl{font-size:1.7rem}
  .pbody{font-size:.9rem;line-height:1.6}
  .pbox{font-size:.78rem;padding:12px}
  .cpbtn{padding:12px;font-size:.78rem}

  .exit-fs{top:12px;right:12px;width:38px;height:38px}

  #toasts{bottom:20px}
  .toast{font-size:.75rem;padding:10px 18px}

  .vig{background:radial-gradient(ellipse at center,transparent 20%,rgba(0,0,0,.8) 100%),linear-gradient(to right,rgba(0,0,0,.8) 0%,transparent 50%),linear-gradient(to top,rgba(0,0,0,.9) 0%,transparent 50%)}
}
