:root{
  --rsb-bg:#0f0f10;
  --rsb-surface:#18181b;
  --rsb-surface-2:#222227;
  --rsb-text:#f7f2e8;
  --rsb-muted:#b9b4aa;
  --rsb-line:rgba(247,242,232,.14);
  --rsb-accent:#d5a12e;
  --ayako-ink:#171717;
  --ayako-ivory:#f3e8d2;
  --ayako-red:#8d2838;
  --ayako-gold:#d5a12e;
  --ayako-teal:#176b70;
  --radius:22px;
  --shadow:0 18px 60px rgba(0,0,0,.22);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--rsb-bg);
  color:var(--rsb-text);
  font-family:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
button,a{touch-action:manipulation}
:focus-visible{outline:3px solid var(--rsb-accent);outline-offset:4px}

.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:#fff;color:#111;padding:.8rem 1rem}
.skip-link:focus{left:1rem;top:1rem}

.rsb-header{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:68px;padding:.75rem clamp(1rem,4vw,3rem);
  background:rgba(15,15,16,.9);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--rsb-line)
}
.rsb-brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.05}
.rsb-brand strong{font-family:"Outfit",sans-serif;font-size:.95rem;letter-spacing:.13em}
.rsb-brand span{font-size:.7rem;color:var(--rsb-muted);letter-spacing:.08em;margin-top:.35rem}
.rsb-nav{display:flex;align-items:center;gap:.8rem}
.rsb-nav a{font-size:.85rem;text-decoration:none;color:var(--rsb-muted)}
.rsb-nav a:hover{color:var(--rsb-text)}

