*{box-sizing:border-box;margin:0;padding:0}
:root{--accent:#2dd4bf;--bg:#101018;--bg2:#171723;--card:#1c1c2a;--line:#2a2a3a;--text:#e8e8f2;--muted:#8b8b9d;--head:#ffffff;color-scheme:dark}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:1200px;margin:0 auto;padding:0 18px}
.muted{color:var(--muted);font-size:.9rem}

.topbar{background:var(--bg2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}

.home-msg{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 18%,var(--bg2)),var(--bg2));border-bottom:1px solid var(--line)}
.home-msg-in{max-width:1200px;margin:0 auto;padding:10px 18px;display:flex;align-items:flex-start;gap:10px}
.home-msg-ico{font-size:1.1rem;line-height:1.5}
.home-msg-text{flex:1;font-size:.9rem;color:var(--text);word-break:break-word}
.home-msg-text a{color:var(--accent);text-decoration:underline}
.home-msg-x{background:none;border:none;color:var(--muted);font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1.4}
.home-msg-x:hover{color:var(--text)}
.topbar-in{display:flex;align-items:center;gap:22px;padding:12px 18px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{font-size:1.5rem;filter:drop-shadow(0 0 8px var(--accent))}
.brand-logo{max-height:46px;max-width:230px;display:block;object-fit:contain;border-radius:8px}
.brand-text{font-weight:800;font-size:1.15rem;color:var(--head);display:flex;flex-direction:column;line-height:1.2}
.brand-text small{font-weight:500;font-size:.7rem;color:var(--muted)}
.navbar{display:flex;gap:4px;flex-wrap:wrap}
.navbar a{padding:7px 12px;border-radius:9px;font-size:.88rem;font-weight:600;color:var(--text)}
.navbar a:hover{background:var(--card);color:var(--accent)}
.searchbox{display:flex;margin-left:auto;min-width:220px;flex:0 1 300px}
.searchbox input{flex:1;padding:9px 13px;background:var(--bg);border:1px solid var(--line);border-right:none;border-radius:9px 0 0 9px;color:var(--text);outline:none}
.searchbox button{padding:0 14px;background:var(--accent);border:none;color:#0b0b0f;border-radius:0 9px 9px 0;cursor:pointer;font-weight:800;font-size:1rem}
.searchbox input:focus{border-color:var(--accent)}

.userbox{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ubtn{background:var(--card);border:1px solid var(--line);color:var(--text);padding:8px 14px;border-radius:9px;font-size:.84rem;font-weight:700;display:inline-flex;align-items:center;gap:7px}
.ubtn:hover{border-color:var(--accent);color:var(--accent)}
.ubtn.alt{background:var(--accent);border-color:var(--accent);color:#081310}
.fav-count{background:var(--accent);color:#081310;font-size:.7rem;padding:1px 7px;border-radius:99px;font-weight:800;min-width:20px;text-align:center}

.hero{position:relative;border-radius:16px;overflow:hidden;margin:22px 0 34px;border:1px solid var(--line);aspect-ratio:21/8;min-height:300px;background:var(--bg2)}
.hero-track{height:100%;width:100%;display:flex}
.hero-slide{position:relative;flex:0 0 100%;height:100%;display:none}
.hero-slide.active{display:block}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,14,.92) 0%,rgba(8,8,14,.55) 50%,rgba(8,8,14,.15) 100%),linear-gradient(0deg,rgba(8,8,14,.8),transparent 55%)}
.hero-meta{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;height:100%;padding:clamp(18px,4vw,40px);max-width:70%}
.h-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.badge{font-size:.72rem;font-weight:700;background:rgba(20,20,32,.85);border:1px solid var(--line);color:var(--text);padding:4px 10px;border-radius:99px}
.badge.accent{background:var(--accent);color:#0b0b0f;border-color:var(--accent)}
.hero-title{font-size:clamp(1.1rem,3vw,2rem);color:#fff;line-height:1.25;margin-bottom:12px;text-shadow:0 2px 16px rgba(0,0,0,.6)}
.hero-cta{background:var(--accent);color:#0b0b0f;font-weight:800;font-size:.85rem;padding:9px 18px;border-radius:99px}
.hero-nav{position:absolute;right:24px;bottom:20px;z-index:3;display:flex;gap:6px}
.hero-nav span{width:9px;height:9px;border-radius:99px;background:rgba(255,255,255,.35);cursor:pointer}
.hero-nav span.on{background:var(--accent);width:22px}

.sec{margin-bottom:36px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.sec-label{font-size:1.15rem;color:var(--head);padding-left:12px;border-left:4px solid var(--accent)}
.sec-more{font-size:.85rem;color:var(--accent);font-weight:600}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}
.rcard{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .15s,box-shadow .15s,border-color .15s}
.rcard:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.35);border-color:var(--accent)}
.rcard-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--bg)}
.rcard-cover img{width:100%;height:100%;object-fit:cover}
.rcard-body{padding:11px 13px 13px}
.rcard-title{font-size:.9rem;font-weight:700;color:var(--head);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
.rcard-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;font-size:.7rem;color:var(--muted)}
.rcard-meta span{background:var(--bg);border:1px solid var(--line);padding:2px 8px;border-radius:99px}
.rcard-size{position:absolute;left:0;bottom:0;background:rgba(8,8,14,.82);color:#fff;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:0 8px 0 0}
.rcard-flag{position:absolute;top:8px;right:8px;font-size:.68rem;font-weight:800;padding:4px 9px;border-radius:99px}
.rcard-flag.star{background:#ffb020;color:#241100}
.rcard-cover-link{display:block;height:100%}
.rcard-cover a.fav-wrap{position:absolute;top:8px;left:8px;z-index:3}
.fav-btn{width:34px;height:34px;border-radius:99px;border:1px solid var(--line);background:rgba(10,10,16,.72);color:#fff;font-size:.95rem;display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;padding:0;transition:transform .12s}
.fav-btn:hover{transform:scale(1.12)}
.fav-btn.on{background:var(--accent);color:#081310;border-color:var(--accent)}
.fav-form{display:flex}

.hrow{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px}
.scard{flex:0 0 240px;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.scard img{aspect-ratio:16/9;object-fit:cover;width:100%}
.scard-bar{display:flex;flex-direction:column;gap:3px;padding:10px 12px;font-size:.82rem;font-weight:700;color:var(--head)}
.scard-bar small{color:var(--muted);font-weight:600}

.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);padding:9px 15px;border-radius:99px;font-size:.88rem;font-weight:700}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip-n{background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:.75rem;padding:1px 8px;border-radius:99px}
.chip.small{padding:5px 12px;font-size:.78rem}

.keyword-cloud{display:flex;flex-wrap:wrap;gap:8px}
.keyword{background:var(--bg2);border:1px solid var(--line);color:var(--muted);font-size:.8rem;padding:6px 13px;border-radius:99px}
.keyword:hover{color:var(--accent);border-color:var(--accent)}

.seo-block{margin:8px 0 34px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:18px 22px}
.seo-para{color:var(--muted);font-size:.9rem}

.gdetail{margin:26px 0 36px}
.gd-grid{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:30px}
.gd-cover{position:relative;align-self:start}
.gd-cover img{border-radius:14px;border:1px solid var(--line)}
.rcard-size.big{font-size:.85rem;background:var(--accent);color:#0b0b0f;border-radius:0 10px 0 0;padding:7px 14px}
.gd-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.gd-title{font-size:clamp(1.3rem,3vw,1.9rem);color:var(--head);line-height:1.25;margin-bottom:12px}
.gd-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.gd-desc{margin-bottom:22px}
.gd-desc h2{font-size:1.05rem;color:var(--head);margin-bottom:8px}
.gd-desc p,.gd-desc div{color:var(--muted);white-space:pre-line}
.gd-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.btn{display:inline-block;padding:11px 20px;border-radius:10px;font-weight:800;font-size:.9rem;background:var(--card);border:1px solid var(--line);color:var(--text)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#0b0b0f}
.btn.ghost{background:var(--bg2);border:1px solid var(--line);color:var(--text)}
.btn:hover{filter:brightness(1.12)}
.gd-actions form{display:flex}
.shots-sec{margin:10px 0 34px}
.sec-pane{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin:0 0 22px}
.sec-pane .sec-label{margin-bottom:14px}
.sec-pane + .sec-pane{margin-top:0}

.dl-list{display:flex;flex-direction:column;gap:10px}
.dl-btn{display:flex;align-items:center;gap:14px;background:var(--bg2);border:1px solid var(--line);border-radius:11px;padding:13px 16px;color:var(--text)}
.dl-btn:hover{border-color:var(--accent)}
.dl-icon{width:38px;height:38px;flex:0 0 38px;border-radius:9px;background:var(--accent);color:#0b0b0f;display:flex;align-items:center;justify-content:center;font-size:1.05rem;font-weight:800}
.dl-name{flex:1;font-weight:700;font-size:.92rem;word-break:break-word}
.dl-go{color:var(--accent);font-weight:800;font-size:.84rem}
.dl-btn:hover .dl-go{text-decoration:underline}

.req-list,.dlc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.req-list li,.dlc-list li{color:var(--text);font-size:.95rem;line-height:1.55;padding-left:20px;position:relative}
.req-list li::before{content:"▸";color:var(--accent);position:absolute;left:2px}
.dlc-list li::before{content:"+" ;color:var(--accent);position:absolute;left:2px;font-weight:800}

.text-body{color:var(--muted);font-size:.96rem;line-height:1.75;white-space:pre-line}
.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.shot{border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.shot img{aspect-ratio:16/9;object-fit:cover;width:100%}
.shot:hover{border-color:var(--accent)}

.pagination{display:flex;gap:6px;justify-content:center;margin-top:26px}
.page-btn{background:var(--card);border:1px solid var(--line);color:var(--text);padding:8px 13px;border-radius:9px;font-size:.85rem;font-weight:700}
.page-btn:hover{border-color:var(--accent);color:var(--accent)}
.page-btn.active{background:var(--accent);border-color:var(--accent);color:#0b0b0f}
.page-btn.disabled{opacity:.4;pointer-events:none}

.empty,.notfound{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:40px 24px;text-align:center;color:var(--muted);margin:20px 0}
.notfound h1{color:var(--head);margin-bottom:12px}
.notfound .btn{margin-top:16px}

.auth-sec{display:flex;justify-content:center;padding:24px 0 40px}
.auth-card{width:min(400px,100%);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px}
.auth-ico{font-size:1.8rem}
.auth-title{font-size:1.2rem;color:var(--head);margin:10px 0 4px}
.auth-sub{color:var(--muted);font-size:.88rem;margin-bottom:16px}
.auth-err{background:rgba(239,68,68,.12);border:1px solid #ef4444;color:#ffa1a1;padding:10px 13px;border-radius:9px;font-size:.85rem;margin-bottom:14px}
.auth-ok{background:rgba(34,197,94,.12);border:1px solid #22c55e;color:#86efac;padding:10px 13px;border-radius:9px;font-size:.85rem;margin-bottom:10px}
.auth-banner{margin-bottom:14px}
.auth-btn{width:100%}
.auth-alt{margin-top:14px;font-size:.86rem;color:var(--muted)}
.auth-alt a{color:var(--accent);font-weight:700}

.db-grid{display:grid;grid-template-columns:1fr 300px;gap:22px;margin:22px 0 34px}
.panel2{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
.acct-row{display:flex;justify-content:space-between;gap:12px;font-size:.88rem;padding:8px 0;border-bottom:1px solid var(--line)}
.acct-k{color:var(--muted)}
.acct-v{font-weight:700;color:var(--head);text-align:right;word-break:break-word}
.acct-h{font-size:.9rem;color:var(--head);margin:18px 0 10px}

.footer{margin-top:20px;background:var(--bg2);border-top:1px solid var(--line)}
.footer-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px;padding:34px 18px}
.f-brand{font-weight:800;font-size:1.05rem;color:var(--head);margin-bottom:10px}
.f-col p{color:var(--muted);font-size:.86rem}
.f-head{font-size:.85rem;color:var(--head);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-weight:700}
.f-links{display:flex;flex-direction:column;gap:7px;font-size:.86rem;color:var(--muted)}
.f-links a:hover{color:var(--accent)}
.f-legal{border-top:1px solid var(--line);padding:16px 18px;color:var(--muted);font-size:.8rem;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}

@media(max-width:768px){
  .topbar-in{flex-direction:column;align-items:stretch}
  .searchbox{margin-left:0}
  .hero{aspect-ratio:auto;min-height:260px}
  .hero-meta{max-width:92%}
  .gd-grid{grid-template-columns:1fr}
  .footer-in{grid-template-columns:1fr}
}
@media(max-width:900px){.db-grid{grid-template-columns:1fr}}