/* Satin indigo covers. Material and lighting stay within the book shelf. */
.subject-card{--light-x:76%;--light-y:16%;--tilt-x:0deg;--tilt-y:0deg;--lift:0px}
.subject-card,.subject-card.is-active,.subject-card:hover{--glint-x:var(--rest-glint,70%)}
.book-solid{transform:translateY(var(--lift)) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .34s cubic-bezier(.2,.7,.2,1);will-change:transform}
.subject-card.is-active{--lift:-9px}.subject-card.is-lit{--lift:-16px}.subject-card.is-lit .book-solid{transition:transform .12s ease-out}.subject-card.is-pressed{--lift:-3px}
.book-cover{
 border:1px solid color-mix(in srgb,var(--book-accent) 24%,#353047);border-radius:3px 7px 7px 3px;
 background:radial-gradient(ellipse at var(--light-x) var(--light-y),color-mix(in srgb,var(--book-accent) 9%,transparent),transparent 67%),linear-gradient(140deg,#292439 0%,#202234 40%,#171b2a 73%,#252137 100%);
 box-shadow:inset 1px 1px 1px #b3a5d524,inset 4px 0 3px #71608b19,inset 7px 0 5px #08091385,inset -1px -1px 2px #090b1699,8px 13px 25px #03040b66;
 filter:brightness(calc(.28 + var(--book-light,1)*.72));
}
.book-cover::before{inset:0;opacity:1;background:none;mask-image:none;mix-blend-mode:normal}
.book-cover::after{left:13px;width:1px;background:#0a0c1880;box-shadow:1px 0 #ac98cd19;z-index:3}
.book-bevel{position:absolute;inset:9px 8px 9px 21px;border:1px solid #b3a0d00c;border-radius:1px 3px 3px 1px;pointer-events:none}
.book-bevel::before,.book-bevel::after{content:'';position:absolute;width:13px;height:13px;border-color:#b6a3d038;border-style:solid}
.book-bevel::before{left:5px;top:5px;border-width:1px 0 0 1px}.book-bevel::after{right:5px;bottom:5px;border-width:0 1px 1px 0}
.book-glint{z-index:2;opacity:.94;mix-blend-mode:screen;transition:opacity .28s;background:var(--dust-art) center/100% 100% no-repeat;pointer-events:none}
.subject-card.is-lit .book-glint,.subject-card:focus-visible .book-glint{opacity:1}
.subject-card.is-active .book-cover{border-color:#9682b678;box-shadow:inset 1px 1px 1px #c7b4e833,inset 4px 0 3px #8b70b022,inset 7px 0 5px #090b1980,inset -1px 0 2px #8a70b02e,9px 18px 34px #03040b80,0 0 26px #9273bd0b}
.book-cover>header{color:#b6abc9;text-shadow:0 1px 1px #070a16}.book-label small{color:#b2a4c7}.book-cover .card-subtitle{color:#b9acce}
.book-label h3,.subject-card.is-active .book-label h3{color:#e5d9f7;background:none;-webkit-text-fill-color:currentColor;filter:none;text-shadow:0 1px 2px #0b0c18;font-weight:400}
.book-cover .subject-diagram{filter:drop-shadow(0 0 9px color-mix(in srgb,var(--book-accent) 12%,transparent))}
.book-footer{color:#9180aa}.book-footer i{height:8px;opacity:.45;background:repeating-linear-gradient(90deg,#b29acb 0 1px,transparent 1px 4px)}
.book-spine{background:linear-gradient(90deg,#191827 0%,#383048 23%,#252037 53%,#3d314b 83%,#292239);border-color:#81709250;box-shadow:inset 0 1px 1px #b9a0cf24,inset 0 -1px 2px #080913}
.book-spine b{color:#cbbadd;text-shadow:0 1px 1px #0a0915}.book-spine span{color:#a18caf}
.book-back{background:linear-gradient(135deg,#332a42,#1b1d2c 70%,#2c253b);border-color:#78618d55;box-shadow:inset 0 0 0 5px #10122355}
.book-pages{background:linear-gradient(180deg,#b7a6c30b,#312c421f 60%,#211e3340),repeating-linear-gradient(0deg,#62596f 0 1px,#514a60 1px 2px);border-color:#8a789b40;box-shadow:inset 2px 0 3px #b5a0ce14,inset -2px 0 3px #13132299,inset 0 7px 6px #11132366}
.book-top{background:linear-gradient(95deg,#8b7b9c1a,transparent 40%,#41374d55),repeating-linear-gradient(0deg,#73677f 0 .7px,#51465e .8px 1.5px);border-top:1px solid #a18ab83d}
.book-bottom{background:linear-gradient(0deg,#252035,#4c405a 35%,#30273d);border-bottom:1px solid #80669245}
.book-shadow{width:114%;left:-2%;height:51px;bottom:-59px;background:radial-gradient(ellipse,#8c69b323,#11142110 44%,transparent 72%);filter:blur(10px);transition:opacity .3s,transform .3s}
.subject-card.is-active .book-shadow{opacity:.8;transform:rotateX(76deg) translateZ(-28px) scale(1.1)}
#subjects{background:radial-gradient(ellipse at 52% 59%,#2b223640,transparent 66%),#0e1015}
.orbit-stage::before{content:'';position:absolute;left:10%;right:10%;bottom:41px;height:70px;background:radial-gradient(ellipse,#9575c011,transparent 66%);pointer-events:none}
.orbit-guide{border-top-color:#a58bc626;border-bottom-color:#a58bc60f;box-shadow:0 -1px 0 #cab7e704,0 -6px 34px #8e6cac08}
@media(hover:hover){.subject-card:hover .book-cover{border-color:#ac94ca85}.subject-card:hover .card-open{color:#e7d5ff;text-shadow:0 0 10px #a182ba55}}
@media(max-width:760px){.subject-card.is-active{--lift:-5px}.subject-card.is-lit{--lift:-7px}.book-cover::before{inset:0;opacity:1;background:none;mask-image:none;mix-blend-mode:normal}.book-shadow{filter:blur(7px)}}
@media(prefers-reduced-motion:reduce){.book-solid{transform:translateY(var(--lift));transition:none;will-change:auto}.subject-card.is-active{--lift:0px}.subject-card.is-lit{--lift:0px}.book-glint{transition:none}}



/* Nine individually composed sprays of stardust. No repeating dot matrix, broad light blobs or polished glare. */
.book-glint::before,.book-glint::after{content:none}
.subject-card[data-index="0"]{--dust-art:url("assets/book-stardust/01.svg")}
.subject-card[data-index="1"]{--dust-art:url("assets/book-stardust/02.svg")}
.subject-card[data-index="2"]{--dust-art:url("assets/book-stardust/03.svg")}
.subject-card[data-index="3"]{--dust-art:url("assets/book-stardust/04.svg")}
.subject-card[data-index="4"]{--dust-art:url("assets/book-stardust/05.svg")}
.subject-card[data-index="5"]{--dust-art:url("assets/book-stardust/06.svg")}
.subject-card[data-index="6"]{--dust-art:url("assets/book-stardust/07.svg")}
.subject-card[data-index="7"]{--dust-art:url("assets/book-stardust/08.svg")}
.subject-card[data-index="8"]{--dust-art:url("assets/book-stardust/09.svg")}
@media(max-width:760px){.book-cover::before{opacity:1}.book-glint{opacity:.9}}
