:root{
  --bg:#0a0e1a; --panel:#101627; --panel2:#0d1322;
  --line:#1e2a45; --text:#d7e3f4; --muted:#7c8db0;
  --accent:#00e5ff; --accent2:#7c4dff; --ok:#2bd576; --bad:#ff5470;
  --mono:ui-monospace,'Cascadia Mono','JetBrains Mono',Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;line-height:1.6;min-height:100vh;
  background-image:radial-gradient(circle at 20% 10%,rgba(124,77,255,.14),transparent 40%),radial-gradient(circle at 85% 20%,rgba(0,229,255,.10),transparent 45%)}
.wrap{max-width:960px;margin:0 auto;padding:0 18px}
a{color:var(--accent)}

/* topbar */
.topbar{border-bottom:1px solid var(--line);background:rgba(10,14,26,.85);backdrop-filter:blur(6px);position:sticky;top:0;z-index:10}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:58px}
.logo{font-weight:900;font-size:18px;color:var(--text);text-decoration:none;letter-spacing:.5px}
.logo span{color:var(--accent)}
.tagline{font-family:var(--mono);font-size:11px;color:var(--muted)}

/* hero */
.hero{text-align:center;padding:56px 0 30px}
h1{font-size:clamp(26px,5vw,42px);font-weight:900;letter-spacing:-.5px;line-height:1.25}
h1 .blink{color:var(--accent);animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.sub{color:var(--muted);font-size:14px;margin-top:12px}
.mode-switch{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;justify-content:center;margin-top:28px;max-width:720px;margin-left:auto;margin-right:auto}
.mode-btn{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.5px;padding:13px 10px;cursor:pointer;
  background:transparent;color:var(--accent);border:1px solid var(--line);border-radius:6px;transition:all .18s}
.mode-btn:hover{border-color:var(--accent)}
.mode-btn.active{background:linear-gradient(135deg,rgba(0,229,255,.16),rgba(124,77,255,.16));border-color:var(--accent);box-shadow:0 0 18px rgba(0,229,255,.25)}

/* console panel */
.console-panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px;margin:26px 0 44px;box-shadow:0 0 40px rgba(0,229,255,.06)}
.panel-title{font-family:var(--mono);font-size:13px;color:var(--accent);margin-bottom:16px}
.dropzone{border:1.5px dashed var(--line);border-radius:8px;padding:34px 16px;text-align:center;cursor:pointer;transition:border-color .18s,background .18s}
.dropzone.drag{border-color:var(--accent);background:rgba(0,229,255,.05)}
.dz-icon{font-size:30px;color:var(--accent)}
.dz-text{margin-top:8px;font-size:15px}
.linklike{background:none;border:none;color:var(--accent);cursor:pointer;font-size:15px;text-decoration:underline}
.dz-hint{margin-top:6px;font-family:var(--mono);font-size:12px;color:var(--muted)}

.file-list{list-style:none;margin-top:14px}
.file-list li{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:9px 12px;margin-top:8px;font-size:14px}
.file-list .fname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:13px}
.file-list .fsize{font-family:var(--mono);font-size:12px;color:var(--muted)}
.file-list .fdel{background:none;border:none;color:var(--bad);cursor:pointer;font-size:15px}

/* options */
.opt-group{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;padding:12px 14px;background:var(--panel2);border:1px solid var(--line);border-radius:8px}
.opt-check{font-size:14px;cursor:pointer;display:flex;align-items:center;gap:8px}
.opt-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.opt-label{font-size:13px;color:var(--muted)}
.opt-select{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-size:13px;cursor:pointer;outline:none}
.opt-select:focus{border-color:var(--accent)}

.go-btn{display:block;width:100%;margin-top:18px;padding:15px;font-size:16px;font-weight:900;letter-spacing:2px;cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04101c;border:none;border-radius:8px;transition:opacity .18s,transform .18s}
.go-btn:hover:not(:disabled){transform:translateY(-1px)}
.go-btn:disabled{opacity:.35;cursor:not-allowed}

.progress-wrap{margin-top:18px}
.progress-label{font-family:var(--mono);font-size:12px;color:var(--accent);margin-bottom:6px}
.progress-bar{height:10px;background:var(--panel2);border:1px solid var(--line);border-radius:99px;overflow:hidden}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .2s}

