
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --gold:#E89030;--orange:#DC6030;--pink:#CE4068;
  --bg:#FAF5F0;--card:#FFFFFF;--border:#EEC8A8;
  --text:#1A1A1A;--sub:#5A4A40;--muted:#8A7A70;
  --r-lg:16px;--r-md:10px;--r-sm:8px;
}
body{font-family:'Noto Sans JP',sans-serif;background:var(--bg);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased}
.outer{max-width:720px;margin:0 auto;padding:2rem 1rem 4rem}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s ease;
}

.reveal.in {
  opacity: 1;
  transform: translateY(0);
}


/* HERO */
.hero{text-align:center;padding:3rem 2rem 2.5rem;background:#FFF7F2;border:0.5px solid var(--border);border-radius:var(--r-lg);margin-bottom:1.75rem}
.hero .logo{max-width:300px;height:auto;display:block;margin:0 auto 1.75rem}
.hero-lead{font-size:24px;font-weight:500;color:#A03010;line-height:1.6;margin-bottom:.75rem}
.hero-sub{font-size:14px;color:#804020;line-height:1.85;max-width:500px;margin:0 auto}

/* AXIS IMAGE */
.axis-img-wrap{margin-bottom:1.75rem;border-radius:var(--r-lg);overflow:hidden;border:0.5px solid var(--border);opacity:0.88}
.axis-img-wrap img{width:100%;height:auto;display:block;filter:brightness(0.97)}
.axis-img-caption{background:#F5EDE5;padding:.6rem 1.1rem;border-top:0.5px solid var(--border)}
.axis-img-caption .caption-title{font-size:12px;font-weight:500;color:#7A4E12}
.axis-img-caption .caption-sub{font-size:11px;color:#A07850;margin-top:2px}
.axis-img-note{font-size:11px;color:#A07850;font-style:italic}

/* PUZZLE */
.puzzle-section{background:#FFF4EE;border:0.5px solid var(--border);border-radius:var(--r-lg);padding:2rem 1.75rem;margin-bottom:1.75rem}
.pz-heading{font-size:15px;font-weight:500;color:#A03010;text-align:center;margin-bottom:1.1rem}
.pz-canvas{display:grid;grid-template-columns:repeat(20,1fr);gap:3px;max-width:440px;margin:0 auto 1rem}
.pc{aspect-ratio:1;border-radius:2px;background:#EDD5BC}
.pc.f1{background:#E89030}.pc.f2{background:#DC6030}.pc.f3{background:#CE4068}
.pz-status{text-align:center;font-size:13px;color:#804020;margin-bottom:1.25rem;line-height:1.7}
.pz-status strong{color:#A03010;font-weight:500}
.pz-track-wrap{background:#EDD5BC;border-radius:99px;height:10px;overflow:hidden;margin-bottom:.5rem;max-width:440px;margin-left:auto;margin-right:auto}
.pz-track-fill{height:100%;width:24%;background:var(--pink);border-radius:99px}
.pz-track-meta{display:flex;justify-content:space-between;font-size:11px;color:#804020;max-width:440px;margin:0 auto 1.25rem}
.pz-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:440px;margin:0 auto}
.pn{background:var(--card);border:0.5px solid var(--border);border-radius:var(--r-md);padding:1rem;text-align:center}
.pn-n{font-size:22px;font-weight:500;color:#A03010}
.pn-l{font-size:11px;color:#804020;margin-top:4px}

/* TOGETHER */
.together{background:#FFF0F5;border:0.5px solid #EEB0C8;border-radius:var(--r-lg);padding:2rem 1.75rem;margin-bottom:1.75rem;text-align:center}
.together-icon{font-size:34px;color:var(--pink);margin-bottom:.8rem}
.together-title{font-size:20px;font-weight:500;color:#A02850;line-height:1.6;margin-bottom:.8rem}
.together-body{font-size:13px;color:#702040;line-height:1.9;max-width:520px;margin:0 auto}

/* SECTION */
.sec{margin-bottom:1.75rem}
.sec-title{font-size:17px;font-weight:500;color:#A03010;padding-bottom:.6rem;border-bottom:2px solid var(--border);margin-bottom:1.1rem}

/* STEPS */
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:1rem}
.step-card{background:var(--card);border:0.5px solid var(--border);border-radius:14px;padding:1.25rem;text-align:center}
.step-badge{display:inline-block;background:var(--gold);color:#fff;font-size:10px;font-weight:500;border-radius:99px;padding:2px 10px;margin-bottom:9px}
.step-icon{font-size:28px;margin-bottom:7px}
.step-card h3{font-size:13px;font-weight:500;color:#8B3010;margin-bottom:5px}
.step-card p{font-size:12px;color:var(--sub);line-height:1.65}
.step-note{background:#FFF4E8;border:0.5px solid #EEC8A0;border-radius:var(--r-md);padding:.9rem 1.1rem;font-size:12px;color:#8B4015;line-height:1.7}

/* SNS */
.sns-card{background:#FFFBEC;border:0.5px solid #E8D080;border-radius:14px;padding:1.4rem;margin-bottom:1.75rem}
.sns-header{display:flex;align-items:center;gap:9px;margin-bottom:.9rem}
.sns-header-title{font-size:15px;font-weight:500;color:#8B6010}
.sns-badges{display:flex;gap:10px;margin-bottom:.9rem;flex-wrap:wrap}
.snsbadge{display:flex;align-items:center;gap:6px;padding:6px 16px;border-radius:99px;font-size:12px;font-weight:500}
.snsbadge.xb{background:#EEF2FF;color:#2A4898;border:0.5px solid #A8C0E8}
.snsbadge.fb{background:#EEF2FF;color:#1A3C80;border:0.5px solid #98B0E0}
.sns-example{background:var(--card);border:0.5px solid #E0C870;border-radius:var(--r-md);padding:.9rem 1.1rem}
.sns-tag{display:inline-block;background:#FFF0B0;color:#8B6800;font-size:10px;font-weight:500;border-radius:4px;padding:2px 7px;margin-bottom:7px}
.sns-text{font-size:12px;color:var(--sub);line-height:1.75}
.sns-note{font-size:11px;color:#8B6010;margin-top:.7rem;line-height:1.65}

/* MSG */
.msg-card{background:var(--card);border:0.5px solid var(--border);border-radius:var(--r-lg);padding:2rem;margin-bottom:1.75rem}
.msg-hd{display:flex;align-items:flex-start;gap:18px;padding-bottom:1.25rem;border-bottom:0.5px solid #EED0B0;margin-bottom:1.25rem}
.msg-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2.5px solid #EEC8A0}
.msg-nm{font-size:17px;font-weight:500;color:var(--text);margin-bottom:5px}
.msg-role{font-size:12px;color:#804020;line-height:1.75}
.msg-q{font-size:42px;color:var(--gold);line-height:1;margin-bottom:.5rem}
.msg-body{font-size:14px;color:var(--sub);line-height:1.95}
.msg-body p+p{margin-top:1rem}

/* WHY */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:1.25rem}
.why-card{background:var(--card);border:0.5px solid var(--border);border-radius:14px;padding:1.25rem;border-top:4px solid}
.why-card:nth-child(1){border-top-color:var(--gold)}
.why-card:nth-child(2){border-top-color:var(--orange)}
.why-card:nth-child(3){border-top-color:var(--pink)}
.wc-icon{font-size:26px;margin-bottom:8px}
.why-card h3{font-size:13px;font-weight:500;color:#8B3010;margin-bottom:6px}
.why-card p{font-size:12px;color:var(--sub);line-height:1.65}
.heritage{background:#FFF8EC;border-left:5px solid var(--gold);border-top:0.5px solid #EED090;border-right:0.5px solid #EED090;border-bottom:0.5px solid #EED090;border-radius:0 var(--r-md) var(--r-md) 0;padding:1.1rem 1.4rem}
.heritage h3{font-size:13px;font-weight:500;color:#8B5E10;margin-bottom:.5rem}
.heritage p{font-size:13px;color:#7A4E12;line-height:1.8}

/* TIERS */
.tier-wrap{background:var(--card);border:0.5px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.tier-row{display:flex;align-items:flex-start;gap:12px;padding:.9rem 1.25rem;border-bottom:0.5px solid #F5DCC8}
.tier-row:last-child{border-bottom:none}
.tier-badge{flex-shrink:0;min-width:100px;text-align:center;padding:5px 10px;border-radius:var(--r-sm);font-size:12px;font-weight:500}
.tb2{background:#FFF0DC;color:#8B4E10;border:0.5px solid #E89030}
.tb3{background:#FFE8D8;color:#7A3018;border:0.5px solid #DC6030}
.tb4{background:#FFE8D8;color:#7A3018;border:0.5px solid #DC6030}
.tb5{background:#FFE0EC;color:#7A1E40;border:0.5px solid #CE4068}
.tb6{background:#FFD8E8;color:#6A1638;border:0.5px solid #BE3058}
.tb7{background:#FFD0E0;color:#5A1030;border:0.5px solid #AE2048}
.tier-lbl{font-size:13px;font-weight:500;color:var(--text);margin-bottom:3px}
.tier-ret{font-size:12px;color:var(--sub);line-height:1.55}

/* USE */
.use-rows{display:flex;flex-direction:column;gap:8px}
.use-row{display:flex;align-items:center;gap:12px;padding:.75rem 1rem;background:var(--card);border:0.5px solid var(--border);border-radius:var(--r-md)}
.use-icon{font-size:20px;flex-shrink:0}
.use-lbl{font-size:13px;font-weight:500;color:var(--text);flex:1}
.use-bar-wrap{flex:1.4;height:6px;background:#EDD5BC;border-radius:99px;overflow:hidden}
.use-bar{height:100%;background:var(--pink);border-radius:99px}
.use-pct{font-size:13px;font-weight:500;color:#A03010;min-width:40px;text-align:right}

/* CTA */
.cta-block{background:#FFF0EC;border:2px solid #EEB0A0;border-radius:var(--r-lg);padding:2.5rem 2rem;text-align:center;margin-bottom:1.75rem}
.cta-eyebrow{font-size:11px;font-weight:500;color:var(--pink);letter-spacing:.08em;margin-bottom:.6rem;text-transform:uppercase}
.cta-title{font-size:22px;font-weight:500;color:#901828;margin-bottom:.6rem;line-height:1.5}
.cta-sub{font-size:14px;color:#802028;margin-bottom:1.75rem;line-height:1.7}
.cta-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:1.25rem}
.cta-btn{padding:15px 12px;border-radius:12px; min-width: 120px; font-size:14px;font-weight:500;font-family:'Noto Sans JP',sans-serif;cursor:pointer;border:1.5px solid #CC6830;background:var(--card);color:#903818;transition:all .2s;line-height:1.35;text-align:center}
.cta-btn:hover{background:#FFF0E8;transform:translateY(-1px)}
.cta-btn span{display:block;font-size:11px;font-weight:400;color:#904028;margin-top:3px}
.cta-btn.main{background:var(--pink);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(206,64,104,.25)}
.cta-btn.main span{color:rgba(255,255,255,.85)}
.cta-btn.main:hover{background:#BE3058;transform:translateY(-1px)}
.cta-note{font-size:12px;color:var(--muted);line-height:1.75}

/* REPORT */
.report-box{display:flex;gap:14px;padding:1.25rem 1.5rem;background:var(--card);border:0.5px solid var(--border);border-radius:14px;margin-bottom:1.75rem;align-items:flex-start}
.report-icon{font-size:26px;flex-shrink:0;margin-top:2px}
.report-text h3{font-size:14px;font-weight:500;color:var(--text);margin-bottom:5px}
.report-text p{font-size:13px;color:var(--sub);line-height:1.7}

/* CONTACT */
.contact-card{background:var(--card);border:0.5px solid var(--border);border-radius:14px;padding:1.4rem 1.5rem}
.contact-row{display:flex;align-items:flex-start;gap:14px;padding:.8rem 0;border-bottom:0.5px solid #F5DCC8}
.contact-row:last-child{border-bottom:none}
.contact-icon-wrap{width:36px;height:36px;border-radius:var(--r-sm);background:#FFF0E0;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.contact-label{font-size:11px;color:#804020;margin-bottom:3px}
.contact-value{font-size:14px;font-weight:500;color:var(--text);line-height:1.55}
.contact-note{font-size:12px;color:var(--muted);margin-top:2px}

.fnote{font-size:12px;color:var(--muted);line-height:1.85;padding:1.1rem 1.25rem;background:#F5EDE5;border-radius:var(--r-md);margin-bottom:1rem}


.site-footer {
  margin-top: 80px;
  padding: 32px 20px;

  border-top: 1px solid #ddd;
}

.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

.footer-links {
  margin-bottom: 12px;
  font-size: 14px;
}

.footer-links a {
  color: #555;
  text-decoration: none;
}

.footer-links a:hover {
  text-decoration: underline;
}

.footer-links span {
  margin: 0 8px;
  color: #bbb;
}

.footer-copy {
  margin: 0;
  font-size: 13px;
  color: #777;
}
#donation {
  scroll-margin-top: 100px;
}

@media(max-width:500px){
  .hero-lead{font-size:20px}
  .cta-title{font-size:19px}
  .together-title{font-size:17px}
  .msg-photo{width:64px;height:64px}
  .outer{padding:1rem .75rem 3rem}
  .cta-btn {
    margin:10px 6px;
  }
}
