
:root{
  --bg:#060707; --panel:#101111; --panel2:#14100d; --line:rgba(214,166,73,.55);
  --gold:#d8ae55; --gold2:#ffe0a2; --red:#c82323; --text:#f4efe6; --muted:#c9bda8;
  --shadow: 0 18px 50px rgba(0,0,0,.45);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:radial-gradient(circle at top,#22100d 0%,#060707 42%,#020303 100%);color:var(--text);font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',system-ui,sans-serif;line-height:1.85;letter-spacing:.02em}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}.site-wrap{max-width:1180px;margin:auto;padding:0 22px 42px}.hero{position:relative;min-height:720px;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.84)),url('../images/the-eminem-show-hero.jpg') center/cover no-repeat;overflow:hidden}.hero-inner{max-width:1180px;margin:auto;min-height:720px;display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:center;padding:58px 22px 88px}.eyebrow{color:var(--gold);font-weight:900;letter-spacing:.38em;font-size:22px}.hero h1{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(58px,10vw,128px);line-height:.86;margin:.12em 0;text-shadow:0 7px 20px rgba(0,0,0,.7)}.hero h1 span{display:block;color:var(--gold);font-size:.58em;letter-spacing:.16em}.lead{font-size:clamp(16px,2.1vw,23px);font-weight:700;text-shadow:0 4px 16px rgba(0,0,0,.8)}.hero-actions{display:flex;gap:16px;margin-top:28px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;border:1px solid var(--line);background:#111;padding:12px 26px;border-radius:5px;box-shadow:var(--shadow);font-weight:800;transition:.25s}.btn.primary{background:linear-gradient(180deg,#d5312d,#8e1111);border-color:#e76f55}.btn:hover{transform:translateY(-3px);box-shadow:0 0 24px rgba(216,174,85,.35)}.cover-card{border:1px solid var(--line);padding:12px;background:rgba(0,0,0,.45);box-shadow:var(--shadow);border-radius:8px}.cover-card img{border-radius:5px}.scroll-hint{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);color:var(--gold);font-size:13px;text-align:center;animation:bounce 1.6s infinite}@keyframes bounce{50%{transform:translate(-50%,7px)}}
.section{margin:22px 0;border:1px solid var(--line);background:linear-gradient(135deg,rgba(20,20,20,.96),rgba(10,10,10,.94));border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.section-pad{padding:34px}.section h2{margin:0 0 14px;color:var(--gold2);font-size:28px;letter-spacing:.08em}.section h3{margin:0 0 10px;color:var(--gold2)}.wide-visual{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center}.wide-visual.reverse{grid-template-columns:.9fr 1.1fr}.visual-bg{min-height:260px;aspect-ratio:16/9;background:center/cover no-repeat;border-radius:6px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}img.visual-bg{width:100%;height:100%;object-fit:cover}.muted{color:var(--muted)}.red{color:#ff5a52}.gold{color:var(--gold)}.grid-2{display:grid;grid-template-columns:1fr 1.45fr;gap:22px}.info-list{list-style:none;padding:0;margin:0}.info-list li{display:grid;grid-template-columns:130px 1fr;gap:14px;border-bottom:1px solid rgba(216,174,85,.18);padding:7px 0}.check-list{margin:0;padding-left:0;list-style:none}.check-list li{position:relative;padding-left:28px;margin:8px 0}.check-list li:before{content:'✓';position:absolute;left:0;top:0;color:#fff;background:var(--red);width:19px;height:19px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:900}.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--red)}.timeline li{position:relative;padding:4px 0 10px 22px}.timeline li:before{content:'';position:absolute;left:-7px;top:13px;width:12px;height:12px;background:var(--red);border-radius:50%;box-shadow:0 0 0 4px rgba(200,35,35,.16)}.tracklist{columns:2;column-gap:70px;list-style:none;margin:0;padding:0}.tracklist li{break-inside:avoid;padding:4px 0}.tracklist b{color:#ff5048;display:inline-block;width:34px}.featured-title{text-align:center;border:0;background:transparent;box-shadow:none}.songs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.song-card{border:1px solid var(--line);background:#101010;border-radius:8px;overflow:hidden;transition:.25s;min-height:360px}.song-card:hover{transform:translateY(-6px) scale(1.012);box-shadow:0 0 28px rgba(216,174,85,.28)}.song-img{width:100%;height:150px;object-fit:cover;filter:grayscale(.18)}.song-body{padding:20px}.num{display:inline-grid;place-items:center;background:var(--red);width:38px;height:38px;border-radius:8px;margin-right:10px;font-weight:900}.song-card h3{display:flex;align-items:center;font-size:18px}.affiliate{background:linear-gradient(90deg,rgba(80,9,8,.74),rgba(18,7,5,.94)),url('../images/affiliate-purchase-stage.jpg') center/cover no-repeat}.affiliate h2{text-align:center}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:880px;margin:22px auto 0}.shop-card{background:#f7f1e7;color:#1b1510;border-radius:8px;padding:25px;text-align:center;border:1px solid #fff}.shop-logo{font-family:Arial Black,Arial,sans-serif;font-size:42px;line-height:1;color:#111}.shop-logo.rakuten{color:#c31717}.shop-card ul{text-align:left;display:inline-block;margin:14px 0 18px}.shop-card .btn{width:100%;box-shadow:none}.shop-card .amazon-btn{background:#f0ae21;color:#160d04}.shop-card .rakuten-btn{background:#b91616;color:#fff}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.footer{text-align:center;color:#968872;font-size:13px;padding:20px 0 30px}.home-btn{display:flex;justify-content:center;margin:20px auto 8px}.to-top{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border-radius:50%;background:#b71919;border:1px solid #e85858;color:#fff;display:grid;place-items:center;font-weight:900;z-index:20;box-shadow:var(--shadow)}
.curtain-demo{padding:28px 28px 32px}.demo-title{text-align:center;margin-bottom:16px}.demo-stage{position:relative;min-height:360px;border:1px solid rgba(216,174,85,.45);border-radius:8px;overflow:hidden;background:url('../images/curtain-reveal-stage.jpg') center/cover no-repeat}.demo-stage:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,220,150,.18),rgba(0,0,0,.75));}.curtain-panel{position:absolute;top:0;bottom:0;width:54%;z-index:2;background-size:cover;background-repeat:no-repeat;transition:transform 8.0s cubic-bezier(.22,.85,.24,1);}.curtain-left{left:0;background-image:url('../images/eminem-show-curtain-left.png');background-position:right center}.curtain-right{right:0;background-image:url('../images/eminem-show-curtain-right.png');background-position:left center}.curtain-reveal.is-open .curtain-left{transform:translateX(-92%)}.curtain-reveal.is-open .curtain-right{transform:translateX(92%)}.demo-content{position:relative;z-index:1;min-height:360px;display:grid;place-items:center;text-align:center;padding:34px}.demo-content h2{font-size:38px;text-shadow:0 3px 18px #000}.demo-note{position:relative;z-index:4;text-align:center;color:var(--muted);font-size:14px;margin-top:12px}.motion-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:18px}.motion-item{border:1px solid rgba(216,174,85,.32);border-radius:7px;padding:14px;text-align:center;background:rgba(0,0,0,.25)}.motion-icon{font-size:24px;color:var(--red);display:block}.fade-up,.slide-left,.slide-right{opacity:1;transform:none}.js .fade-up{opacity:0;transform:translateY(42px);transition:opacity .8s ease,transform .8s ease}.js .fade-up.is-visible{opacity:1;transform:translateY(0)}.js .slide-left{opacity:0;transform:translateX(-55px);transition:opacity .9s ease,transform .9s ease}.js .slide-right{opacity:0;transform:translateX(55px);transition:opacity .9s ease,transform .9s ease}.js .slide-left.is-visible,.js .slide-right.is-visible{opacity:1;transform:translateX(0)}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .fade-up,.js .slide-left,.js .slide-right{opacity:1!important;transform:none!important}.curtain-reveal.is-open .curtain-left{transform:translateX(-92%)}.curtain-reveal.is-open .curtain-right{transform:translateX(92%)}}
@media(max-width:860px){.hero-inner,.wide-visual,.wide-visual.reverse,.grid-2,.shop-grid,.mini-grid{grid-template-columns:1fr}.hero{min-height:auto}.hero-inner{min-height:auto;padding-top:42px}.songs{grid-template-columns:1fr 1fr}.tracklist{columns:1}.motion-list{grid-template-columns:1fr 1fr}.info-list li{grid-template-columns:110px 1fr}.section-pad{padding:24px}.demo-stage,.demo-content{min-height:300px}}
@media(max-width:560px){.songs{grid-template-columns:1fr}.motion-list{grid-template-columns:1fr}.hero h1{font-size:56px}.hero-actions{display:grid}.site-wrap{padding-inline:14px}.section h2{font-size:23px}}
/* ===== 更新：ヒーロー下のカーテン演出を画面横幅いっぱいに表示 ===== */
.site-wrap > .curtain-reveal{
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:0;
  border-left:0;
  border-right:0;
  border-radius:0;
  background:#070707;
}
.site-wrap > .curtain-reveal .curtain-demo{
  padding:0;
}
.site-wrap > .curtain-reveal .demo-stage{
  min-height:500px;
  border-left:0;
  border-right:0;
  border-radius:0;
}
.site-wrap > .curtain-reveal .demo-content{
  min-height:500px;
}
.site-wrap > .curtain-reveal .demo-content h2{
  font-size:clamp(34px,5.2vw,76px);
}
.site-wrap > .curtain-reveal .demo-content p{
  font-size:clamp(15px,1.6vw,22px);
}
@media(max-width:860px){
  .site-wrap > .curtain-reveal .demo-stage,
  .site-wrap > .curtain-reveal .demo-content{min-height:390px;}
}
@media(max-width:560px){
  .site-wrap > .curtain-reveal .demo-stage,
  .site-wrap > .curtain-reveal .demo-content{min-height:320px;}
}


/* ===== 追加セクション：レコーディングストーリー / 批評家の評価 ===== */
.recording-list{
  list-style:none;
  margin:18px 0 0;
  padding:0;
}
.recording-list li{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid rgba(216,174,85,.18);
}
.recording-list strong{
  color:var(--gold2);
}
.critic-lead{
  max-width:920px;
  margin:0 auto 22px;
  text-align:left;
}
.review-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.quote-card{
  border:1px solid rgba(216,174,85,.38);
  border-radius:8px;
  padding:22px;
  background:linear-gradient(135deg,rgba(18,18,18,.96),rgba(5,5,5,.9));
  box-shadow:var(--shadow);
}
.quote-card h3{
  color:var(--gold2);
  margin:0 0 10px;
}
.critic-score span{
  display:block;
  color:var(--gold);
  font-size:26px;
  letter-spacing:.12em;
  margin:2px 0 8px;
}

/* ===== スマホ微調整 ===== */
@media (max-width:560px) {
  .hero-inner { padding:34px 16px 70px; }
  .hero h1 { font-size:48px; }
  .demo-stage,
  .demo-content { min-height:230px; }
  .demo-content h2 { font-size:26px; }
  .section { margin:16px 0; }
  .recording-list li{ grid-template-columns:1fr; gap:2px; }
}

/* ===== 横スクロール防止・画面幅はみ出し補正 ===== */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
img,
video,
canvas,
svg{
  max-width:100%;
  height:auto;
}
.curtain-reveal,
.curtain-demo,
.demo-stage,
.demo-content,
.site-wrap{
  max-width:100%;
}
.site-wrap > .curtain-reveal{
  overflow:hidden;
}
@supports (width: 100dvw){
  .site-wrap > .curtain-reveal{
    width:100dvw;
    margin-left:calc(50% - 50dvw);
    margin-right:calc(50% - 50dvw);
  }
}
@media(max-width:860px){
  .review-grid{grid-template-columns:1fr;}
}

/* ===== ABOUT THIS ALBUM long-form layout ===== */
.about-layout{
  padding-inline:clamp(24px,2.5vw,40px);
}
.about-article{
  width:100%;
  max-width:1220px;
  margin-inline:auto;
}
.about-article p{
  margin:0 0 1.35em;
}
.about-article > p:not(.about-lead){
  max-width:1060px;
  margin-inline:auto;
}
.about-lead{
  color:#f8ead1;
  font-size:clamp(17px,2vw,20px);
  font-weight:700;
  white-space:pre-line;
}
.about-feature-image,
.about-promo-image{
  width:100%;
  height:auto;
  margin:30px auto 36px;
  border:1px solid rgba(216,174,85,.32);
  border-radius:7px;
  box-shadow:var(--shadow);
  object-fit:cover;
}
.about-feature-image{
  aspect-ratio:16/9;
}
.about-promo-image{
  max-width:800px;
}
.about-divider{
  height:1px;
  margin:42px 0 30px;
  border:0;
  background:linear-gradient(90deg,transparent,var(--line),transparent);
}
.about-notes{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:34px;
  row-gap:4px;
  padding:24px;
  border:1px solid rgba(216,174,85,.24);
  border-radius:7px;
  background:rgba(0,0,0,.25);
  color:var(--muted);
  font-size:14px;
}
.about-notes h3{
  grid-column:1/-1;
  margin-bottom:16px;
}
.about-notes p{
  padding-bottom:14px;
  border-bottom:1px solid rgba(216,174,85,.12);
}
.about-notes p:last-child{
  margin-bottom:0;
}
.tracklist-cover{
  width:100%;
  max-width:520px;
  aspect-ratio:1;
  margin:0;
  justify-self:center;
  overflow:hidden;
  border:1px solid rgba(216,174,85,.32);
  border-radius:6px;
  background:#050505;
  box-shadow:var(--shadow);
}
.tracklist-cover img{
  width:100%;
  height:100%;
  object-fit:contain;
}
@media(max-width:560px){
  .about-layout{padding:22px 18px;}
  .about-feature-image,
  .about-promo-image{margin:22px auto 28px;}
  .about-notes{padding:18px;}
  .tracklist-cover{max-width:440px;}
}
@media(max-width:760px){
  .about-notes{grid-template-columns:1fr;}
}

/* ===== AdSense Section ===== */
.ad-section{
  width:100%;
  max-width:970px;
  margin:42px auto;
  padding:18px;
  text-align:center;
  overflow:hidden;
  box-sizing:border-box;
}
.ad-label{
  margin:0 0 8px;
  color:rgba(255,255,255,.55);
  font-size:12px;
  line-height:1.4;
  letter-spacing:.08em;
}
.ad-placeholder{
  width:100%;
  min-height:120px;
  padding:14px;
  overflow:hidden;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(8,8,12,.72);
  box-shadow:0 14px 38px rgba(0,0,0,.28);
}
.ad-placeholder .adsbygoogle{
  display:block;
  width:100%;
  max-width:100%;
}
.ad-desktop{
  display:block;
}
.ad-mobile{
  display:none;
}
@media(max-width:760px){
  .ad-section{
    max-width:100%;
    margin:30px auto;
    padding:12px;
  }
  .ad-placeholder{
    min-height:100px;
    padding:10px;
    border-radius:12px;
  }
  .ad-desktop{
    display:none;
  }
  .ad-mobile{
    display:block;
  }
}

/* ===== Mobile section overflow fixes ===== */
.section,
.section-pad,
.wide-visual,
.wide-visual > *,
.grid-2,
.grid-2 > *,
.check-list,
.check-list li,
.timeline,
.timeline li,
.image-caption-box,
.image-caption-box figcaption{
  min-width:0;
}
.section h2,
.check-list li,
.timeline li,
.image-caption-box figcaption{
  overflow-wrap:anywhere;
  word-break:normal;
}
.image-caption-box{
  width:100%;
  max-width:100%;
  margin:0;
  overflow:hidden;
}
.image-caption-box .visual-bg{
  width:100%;
  max-width:100%;
}
.image-caption-box figcaption{
  max-width:100%;
}
@media(max-width:860px){
  .section-pad{
    padding:24px clamp(18px,5vw,28px);
  }
  .section h2{
    font-size:clamp(22px,6vw,30px);
    line-height:1.45;
    letter-spacing:.04em;
  }
  .check-list li{
    padding-left:40px;
    margin:12px 0;
    line-height:1.75;
  }
  .check-list li:before{
    top:.25em;
  }
  .timeline{
    margin-top:8px;
  }
  .timeline li{
    padding-left:18px;
    padding-bottom:16px;
    line-height:1.75;
  }
  .timeline strong{
    display:inline-block;
    min-width:58px;
    margin-right:8px;
  }
  .visual-bg{
    width:100%;
    max-width:100%;
  }
  .image-caption-box{
    margin-top:22px;
  }
  .image-caption-box figcaption{
    font-size:15px;
    line-height:1.8;
  }
}

/* ===== Targeted mobile fixes for long text sections ===== */
.importance-card,
.importance-card > *,
.story-section .wide-visual,
.story-section .wide-visual > *,
.importance-card .check-list,
.importance-card .check-list li,
.importance-card .check-list span,
.story-section .timeline,
.story-section .timeline li,
.story-section .timeline span{
  min-width:0;
  max-width:100%;
}

.importance-card h2,
.story-section h2,
.importance-card .check-list span,
.story-section .timeline span,
.importance-card figcaption{
  overflow-wrap:anywhere;
  word-break:break-word;
}

@media(max-width:900px){
  .importance-card,
  .story-section .wide-visual{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden;
  }

  .importance-card > *,
  .story-section .wide-visual > *{
    width:100% !important;
    max-width:100% !important;
  }

  .importance-card h2,
  .story-section h2{
    white-space:normal !important;
    line-height:1.45;
    letter-spacing:.035em;
    max-width:100%;
  }

  .importance-card .check-list{
    width:100%;
  }

  .importance-card .check-list li{
    display:grid;
    grid-template-columns:30px minmax(0,1fr);
    gap:10px;
    align-items:start;
    width:100%;
    padding-left:0 !important;
    margin:13px 0;
    line-height:1.75;
    white-space:normal !important;
  }

  .importance-card .check-list li:before{
    position:static;
    grid-column:1;
    margin-top:.28em;
  }

  .importance-card .check-list span{
    grid-column:2;
    display:block;
    white-space:normal !important;
  }

  .importance-card .image-caption-box{
    display:block;
    width:100% !important;
    max-width:100% !important;
    margin:24px 0 0 !important;
    padding:0 !important;
    overflow:hidden;
  }

  .importance-card .visual-bg,
  .story-section .visual-bg{
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:0;
    aspect-ratio:16/10;
    margin:24px 0 0;
  }

  .importance-card .visual-bg{
    margin-top:0;
  }

  .importance-card figcaption{
    display:block;
    width:100%;
    max-width:100%;
    margin-top:10px;
    white-space:normal !important;
  }

  .story-section .timeline{
    width:100%;
    max-width:100%;
    overflow:visible;
  }

  .story-section .timeline li{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    column-gap:14px;
    align-items:start;
    width:100%;
    padding-left:18px !important;
    padding-bottom:16px;
    line-height:1.75;
    white-space:normal !important;
  }

  .story-section .timeline strong{
    display:block;
    min-width:0 !important;
    margin:0 !important;
  }

  .story-section .timeline span{
    display:block;
    white-space:normal !important;
  }
}

@media(max-width:560px){
  .importance-card,
  .story-section .wide-visual{
    padding:22px 18px !important;
  }

  .importance-card h2,
  .story-section h2{
    font-size:23px !important;
  }

  .importance-card .check-list li,
  .story-section .timeline li{
    font-size:16px;
  }

  .story-section .timeline li{
    grid-template-columns:54px minmax(0,1fr);
    column-gap:10px;
  }
}
