:root{--theme-accent:var(--rose);--theme-accent-2:#f4eee7;--theme-deep:#171214}
body.series-book{background:var(--theme-deep);position:relative;overflow-x:hidden}
body.series-book .book-header{position:relative;z-index:5;background:rgba(7,9,13,.82);backdrop-filter:blur(14px);border-color:rgba(255,255,255,.14)}
body.series-book .book-page{position:relative;isolation:isolate}
body.series-book .book-mark{background:transparent}
body.series-book .book-mark::before,body.series-book .book-mark::after,body.series-book .book-copy::before{content:"";position:absolute;pointer-events:none}
body.series-book .book-cover{transition:transform .5s ease,box-shadow .5s ease}
body.series-book .book-cover:hover{transform:translateY(-8px) rotate(-1deg)}
body.series-book .book-copy{position:relative;overflow:hidden}
body.series-book .eyebrow{color:var(--theme-accent)}
body.series-book .button:first-child{background:var(--theme-accent);color:#08090b}
body.series-book .button:first-child:hover{background:var(--theme-accent-2)}
body.ryan{--theme-deep:#16191d;--theme-accent:#ff9d20;--theme-accent-2:#f2f4f5;background-image:linear-gradient(115deg,#101215,#242a30)}
body.ryan.max{--theme-accent:#9658d3}
body.ryan.chace{--theme-accent:#f00088;--theme-accent-2:#73eff1}
body.ryan.carter{--theme-accent:#72d5ef;--theme-accent-2:#d7a97c}
body.ryan .book-mark{background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.15),transparent 28%),linear-gradient(145deg,#343a40 0%,#111418 72%)}
body.ryan .book-mark::before{inset:0;opacity:.2;background-image:repeating-linear-gradient(17deg,transparent 0 9px,rgba(255,255,255,.04) 10px 11px)}
body.ryan .book-mark::after{width:68%;aspect-ratio:1;border:2px solid var(--theme-accent);border-radius:50%;right:-30%;bottom:-28%;opacity:.22}
body.ryan .book-copy{background:linear-gradient(125deg,#15181c,#242a30)}
body.ryan .book-copy::before{inset:auto -8vw -10vw auto;width:24vw;aspect-ratio:1;border:1px solid var(--theme-accent);border-radius:50%;opacity:.16;box-shadow:0 0 0 3vw rgba(255,255,255,.02),0 0 0 6vw rgba(255,255,255,.02)}
body.ryan h1{font-family:Impact,"Arial Narrow",var(--sans);font-style:italic;text-transform:uppercase;letter-spacing:.01em;transform:skew(-3deg);text-shadow:4px 4px 0 rgba(0,0,0,.28)}
body.ryan .book-cover{box-shadow:18px 22px 0 color-mix(in srgb,var(--theme-accent) 72%,transparent),0 2.5rem 5rem #050607}
body.good-intentions{--theme-deep:#071426;--theme-accent:#99ef34;--theme-accent-2:#e8f1ff;background:#071426}
body.good-intentions.volume-two{--theme-accent:#28ddec}
body.good-intentions.volume-three{--theme-accent:#f4b62b}
body.good-intentions .book-mark{background:linear-gradient(155deg,#456c98 0%,#152d4c 42%,#060e1d 100%)}
body.good-intentions .book-mark::before{inset:0;background:linear-gradient(105deg,transparent 48%,rgba(255,255,255,.08) 49% 50%,transparent 51%),radial-gradient(circle at 20% 18%,rgba(255,255,255,.23),transparent 24%)}
body.good-intentions .book-mark::after{inset:8%;border:1px solid color-mix(in srgb,var(--theme-accent) 45%,transparent)}
body.good-intentions .book-copy{background:linear-gradient(135deg,#050b16 0%,#0d2039 100%)}
body.good-intentions .book-copy::before{width:46vw;height:46vw;right:-28vw;top:-25vw;border:1px solid var(--theme-accent);transform:rotate(45deg);opacity:.16;box-shadow:0 0 0 5vw rgba(255,255,255,.025),0 0 0 10vw rgba(255,255,255,.018)}
body.good-intentions h1{font-weight:600;letter-spacing:-.065em}
body.good-intentions .meta{color:var(--theme-accent)}
body.good-intentions .book-cover{box-shadow:0 0 0 1px rgba(255,255,255,.2),0 2.5rem 5rem #020711}
body.drs{--theme-deep:#07080c;--theme-accent:#ff315f;--theme-accent-2:#67e9ff;background:#07080c}
body.drs.conquering{--theme-accent:#18d7e4;--theme-accent-2:#f52552}
body.drs.oversteering{--theme-accent:#ff315f;--theme-accent-2:#67e9ff}
body.drs .book-header{border-bottom:3px solid var(--theme-accent)}
body.drs .book-mark{background:#11131a url("assets/drs-racing-texture.jpg") center/cover no-repeat}
body.drs .book-mark::before{inset:0;background:linear-gradient(125deg,rgba(6,7,10,.28),rgba(8,9,13,.08) 48%,rgba(8,9,13,.32));opacity:1}
body.drs .book-mark::after{left:-20%;right:-20%;height:10px;top:23%;background:var(--theme-accent);transform:rotate(-9deg);box-shadow:0 20px 0 var(--theme-accent-2);opacity:.75}
body.drs .book-copy{background:linear-gradient(115deg,#08090d 0%,#15141e 100%)}
body.drs .book-copy::before{inset:-25% -30% auto auto;width:60%;height:120%;border:2px solid var(--theme-accent);transform:skewX(-18deg) rotate(12deg);opacity:.12}
body.drs h1{font-family:Impact,"Arial Narrow",var(--sans);font-style:italic;text-transform:uppercase;letter-spacing:.015em;transform:skew(-6deg);text-shadow:5px 0 0 color-mix(in srgb,var(--theme-accent) 35%,transparent)}
body.drs .meta{display:inline-flex;align-items:center;gap:.75rem;color:var(--theme-accent-2)}
body.drs .meta::before{content:"";width:3rem;height:3px;background:var(--theme-accent)}
body.drs .book-cover{transform:rotate(-1.5deg);box-shadow:20px 20px 0 var(--theme-accent),0 2.5rem 5rem #000}
body.drs .book-cover:hover{transform:translateY(-8px) rotate(0)}
body.drs.oversteering .teaser-cover{position:relative;width:min(78%,420px);overflow:hidden;box-shadow:20px 20px 0 var(--theme-accent),0 2.5rem 5rem #000;transform:rotate(-1.5deg);z-index:1;background:#05070b}
body.drs.oversteering .teaser-cover .book-cover{width:100%;max-height:72vh;transform:none;box-shadow:none}
body.drs.oversteering .teaser-cover:hover .book-cover{transform:scale(1.015)}
body.drs.oversteering .status{display:inline-flex;align-self:flex-start;padding:.55rem .75rem;margin:.35rem 0 0;border:1px solid var(--theme-accent);color:var(--theme-accent);font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
@media(max-width:760px){body.series-book .book-header{background:#090b10}body.ryan .book-cover,body.drs .book-cover{box-shadow:10px 12px 0 var(--theme-accent),0 1.8rem 3rem #050607}body.drs.homecoming .book-cover,body.drs.conquering .book-cover{width:min(58%,260px);max-height:48vh}body.drs.oversteering .teaser-cover{width:min(66%,300px);box-shadow:10px 12px 0 var(--theme-accent),0 1.8rem 3rem #050607}body.drs .book-mark::after{top:18%}body.series-book h1{font-size:clamp(3.2rem,16vw,5.6rem)}body.drs.homecoming h1,body.drs.conquering h1{max-width:100%;font-size:clamp(2.25rem,11vw,3.25rem);line-height:1;letter-spacing:0;transform:skew(-3deg);transform-origin:left center;text-shadow:3px 0 0 color-mix(in srgb,var(--theme-accent) 35%,transparent)}body.drs.oversteering h1{max-width:100%;font-size:clamp(2.15rem,10vw,3.75rem);letter-spacing:0;transform:skew(-3deg);transform-origin:left center;text-shadow:3px 0 0 color-mix(in srgb,var(--theme-accent) 35%,transparent)}}
@media(prefers-reduced-motion:reduce){body.series-book .book-cover{transition:none}}

.related-series{padding:clamp(5rem,9vw,8rem) 6vw;background:color-mix(in srgb,var(--theme-deep) 88%,#fff 12%);border-top:1px solid rgba(255,255,255,.13);color:#f4eee7}
.related-series-heading{max-width:760px;margin:0 auto 3.5rem;text-align:center}
.related-series-heading h2{font:600 clamp(2.7rem,5.5vw,5rem)/1 var(--serif);letter-spacing:-.04em;margin:.25em 0}
.related-series-heading>p:last-child{color:rgba(244,238,231,.7);line-height:1.7}
.related-series-grid{display:flex;justify-content:center;align-items:flex-start;flex-wrap:wrap;gap:clamp(1.5rem,4vw,3.5rem);max-width:980px;margin:auto}
.related-book{width:min(28vw,190px);display:flex;flex-direction:column;gap:.6rem;transition:transform .3s ease}
.related-book:hover{transform:translateY(-8px)}
.related-cover{display:block;aspect-ratio:2/3;overflow:hidden;background:#111;box-shadow:0 1.2rem 2.5rem rgba(0,0,0,.34)}
.related-cover img{display:block;width:100%;height:100%;object-fit:cover}
.related-book strong{font:600 1.3rem/1.2 var(--serif);margin-top:.45rem}
.related-book>span:last-child{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--theme-accent)}
@media(max-width:600px){.related-series{padding:4.5rem 6vw}.related-series-grid{gap:1.3rem}.related-book{width:calc(50% - .7rem);max-width:170px}.related-series-heading{margin-bottom:2.5rem}}
@media(prefers-reduced-motion:reduce){.related-book{transition:none}}

/* DRS palette and cover stage are drawn directly from the supplied racing flag. */
body.drs{--theme-deep:#202027;--theme-accent:#f36f67;--theme-accent-2:#f4b39f;background:#202027}
body.drs.conquering{--theme-accent:#f36f67;--theme-accent-2:#eee8e3}
body.drs .book-header{background:rgba(32,32,39,.9);border-bottom-color:var(--theme-accent)}
body.drs .book-mark{background:#d7d1d0 url("assets/drs-racing-texture.jpg") center/cover no-repeat}
body.drs .book-mark::before{inset:0;background:linear-gradient(120deg,rgba(31,31,38,.16),rgba(255,255,255,.08) 48%,rgba(243,111,103,.18));opacity:1}
body.drs .book-mark::after{height:6px;background:rgba(243,111,103,.78);box-shadow:0 16px 0 rgba(255,255,255,.52);opacity:.75}
body.drs .book-copy{background:radial-gradient(circle at 92% 14%,rgba(243,111,103,.18),transparent 32%),linear-gradient(125deg,#202027 0%,#33323a 100%)}
body.drs .book-cover{box-shadow:18px 20px 0 rgba(243,111,103,.78),0 2.5rem 5rem rgba(20,20,25,.48)}
body.drs.oversteering .teaser-cover{background:#202027;box-shadow:18px 20px 0 rgba(243,111,103,.78),0 2.5rem 5rem rgba(20,20,25,.48)}
