:root{
  --story-bg:#f8f6f0;
  --story-paper:#fffdfa;
  --story-ink:#25241f;
  --story-muted:#69675f;
  --story-line:rgba(52,51,45,.14);
  --story-sage:#7b876d;
  --story-sage-soft:#eef0e8;
  --story-blue:#6092ad;
  --story-blue-soft:#eaf3f7;
  --story-clay:#c9643a;
  --story-clay-soft:#f8eee8;
}

body.story-mode{background:var(--story-bg);color:var(--story-ink);}
body.story-mode .guide-header{background:rgba(248,246,240,.94);}
body.story-mode .guide-wrap{max-width:1240px;padding-top:2.4rem;}

.story-reading-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:80;background:rgba(37,36,31,.06);pointer-events:none;}
.story-reading-progress span{display:block;width:0;height:100%;background:var(--story-clay);transform-origin:left center;}

.story-rail{position:fixed;left:max(1rem,calc((100vw - 1380px)/2));top:50%;z-index:12;width:92px;transform:translateY(-50%);display:grid;gap:1.05rem;padding-left:1rem;border-left:1px solid var(--story-line);}
.story-rail::before{content:'今ここ';position:absolute;left:-.35rem;top:-3.6rem;padding:.6rem .55rem;border-radius:999px;background:var(--story-sage);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.08em;writing-mode:vertical-rl;}
.story-rail a{position:relative;color:#9a978e;font-family:'Nunito',sans-serif;font-size:.58rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;transition:color .25s,transform .25s;}
.story-rail a::before{content:'';position:absolute;left:-1.28rem;top:.52rem;width:7px;height:7px;border-radius:50%;background:#c7c5bb;border:2px solid var(--story-bg);}
.story-rail a[aria-current='true']{color:var(--story-ink);transform:translateX(3px);}
.story-rail a[aria-current='true']::before{background:var(--story-clay);}

.story-hero{position:relative;display:grid;grid-template-columns:minmax(420px,.82fr) minmax(560px,1.18fr);align-items:center;min-height:500px;margin-bottom:1.2rem;overflow:hidden;}
.story-hero-copy{position:relative;z-index:2;width:min(690px,58vw);margin-right:-160px;padding:2.6rem 0 2.6rem 1rem;}
.story-hero .guide-title{max-width:13.5em;font-size:clamp(2.45rem,3.65vw,3.3rem);line-height:1.34;letter-spacing:.02em;margin-bottom:1rem;}
.story-hero .guide-lead{max-width:39rem;font-size:.92rem;line-height:2;color:var(--story-muted);}
.story-hero-media{position:relative;min-height:470px;align-self:stretch;overflow:hidden;border-radius:0 0 0 44px;background:#e9edf0;}
.story-hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.035) translate3d(0,var(--story-parallax,0),0);transition:transform .35s ease-out;}
.story-summary{position:absolute;right:1rem;top:1.4rem;z-index:3;width:min(260px,28%);padding:1.15rem 1.2rem;background:rgba(255,253,250,.94);border:1px solid rgba(201,100,58,.22);border-radius:12px;box-shadow:0 14px 36px rgba(52,51,45,.1);backdrop-filter:blur(10px);}
.story-summary h2{font-family:'Shippori Mincho',serif;font-size:1.2rem;line-height:1.4;margin-bottom:.8rem;padding-bottom:.55rem;border-bottom:2px solid var(--story-clay);}
.story-summary ol{display:grid;gap:.72rem;list-style:none;counter-reset:story-summary;}
.story-summary li{counter-increment:story-summary;display:grid;grid-template-columns:1.6rem 1fr;gap:.35rem;color:var(--story-muted);font-size:.73rem;line-height:1.55;}
.story-summary li::before{content:counter(story-summary,decimal-leading-zero);font-family:'Nunito',sans-serif;color:var(--story-clay);font-weight:900;}

.story-chapters{display:grid;gap:.7rem;margin:0 0 2rem;}
.story-chapter{--chapter-color:var(--story-sage);--chapter-soft:var(--story-sage-soft);display:grid;grid-template-columns:minmax(310px,.78fr) minmax(0,1.55fr);min-height:230px;border-radius:22px;overflow:hidden;background:var(--chapter-soft);border:1px solid rgba(52,51,45,.08);}
.story-chapter:nth-child(2){--chapter-color:var(--story-blue);--chapter-soft:var(--story-blue-soft);}
.story-chapter:nth-child(3){--chapter-color:var(--story-clay);--chapter-soft:var(--story-clay-soft);}
.story-chapter-copy{position:relative;z-index:2;padding:1.35rem 1.5rem;align-self:center;}
.story-chapter-number{float:left;font-family:'Shippori Mincho',serif;font-size:4.15rem;line-height:.9;color:var(--chapter-color);opacity:.94;margin:.2rem 1.15rem .55rem 0;}
.story-chapter small{display:block;font-family:'Nunito',sans-serif;color:var(--chapter-color);font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.55rem;}
.story-chapter h2{font-family:'Shippori Mincho',serif;font-size:clamp(1.38rem,2vw,1.85rem);line-height:1.42;margin-bottom:.4rem;}
.story-chapter p{max-width:30rem;color:var(--story-muted);font-size:.78rem;line-height:1.72;}
.story-chapter-media{min-height:230px;overflow:hidden;}
.story-chapter-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.story-chapter:hover .story-chapter-media img{transform:scale(1.035);}

.story-detail-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1.6rem 0;}
.story-detail{background:rgba(255,253,250,.88);border:1px solid var(--story-line);border-radius:14px;overflow:hidden;}
.story-detail summary{position:relative;list-style:none;padding:1.2rem 3rem 1.2rem 1.25rem;font-family:'Shippori Mincho',serif;font-size:1.12rem;font-weight:700;cursor:pointer;}
.story-detail summary::-webkit-details-marker{display:none;}
.story-detail summary::after{content:'詳しく見る';position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);font-family:'Noto Sans JP',sans-serif;font-size:.68rem;font-weight:800;color:var(--story-clay);}
.story-detail[open] summary::after{content:'閉じる';}
.story-detail-content{padding:0 1.25rem 1.3rem;color:var(--story-muted);font-size:.88rem;}
.story-detail .check-list{margin-top:.75rem;}
.story-detail:last-child:nth-child(odd){grid-column:1/-1;}

