/* Theme: Neo-Brutalist Pop (site 004 · 1-stop-loans.com) — from design-system sample */
/* ===== TOKENS (DESIGN.md HEX — AA-verified, LIGHT/paper) ===== */
:root{
  --bg:#FAF6EC; --surface:#FFFFFF; --surface-alt:#FFE94A;
  --text:#15110A; --muted:#4A4334; --border:#15110A;
  --accent:#E5231A; --accent-2:#1559E0; --accent-3:#00C27A; --warning:#FFB100;
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px;
  --shadow-1:3px 3px 0 var(--border);
  --shadow-2:4px 4px 0 var(--border);
  --shadow-3:6px 6px 0 var(--border);
  --font-head:"Arial Black","Helvetica Neue",Pretendard,"Malgun Gothic","맑은 고딕",sans-serif;
  --font-body:Pretendard,"Malgun Gothic","맑은 고딕","Apple SD Gothic Neo",-apple-system,system-ui,Arial,sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular","Consolas","D2Coding","Courier New",monospace;
  --shell:1332px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--text);
  font-family:var(--font-body); font-size:16px; line-height:1.7;
  letter-spacing:-0.01em; -webkit-font-smoothing:antialiased;
}
a{color:var(--accent-2);}
h1,h2,h3{font-family:var(--font-head); letter-spacing:-0.02em; margin:0;}
h1{font-size:40px; line-height:1.05; font-weight:900;}
h2{font-size:22px; line-height:1.1; font-weight:900;}
h3{font-size:18px; line-height:1.2; font-weight:800;}
img{max-width:100%; display:block;}
.shell{max-width:var(--shell); margin:0 auto; padding:0 var(--s3);}
.mono{font-family:var(--font-mono); font-weight:700;}

/* ===== SKIP LINK ===== */
.skip{position:absolute; left:-999px; top:0; background:var(--accent); color:#fff;
  padding:10px 16px; border:3px solid var(--border); z-index:100; font-weight:700;}
.skip:focus{left:8px; top:8px;}

/* ===== FOCUS ===== */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:3px solid var(--accent-2); outline-offset:2px;
}

