/* Article single-view styles. Scoped under .art-single-wrap.
   Loaded by pages/articles_single.php view branch.
   Design language matches articles.css (.art-wrap family). */

.art-single-wrap{
  --pos:#137a4f;
  --pos-soft:#e6f5ee;
  --neg:#a83218;
  --neg-soft:#fbeae5;
  --line:#e7e4ef;
  --line-soft:#f1eff5;
  --ink:#14121a;
  --ink-soft:#4a4757;
  --muted:#8a8797;
  position:relative;z-index:1;
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;
  align-items:start;
  font-family:'Fraunces',Georgia,serif;color:var(--ink);
}
.art-single-wrap *{box-sizing:border-box;}

/* Breadcrumb */
.art-single-wrap .art-crumb{
  grid-column:1/-1;display:flex;align-items:center;gap:10px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  margin-bottom:8px;
}
.art-single-wrap .art-crumb a{color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;}
.art-single-wrap .art-crumb a:hover{color:var(--bmm-accent);border-bottom-color:var(--bmm-accent);}
.art-single-wrap .art-crumb .sep{opacity:.5;}

/* Main column */
.art-single-wrap .art-main{min-width:0;}

/* Header card with 4 corner crns */
.art-single-wrap .art-head{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:2px;
  padding:22px 26px 18px;
}
.art-single-wrap .art-head .crn{position:absolute;width:10px;height:10px;border:1px solid var(--bmm-accent);opacity:.75;}
.art-single-wrap .art-head .crn.tl{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.art-single-wrap .art-head .crn.tr{top:-1px;right:-1px;border-left:none;border-bottom:none;}
.art-single-wrap .art-head .crn.bl{bottom:-1px;left:-1px;border-right:none;border-top:none;}
.art-single-wrap .art-head .crn.br{bottom:-1px;right:-1px;border-left:none;border-top:none;}

.art-single-wrap .art-h1{
  font-family:'Fraunces',serif;font-weight:500;
  font-size:clamp(26px,3.2vw,38px);line-height:1.12;letter-spacing:-0.015em;
  margin:0 0 14px;color:var(--ink);
}
.art-single-wrap .art-h1 em{font-style:italic;font-weight:400;color:var(--bmm-accent);}

.art-single-wrap .art-byline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.art-single-wrap .id-avatar{
  width:34px;height:34px;border-radius:2px;border:1px solid var(--line);
  background:var(--bmm-accent-soft);color:var(--bmm-accent-deep);
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',Georgia,serif;font-size:13px;font-weight:500;letter-spacing:.04em;
  flex-shrink:0;overflow:hidden;
}
.art-single-wrap .id-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.art-single-wrap .id-avatar.is-broken img{display:none;}
.art-single-wrap .art-byline-meta{display:flex;flex-direction:column;gap:2px;font-family:'Fraunces';font-size:13px;color:var(--ink-soft);}
.art-single-wrap .art-byline-meta .pub{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.art-single-wrap .art-byline-meta a.author{color:var(--ink);text-decoration:none;font-weight:500;border-bottom:1px solid var(--line);}
.art-single-wrap .art-byline-meta a.author:hover{color:var(--bmm-accent);border-bottom-color:var(--bmm-accent);}
.art-single-wrap .art-byline-meta time{color:var(--ink-soft);}
.art-single-wrap .art-byline-admin{margin-left:auto;font-size:11px;letter-spacing:.05em;}
.art-single-wrap .art-byline-admin a{color:var(--muted);text-decoration:none;border-bottom:1px dotted var(--line);padding:0 2px;}
.art-single-wrap .art-byline-admin a:hover{color:var(--bmm-accent);}

.art-single-wrap .art-ai-note{
  margin-top:14px;display:flex;align-items:flex-start;gap:10px;
  border:1px dashed color-mix(in srgb,var(--bmm-accent) 35%,transparent);
  background:var(--bmm-accent-soft);
  padding:10px 12px;border-radius:2px;
  font-family:'Fraunces';font-size:12.5px;color:var(--ink-soft);
}
.art-single-wrap .art-ai-note svg{flex:none;color:var(--bmm-accent);}
.art-single-wrap .art-ai-note a{color:var(--bmm-accent);font-weight:500;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--bmm-accent) 30%,transparent);}
.art-single-wrap .art-ai-note a:hover{border-bottom-color:var(--bmm-accent);}

.art-single-wrap .art-head-notice{margin-top:14px;}

/* Body — no card framing; content sits directly on the page so user-uploaded
   HTML uses the full main-column width. Comments section gets its own thin
   visual separation via .art-comments below. */