.result{margin-top:18px}
.result h4{font-family:var(--mono);color:var(--ok);font-size:14px;margin-bottom:10px}
.dl-list{list-style:none}
.dl-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-top:8px}
.dl-list .dname{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-list .dbtns{display:flex;gap:8px;white-space:nowrap}
.dl-list a{font-family:var(--mono);font-size:13px;text-decoration:none;border:1px solid var(--accent);border-radius:5px;padding:5px 12px;transition:background .15s}
.dl-list a.btn-preview{border-color:var(--line);color:var(--muted)}
.dl-list a.btn-preview:hover{background:rgba(0,229,255,.08);color:var(--accent);border-color:var(--accent)}
.dl-list a.btn-dl:hover{background:rgba(0,229,255,.12)}
.zip-btn{display:block;text-align:center;margin-top:12px;padding:11px;font-family:var(--mono);font-size:13px;font-weight:700;text-decoration:none;
  color:#04101c;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:8px;transition:opacity .18s}
.zip-btn:hover{opacity:.88}

.error-box{margin-top:16px;border:1px solid var(--bad);border-radius:6px;padding:12px 14px;color:var(--bad);font-size:14px;background:rgba(255,84,112,.07)}

/* preview modal */
.preview-mask{position:fixed;inset:0;z-index:100;background:rgba(4,8,16,.82);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:18px}
.preview-panel{width:min(920px,100%);height:min(86vh,760px);background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}
.preview-name{font-family:var(--mono);font-size:13px;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.preview-close{background:none;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:12px;padding:5px 10px;cursor:pointer}
.preview-close:hover{color:var(--text);border-color:var(--accent)}
.preview-body{flex:1;background:var(--panel2);display:flex;align-items:center;justify-content:center;overflow:auto}
.preview-frame{width:100%;height:100%;border:none;background:#fff}
.preview-img{max-width:100%;max-height:100%;object-fit:contain}

/* features / seo */
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:44px}
.feat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px}
.feat h3{font-size:15px;margin-bottom:8px;color:var(--text)}
.feat p{color:var(--muted);font-size:13px}
.seo-block{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:26px;margin-bottom:44px}
.seo-block h2{font-size:17px;margin:20px 0 8px;color:var(--text)}
.seo-block h2:first-child{margin-top:0}
.seo-block p{color:var(--muted);font-size:14px;margin-top:8px}
.seo-block p strong{color:var(--text)}

/* landing pages */
.landing{padding:52px 0 10px;text-align:center}
.landing .crumb{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:14px}
.landing .crumb a{color:var(--muted)}
.landing h1{font-size:clamp(24px,4.5vw,36px)}
.landing .sub{max-width:640px;margin:12px auto 0}
.cta-btn{display:inline-block;margin-top:26px;padding:14px 38px;font-size:15px;font-weight:900;letter-spacing:1px;text-decoration:none;
  background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04101c;border-radius:8px;transition:transform .18s,opacity .18s}
.cta-btn:hover{transform:translateY(-2px);opacity:.92}
.article{max-width:800px;margin:0 auto 44px;padding:0 18px}
.article h2{font-size:19px;margin:34px 0 12px;color:var(--text);padding-left:12px;border-left:3px solid var(--accent)}
.article p,.article li{color:var(--muted);font-size:14.5px;margin-top:8px}
.article ol,.article ul{padding-left:22px}
.article strong{color:var(--text)}
.article .step{display:flex;gap:14px;margin-top:14px;align-items:flex-start}
.article .step .no{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--accent);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:14px;font-weight:700}
.article .step p{margin-top:4px}
.article table{width:100%;border-collapse:collapse;margin-top:14px;font-size:13.5px}
.article th,.article td{border:1px solid var(--line);padding:9px 12px;text-align:left;color:var(--muted)}
.article th{color:var(--text);background:var(--panel2)}
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.related a{display:block;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:14px;text-decoration:none;font-size:14px;text-align:center;transition:border-color .18s}
.related a:hover{border-color:var(--accent)}
.related a span{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:4px}
.faq-item{margin-top:16px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.faq-item .q{color:var(--text);font-weight:700;font-size:14.5px}
.faq-item .a{color:var(--muted);font-size:14px;margin-top:6px}

/* footer */
.footer{border-top:1px solid var(--line);padding:26px 0 40px;text-align:center;color:var(--muted);font-size:13px}
.footer p{margin-top:6px}
.footer .flinks a{margin:0 4px}

@media(max-width:640px){
  .tagline{display:none}
  .hero{padding-top:36px}
  .mode-switch{grid-template-columns:repeat(2,1fr)}
  .opt-group{align-items:flex-start;flex-direction:column}
  .opt-select{width:100%}
  .preview-mask{padding:8px}
  .dl-list li{flex-wrap:wrap}
  .dl-list .dname{flex-basis:100%}
}

/* fix: display:flex overrides the hidden attribute on .preview-mask/.opt-group */
[hidden]{display:none!important}