.container{width:min(1120px,calc(100% - 2rem));margin-inline:auto}
.section{padding:clamp(4rem,9vw,7rem) 0}
.section--light{background:var(--ayako-ivory);color:var(--ayako-ink)}
.section--red{background:var(--ayako-red)}
.section--teal{background:var(--ayako-teal)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}
.eyebrow{margin:0 0 .65rem;font-family:"Outfit",sans-serif;font-size:.75rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--rsb-accent)}
.section--light .eyebrow{color:var(--ayako-red)}
.section-title{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(2rem,5vw,4rem);line-height:1.2;letter-spacing:-.02em}
.section-copy{max-width:760px;color:var(--rsb-muted);font-size:clamp(1rem,2vw,1.08rem)}
.section--light .section-copy{color:#4f4a43}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  min-height:48px;padding:.8rem 1.15rem;border-radius:999px;
  text-decoration:none;font-weight:800;font-size:.92rem;border:1px solid transparent;
  transition:transform .18s ease,background .18s ease,border-color .18s ease
}
.btn:hover{transform:translateY(-2px)}
.btn--gold{background:var(--ayako-gold);color:#171717}
.btn--light{background:var(--ayako-ivory);color:var(--ayako-ink)}
.btn--ghost{border-color:var(--rsb-line);color:var(--rsb-text)}
.btn--dark{background:var(--ayako-ink);color:var(--ayako-ivory)}
.text-link{font-weight:800;text-decoration-thickness:2px;text-underline-offset:4px}

.hero{
  position:relative;overflow:hidden;
  min-height:min(760px,88vh);display:grid;align-items:center;
  padding:clamp(4rem,10vw,8rem) 0;
  background:
    radial-gradient(circle at 80% 25%,rgba(213,161,46,.22),transparent 28%),
    radial-gradient(circle at 12% 80%,rgba(23,107,112,.32),transparent 30%),
    linear-gradient(135deg,#101012 0%,#171719 55%,#25151a 100%)
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.13;
  background-image:radial-gradient(circle,#fff 1px,transparent 1px);background-size:14px 14px;
  mask-image:linear-gradient(90deg,transparent,#000 55%,#000)
}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.hero-kicker{font-family:"Outfit",sans-serif;letter-spacing:.19em;text-transform:uppercase;font-weight:800;font-size:.75rem;color:var(--ayako-gold)}
.hero h1{margin:.65rem 0 1rem;font-family:"Noto Serif JP",serif;font-size:clamp(3rem,8vw,7rem);line-height:1.02;letter-spacing:-.045em}
.hero-lead{max-width:620px;font-size:clamp(1.05rem,2.4vw,1.4rem);color:#e8dfd2}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.7rem}
.hero-art{position:relative;min-height:360px}
.hero-orbit{position:absolute;border:1px solid rgba(243,232,210,.26);border-radius:50%;inset:8% 4% 4% 16%;transform:rotate(-12deg)}
.hero-disc{position:absolute;width:min(320px,70vw);aspect-ratio:1;border-radius:50%;right:5%;top:2%;background:radial-gradient(circle at center,#111 0 8%,#d5a12e 8% 10%,#111 10% 19%,#333 19% 20%,#111 20% 32%,#333 32% 33%,#111 33% 100%);box-shadow:var(--shadow)}
.hero-card{position:absolute;left:0;bottom:0;width:min(360px,80%);padding:1.35rem;border-radius:18px;background:var(--ayako-ivory);color:var(--ayako-ink);transform:rotate(-2.5deg);box-shadow:var(--shadow)}
.hero-card small{font-family:"Outfit",sans-serif;letter-spacing:.15em;font-weight:800;color:var(--ayako-red)}
.hero-card strong{display:block;font-family:"Noto Serif JP",serif;font-size:1.45rem;margin:.35rem 0}

.feature-card{
  display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;border-radius:var(--radius);
  background:var(--rsb-surface);border:1px solid var(--rsb-line);box-shadow:var(--shadow)
}
.feature-media{position:relative;min-height:340px;background:#111;overflow:hidden}
.feature-media img{width:100%;height:100%;object-fit:cover}
.feature-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.42),transparent 50%)}
.feature-body{padding:clamp(1.5rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center}
.feature-body h2,.feature-body h3{font-family:"Noto Serif JP",serif;line-height:1.3;margin:.35rem 0 1rem}
.feature-body h2{font-size:clamp(2rem,4vw,3.3rem)}
.feature-body h3{font-size:clamp(1.6rem,3vw,2.4rem)}
.feature-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.3rem}
.chip{display:inline-flex;align-items:center;min-height:30px;padding:.3rem .7rem;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--rsb-line);font-size:.78rem;color:#ded8cf}
.section--light .chip{background:rgba(23,23,23,.06);border-color:rgba(23,23,23,.12);color:#3e3a35}

.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.card{display:flex;flex-direction:column;min-height:260px;padding:1.4rem;border-radius:18px;background:var(--rsb-surface);border:1px solid var(--rsb-line);text-decoration:none;overflow:hidden;transition:transform .18s ease,border-color .18s ease}
.card-media{margin:-1.4rem -1.4rem 1.1rem;aspect-ratio:16/9;overflow:hidden;background:#111;border-bottom:1px solid var(--rsb-line)}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.card:hover .card-media img{transform:scale(1.025)}
.card:hover{transform:translateY(-4px);border-color:rgba(213,161,46,.58)}
.card small{font-family:"Outfit",sans-serif;letter-spacing:.14em;color:var(--rsb-accent);font-weight:800}
.card h3{font-family:"Noto Serif JP",serif;font-size:1.55rem;line-height:1.35;margin:.8rem 0 .6rem}
.card p{color:var(--rsb-muted);margin:0 0 1.4rem}
.card .card-arrow{margin-top:auto;font-weight:900}
.section--light .card{background:#fff;border-color:rgba(23,23,23,.1);color:var(--ayako-ink)}
.section--light .card p{color:#5b554c}

.ayako-hero{
  position:relative;overflow:hidden;padding:clamp(4rem,10vw,8rem) 0;
  background:
    linear-gradient(115deg,rgba(23,23,23,.98),rgba(23,23,23,.83)),
    radial-gradient(circle at 83% 22%,var(--ayako-teal),transparent 35%)
}
.ayako-hero::before{content:"";position:absolute;left:-80px;bottom:-120px;width:420px;aspect-ratio:1;border-radius:50%;border:70px solid rgba(141,40,56,.7)}
.ayako-grid{position:relative;z-index:1;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.ayako-title{font-family:"Noto Serif JP",serif;font-size:clamp(3.2rem,9vw,7.4rem);line-height:1;margin:0 0 1rem}
.ayako-tagline{font-size:clamp(1.2rem,3vw,1.8rem);font-weight:800;color:var(--ayako-gold)}
.ayako-photo{position:relative;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);transform:rotate(1.5deg);border:1px solid rgba(243,232,210,.22)}
.ayako-photo img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ayako-photo .stamp{position:absolute;right:1rem;bottom:1rem;background:var(--ayako-red);color:#fff;padding:.55rem .8rem;font-family:"Outfit",sans-serif;font-size:.75rem;font-weight:900;letter-spacing:.12em;transform:rotate(-3deg)}

.corner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.corner{position:relative;overflow:hidden;min-height:290px;padding:1.5rem;border-radius:20px;background:#fff;color:var(--ayako-ink);border:1px solid rgba(23,23,23,.12)}
.corner:nth-child(1){border-top:8px solid var(--ayako-red)}
.corner:nth-child(2){border-top:8px solid var(--ayako-teal)}
.corner:nth-child(3){border-top:8px solid var(--ayako-gold)}
.corner span{font-family:"Outfit",sans-serif;font-weight:900;letter-spacing:.15em;font-size:.72rem;color:#716a60}
.corner h3{font-family:"Noto Serif JP",serif;font-size:1.7rem;margin:.8rem 0 .7rem}
.corner p{color:#5d574e}

.quote-band{padding:4rem 0;background:var(--ayako-red)}
.quote-band blockquote{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(2rem,6vw,5.1rem);line-height:1.25;letter-spacing:-.02em}
.quote-band p{margin:1rem 0 0;color:#f2dfe2}

.chapter-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--rsb-line)}
.chapter-list li{display:grid;grid-template-columns:72px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rsb-line)}
.chapter-list time{font-family:"Outfit",sans-serif;color:var(--ayako-gold);font-weight:800}

.footer{padding:2.4rem 0;border-top:1px solid var(--rsb-line);color:var(--rsb-muted)}
.footer-grid{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end}
.footer a{color:var(--rsb-text)}

@media (max-width:900px){
  .hero-grid,.ayako-grid,.feature-card{grid-template-columns:1fr}
  .hero{min-height:auto}
  .hero-art{min-height:320px}
  .feature-media{min-height:260px}
  .card-grid,.corner-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:640px){
  .rsb-header{min-height:64px;padding:.7rem 1rem}
  .rsb-brand strong{font-size:.82rem}
  .rsb-brand span{display:none}
  .rsb-nav a:not(.btn){display:none}
  .container{width:min(100% - 1.2rem,1120px)}
  .section{padding:3.6rem 0}
  .hero{padding:3.7rem 0 4.3rem}
  .hero h1{font-size:clamp(3rem,18vw,5.3rem)}
  .hero-art{min-height:285px}
  .hero-disc{width:230px;right:-20px}
  .hero-card{width:85%;padding:1.1rem}
  .ayako-hero{padding:3.4rem 0 4rem}
  .ayako-title{font-size:clamp(3.2rem,18vw,5.4rem)}
  .card-grid,.corner-grid{grid-template-columns:1fr}
  .card{min-height:auto}
  .section-head{align-items:flex-start;flex-direction:column}
  .feature-media{min-height:auto;aspect-ratio:16/9}
  .feature-body{padding:1.3rem}
  .chapter-list li{grid-template-columns:58px 1fr;gap:.75rem}
  .footer-grid{align-items:flex-start;flex-direction:column}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
