:root{
  color-scheme:light;
  --navy:#171c3b;
  --navy-deep:#10142e;
  --yellow:#ffd82f;
  --red:#e60012;
  --white:#fff;
  --ink:#1e2342;
}

*,*::before,*::after{box-sizing:border-box;}
html{min-width:320px;background:var(--navy);}
body{
  min-width:320px;margin:0;color:var(--white);background:
    radial-gradient(circle at 12% 8%,rgba(255,216,47,.14),transparent 22rem),
    radial-gradient(circle at 92% 90%,rgba(230,0,18,.12),transparent 24rem),
    var(--navy);
  font-family:"Noto Sans JP",system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;}

.campaign-page{min-height:100svh;padding:clamp(20px,4vw,56px);}
.campaign-shell{
  display:grid;grid-template-columns:minmax(280px,540px) minmax(320px,500px);align-items:center;gap:clamp(28px,5vw,72px);
  width:min(100%,1140px);margin:0 auto;
}
.campaign-visual{
  overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:24px;background:var(--navy-deep);
  box-shadow:0 28px 70px rgba(5,8,26,.42);
}
.campaign-visual img{width:100%;}
.campaign-guide{padding:clamp(4px,2vw,20px) 0;}
.campaign-kicker{margin:0 0 14px;color:var(--yellow);font-size:14px;font-weight:700;letter-spacing:.12em;}
.campaign-guide h1{margin:0;font-size:clamp(34px,4.2vw,58px);font-weight:900;line-height:1.24;letter-spacing:.02em;}
.campaign-lead{margin:24px 0 0;font-size:clamp(16px,1.65vw,20px);font-weight:500;line-height:1.9;}
.campaign-facts{display:grid;gap:10px;margin:28px 0 0;}
.campaign-facts div{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:14px;padding:13px 16px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.07);}
.campaign-facts dt{color:var(--yellow);font-size:13px;font-weight:700;}
.campaign-facts dd{margin:0;font-size:15px;font-weight:700;}
.campaign-cta{
  display:flex;align-items:center;justify-content:center;gap:12px;min-height:62px;margin:28px 0 0;padding:15px 22px;border-radius:999px;
  color:var(--navy-deep);background:var(--yellow);box-shadow:0 12px 28px rgba(255,216,47,.2);
  font-size:17px;font-weight:900;line-height:1.4;text-align:center;text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
}
.campaign-cta span{font-size:22px;line-height:1;}
.campaign-cta:focus-visible,.campaign-back:focus-visible{outline:3px solid var(--white);outline-offset:4px;}
.campaign-note{margin:14px 4px 0;color:rgba(255,255,255,.76);font-size:12px;line-height:1.75;}
.campaign-back{display:inline-block;margin:24px 4px 0;color:var(--white);font-size:14px;font-weight:500;text-underline-offset:5px;}

@media (hover:hover){
  .campaign-cta:hover{transform:translateY(-2px);background:#ffe45f;box-shadow:0 16px 34px rgba(255,216,47,.28);}
  .campaign-back:hover{color:var(--yellow);}
}

@media (max-width:820px){
  .campaign-page{padding:18px 16px 36px;}
  .campaign-shell{grid-template-columns:1fr;gap:28px;width:min(100%,560px);}
  .campaign-visual{border-radius:18px;}
  .campaign-guide{padding:0 4px;}
  .campaign-guide h1{font-size:clamp(32px,10vw,46px);}
  .campaign-lead{margin-top:18px;font-size:16px;}
  .campaign-facts{margin-top:22px;}
  .campaign-cta{margin-top:24px;min-height:58px;font-size:16px;}
}

@media (prefers-reduced-motion:reduce){
  .campaign-cta{transition:none;}
}