/* ===== HEADER (center-logo + central search + utils) ===== */
.site-header{background:var(--bg); border-bottom:4px solid var(--border);}
.header-top{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center;
  gap:var(--s3); padding:var(--s3) 0 var(--s2);
}
.brand{
  font-family:var(--font-head); font-size:32px; line-height:1;
  text-transform:uppercase; text-decoration:none; color:var(--text);
  display:inline-flex; align-items:center; gap:10px; white-space:nowrap;
}
.brand .tag{
  font-family:var(--font-mono); font-size:12px; font-weight:700;
  background:var(--accent); color:#fff; border:2px solid var(--border);
  padding:3px 8px; transform:rotate(-3deg); display:inline-block;
}
.search{display:flex; gap:8px; width:100%; max-width:560px; margin:0 auto;}
.search input{
  flex:1; min-height:48px; background:var(--surface); border:2px solid var(--border);
  border-radius:0; padding:12px 16px; font-family:var(--font-body); font-size:16px;
  color:var(--text);
}
.search input::placeholder{color:var(--muted);}
.search input:focus{outline:none; border-color:var(--accent-2); box-shadow:4px 4px 0 var(--accent-2);}
.header-utils{display:flex; gap:10px; justify-content:flex-end; white-space:nowrap;}
.btn{
  font-family:var(--font-body); font-weight:700; font-size:15px; cursor:pointer;
  border:3px solid var(--border); border-radius:0; padding:10px 16px;
  min-height:44px; display:inline-flex; align-items:center; justify-content:center;
  gap:6px; text-decoration:none; color:var(--text); background:var(--surface);
  transition:transform 120ms ease-out, box-shadow 120ms ease-out, background 120ms ease-out;
}
.btn-primary{background:var(--accent); color:#fff; box-shadow:var(--shadow-2);}
.btn-secondary{background:var(--surface-alt); color:var(--text); box-shadow:var(--shadow-2);}
.btn-ghost{background:transparent; border-width:2px; box-shadow:none;}
.btn-primary:hover,.btn-secondary:hover{transform:translate(2px,2px); box-shadow:2px 2px 0 var(--border);}
.btn-primary:active,.btn-secondary:active{transform:translate(4px,4px); box-shadow:0 0 0 var(--border);}
.btn-ghost:hover{background:var(--surface-alt);}
.btn-full{width:100%;}

/* keyword chip strip (2nd header row) */
.kw-nav{padding:0 0 var(--s2);}
.kw-strip{
  display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0;
  align-items:center;
}
.kw-strip .kw-label{
  font-family:var(--font-mono); font-weight:700; font-size:12px; text-transform:uppercase;
  background:var(--accent); color:#fff; border:2px solid var(--border); padding:5px 9px;
  transform:rotate(-2deg);
}
.kw-strip a{
  display:inline-flex; align-items:center; min-height:36px; padding:6px 12px;
  font-weight:700; font-size:14px; text-decoration:none; color:var(--text);
  background:var(--surface); border:2px solid var(--border);
}
.kw-strip a:hover{background:var(--surface-alt);}
.kw-strip a.hot{background:var(--surface-alt);}

/* ===== PORTAL MODULE GRID ===== */
.headline{margin:var(--s4) 0 var(--s3);}
.headline h1{max-width:24ch;}
.headline p{margin:10px 0 0; color:var(--muted); font-weight:500; max-width:46ch;}

.portal{
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--s3);
  margin:0 0 var(--s5); align-items:start;
}
.mod{
  background:var(--surface); border:3px solid var(--border); box-shadow:var(--shadow-3);
  padding:var(--s2); display:flex; flex-direction:column; min-width:0;
}
.span2{grid-column:span 2;}
.mod-head{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s2);
  border-bottom:3px solid var(--border); padding-bottom:10px; margin-bottom:var(--s2);
}
.mod-head h2{text-transform:uppercase; font-size:20px;}
.mod-head .more{font-weight:700; text-decoration:none; color:var(--accent-2); font-size:13px; white-space:nowrap;}
.mod-head .more:hover{background:var(--surface-alt);}

/* image box (4:3 fixed) */
.imgbox{aspect-ratio:4/3; width:100%; overflow:hidden; border:2px solid var(--border);}
.imgbox svg{width:100%; height:100%; display:block;}

