:root{--p:#c2553a;--s:#5b4a42;--a:#e0a43a;--t:#2a2220;--bg:#fbf4ea;--card:#fffaf2;--line:#e6d8c4}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--t);font:400 16px/1.9 'Noto Sans JP',sans-serif}
h1,h2,h3,.brand{font-family:'Zen Maru Gothic','Noto Sans JP',sans-serif;font-weight:700;margin:0}
a{color:inherit}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
header{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5}
header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:12px}
.brand{font-size:20px;color:var(--p);text-decoration:none;letter-spacing:.04em}
.brand small{display:block;font:500 11px/1.2 'Zen Maru Gothic',sans-serif;color:var(--s);letter-spacing:.12em}
nav{display:flex;gap:20px;align-items:center;font-size:15px}
nav a{text-decoration:none;background:linear-gradient(var(--p),var(--p)) 0 100%/0 2px no-repeat;transition:background-size .3s;padding-bottom:2px}
nav a:hover,nav a:focus-visible{background-size:100% 2px}
nav a.cta{background:var(--p);color:#fff;padding:6px 18px;border-radius:99px;font-weight:700}
.menu{display:none;background:none;border:1px solid var(--s);color:var(--s);border-radius:99px;padding:4px 14px;font:inherit}
.pg{padding:48px 0 8px}.ph{font-size:clamp(30px,4.4vw,44px);color:var(--p);margin:4px 0 8px}.prose p{margin:0 0 14px;max-width:44em}
.hero{padding:56px 0 64px}
.hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.eyebrow{font:500 15px/1.4 'Zen Maru Gothic',sans-serif;color:var(--s);letter-spacing:.14em;margin:0}
h1{font-size:clamp(32px,4.6vw,54px);white-space:nowrap;line-height:1.2;color:var(--p);letter-spacing:.04em;margin:6px 0 14px}
.concept{font:700 22px/1.6 'Zen Maru Gothic',sans-serif;margin:0 0 12px}
.lead{margin:0 0 22px;color:var(--s)}
.btn{display:inline-block;background:var(--p);color:#fff;text-decoration:none;font:700 17px/1 'Zen Maru Gothic',sans-serif;padding:16px 30px;border-radius:99px;transition:transform .25s,box-shadow .25s}
.btn:hover,.btn:focus-visible{transform:translateY(-3px);box-shadow:0 8px 18px rgba(194,85,58,.28)}
.btn.sub{background:var(--a);color:var(--t)}
.when{font-size:14px;color:var(--s);margin:10px 0 0}
figure{margin:0}
figure img{display:block;width:100%;height:auto;border-radius:28px;border:3px solid var(--p)}
figcaption{font-size:13px;color:var(--s);margin-top:8px}
section{padding:56px 0}
section.alt{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
h2{font-size:28px;color:var(--s);margin-bottom:6px;border-left:6px solid var(--p);padding-left:14px}
.sec-lead{margin:0 0 26px;color:var(--s)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}
.card h3{font-size:19px;color:var(--p);margin-bottom:6px}
.card p{margin:0;font-size:15px}
.ep{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:center}
.ep img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:18px;display:block;align-self:center}
.ep.soon{grid-template-columns:1fr}
.ep .no{font:700 14px/1 'Zen Maru Gothic',sans-serif;color:var(--p);margin:0 0 6px}
.ep h3{font-size:20px;margin-bottom:6px}
.soon{border-style:dashed;color:#8a7b70;background:transparent}
.host{display:grid;grid-template-columns:1fr;gap:6px}
footer{border-top:1px solid var(--line);padding:32px 0;font-size:14px;color:var(--s)}
footer a{color:var(--s)}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.btn,nav a{transition:none}html{scroll-behavior:auto}}
@media (max-width:760px){
.hero{padding:32px 0 40px}.hero .wrap{grid-template-columns:1fr;gap:24px}
.cards{grid-template-columns:1fr}.ep{grid-template-columns:1fr}
.menu{display:inline-block}nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--bg);flex-direction:column;align-items:flex-start;padding:16px 20px;border-bottom:1px solid var(--line);gap:14px}
nav.open{display:flex}
section{padding:40px 0}h2{font-size:24px}
}
