/* Optional Topaz webfont. If assets/fonts/TopazPlus.woff2 is absent the browser
   simply falls back to the monospace stack in --acn-font-pixel. Safe to ship
   either way. */
@font-face {
  font-family:"TopazPlus";
  src:url("../fonts/TopazPlus.woff2") format("woff2");
  font-weight:normal; font-style:normal; font-display:swap;
}

/* ============================================================
   ACN - Amiga Chat Network theme styles
   Dark Workbench 3.1/3.2 hybrid. All class names prefixed acn-.
   ============================================================ */

:root {
  --acn-desk:#15161b; --acn-face:#2b2e36; --acn-inset:#1f2127;
  --acn-bevL:#5a606c; --acn-bevD:#0a0b0d;
  --acn-blue:#5d82c4; --acn-blue2:#4a6aa8;
  --acn-orange:#e0913f; --acn-orange2:#9a5a1e;
  --acn-text:#e8e9ee; --acn-mut:#9aa1ad; --acn-cyan:#63cdd0; --acn-grn:#6fdc6f;
  --acn-font-pixel:"TopazPlus","Courier New",monospace;
  --acn-font-body:-apple-system,"Helvetica Neue",Arial,system-ui,sans-serif;
  --acn-maxw:980px;
}

*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; padding:0; }
body {
  background:var(--acn-desk); color:var(--acn-text);
  font-family:var(--acn-font-body); font-size:16px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; height:auto; }
a { color:var(--acn-cyan); text-decoration:none; }
a:hover,a:focus { text-decoration:underline; }
:focus-visible { outline:2px solid var(--acn-cyan); outline-offset:2px; }

/* layout shell */
.acn-desk { display:block; max-width:var(--acn-maxw); margin:0 auto; padding:22px 18px 60px; }
.acn-row { display:flex; gap:16px; flex-wrap:wrap; }