.story-note{display:grid;grid-template-columns:.85fr 1.15fr;gap:1.4rem;align-items:center;margin:1.4rem 0;padding:1.4rem;border:1px solid rgba(123,135,109,.25);border-radius:16px;background:var(--story-paper);}
.story-note h2{font-family:'Shippori Mincho',serif;font-size:1.55rem;line-height:1.45;margin-bottom:.55rem;}
.story-note p{color:var(--story-muted);font-size:.86rem;}

.story-page .related-box,.story-page .faq-box{box-shadow:none;border-radius:16px;background:var(--story-paper);}
.story-page .related-grid a{box-shadow:none;background:transparent;border-radius:12px;}

.story-reveal{opacity:0;transform:translateY(28px);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.7,.2,1);}
.story-reveal.is-visible{opacity:1;transform:translateY(0);}

@media(max-width:1280px){.story-rail{display:none;}}
@media(max-width:900px){
  body.story-mode .guide-wrap{padding-top:1rem;}
  .story-hero{display:flex;flex-direction:column;min-height:0;overflow:visible;}
  .story-hero-media{order:1;width:100%;min-height:0;aspect-ratio:16/10;border-radius:18px;}
  .story-hero-copy{order:2;width:100%;margin-right:0;padding:1.5rem .15rem .8rem;}
  .story-hero .guide-title{font-size:clamp(2rem,9vw,3.15rem);}
  .story-summary{position:relative;order:3;top:auto;right:auto;width:100%;margin:.8rem 0;padding:1rem;}
  .story-summary ol{grid-template-columns:1fr;}
  .story-chapter{grid-template-columns:1fr;}
  .story-chapter-copy{padding:1.35rem 1.15rem;}
  .story-chapter-number{font-size:3.4rem;}
  .story-chapter-media{order:-1;min-height:0;aspect-ratio:16/7;}
  .story-detail-group{grid-template-columns:1fr;}
  .story-note{grid-template-columns:1fr;}
}

@media(prefers-reduced-motion:reduce){
  .story-reveal{opacity:1;transform:none;transition:none;}
  .story-hero-media img,.story-chapter-media img{transform:none!important;transition:none;}
}