/* deal sticker badge (SIGNATURE) */
.has-sticker{position:relative;}
.sticker{
  position:absolute; top:-14px; left:-12px; z-index:2;
  background:var(--accent-3); color:var(--text);
  border:3px solid var(--border); border-radius:999px;
  width:60px; height:60px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  font-family:var(--font-mono); font-weight:700; line-height:1;
  box-shadow:var(--shadow-2); transform:rotate(-8deg);
}
.sticker .pct{font-size:16px;}
.sticker .lbl{font-size:9px; margin-top:2px; text-transform:uppercase;}
.sticker.red{background:var(--accent); color:#fff;}
.sticker.amber,.sticker.end{background:var(--warning); color:var(--text);}
.sticker.blue{background:var(--accent-2); color:#fff;}
.sticker.green,.sticker.low{background:var(--accent-3); color:var(--text);}
.sticker.r2{transform:rotate(5deg);}
.sticker.r3{transform:rotate(-3deg);}

/* FEATURE module (오늘의 핫딜, wide) */
.feature{text-decoration:none; color:var(--text); display:block;
  transition:transform 120ms ease-out, box-shadow 120ms ease-out;}
.feature .imgbox{aspect-ratio:4/3;}
.feature .ft-body{padding-top:var(--s2);}
.feature h3{font-size:24px; margin-bottom:8px; line-height:1.2;}
.feature p{margin:0; color:var(--muted); font-size:15px;}
.feature:hover{transform:translate(3px,3px);}

/* price block / tags */
.price-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px;}
.price{
  font-family:var(--font-mono); font-weight:700; font-size:18px;
  background:var(--surface-alt); border:2px solid var(--border); padding:4px 10px;
}
.price.big{font-size:26px;}
.was{font-family:var(--font-mono); font-size:14px; color:var(--muted); text-decoration:line-through;}
.tags{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px;}
.tag{
  display:inline-block; font-family:var(--font-mono); font-weight:700; font-size:12px;
  text-transform:uppercase; border:2px solid var(--border); border-radius:0; padding:2px 7px;
  background:var(--surface);
}
.tag.hot{background:var(--accent); color:#fff;}
.tag.new{background:var(--accent-2); color:#fff;}
.tag.low{background:var(--accent-3); color:var(--text);}
.tag.end{background:var(--warning); color:var(--text);}

/* REALTIME RANKING module (red numbers) */
.rank{list-style:none; margin:0; padding:0;}
.rank li{border-bottom:2px solid var(--border); padding:9px 0;}
.rank li:last-child{border-bottom:none;}
.rank a{display:flex; gap:10px; align-items:flex-start; text-decoration:none; color:var(--text);}
.rank .num{
  font-family:var(--font-mono); font-weight:700; font-size:14px; color:#fff;
  background:var(--accent); border:2px solid var(--border); min-width:26px; height:26px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.rank .num.cold{background:var(--accent-2);}
.rank .rk-title{font-weight:700; font-size:14px; line-height:1.35; text-decoration:underline; text-underline-offset:2px;}
.rank a:hover .rk-title{background:var(--surface-alt);}
.rank .rk-price{font-family:var(--font-mono); font-weight:700; font-size:13px; margin-top:3px; display:inline-block;}

/* TEXT LIST module */
.txt-list{list-style:none; margin:0; padding:0;}
.txt-list li{border-bottom:2px solid var(--border); padding:9px 0;}
.txt-list li:last-child{border-bottom:none;}
.txt-list a{display:flex; gap:10px; align-items:baseline; text-decoration:none; color:var(--text);}
.txt-list .cat{
  font-family:var(--font-mono); font-weight:700; font-size:11px; color:#fff;
  background:var(--accent-2); border:2px solid var(--border); padding:1px 6px; flex-shrink:0;
}
.txt-list .ti{font-weight:700; font-size:14px; line-height:1.35; text-decoration:underline;
  text-underline-offset:2px; min-width:0;}
.txt-list a:hover .ti{background:var(--surface-alt);}
.txt-list .cm{font-family:var(--font-mono); font-weight:700; font-size:12px; color:var(--accent); margin-left:auto; flex-shrink:0;}

/* PHOTO list module (thumb-left rows) */
.photo-list{list-style:none; margin:0; padding:0;}
.photo-list li{border-bottom:2px solid var(--border); padding:10px 0;}
.photo-list li:last-child{border-bottom:none;}
.photo-row{display:grid; grid-template-columns:72px 1fr; gap:12px; align-items:center;
  text-decoration:none; color:var(--text);}
.photo-row .thumb{width:72px; aspect-ratio:4/3; border:2px solid var(--border); overflow:hidden;}
.photo-row .thumb svg{width:100%; height:100%;}
.photo-row .pt{font-weight:700; font-size:14px; line-height:1.3; text-decoration:underline; text-underline-offset:2px;}
.photo-row:hover .pt{background:var(--surface-alt);}
.photo-row .pm{font-family:var(--font-mono); font-weight:700; font-size:12px; color:var(--muted); margin-top:5px; display:block;}

/* GALLERY 2x2 module */
.gal2{display:grid; grid-template-columns:1fr 1fr; gap:var(--s2);}
.gcard{position:relative; background:var(--surface); border:2px solid var(--border);
  box-shadow:var(--shadow-1); text-decoration:none; color:var(--text); display:block;
  transition:transform 120ms ease-out, box-shadow 120ms ease-out;}
.gcard .imgbox{border:none; border-bottom:2px solid var(--border); aspect-ratio:4/3;}
.gcard .g-body{padding:8px 10px 10px;}
.gcard h3{font-size:13.5px; line-height:1.25; font-weight:800; margin-bottom:6px;}
.gcard .price{font-size:13px; padding:2px 7px;}
.gcard:hover{transform:translate(2px,2px); box-shadow:1px 1px 0 var(--border);}

/* KEYWORD chip cloud module */
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chips a{
  display:inline-flex; align-items:center; min-height:36px; padding:6px 12px;
  font-family:var(--font-mono); font-weight:700; font-size:13px; text-decoration:none;
  color:var(--text); background:var(--surface); border:2px solid var(--border);
}
.chips a:hover{background:var(--surface-alt);}
.chips a.up::before{content:"▲ "; color:var(--accent);}

/* CTA module */
.cta-mod{background:var(--surface-alt);}
.cta-mod p{margin:0 0 var(--s2); font-weight:700; line-height:1.5;}
.cta-actions{display:flex; flex-direction:column; gap:12px;}

/* stats inline */
.stat-list{list-style:none; margin:0; padding:0;}
.stat-list li{display:flex; justify-content:space-between; gap:12px; align-items:center;
  border-bottom:2px solid var(--border); padding:9px 0; font-weight:600; font-size:14px;}
.stat-list li:last-child{border-bottom:none;}
.stat-list .v{font-family:var(--font-mono); font-weight:700;
  background:var(--surface-alt); border:2px solid var(--border); padding:2px 8px;}

/* ===== FOOTER ===== */
.site-footer{
  border-top:4px solid var(--border); background:var(--text); color:var(--bg);
  margin-top:var(--s6); padding:var(--s4) 0 var(--s3);
}
.site-footer .shell{display:flex; flex-wrap:wrap; gap:var(--s3); justify-content:space-between; align-items:flex-start;}
.site-footer a{color:var(--surface-alt); text-decoration:none; font-weight:600;}
.site-footer a:hover{text-decoration:underline;}
.foot-brand{font-family:var(--font-head); font-size:24px; text-transform:uppercase;}
.foot-desc{margin:10px 0 0; max-width:36ch; color:var(--bg);}
.foot-links{display:flex; gap:18px; flex-wrap:wrap; font-size:14px;}
.foot-label{
  font-family:var(--font-mono); font-size:12px; font-weight:700; color:var(--bg);
  border:2px solid var(--surface-alt); padding:6px 10px; display:inline-block; margin-top:var(--s3);
}

/* ===== RESPONSIVE (portal grid rearrange) ===== */
@media (max-width:1024px){
  .portal{grid-template-columns:repeat(2, minmax(0,1fr));}
  .span2{grid-column:span 2;}
}
@media (max-width:768px){
  h1{font-size:32px;}
  .header-top{grid-template-columns:1fr;}
  .brand{justify-content:flex-start;}
  .search{max-width:none; margin:0;}
  .header-utils{justify-content:flex-start;}
  .portal{grid-template-columns:repeat(2, minmax(0,1fr));}
  .span2{grid-column:span 2;}
}
@media (max-width:480px){
  h1{font-size:27px;}
  .brand{font-size:26px;}
  .portal{grid-template-columns:1fr;}
  .span2{grid-column:span 1;}
  .gal2{grid-template-columns:1fr 1fr;}
  .kw-strip{flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px;}
  .txt-list .cm{margin-left:0;}
  .mod,.gcard{border-width:2px;}
  .mod{box-shadow:4px 4px 0 var(--border);}
  .sticker{transform:rotate(-2deg); width:52px; height:52px;}
  .sticker.r2{transform:rotate(2deg);}
}
@media (prefers-reduced-motion:reduce){
  .btn,.feature,.gcard{transition:border-color 120ms ease-out;}
  .btn-primary:hover,.btn-secondary:hover,.feature:hover,.gcard:hover{
    transform:none; box-shadow:var(--shadow-2); border-color:var(--accent-2);
  }
}

/* ============ gnuboard dynamic supplements (Neo-Brutalist Pop) ============ */
/* thumb images inside wrappers */
.imgbox img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-row .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.gcard .imgbox img{width:100%;height:100%;object-fit:cover;display:block;}
/* pager current page */
.pager strong,.pager .now{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;height:36px;padding:0 6px;
  font-family:var(--font-mono);font-weight:700;font-size:14px;
  background:var(--accent);color:#fff;border:2px solid var(--border);
}
/* board list utilities */
.board-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s3);padding-top:var(--s2);border-top:3px solid var(--border);}
.board-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.board-search select,.board-search input[type=text]{
  height:44px;padding:0 12px;font-family:var(--font-body);font-size:14px;
  background:var(--surface);color:var(--text);border:2px solid var(--border);border-radius:0;
}
/* webzine list */
.webzine{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2);}
.wz-featured{
  display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:var(--s2);
  background:var(--surface);border:3px solid var(--border);box-shadow:var(--shadow-2);padding:var(--s2);align-items:stretch;
}
.wz-row{
  display:grid;grid-template-columns:120px 1fr;gap:var(--s2);
  background:var(--surface);border:2px solid var(--border);box-shadow:var(--shadow-1);padding:12px;
}
.wz-thumb{aspect-ratio:4/3;width:100%;overflow:hidden;border:2px solid var(--border);position:relative;background:var(--surface-alt);}
.wz-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.wz-thumb .badge{
  position:absolute;top:6px;left:6px;font-family:var(--font-mono);font-size:10px;font-weight:700;
  text-transform:uppercase;padding:2px 6px;border:2px solid var(--border);
}
.badge.hot{background:var(--accent);color:#fff;}
.badge.new{background:var(--accent-2);color:#fff;}
.badge.spec{background:var(--accent-3);color:var(--text);}
.wz-body{min-width:0;display:flex;flex-direction:column;}
.wz-cat{
  display:inline-block;align-self:flex-start;font-family:var(--font-mono);font-size:11px;
  text-transform:uppercase;color:#fff;background:var(--accent-2);
  border:2px solid var(--border);padding:1px 6px;margin-bottom:8px;
}
.wz-title{font-size:16px;font-weight:800;line-height:1.3;margin:0 0 6px;font-family:var(--font-body);}
.wz-title a{color:var(--text);text-decoration:none;}
.wz-title a:hover{text-decoration:underline;background:var(--surface-alt);}
.wz-featured .wz-title{font-size:20px;}
.wz-excerpt{font-size:14px;color:var(--muted);margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.wz-meta{display:flex;gap:10px;margin-top:auto;font-family:var(--font-mono);font-size:12px;color:var(--muted);flex-wrap:wrap;align-items:center;}
.wz-meta .author{color:var(--text);font-weight:700;}
.wz-meta .cmt{color:var(--accent);font-weight:700;}
/* pager nav */
nav.pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:var(--s3);}
nav.pager a{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;height:36px;padding:0 6px;
  font-family:var(--font-mono);font-size:14px;font-weight:700;
  color:var(--text);background:var(--surface);border:2px solid var(--border);text-decoration:none;
}
nav.pager a:hover{background:var(--surface-alt);}
/* layout: feed + rail */
.layout{display:grid;grid-template-columns:1fr 280px;gap:var(--s3);margin:0 0 var(--s5);}
aside.rail{display:flex;flex-direction:column;gap:var(--s3);}
.widget{background:var(--surface);border:3px solid var(--border);box-shadow:var(--shadow-2);padding:var(--s2);}
.widget h3{font-family:var(--font-head);font-size:16px;font-weight:900;text-transform:uppercase;margin:0 0 var(--s1);padding-bottom:var(--s1);border-bottom:3px solid var(--border);}
.tag-cloud{display:flex;flex-wrap:wrap;gap:6px;}
.tag-cloud a{
  font-family:var(--font-mono);font-size:13px;font-weight:700;padding:4px 10px;min-height:32px;
  display:inline-flex;align-items:center;border:2px solid var(--border);
  color:var(--text);background:var(--surface);text-decoration:none;
}
.tag-cloud a:hover{background:var(--surface-alt);}
.rank-list{list-style:none;margin:0;padding:0;}
.rank-list li{display:flex;gap:8px;align-items:baseline;padding:8px 0;border-bottom:2px solid var(--border);}
.rank-list li:last-child{border-bottom:none;}
.rank-num{font-family:var(--font-mono);font-weight:700;color:#fff;background:var(--accent);border:2px solid var(--border);min-width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;flex:0 0 auto;}
.rank-list a{color:var(--text);font-size:14px;font-weight:700;line-height:1.35;flex:1;min-width:0;text-decoration:none;}
.rank-list a:hover{text-decoration:underline;background:var(--surface-alt);}
.rank-list .v{font-family:var(--font-mono);font-size:12px;color:var(--muted);flex:0 0 auto;}
/* board detail (view) — retinted for Neo-Brutalist Pop palette */
.hm-board-view{background:var(--surface);border:3px solid var(--border);box-shadow:var(--shadow-3);padding:var(--s3);margin:var(--s3) auto var(--s3);max-width:860px;}
.hm-view-head{border-bottom:3px solid var(--border);padding-bottom:var(--s2);margin-bottom:var(--s2);}
.hm-view-head .hm-board-kicker{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;color:var(--accent-2);margin:0 0 6px;font-weight:700;}
.hm-view-head h1{font-family:var(--font-head);font-size:26px;font-weight:900;line-height:1.2;color:var(--text);margin:0;}
.hm-view-meta{display:flex;gap:12px;margin-top:10px;font-family:var(--font-mono);font-size:13px;color:var(--muted);flex-wrap:wrap;}
.hm-view-content{font-size:16px;line-height:1.8;color:var(--text);padding:var(--s1) 0 var(--s2);border-bottom:2px solid var(--border);}
.hm-view-content img{max-width:100%;height:auto;}
.hm-view-content p{margin:0 0 var(--s2);}
.hm-view-files{display:flex;flex-wrap:wrap;gap:8px;margin:var(--s2) 0;}
.hm-view-files a{font-family:var(--font-mono);font-size:13px;border:2px solid var(--border);padding:6px 12px;color:var(--accent-2);background:var(--surface);text-decoration:none;}
.hm-view-neighbor{display:flex;flex-direction:column;gap:8px;margin:var(--s2) 0;}
.hm-view-neighbor a{display:flex;gap:10px;padding:10px 12px;border:2px solid var(--border);background:var(--bg);text-decoration:none;color:var(--text);}
.hm-view-neighbor span{font-family:var(--font-mono);font-size:12px;color:var(--muted);flex:0 0 auto;font-weight:700;}
.hm-view-neighbor strong{font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hm-view-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:var(--s2);}
.hm-view-actions a{min-height:40px;display:inline-flex;align-items:center;padding:0 var(--s2);border:2px solid var(--border);font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--text);background:var(--surface);text-decoration:none;}
.hm-view-actions a.is-primary{background:var(--accent);color:#fff;border-color:var(--accent);}
.hm-view-vote{display:flex;gap:8px;margin:var(--s2) 0;}
.hm-view-vote a{padding:8px 16px;border:2px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:13px;font-weight:700;text-decoration:none;}
.hm-view-vote a:hover{background:var(--surface-alt);}
/* utilities */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
/* mobile nav toggle */
.nav-toggle{
  display:none;background:var(--surface);border:3px solid var(--border);
  cursor:pointer;padding:8px 12px;font-family:var(--font-mono);font-size:12px;font-weight:700;
  color:var(--text);
}
.main-nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0;}
.main-nav a{
  display:inline-flex;align-items:center;min-height:40px;padding:0 14px;
  font-family:var(--font-head);font-weight:800;font-size:15px;text-transform:uppercase;
  text-decoration:none;color:var(--text);border:2px solid transparent;
}
.main-nav a:hover,.main-nav a.active{background:var(--surface-alt);border-color:var(--border);}
@media(max-width:768px){
  .nav-toggle{display:block;}
  .main-nav{display:none;}
  .main-nav.open{
    display:block;position:fixed;inset:0;background:var(--bg);z-index:50;
    padding:80px var(--s3) var(--s3);border-left:6px solid var(--border);
  }
  .main-nav.open ul{flex-direction:column;gap:0;}
  .main-nav.open a{display:block;padding:14px 0;border-bottom:2px solid var(--border);font-size:20px;}
  .layout{grid-template-columns:1fr;}
  aside.rail{flex-direction:row;flex-wrap:wrap;}
  aside.rail .widget{flex:1 1 240px;}
  .wz-featured{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .wz-row{grid-template-columns:1fr;}
  .layout{grid-template-columns:1fr;}
  aside.rail{flex-direction:column;}
}
