/* A quiet vermilion thread joins the chapters; native open state lights its node. */
.chapter-list{--thread-left:-20px;--node-top:95px;position:relative}
.chapter-list:before{content:'';position:absolute;left:var(--thread-left);top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,#9c49374d 45px,#9c49374d calc(100% - 45px),transparent);pointer-events:none}
.chapter{position:relative}
.chapter:before,.chapter:after{content:'';position:absolute;left:var(--thread-left);top:var(--node-top);transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;z-index:2}
.chapter:before{width:7px;height:7px;border:1px solid #ad6a51;background:var(--paper);transition:background .25s,box-shadow .35s,border-color .25s}
.chapter:after{width:23px;height:23px;border:1px solid #a847302e;opacity:0;transition:opacity .3s}
.chapter[open]:before{background:#a7442e;border-color:#a7442e;box-shadow:0 0 0 4px #a7442e17,0 0 14px #c2734c75}
.chapter[open]:after{opacity:1}
.chapter-summary{transition:outline-color .25s}
.chapter[open] .chapter-plus{border-color:#e8c79c;background:#a4472b38;box-shadow:0 0 16px #b65e2c27}
/* Two short fabric-like edges part at the entrance to the expanded content. */
.chapter-body{position:relative}
.chapter-body:before,.chapter-body:after{content:'';position:absolute;top:0;width:50%;height:44px;z-index:3;pointer-events:none;opacity:0;background:repeating-linear-gradient(90deg,#2e2922 0,#2e2922 3px,#332d25 4px,#2e2922 5px);border-bottom:1px solid #c29a65;transform:scaleX(0)}
.chapter-body:before{left:0;transform-origin:left center;border-right:1px solid #b1936b}
.chapter-body:after{right:0;transform-origin:right center;border-left:1px solid #b1936b}
@media(max-width:700px){.chapter-list{--thread-left:-12px;--node-top:84px}.chapter:before{width:6px;height:6px}.chapter:after{width:20px;height:20px}.chapter-body:before,.chapter-body:after{height:36px}}
@media(max-width:360px){.chapter-list{--thread-left:-8px}}
@media(prefers-reduced-motion:no-preference){
 .chapter[open]>.chapter-body{animation:content-arrives .32s ease-out both}
 .chapter[open]>.chapter-body:before,.chapter[open]>.chapter-body:after{animation:noren-parts .42s cubic-bezier(.22,.7,.25,1) both}
 .chapter[open]:after{animation:thread-lights .55s ease-out}
 @keyframes noren-parts{0%{transform:scaleX(1);opacity:1}72%{opacity:1}100%{transform:scaleX(0);opacity:0}}
 @keyframes content-arrives{0%{opacity:.35;transform:translateY(-5px)}100%{opacity:1;transform:translateY(0)}}
 @keyframes thread-lights{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}65%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
}
@media(prefers-reduced-motion:reduce){
 .chapter:before,.chapter:after,.chapter-summary,.chapter-plus{transition:none}
 .chapter-body:before,.chapter-body:after{display:none}
 .chapter[open]>.chapter-body{animation:none;transform:none;opacity:1}
}