.art-single-wrap .art-body{
  margin-top:24px;
  font-family:'Fraunces',Georgia,serif;color:var(--ink);
}
.art-single-wrap #article_content{font-size:16.5px;line-height:1.68;}
.art-single-wrap #article_content > *:first-child{margin-top:0;}
.art-single-wrap #article_content h2{font-family:'Fraunces';font-weight:500;font-size:22px;line-height:1.25;letter-spacing:-0.01em;margin:32px 0 12px;color:var(--ink);}
.art-single-wrap #article_content h3{font-family:'Fraunces';font-weight:500;font-size:17px;margin:24px 0 8px;color:var(--ink);}
.art-single-wrap #article_content p{margin:0 0 14px;}
.art-single-wrap #article_content ul,
.art-single-wrap #article_content ol{padding-left:20px;margin:0 0 14px;}
.art-single-wrap #article_content li{margin:4px 0;}
.art-single-wrap #article_content li::marker{color:var(--bmm-accent);}
.art-single-wrap #article_content a{color:var(--bmm-accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--bmm-accent) 35%,transparent);}
.art-single-wrap #article_content a:hover{border-bottom-color:var(--bmm-accent);}
.art-single-wrap #article_content blockquote{border-left:2px solid var(--bmm-accent);background:var(--bmm-accent-soft);padding:10px 16px;margin:18px 0;font-style:italic;color:var(--ink-soft);}
.art-single-wrap #article_content img{max-width:100%;height:auto;border-radius:2px;}
.art-single-wrap #article_content hr{border:none;border-top:1px solid var(--line);margin:24px 0;}

/* Comments */
.art-single-wrap .art-comments{margin-top:32px;}
.art-single-wrap .art-comments-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.art-single-wrap .art-comments-head h2{font-family:'Fraunces';font-weight:500;font-size:20px;margin:0;letter-spacing:-0.01em;}
.art-single-wrap .art-comments-head h2 .count{color:var(--muted);font-style:italic;font-size:16px;margin-left:6px;}
.art-single-wrap .art-comments-head .write{font-family:'Fraunces';font-size:13px;color:var(--bmm-accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--bmm-accent) 35%,transparent);}
.art-single-wrap .art-comments-head .write:hover{border-bottom-color:var(--bmm-accent);}
.art-single-wrap .art-cmt{padding:14px 0;border-bottom:1px solid var(--line-soft);display:grid;grid-template-columns:34px 1fr;gap:14px;}
.art-single-wrap .art-cmt:last-child{border-bottom:none;}
.art-single-wrap .art-cmt-meta{font-family:'Fraunces';font-size:12px;color:var(--muted);margin-bottom:4px;letter-spacing:.02em;}
.art-single-wrap .art-cmt-meta a{color:var(--ink);text-decoration:none;font-weight:500;border-bottom:1px solid var(--line);}
.art-single-wrap .art-cmt-meta a:hover{color:var(--bmm-accent);border-bottom-color:var(--bmm-accent);}
.art-single-wrap .art-cmt-body{font-family:'Fraunces';font-size:14px;color:var(--ink-soft);font-style:italic;line-height:1.55;}

