/* サイト全体のゲーム広告配置。広告未登録ならスペースを取りません。 */
.mlg-ad-block{box-sizing:border-box;clear:both;max-width:1000px;margin:36px auto;padding:12px;border:1px solid #dfe3eb;border-radius:12px;background:#f8f9fb;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif}
.mlg-ad-label{display:block;color:#737f92;font-size:10px;line-height:1.5;margin-bottom:7px}
.mlg-ad-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.mlg-ad-card{display:block;overflow:hidden;border:1px solid #e0dce9;border-radius:10px;background:#fff;color:#272338!important;text-decoration:none!important}
.mlg-ad-card img{display:block;width:100%;height:148px;object-fit:cover}
.mlg-ad-copy{display:block;padding:9px 10px}.mlg-ad-copy strong{display:block;font-size:13px}.mlg-ad-copy small{display:block;margin-top:3px;font-size:11px;color:#647084}
.mlg-ad-card:hover{border-color:#8f91ba}
.mlg-ad-rail{box-sizing:border-box;position:fixed;top:175px;width:170px;z-index:20;padding:7px;border:1px solid #dedce5;border-radius:12px;background:#fff;box-shadow:0 8px 26px #15122b19;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif}
.mlg-ad-rail.left{left:10px}.mlg-ad-rail.right{right:10px}
.mlg-ad-rail .mlg-ad-card img{height:175px}
.mlg-ad-close{position:absolute;right:5px;top:5px;z-index:2;cursor:pointer;background:#fff;color:#333;border:1px solid #ddd;border-radius:5px;padding:2px 8px;font-size:16px}
.mlg-video video{display:block;width:100%;height:130px;object-fit:cover;border-radius:7px}
.mlg-video a{display:block;margin-top:7px;text-align:center;font-size:12px;text-decoration:none;color:#44348b!important;font-weight:700}
.mlg-ad-preview{display:flex;align-items:center;justify-content:center;min-height:150px;padding:12px;background:linear-gradient(125deg,#d9cefc,#ffb8d2 56%,#ffe5cf);color:#683d91;font-size:23px;font-weight:800;text-align:center}
.mlg-ad-rail .mlg-ad-preview{font-size:17px;min-height:180px}
@media(max-width:1699px){.mlg-ad-rail{display:none!important}}
@media(max-width:680px){.mlg-ad-block{margin:26px 10px}.mlg-ad-grid{grid-template-columns:1fr}}


/* Responsive 300x250 ad unit grid; empty unconfigured placements hidden. */
.as-slot{display:flex;flex-direction:column;align-items:center;box-sizing:border-box;clear:both;width:max-content;max-width:100%;min-height:0;margin:14px auto;padding:0;text-align:center}
.as-slot-label{display:block;width:100%;font:10px/1.5 system-ui,sans-serif;color:#838b99;text-align:left;margin:0 0 5px}
.as-ad-content{max-width:100%;margin:0 auto;line-height:0}
.as-top .as-ad-content{max-width:728px}
.as-bottom{width:468px;max-width:100%;margin:26px auto 18px}
.as-bottom .as-ad-content{max-width:468px}
.as-slot.as-empty{display:none!important;margin:0!important;padding:0!important}
.as-mosaic{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px;box-sizing:border-box;width:min(936px,calc(100% - 24px));max-width:100%;margin:20px auto 24px;min-height:0}
.as-mosaic .as-square{flex:0 0 300px;clear:none;box-sizing:border-box;width:300px;max-width:100%;margin:0!important;padding:0!important}
.as-mosaic .as-square .as-ad-content{width:300px;max-width:100%}
.as-mosaic .as-square-pending,.as-mosaic .as-square[hidden]{display:none!important}
.as-mosaic:not(:has(>.as-square:not(.as-empty):not(.as-square-pending):not([hidden]))){display:none!important}
.as-rail{position:fixed;right:12px;top:112px;z-index:20;box-sizing:border-box;width:178px;max-height:calc(100vh - 128px);overflow:auto;padding:3px 7px;background:transparent}
.as-rail .as-ad-content{width:160px;max-width:160px;line-height:0}
.as-rail.as-empty{display:none!important}
.as-close{position:absolute;top:0;right:0;z-index:1;border:1px solid #ddd;border-radius:4px;background:#fff;color:#444;cursor:pointer}
@media(min-width:1180px){body:has(.as-rail-right:not(.as-empty)) main{box-sizing:border-box;margin-right:192px!important;width:auto!important;max-width:none!important}}
@media(max-width:1179px){.as-rail{display:none!important}}
@media(max-width:759px){.as-slot{margin:12px auto}.as-mosaic{margin:14px auto 18px}.as-top .as-ad-content{max-width:320px}.as-bottom{display:none!important}}


/* Single right 160x600 rail; fixed while scrolling and no overlap with articles. */
.as-rail.as-rail-right{left:auto;right:12px;position:fixed;top:112px;width:178px}

/* Fixed-size right Ninja AdMax 160x600. No scaling or clipping. */
.as-rail.as-rail-right{box-sizing:border-box;width:178px;max-height:none;overflow:visible;padding:3px 7px;right:12px;top:112px}
.as-rail.as-rail-right .as-ad-content{box-sizing:content-box;width:160px!important;min-width:160px;max-width:160px!important;height:600px;min-height:600px;overflow:visible;transform:none!important}
.as-rail.as-rail-right .as-close{right:0;top:-26px;width:24px;height:22px;z-index:30}
@media(max-width:1179px){.as-rail.as-rail-right{display:none!important}}


/* Mobile width guard: keep off-screen ad creatives and long navigation from
   increasing the document's horizontal scroll width. Clip, rather than hidden,
   so sticky headers remain sticky on modern browsers. */
@media (max-width: 760px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
  }
  main, header, footer { max-width: 100%; }
  main { min-width: 0; }

  /* The 300px square ads fit on typical 320px+ phone screens. */
  .as-mosaic, .as-mosaic.as-mosaic-bottom {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding-inline: 8px;
    gap: 14px;
    margin-inline: auto;
    overflow-x: clip;
  }
  .as-mosaic .as-square {
    flex: 0 1 300px;
    width: 300px;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }
  .as-mosaic .as-square .as-ad-content {
    width: 300px;
    max-width: 100%;
    overflow-x: clip;
  }

  /* A desktop-size creative must not widen the mobile page. */
  .as-top {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }
  .as-top .as-ad-content {
    max-width: 100%;
    overflow-x: clip;
  }

  /* Root-site navigation previously kept logo + links in one long row. */
  .top .top-row {
    flex-wrap: wrap;
    column-gap: 12px;
    row-gap: 6px;
    padding-block: 10px;
  }
  .top .top-row nav {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap;
    gap: 8px 16px;
  }

  /* Keep device and Minecraft navigation inside the viewport. */
  .dv-top-row, .ml-head-inner { max-width: 100%; min-width: 0; }
  .dv-top nav, .ml-nav { max-width: 100%; min-width: 0; flex-wrap: wrap; }
  .dv-top nav a, .ml-nav a { overflow-wrap: anywhere; }
}

/* Keep the entire top banner in view on phones; the supporting script
   scales only creatives wider than the available viewport. */
@media (max-width: 760px) {
  .as-slot.as-top {
    width: 100%;
    max-width: 100%;
    align-items: center;
    overflow-x: clip;
  }
  .as-slot.as-top .as-ad-content {
    display: block;
    flex: none;
    max-width: none;
    overflow: visible;
    transform-origin: top center;
  }
}


/* Individually placed 300x250 AdMax units before selected sections. */
.as-slot.as-inline-single {
  box-sizing: border-box;
  width: 300px;
  max-width: calc(100% - 24px);
  margin: 30px auto;
  padding: 0;
  clear: both;
  display: flex;
  align-items: center;
  justify-content: center;
}
.as-slot.as-inline-single .as-ad-content {
  box-sizing: border-box;
  width: 300px;
  max-width: 100%;
  overflow: clip;
}
@media (max-width: 760px) {
  .as-slot.as-inline-single {
    width: 300px;
    max-width: calc(100% - 24px);
    margin: 24px auto;
    overflow-x: clip;
  }
}


/* Independent sticky-bottom Ninja AdMax unit. Keep the original right rail. */
.as-fixed-bottom{
  position:fixed;
  inset:auto 0 0;
  width:100%;
  max-width:100%;
  z-index:80;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  padding:0 35px max(0px,env(safe-area-inset-bottom));
  box-sizing:border-box;
  pointer-events:none;
}
.as-fixed-bottom-content{
  display:block;
  position:relative;
  box-sizing:border-box;
  flex:0 1 auto;
  width:max-content;
  max-width:100%;
  min-width:0;
  margin-inline:auto;
  line-height:0;
  text-align:center;
  pointer-events:auto;
}
.as-fixed-bottom-close{
  position:absolute;
  right:5px;
  top:-23px;
  width:25px;
  height:23px;
  border:1px solid #d5d5d5;
  border-radius:4px 4px 0 0;
  background:#fff;
  color:#333;
  font:17px/20px system-ui,sans-serif;
  cursor:pointer;
  pointer-events:auto;
}
/* Avoid a floating close icon / blank overlay if the network does not deliver
   a creative into the publisher slot. Self-positioned creatives remain unaffected. */
.as-fixed-bottom:not(:has(.as-fixed-bottom-content iframe,
                          .as-fixed-bottom-content img,
                          .as-fixed-bottom-content ins,
                          .as-fixed-bottom-content object,
                          .as-fixed-bottom-content embed,
                          .as-fixed-bottom-content canvas,
                          .as-fixed-bottom-content video,
                          .as-fixed-bottom-content a,
                          .as-fixed-bottom-content div)){
  display:none;
}
@media(max-width:760px){
  .as-fixed-bottom{padding-inline:4px;}
  .as-fixed-bottom-content{max-width:100%;overflow-x:clip;}
  .as-fixed-bottom-close{right:4px;top:-23px;}
}
