/* SABAGE ENGAGEMENT — 共通スタイル（ダーク・タクティカル）／ 一覧・記事・about・contact・beginner 用 */
:root{
  --bg:#0c0e11;--panel:#14181e;--panel2:#1b2029;--line:#2b323d;--text:#e8eaed;--sub:#8a929e;--faint:#6a6f78;
  --accent:#d3673a;--amber:#aeb4bd;--od:#2b323d;
  --disp:'Black Ops One',sans-serif;--cond:'Oswald',sans-serif;--mono:'Share Tech Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic UI",-apple-system,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.85;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.hazard{height:6px;background:repeating-linear-gradient(45deg,#1a1f27 0 10px,#0d1015 10px 20px)}
.hazard.thin{height:2px;background:var(--line)}

header{position:sticky;top:0;z-index:30;background:rgba(10,12,15,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{display:flex;align-items:center;gap:11px}
.emblem{width:33px;height:33px;background:var(--accent);color:#0c0e11;font-family:var(--disp);font-size:15px;display:grid;place-items:center;clip-path:polygon(0 0,100% 0,100% 70%,70% 100%,0 100%);transform:rotate(-1deg)}
.brand b{font-family:var(--cond);font-weight:700;font-size:18px;letter-spacing:.06em}
.brand .jp{font-size:10.5px;color:var(--sub)}
.nlinks{display:flex;gap:24px;align-items:center;font-family:var(--cond);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.nlinks a:hover{color:var(--accent)}
.navtoggle{display:none;background:none;border:1px solid var(--line);color:var(--text);font-size:20px;line-height:1;padding:5px 12px;cursor:pointer;font-family:var(--mono);border-radius:4px}
@media(max-width:760px){
  .navtoggle{display:block}
  .nlinks{position:absolute;top:100%;left:0;right:0;background:#101317;border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px 20px 14px;display:none;z-index:40}
  .nlinks.open{display:flex}
  .nlinks a{display:block;padding:11px 0;border-bottom:1px solid var(--line);width:100%}
}
.hasdrop{position:relative;display:flex;align-items:center}
.dropbtn{cursor:pointer}
.dropmenu{position:absolute;top:calc(100% + 8px);right:0;min-width:236px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px;display:none;z-index:50;box-shadow:0 12px 26px rgba(0,0,0,.55);text-transform:none;letter-spacing:.02em}
.dropmenu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.hasdrop:hover .dropmenu,.hasdrop:focus-within .dropmenu{display:block}
.dropmenu a{display:block;padding:10px 13px;font-family:var(--cond);font-size:13.5px;font-weight:500;color:var(--text);border-radius:4px;white-space:nowrap}
.dropmenu a:hover{background:var(--panel2);color:var(--accent)}
@media(max-width:760px){
  .hasdrop{display:block;width:100%}
  .dropmenu{position:static;display:block;min-width:0;border:none;box-shadow:none;padding:2px 0 6px 14px;background:none}
  .dropmenu a{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
}

.phead{position:relative;overflow:hidden;background:#0a0c0f;border-bottom:1px solid var(--line);padding:34px 0 30px}
.phead .camo{position:absolute;inset:0;background-image:radial-gradient(42% 40% at 16% 26%,rgba(38,44,52,.5) 0 60%,transparent),radial-gradient(34% 34% at 82% 20%,rgba(30,36,44,.5) 0 60%,transparent),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,auto,30px 30px,30px 30px}
.phead .wrap{position:relative}
.kick{font-family:var(--mono);color:var(--accent);font-size:12px;letter-spacing:.24em;border-left:3px solid var(--accent);padding-left:10px;margin-bottom:12px}
.phead h1{font-family:var(--cond);font-weight:700;font-size:clamp(24px,4.4vw,34px);letter-spacing:.03em;line-height:1.2}
.phead .sub{font-family:var(--mono);color:var(--sub);font-size:12.5px;letter-spacing:.04em;margin-top:8px}

/* topics index grid */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:34px 0 50px}
@media(max-width:880px){.tgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tgrid{grid-template-columns:1fr}}
.tcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:.15s}
.tcard:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.5)}
.tcard .top{height:3px;background:var(--accent);opacity:.55}
.tcard .body{padding:16px 16px 18px;display:flex;flex-direction:column;flex:1}
.cat{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.12em}
.tcard h3{font-family:var(--cond);font-weight:600;font-size:17px;margin:8px 0 8px;line-height:1.5}
.tcard p{font-size:12.5px;color:var(--sub);margin-bottom:12px;line-height:1.7}
.tcard .more{margin-top:auto;font-family:var(--mono);font-size:11.5px;color:var(--accent);letter-spacing:.06em}

/* article */
.article{max-width:800px;margin:26px auto 0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:36px 40px}
@media(max-width:560px){.article{padding:24px 20px;margin:16px auto 0}}
.article .cat{font-size:12px;letter-spacing:.14em}
.article h1{font-family:var(--cond);font-weight:700;font-size:clamp(22px,4vw,31px);line-height:1.35;margin:10px 0 12px;letter-spacing:.02em}
.article .ameta{font-family:var(--mono);font-size:12px;color:var(--sub);letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:24px}
.article h2{font-family:var(--cond);font-weight:700;font-size:20px;margin:30px 0 12px;padding-left:12px;border-left:4px solid var(--accent);letter-spacing:.02em}
.article h3{font-family:var(--cond);font-weight:600;font-size:16.5px;margin:22px 0 8px;color:var(--amber)}
.article p{margin-bottom:15px;font-size:15px}
.article ul,.article ol{margin:0 0 17px 1.4em}
.article li{margin-bottom:8px;font-size:15px}
.article strong{color:var(--accent);font-weight:700}
.note{background:var(--panel2);border:1px dashed var(--accent);border-radius:8px;padding:14px 16px;font-size:13px;color:var(--sub);margin:26px 0 4px;line-height:1.7}
.note b{color:var(--text)}
.backwrap{max-width:800px;margin:0 auto;padding:20px 20px 50px}
.backlink{font-family:var(--mono);font-size:13px;color:var(--accent);letter-spacing:.06em}
.backlink:hover{text-decoration:underline}

footer{background:#090b0d;border-top:1px solid var(--line);padding:22px 0;color:var(--sub);font-family:var(--mono);font-size:11px;text-align:center;letter-spacing:.06em}