/* typography helpers */
.acn-h-pixel { font-family:var(--acn-font-pixel); font-weight:bold; color:var(--acn-text); line-height:1.2; margin:0 0 8px; }
.acn-eyebrow { font-family:var(--acn-font-pixel); font-size:.8rem; letter-spacing:2px; color:var(--acn-cyan); margin:0 0 6px; }
.acn-body { font-family:var(--acn-font-body); color:#dfe2e8; }
.acn-body p { margin:0 0 1em; }
.acn-body.acn-mut { color:var(--acn-mut); }
.acn-small { font-size:.8rem; }

/* ===== header / screen menu bar ===== */
.acn-header { position:sticky; top:0; z-index:30; }
.acn-menubar {
  display:flex; align-items:center; gap:10px;
  max-width:var(--acn-maxw); margin:0 auto;
  background:var(--acn-face); padding:7px 16px;
  border-bottom:2px solid var(--acn-bevD);
  box-shadow:inset 0 1px 0 var(--acn-bevL);
}
.acn-brand { font-family:var(--acn-font-pixel); font-weight:bold; font-size:1rem; color:var(--acn-text); text-decoration:none; white-space:nowrap; }
.acn-brand:hover { text-decoration:none; }
.acn-brand .acn-pip { color:var(--acn-orange); }
.acn-brand-short { display:none; }
.acn-nav { margin-left:auto; }
.acn-nav ul { list-style:none; display:flex; gap:4px; margin:0; padding:0; }
.acn-nav a {
  font-family:var(--acn-font-pixel); font-size:.85rem; color:var(--acn-mut);
  padding:4px 9px; display:block; border:1px solid transparent;
}
.acn-nav a:hover { color:var(--acn-text); text-decoration:none; }
.acn-nav .current-menu-item > a,
.acn-nav .current_page_item > a {
  color:var(--acn-text); background:var(--acn-blue); border:1px solid var(--acn-bevD);
}
/* mobile menu button (hidden on desktop) */
.acn-burger {
  margin-left:auto; display:none; flex-direction:column; gap:3px;
  background:var(--acn-face); border:2px solid var(--acn-bevL);
  border-right-color:var(--acn-bevD); border-bottom-color:var(--acn-bevD);
  padding:6px 8px; cursor:pointer;
}
.acn-burger span { width:20px; height:2px; background:var(--acn-text); display:block; }

/* footer */
.acn-footer {
  max-width:var(--acn-maxw); margin:0 auto; padding:18px;
  border-top:2px solid var(--acn-bevD); color:var(--acn-mut);
  font-family:var(--acn-font-pixel); font-size:.8rem;
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
}
.acn-footer .acn-pip { color:var(--acn-orange); }

/* ===== window ===== */
.acn-win {
  background:var(--acn-face);
  border:2px solid var(--acn-bevL); border-right-color:var(--acn-bevD); border-bottom-color:var(--acn-bevD);
  margin:0 0 18px;
}
.acn-titlebar { display:flex; align-items:center; background:var(--acn-blue); padding:3px 4px; border-bottom:1px solid var(--acn-bevD); }
.acn-titletext { font-family:var(--acn-font-pixel); font-size:.85rem; font-weight:bold; color:#0c1426; margin-left:9px; }
.acn-gright { margin-left:auto; display:flex; gap:0; }
.acn-gad {
  width:17px; height:17px; background:var(--acn-face); flex:none;
  border:2px solid var(--acn-bevL); border-right-color:var(--acn-bevD); border-bottom-color:var(--acn-bevD);
  display:inline-flex; align-items:center; justify-content:center;
}
.acn-gad i { width:6px; height:6px; background:#000; display:inline-block; }
.acn-gad.acn-depth i { width:8px; height:8px; background:transparent; border:1px solid #000; }
.acn-wbody {
  background:var(--acn-inset);
  border:2px solid var(--acn-bevD); border-right-color:var(--acn-bevL); border-bottom-color:var(--acn-bevL);
  padding:18px 20px; color:var(--acn-text);
}

/* ===== hero ===== */
.acn-hero-h { font-family:var(--acn-font-pixel); font-weight:bold; font-size:1.35rem; line-height:1.2; white-space:nowrap; margin:0 0 10px; }
.acn-hero-lead { max-width:640px; }
.acn-cta { display:flex; gap:12px; flex-wrap:wrap; margin-top:16px; }

/* ===== buttons (GadTools) ===== */
.acn-btn {
  display:inline-block; font-family:var(--acn-font-pixel); font-weight:bold; font-size:.85rem;
  color:var(--acn-text); background:var(--acn-face); text-align:center; cursor:pointer;
  padding:8px 16px; text-decoration:none;
  border:2px solid var(--acn-bevL); border-right-color:var(--acn-bevD); border-bottom-color:var(--acn-bevD);
}
.acn-btn:hover { text-decoration:none; }
.acn-btn:active { border-color:var(--acn-bevD); border-right-color:var(--acn-bevL); border-bottom-color:var(--acn-bevL); }
.acn-btn.acn-pri { background:var(--acn-blue2); color:#fff; }
.acn-btn.acn-orange { background:var(--acn-orange2); color:#fff; }

/* ===== drawer icons ===== */
.acn-drawers { display:flex; gap:30px; flex-wrap:wrap; }
.acn-drawer { text-align:center; text-decoration:none; color:var(--acn-text); display:block; }
.acn-drawer:hover { text-decoration:none; }
.acn-drawer .acn-ico {
  width:58px; height:44px; margin:0 auto; position:relative; background:#3a3e47;
  border:2px solid var(--acn-bevL); border-right-color:var(--acn-bevD); border-bottom-color:var(--acn-bevD);
}
.acn-drawer .acn-ico::before {
  content:""; position:absolute; left:7px; top:-6px; width:18px; height:7px; background:#3a3e47;
  border:2px solid var(--acn-bevL); border-right-color:var(--acn-bevD); border-bottom-color:var(--acn-bevD);
}
.acn-drawer .acn-ico::after { content:""; position:absolute; left:8px; bottom:7px; right:8px; height:4px; background:var(--acn-blue); }
.acn-drawer.acn-o .acn-ico::after { background:var(--acn-orange); }
.acn-drawer .acn-nm { font-family:var(--acn-font-pixel); font-size:.8rem; margin-top:6px; display:inline-block; padding:0 5px; }
.acn-drawer .acn-nm.acn-sel { background:var(--acn-blue); color:#fff; }
.acn-drawer .acn-cap { display:block; font-size:.72rem; color:var(--acn-mut); margin-top:4px; }

/* ===== download row ===== */
.acn-dl { display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; }
.acn-dl .acn-dl-main { flex:1 1 320px; }
.acn-dl .acn-dl-act { text-align:right; white-space:nowrap; }
.acn-meta { font-family:var(--acn-font-pixel); font-size:.78rem; color:var(--acn-mut); margin-top:6px; }

/* ===== table ===== */
.acn-table { width:100%; border-collapse:collapse; font-family:var(--acn-font-pixel); font-size:.85rem; }
.acn-table th { text-align:left; color:var(--acn-cyan); border-bottom:1px solid #3a3e47; padding:6px 8px; }
.acn-table td { color:var(--acn-text); border-bottom:1px solid #2a2d34; padding:6px 8px; }
.acn-table td .acn-port { color:var(--acn-orange); }
.acn-chips { display:flex; gap:10px; flex-wrap:wrap; }

/* ===== stat panels (placeholder) ===== */
.acn-stats { display:flex; gap:14px; flex-wrap:wrap; }
.acn-stat {
  flex:1 1 130px; text-align:center; background:#1a1c22; padding:16px;
  border:2px solid var(--acn-bevD); border-right-color:var(--acn-bevL); border-bottom-color:var(--acn-bevL);
}
.acn-stat .acn-n { font-family:var(--acn-font-pixel); font-size:1.7rem; font-weight:bold; color:#3f444e; }
.acn-stat .acn-k { font-size:.7rem; color:var(--acn-mut); margin-top:4px; letter-spacing:1px; }
.acn-ribbon { display:inline-block; background:#3a2a12; border:1px solid var(--acn-orange); color:var(--acn-orange); font-family:var(--acn-font-pixel); font-size:.72rem; padding:2px 8px; }

/* ===== news list ===== */
.acn-postmeta { font-family:var(--acn-font-pixel); font-size:.75rem; color:var(--acn-mut); margin:0 0 8px; }
.acn-post + .acn-post { margin-top:14px; padding-top:14px; border-top:1px solid #2a2d34; }

/* ===== mobile nav drawer state ===== */
.acn-nav.acn-open ul { display:flex; }

/* ===== responsive ===== */
@media (max-width:820px) {
  .acn-burger { display:flex; }
  .acn-brand-full { display:none; }
  .acn-brand-short { display:inline; }
  .acn-nav {
    position:absolute; top:100%; right:0; left:0;
    background:var(--acn-face); border-bottom:2px solid var(--acn-bevD);
    box-shadow:0 8px 18px rgba(0,0,0,.5);
  }
  .acn-nav ul { display:none; flex-direction:column; gap:0; padding:6px; }
  .acn-nav a { padding:10px 12px; font-size:1rem; }
  .acn-menubar { position:relative; }
  .acn-hero-h { white-space:normal; font-size:1.2rem; }
  .acn-cta .acn-btn { display:block; width:100%; }
  .acn-dl .acn-dl-act { text-align:left; width:100%; }
  .acn-dl .acn-dl-act .acn-btn { display:block; width:100%; }
  .acn-drawers { gap:18px; justify-content:center; }
}
@media (max-width:480px) {
  body { font-size:15px; }
  .acn-wbody { padding:14px 14px; }
  .acn-desk { padding:14px 12px 48px; }
}

/* ===== long-form doc content (Docs guides) ===== */
.acn-body h2 { font-family:var(--acn-font-pixel); font-size:1.15rem; color:var(--acn-text); margin:1.5em 0 .5em; }
.acn-body h3 { font-family:var(--acn-font-pixel); font-size:1rem; color:var(--acn-cyan); margin:1.2em 0 .4em; }
.acn-body h2:first-child, .acn-body h3:first-child { margin-top:0; }
.acn-body ul, .acn-body ol { margin:0 0 1em; padding-left:1.4em; }
.acn-body li { margin:.25em 0; }
.acn-body code { font-family:var(--acn-font-pixel); background:#11131a; color:var(--acn-cyan); padding:1px 5px; border:1px solid #2a2d34; font-size:.9em; }
.acn-body pre { background:#11131a; border:2px solid var(--acn-bevD); border-right-color:#2a2d34; border-bottom-color:#2a2d34; padding:12px 14px; overflow:auto; margin:0 0 1em; }
.acn-body pre code { background:none; border:0; padding:0; color:#cfe3e4; font-size:.85rem; line-height:1.5; }
.acn-body strong { color:var(--acn-text); }
.acn-body hr { border:0; border-top:1px solid #2a2d34; margin:1.5em 0; }
.acn-doclist { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }

/* ===== screenshot gallery ===== */
.acn-shotwin .acn-wbody { padding:0; }
.acn-shot { display:block; width:100%; height:auto; }