/* Sidebar */
.art-single-wrap .art-aside{display:flex;flex-direction:column;gap:18px;position:sticky;top:24px;align-self:start;}
.art-single-wrap .aside-card{background:#fff;border:1px solid var(--line);border-radius:2px;padding:16px 18px;position:relative;}
.art-single-wrap .aside-card .crn{position:absolute;width:8px;height:8px;border:1px solid var(--bmm-accent);opacity:.6;}
.art-single-wrap .aside-card .crn.tl{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.art-single-wrap .aside-card .crn.br{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.art-single-wrap .aside-label{
  font-family:'Fraunces';font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-weight:500;
  display:flex;align-items:center;gap:8px;margin-bottom:10px;
}
.art-single-wrap .aside-label::before{content:"";flex:none;width:18px;height:1px;background:var(--bmm-accent);opacity:.6;}

/* Game card with gallery */
.art-single-wrap .game-card{padding:0;overflow:hidden;}
.art-single-wrap .gc-main{display:block;aspect-ratio:16/9;background:var(--line-soft);overflow:hidden;border-bottom:1px solid var(--line);}
.art-single-wrap .gc-main img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .25s ease;}
.art-single-wrap .gc-main:hover img{opacity:.92;}
.art-single-wrap .gc-strip{
  display:flex;gap:4px;padding:6px 6px 0;background:#fafafd;border-bottom:1px solid var(--line);
  overflow-x:auto;scrollbar-width:thin;
}
.art-single-wrap .gc-strip::-webkit-scrollbar{height:4px;}
.art-single-wrap .gc-strip::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px;}
.art-single-wrap .gc-thumb{
  flex:none;width:48px;height:36px;border:1px solid var(--line);border-radius:2px;
  overflow:hidden;background:#fff;cursor:pointer;padding:0;display:block;
  transition:border-color .15s ease, transform .15s ease;
}
.art-single-wrap .gc-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.art-single-wrap .gc-thumb:hover{border-color:var(--bmm-accent);}
.art-single-wrap .gc-thumb.is-active{border-color:var(--bmm-accent);box-shadow:inset 0 0 0 1px var(--bmm-accent);}
.art-single-wrap .gc-body{padding:14px 16px 16px;}
.art-single-wrap .gc-body h3{font-family:'Fraunces';font-weight:500;font-size:18px;margin:0 0 4px;letter-spacing:-0.01em;}
.art-single-wrap .gc-body h3 a{color:var(--ink);text-decoration:none;}
.art-single-wrap .gc-body h3 a:hover{color:var(--bmm-accent);}
.art-single-wrap .gc-tagline{font-family:'Fraunces';font-size:13px;font-style:italic;color:var(--ink-soft);margin:0 0 10px;}
.art-single-wrap .gc-stats{
  display:flex;align-items:center;gap:14px;
  padding:8px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  font-family:'Fraunces';font-size:12px;color:var(--ink-soft);letter-spacing:.02em;
  flex-wrap:wrap;
}
.art-single-wrap .gc-stat{display:flex;align-items:center;gap:5px;}
.art-single-wrap .gc-stat .v{color:var(--ink);font-weight:500;}
.art-single-wrap .gc-stat .k{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;}
.art-single-wrap .gc-stat.pos .v{color:var(--pos);}
.art-single-wrap .gc-stat.neg .v{color:var(--neg);}
.art-single-wrap .gc-stat svg{flex:none;}
.art-single-wrap .gc-view{
  margin-top:12px;display:flex;width:fit-content;align-items:center;gap:6px;
  font-family:'Fraunces';font-size:13px;color:var(--bmm-accent);text-decoration:none;font-weight:500;
  border-bottom:1px solid transparent;transition:border-color .2s;
}
.art-single-wrap .gc-view + .gc-view{margin-top:4px;}
.art-single-wrap .gc-view::after{content:"→";transition:transform .2s ease;}
.art-single-wrap .gc-view:hover{border-bottom-color:var(--bmm-accent);}
.art-single-wrap .gc-view:hover::after{transform:translateX(3px);}
.art-single-wrap .gc-actions{
  margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft);
  display:flex;flex-wrap:wrap;gap:6px 14px;
}
.art-single-wrap .gc-actions a,
.art-single-wrap .gc-actions button{
  appearance:none;background:none;border:none;padding:0;margin:0;cursor:pointer;
  font-family:'Fraunces';font-size:12px;color:var(--ink-soft);
  display:inline-flex;align-items:center;gap:5px;
  text-decoration:none;letter-spacing:.02em;
  border-bottom:1px dotted var(--line);padding-bottom:1px;
}
.art-single-wrap .gc-actions a:hover,
.art-single-wrap .gc-actions button:hover{color:var(--bmm-accent);border-bottom-color:var(--bmm-accent);}
.art-single-wrap .gc-actions .ico{width:11px;height:11px;color:var(--muted);}
.art-single-wrap .gc-actions a:hover .ico,
.art-single-wrap .gc-actions button:hover .ico{color:var(--bmm-accent);}

/* Latest review */
.art-single-wrap .rev-card .rev-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.art-single-wrap .rev-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-family:'Fraunces';font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  padding:3px 8px;border-radius:2px;border:1px solid;
}
.art-single-wrap .rev-badge.pos{color:var(--pos);background:var(--pos-soft);border-color:color-mix(in srgb,var(--pos) 35%,transparent);}
.art-single-wrap .rev-badge.neg{color:var(--neg);background:var(--neg-soft);border-color:color-mix(in srgb,var(--neg) 35%,transparent);}
.art-single-wrap .rev-badge .glyph{font-size:13px;line-height:1;}
.art-single-wrap .rev-author{font-family:'Fraunces';font-size:12px;color:var(--muted);margin-left:auto;}
.art-single-wrap .rev-author a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
.art-single-wrap .rev-author a:hover{color:var(--bmm-accent);border-bottom-color:var(--bmm-accent);}
.art-single-wrap .rev-body{
  font-family:'Fraunces';font-size:14px;font-style:italic;line-height:1.5;color:var(--ink);
  margin:0 0 10px;
}
.art-single-wrap .rev-body::before{content:"\201C";color:var(--bmm-accent);font-size:24px;font-weight:500;line-height:0;display:inline-block;vertical-align:-6px;margin-right:2px;}
.art-single-wrap .rev-foot{
  padding-top:8px;border-top:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:space-between;
  font-family:'Fraunces';font-size:11.5px;color:var(--muted);letter-spacing:.04em;
}
.art-single-wrap .rev-foot a{color:var(--bmm-accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--bmm-accent) 30%,transparent);}
.art-single-wrap .rev-foot a:hover{border-bottom-color:var(--bmm-accent);}

/* More articles */
.art-single-wrap .more-card .more-item{display:block;padding:10px 0;border-bottom:1px solid var(--line-soft);text-decoration:none;color:var(--ink);}
.art-single-wrap .more-card .more-item:last-child{border-bottom:none;}
.art-single-wrap .more-card .more-item .more-title{
  font-family:'Fraunces';font-size:13.5px;line-height:1.3;font-weight:500;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.art-single-wrap .more-card .more-item:hover .more-title{color:var(--bmm-accent);}
.art-single-wrap .more-card .more-item .more-meta{font-family:'Fraunces';font-size:11px;color:var(--muted);margin-top:3px;letter-spacing:.04em;}
.art-single-wrap .more-card .more-item .more-meta .cat{color:var(--bmm-accent);}
.art-single-wrap .more-card .more-foot{
  margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);
  text-align:right;
}
.art-single-wrap .more-card .more-foot a{
  font-family:'Fraunces';font-size:12px;color:var(--bmm-accent);text-decoration:none;
  border-bottom:1px solid color-mix(in srgb,var(--bmm-accent) 30%,transparent);
}
.art-single-wrap .more-card .more-foot a:hover{border-bottom-color:var(--bmm-accent);}

/* Latest game voted (ad) */
.art-single-wrap .lgv-card{padding:0;overflow:hidden;position:relative;text-decoration:none;color:inherit;display:block;}
.art-single-wrap .lgv-tag{
  position:absolute;top:8px;left:8px;z-index:2;
  font-family:'Fraunces';font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;
  color:var(--bmm-accent);background:#fff;
  padding:3px 8px;border:1px solid var(--bmm-accent);border-radius:2px;
}
.art-single-wrap .lgv-tag .pulse{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--bmm-accent);margin-right:5px;vertical-align:1px;animation:lgv-pulse 1.8s ease-in-out infinite;}
@keyframes lgv-pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.7);}}
@media (prefers-reduced-motion: reduce){.art-single-wrap .lgv-tag .pulse{animation:none;}}
.art-single-wrap .lgv-img{display:block;aspect-ratio:21/9;background:var(--line-soft);overflow:hidden;border-bottom:1px solid var(--line);position:relative;}
.art-single-wrap .lgv-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.art-single-wrap .lgv-card:hover .lgv-img img{transform:scale(1.04);}
.art-single-wrap .lgv-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(20,18,26,.62) 100%);
  pointer-events:none;
}
.art-single-wrap .lgv-img .lgv-title-overlay{
  position:absolute;left:14px;right:14px;bottom:10px;z-index:1;
  font-family:'Fraunces';font-weight:500;font-size:18px;color:#fff;letter-spacing:-0.01em;
  line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.4);
}
.art-single-wrap .lgv-body{padding:12px 14px 14px;}
.art-single-wrap .lgv-tagline{font-family:'Fraunces';font-size:12.5px;font-style:italic;color:var(--ink-soft);margin:0 0 10px;line-height:1.4;}
.art-single-wrap .lgv-meta{
  display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;
  font-family:'Fraunces';font-size:11.5px;color:var(--ink-soft);
  padding-top:8px;border-top:1px solid var(--line-soft);
}
.art-single-wrap .lgv-meta .m{display:inline-flex;align-items:center;gap:4px;}
.art-single-wrap .lgv-meta .m .v{color:var(--ink);font-weight:500;}
.art-single-wrap .lgv-meta .m .k{color:var(--muted);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;}
.art-single-wrap .lgv-meta .m.pos .v{color:var(--pos);}
.art-single-wrap .lgv-cta{
  display:flex;align-items:center;justify-content:flex-end;gap:12px;
  margin-top:10px;
}
.art-single-wrap .lgv-cta .visit{
  font-family:'Fraunces';font-size:13px;color:var(--bmm-accent);font-weight:500;
  display:inline-flex;align-items:center;gap:6px;
  border-bottom:1px solid transparent;transition:border-color .2s;
}
.art-single-wrap .lgv-cta .visit::after{content:"→";transition:transform .2s ease;}
.art-single-wrap .lgv-card:hover .lgv-cta .visit{border-bottom-color:var(--bmm-accent);}
.art-single-wrap .lgv-card:hover .lgv-cta .visit::after{transform:translateX(3px);}

/* Mobile */
@media (max-width:960px){
  .art-single-wrap{grid-template-columns:1fr;}
  .art-single-wrap .art-aside{order:2;position:static;}
  .art-single-wrap .art-body{padding:24px 22px;}
}
@media (max-width:560px){
  .art-single-wrap .art-head{padding:18px 16px 14px;}
  .art-single-wrap .art-h1{font-size:24px;}
  .art-single-wrap .art-body{padding:20px 16px;}
}
